这篇文章主要介绍如何利用ggplot2绘制直方图,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
利用ggplot2绘制直方图,基于几何对象geom_histogram()函数
geom_histogram(mapping = NULL, data = NULL, stat = "bin", position = "stack", ..., binwidth = NULL, bins = NULL, na.rm = FALSE, show.legend = NA, inherit.aes = TRUE)
其中mapping图形属性映射涉及多个,需统计的数据映射到X轴,Y轴映射统计类型(包括频数count 或频率density等),还涉及其他的图像属性等。
统计变换 stat="bin",对应要设置组距间隔 binwidth大小,由此统计该组间间隔内的频数情况或频率情况
现利用数据绘制直方图,同时将绘图中计算得到的count添加到柱子上。
数据基本情况:
> head(dat) ID CK 1 AT1G01010 3.581590 2 AT1G01020 5.036775 3 AT1G01030 5.035380 4 AT1G01040 2.692716 5 AT1G01046 0.000000 6 AT1G01050 114.336000 > dim(dat) [1] 32483 2
数据第二列CK 表示基因表达量FPKM,再次进行转换log10(CK)进行绘图
基础代码:
p=ggplot(dat,aes(x=log10(CK)))+geom_histogram(stat="bin",binwidth = 1)+xlim(-3,5) print(p)
其y轴默认count类型,不做设置是等同于 aes(y=..count..),对应频数类型
注意书写方式 该数值为统计变换所得衍生,故前后各有两点
p=ggplot(dat,aes(x=log10(CK),y=..count..))+geom_histogram(stat="bin",binwidth = 1)+xlim(-3,5) print(p)
进行文字添加则利用geom_text函数,其aes(label)需由..count..映射,同时在stat 和binwidth的设置必须和此前一致,方可在图片上添加计算到的频数
p=p+geom_text(aes(label=as.character(..count..)),stat="bin",binwidth=1,vjust=-0.5) print(p)
频率图绘制及density数值添加过程类似:1、aes(y=..density) 2、统计变换等一致 3、density 仅保留两位小数利用round()
p=ggplot(dat,aes(x=log10(CK),y=..density..))+geom_histogram(stat="bin",binwidth = 1)+xlim(-3,5) p=p+geom_text(aes(label=as.character(round(..density..,2))),stat="bin",binwidth=1,vjust=-0.5) print(p)
以上是“如何利用ggplot2绘制直方图”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。