前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【R】蜜蜂图beeswarm

【R】蜜蜂图beeswarm

作者头像
生信交流平台
发布2022-09-21 19:15:15
6020
发布2022-09-21 19:15:15
举报
文章被收录于专栏:用户7627119的专栏

蜜蜂图或蜂群图(beeswarm)这个名字,大家可能比较陌生,但是大家肯定都见过他的尊容。下面这张图就是一个典型的蜜蜂图。因为看上去像一群飞舞的蜜蜂而得名。

可能大家觉得蜜蜂图跟散点图或者jitter图差不多,但实际上他们之间还是有很大区别的。

上面三张图,从上至下分别为jitter图,蜜蜂图(beeswarm)和散点图。从图中可以发现,beeswarm很好的体现了数据的分布,更加清楚、直观。而jitter图和散点图,难以快速获取信息,point图中点过于密集,jitter中分布过于散乱。这也是很多科学论文选择beeswarm图的原因,在小样本下也许jitter或者points的方法也能够传达我们想要传递的信息,但是在样本量较大的时候,这两个绘图方法就不太适合了。而beeswarm图在大样本的情况下也比较适用。不仅可以体现每一个样本具体情况,而且能够查看整体的情况。

下面是绘制这三张图的具体代码

代码语言:javascript
复制
#安装beeswarm包
install.packages("beeswarm")

#加载beeswarm包
library(beeswarm)

#生成一个pdf文件来保存图片
pdf(file="stripchart_beeswarm_points.pdf",height=9,width=9)
par(mfrow=c(3,1))
#绘制jitter图
stripchart(decrease ~ treatment, data = OrchardSprays, vertical = TRUE, 
           log = "y", method = 'jitter', jitter = 0.2, cex = 1,pch = 16, 
           col = rainbow(8),main = 'stripchart')

#绘制蜜蜂图
beeswarm(decrease ~ treatment, data = OrchardSprays, log = TRUE, 
         pch = 16, col = rainbow(8),main = 'beeswarm')

#绘制散点图
plot(as.numeric(OrchardSprays$treatment),  
     log2(OrchardSprays$decrease), 
     type="p",pch=16,
     col=rainbow(8)[OrchardSprays$treatment],
     ylab="decrease",
     xlab="treatment",
     xaxt="n",
     main="points"
     )
xtick=seq_along(levels(OrchardSprays$treatment))
axis(side=1, at=xtick, labels = FALSE,tcl = -0.2)
text(x=xtick,  par("usr")[3], 
     labels = levels(OrchardSprays$treatment), pos = 1, xpd = TRUE)
dev.off()

在stripchart_beeswarm_points.pdf文件中我们就能找到绘制的三张图了。后面小编会详细给大家介绍beeswarm这个R包的使用,绘制更多不同类型的蜜蜂图。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信交流平台 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档