2013-10-20 9 views
6

मैं दूसरे के ऊपर एक दो को दस की श्रृंखला वायलिन भूखंडों प्लॉट करने के लिए करना चाहते हैं:ओवरले वायलिन भूखंडों ggplot2

library(ggplot2) 
#generate some data 

coco1<-rnorm(10000,0,1) 
coco2<-c(runif(10000)) 
decile<-rbinom(10000,9,1/2)+1 
coconut<-data.frame(coco1,coco2,decile) 

#draw the violin plots of the coco1 serie 
p <- ggplot(coconut, aes(factor(decile), coco1)) 
p<-p + geom_violin(aes(alpha=0.3,colour="#1268FF")) 
p 

#draw the violin plots of the coco2 serie 
q <- ggplot(coconut, aes(factor(decile), coco2)) 
q<-q + geom_violin(aes(alpha=0.3,colour="#3268FF")) 
q 

मैं, वायलिन साजिश "पी" और "q" साजिश ही ग्राफ पर चाहते हैं , और मैं "क्यू" के प्रत्येक वायलिन प्लॉट को "पी" के संबंधित वायलिन प्लॉट पर होना चाहता हूं।

+0

अच्छी नौकरी स्पष्ट लक्ष्यों के साथ पुनरुत्पादित प्रश्न बना रही है। – beroe

उत्तर

7

आप बस अपना पहला एक के बाद दूसरे स्थान साजिश के geom_violin जोड़ सकते हैं:

p <- ggplot(coconut, aes(factor(decile), coco1)) 
p <- p + geom_violin(aes(colour = "#1268FF"), alpha = 0.3) 
q <- p + geom_violin(aes(y = coco2, colour = "#3268FF"), alpha = 0.3) 

अब, q वायलिन के दोनों संस्करणों में शामिल है। enter image description here

वैसे: आप रंग कथा से छुटकारा पाने के लिए चाहते हैं, तो आप aes की colour बाहर निर्दिष्ट करना होगा।

+0

अच्छा उदाहरण (+1), ऐसा करने का एक लगातार तरीका समूहों के वितरण में से एक को प्रतिबिंबित करना है, क्योंकि घनत्व सममित है। मैं यहां टिप्पणियों में ऐसा करने का एक उदाहरण देता हूं, http://mbjoseph.github.io/blog/2013/06/24/violin/। कोई भी विभिन्न भारोत्तोलन योजनाओं पर विचार करना चाह सकता है; इस उदाहरण में नीले और लाल समूहों में शायद बराबर क्षेत्र होना चाहिए, क्योंकि उनके बराबर नमूना आकार होते हैं। –

संबंधित मुद्दे