2010-02-25 13 views
10

आर में यह एक boxplotमैं एक मैट्रिक्स

> myMatrix 
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] 
[1,] 27 32 31 28 20 28 10 29 15 29 
[2,] 31 33 20 28 21 9 14 21 34 33 
[3,] 27 33 28 23 26 33 19 11 26 30 
[4,] 33 17 10 31 10 32 10 29 31 28 
[5,] 25 10 29 34 32 33 28 32 32 32 
[6,] 32 19 13 32 26 20 9 26 32 33 
[7,] 33 32 18 26 27 28 29 32 24 25 
[8,] 33 34 32 30 27 31 22 32 33 30 
[9,] 32 34 31 22 17 31 11 27 18 23 
[10,] 26 10 30 30 27 4 4 4 4  4 

> boxplot(as.data.frame(myMatrix)) 

मैं ggplot में एक ही बात कैसे पूरा करते हैं में एक मैट्रिक्स चालू करने के लिए आसान है का उपयोग कर ggplot में एक boxplot कैसे बना सकता हूं?

उत्तर

8

आप पिघल() फ़ंक्शन और फिर geom_boxplot() का उपयोग कर सकते हैं। पहले डेटा पुन: पेश (एक्सेल के लिए धन्यवाद):

vec <- c(c(27, 32, 31, 28, 20, 28, 10, 29, 15, 29), 
+ c(31, 33, 20, 28, 21,  9, 14, 21, 34, 33), 
+ c(27, 33, 28, 23, 26, 33, 19, 11, 26, 30), 
+ c(33, 17, 10, 31, 10, 32, 10, 29, 31, 28), 
+ c(25, 10, 29, 34, 32, 33, 28, 32, 32, 32), 
+ c(32, 19, 13, 32, 26, 20,  9, 26, 32, 33), 
+ c(33, 32, 18, 26, 27, 28, 29, 32, 24, 25), 
+ c(33, 34, 32, 30, 27, 31, 22, 32, 33, 30), 
+ c(32, 34, 31, 22, 17, 31, 11, 27, 18, 23), 
+ c(26, 10, 30, 30, 27,  4,  4,  4,  4, 4)) 
myMatrix <- matrix(data=vec, ncol=10, byrow=TRUE) 

तब पिघल और साजिश:

library(reshape) 
library(ggplot2) 
ggplot(data=melt(as.data.frame(myMatrix)), aes(variable, value)) + geom_boxplot() 

इसके अलावा, जैसा हैडली (बहुत पहले) ने सुझाव दिया टिप्पणी में, कास्ट करने के लिए कोई जरूरत नहीं है डेटा फ्रेम के लिए मैट्रिक्स:

ggplot(data=melt(myMatrix), aes(as.factor(X2), value)) + geom_boxplot() 
+2

आप सीधे matrices पिघल सकते हैं ... – hadley