2013-10-20 80 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 

我想繪製小提琴情節「p」和「Q」,在同一圖,並且我希望每個「q」的小提琴情節都要超過相應的「p」的小提琴情節。

+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

順便說一句:如果你想擺脫色彩的傳說,你必須指定colouraes

+0

不錯的例子(+1),這樣做的一種常見方式是反映羣體分佈之一,因爲密度是對稱的。我舉了一個例子,在http://mbjoseph.github.io/blog/2013/06/24/violin/的評論中這樣做。有人可能想要考慮不同的權重計劃;在這個例子中,藍色和紅色的組可能應該有相同的面積,因爲它們具有相同的樣本大小。 –