在ggplot2中用透明的身体覆盖小提琴的情节(Overlaying of violin plots in ggplot2 with transparent bodies)
这是我正在使用的代码:
library(ggplot2) coco1<-rnorm(10000,0,1) coco2<-rnorm(10000,10,5) coco3<-rnorm(10000,20,10) coco4<-rnorm(10000,30,20) decile<-rbinom(10000,3,1/2)+1 coconut<-data.frame(coco1,coco2,coco3,coco4,decile) p <- ggplot(coconut, aes(factor(decile), coco1)) p <- p + geom_violin(aes(colour = "1"), alpha = .5, size=2) q <- p + geom_violin(aes(y = coco2, colour = "2"), alpha = .5, size=2) q <- q + geom_violin(aes(y = coco3, colour = "3"), alpha = .5, size=2) q <- q + geom_violin(aes(y = coco4, colour = "4"), alpha = .5, size=2) q生成此图像:
注意小提琴的身体是如何在你去的小提琴层下面产生透明度问题的? 理想情况下,我希望身体的alpha = 0,身体轮廓的alpha = 1。
Here is the code I am working with:
library(ggplot2) coco1<-rnorm(10000,0,1) coco2<-rnorm(10000,10,5) coco3<-rnorm(10000,20,10) coco4<-rnorm(10000,30,20) decile<-rbinom(10000,3,1/2)+1 coconut<-data.frame(coco1,coco2,coco3,coco4,decile) p <- ggplot(coconut, aes(factor(decile), coco1)) p <- p + geom_violin(aes(colour = "1"), alpha = .5, size=2) q <- p + geom_violin(aes(y = coco2, colour = "2"), alpha = .5, size=2) q <- q + geom_violin(aes(y = coco3, colour = "3"), alpha = .5, size=2) q <- q + geom_violin(aes(y = coco4, colour = "4"), alpha = .5, size=2) qwhich generates this image:
Notice how the bodies of the violins create a transparency problem the further down the layers of violins you go? Ideally, I'd like the bodies to have alpha=0 and the outline of the body to have alpha=1.
最满意答案
p <- ggplot(coconut, aes(factor(decile), coco1)) + geom_violin(aes(colour = "1"), fill = NA, size=2) + geom_violin(aes(y = coco2, colour = "2"), fill = NA, size=2) + geom_violin(aes(y = coco3, colour = "3"), fill = NA, size=2) + geom_violin(aes(y = coco4, colour = "4"), fill = NA, size=2) pp <- ggplot(coconut, aes(factor(decile), coco1)) + geom_violin(aes(colour = "1"), fill = NA, size=2) + geom_violin(aes(y = coco2, colour = "2"), fill = NA, size=2) + geom_violin(aes(y = coco3, colour = "3"), fill = NA, size=2) + geom_violin(aes(y = coco4, colour = "4"), fill = NA, size=2) p
更多推荐
发布评论