Наложение скрипичных сюжетов 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".

1 ответов


вы можете просто добавить 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

кстати: если вы хотите избавиться от легенды цвета, вы должны указать colour за пределами aes.