![db29dc10772c95193ec4b4c3608b3e1b.png](https://i-blog.csdnimg.cn/blog_migrate/74700f2c88e518b13d776b8410d53103.png)
频数分布直方图能清楚地显示各组频数分布情况,同时直观展示各组之间频数的差别,是数据分析过程中常用的一种图。
画频数分布直方图的方法有很多,可以用SPSS、Excel等等,但这些工具操作起来比较繁琐,在这里小编教大家用R语言快速绘制频数分布直方图。
首先我们需要准备绘制频数分布直方图的数据,第一列为样本名称(可省略),第二列为表型数据。
![1e1e2eee6716d13273147416d9d96baf.png](https://i-blog.csdnimg.cn/blog_migrate/9bc235223339070fd676afca08f595d4.png)
## 导入数据
trait <- read.table("trait.txt",header=T,sep="t",row.names=1)
## 选择表型数据
x <- trait$A
## 绘制频数分布直方图
h <- hist(x,col="#6289c3",freq=TRUE,lwd=2,cex.axis=1.5,cex.lab=1.5,main="",ylab="",xlab="",cex.main=1.5)
![c2393c1de33211d4a458c736b84042c4.png](https://i-blog.csdnimg.cn/blog_migrate/f647612402de648e85ccf255a7bed7fe.png)
## 绘制频率分布直方图(与频数分布直方图代码的区别为freq=FALSE)
h <- hist(x,col="#6289c3",freq=FALSE,lwd=2,cex.axis=1.5,cex.lab=1.5,main="",ylab="",xlab="",cex.main=1.5)
![99c467c8b550ad15df06c8d307c24ca3.png](https://i-blog.csdnimg.cn/blog_migrate/31ef91d25c55bb2e1d7e127c1feaa16a.png)
## 绘制轴须图
rug(jitter(x),side=1,col="#c7513b",lwd=1)
![cdf59245bf9294355aa8ee6e7ceb088a.png](https://i-blog.csdnimg.cn/blog_migrate/f72624fdde5b42170f9a1604bc9b6fc6.png)
红色部分就是绘制出来的轴须图(rug plot),轴须图是数据的一维展示方式,可以清楚地让我们看到实际数据分布在哪里。
## 绘制正态曲线
xfit <- seq(min(x),max(x),length=40)
meannum <- mean(x,na.rm=TRUE)
sdnum <- sd(x,na.rm=TRUE)
yfit <- dnorm(xfit,mean = meannum,sd=sdnum)
yfit <- yfit*diff(h$mids[1:2]*length(x))
lines(xfit,yfit,col="black",lwd=2)
![bfcac457e11edc6311243b9f40156f90.png](https://i-blog.csdnimg.cn/blog_migrate/65098b9fba10e378526f71ba13eeefbf.png)
至此,我们的图就画好了!图中很多细节还可以使用下面代码微调。
## xlim设置X轴范围,ylim设置Y轴范围
hist(x,col="#6289c3",freq=TRUE,xlim=c(10,35),ylim=c(0,15),lwd=2,cex.axis=1.5,cex.lab=1.5,main="",ylab="",xlab="",cex.main=1.5)
![965aa6451afe76d229f8ab874f59d77e.png](https://i-blog.csdnimg.cn/blog_migrate/cf83661b5bd1ebca191a6130fd2d89a2.png)
## breaks设置组数
hist(x,col="#6289c3",freq=TRUE,breaks=10,xlim=c(10,35),lwd=2,cex.axis=1.5,cex.lab=1.5,main="",ylab="",xlab="",cex.main=1.5)
![c6383e43dc8f4ce3c6574f1e1ddae2c8.png](https://i-blog.csdnimg.cn/blog_migrate/5da3fd276e1de507def349c5b8748b06.png)
## 添加外框
box(lwd=2)
![0ba3d94c79b02eb245300c2b42f98a68.png](https://i-blog.csdnimg.cn/blog_migrate/669ab5a984f0275b3097c1de117844ad.png)
参考资料:
R语言实战(第2版)118-119页
https://blog.csdn.net/ilovemoon10/article/details/77803916
![ba98ad6321b54e3c449831c1743d3ae0.png](https://i-blog.csdnimg.cn/blog_migrate/f9be1b6ca35c772b38ecf25cb31e5dd7.jpeg)