在ggplot2中用透明的身体覆盖小提琴的情节(Overlaying of violin plots in ggplot2 with transparent bodies)

编程入门 行业动态 更新时间:2024-10-24 23:26:01
在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) q

which 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) p

结果情节

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) p

resulting plot

更多推荐

本文发布于:2023-08-05 00:09:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1424197.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:中用   小提琴   情节   透明   身体

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!