前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言绘制errorbar的过程解析

R语言绘制errorbar的过程解析

作者头像
一粒沙
发布2019-07-31 09:52:04
2.7K0
发布2019-07-31 09:52:04
举报
文章被收录于专栏:R语言交流中心

errorbar图在很多文章中都是可见的,其意义也就是展现两组数据的差异性,柱高代表的一组数据的均值,顶部的横线代表的该组数据的标准差。为了方便广大学者也有很多现成的工具可以绘制errorbar图,例如ploty,origin甚至Excel都是可以的。我们今天给大家分享下在R语言中如何实现errotbar图的绘制,同时把图的每一部分都拆开,实现在R语言中任意调整。

首先,我们来看下我们需要的必备函数:barplot,arrows,lines,text,axis。对于以上函数我不一一展开赘述了,大家不了解的话自行百度或者查看Help。

然后就是样例程序了。首先我们自己直接生成两组组数据的均值以及标准差并标记两组的组名分别是“Normal”,“Cancer”。

a=data.frame(mean=c(5,9),sd=c(10,15))

rownames(a)=c('Normal','Cancer')

接下来就是先绘制Bar图。

b <- barplot(a$mean, names.arg =rownames(a), col = c("green", "blue"), ylim = c(0, 20),axes = F, font = 2)

核心的部分来了,那就是生成标准差的的顶部横线。

arrows(b[1], a$mean[1], b[1], a$sd[1],angle = 90)

arrows(b[2], a$mean[2], b[2], a$sd[2], angle= 90)

是不是已经看到曙光了,细节还是很重要的,接下来添加顶部注释。

lines( x = c(b[1], b[1], b[2], b[2]), y =c( a$sd[1] * 1.06 , a$sd[2] * 1.16, a$sd[2]* 1.16, a$sd[2] * 1.06), lty = 2)

text( x = b[1] + (b[2] - b[1]) / 2, y = a$sd[2]* 1.16, label = "****", cex = 2, adj = c(0.5, 0)) #差异P-value注释

text(x=b[1],y = a$sd[2] * 1.3,label ="n=12", cex = 1)#样本数注释

text(x=b[2],y = a$sd[2] * 1.3,label ="n=16", cex = 1) #样本数注释

最后一步就是坐标轴了,坐标轴跟随数据的需要四个方向随便摆放,我们以左边的坐标轴为例。其中参数side也就是对应的哪个方向1代表底部,2代表左侧,3代表顶部,4代表右边。

axis(side = 2, lwd = 2, font = 2, cex =1.5)

下面就是最终成果了:

总结,以上只是errorbar的绘制过程,前期的数据处理还是需要自己进行认真处理,最后才能让自己的图更有意义。

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

本文分享自 R语言交流中心 微信公众号,前往查看

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

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

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