每个人都用得到的频数分布直方图

频数分布直方图能清楚地显示各组频数分布情况,同时直观展示各组之间频数的差别,是数据分析过程中常用的一种图。

画频数分布直方图的方法有很多,可以用SPSS、Excel等等,但这些工具操作起来比较繁琐,在这里小编教大家用R语言快速绘制频数分布直方图。

首先我们需要准备绘制频数分布直方图的数据,第一列为样本名称(可省略),第二列为表型数据。

代码语言:javascript复制## 导入数据

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)频数分布直方图

代码语言:javascript复制## 绘制频率分布直方图(与频数分布直方图代码的区别为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)频率分布直方图

代码语言:javascript复制## 绘制轴须图

rug(jitter(x),side=1,col="#c7513b",lwd=1)红色部分就是绘制出来的轴须图(rug plot),轴须图是数据的一维展示方式,可以清楚地让我们看到实际数据分布在哪里。

代码语言:javascript复制## 绘制正态曲线

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)至此,我们的图就画好了!图中很多细节还可以使用下面代码微调。

代码语言:javascript复制## 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)代码语言:javascript复制## 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)代码语言:javascript复制## 添加外框

box(lwd=2)参考资料:

R语言实战(第2版)118-119页

https://blog.csdn.net/ilovemoon10/article/details/7780391

相关文章

歌曲《忘记你需要多久》歌词

花千骨游戏技巧 花千骨游戏怎么玩入坑全方位玩法

三星Gear IconX耳机 蓝牙 无线 运动 天猫1399元