温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何利用ggplot2绘制直方图

发布时间:2022-03-18 15:10:37 来源:亿速云 阅读:910 作者:小新 栏目:开发技术

这篇文章主要介绍如何利用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绘制直方图”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI