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

db29dc10772c95193ec4b4c3608b3e1b.png

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

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

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

1e1e2eee6716d13273147416d9d96baf.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
频数分布直方图
## 绘制频率分布直方图(与频数分布直方图代码的区别为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
频率分布直方图
## 绘制轴须图
rug(jitter(x),side=1,col="#c7513b",lwd=1)

cdf59245bf9294355aa8ee6e7ceb088a.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

至此,我们的图就画好了!图中很多细节还可以使用下面代码微调。

## 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
## 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
## 添加外框
box(lwd=2)

0ba3d94c79b02eb245300c2b42f98a68.png

参考资料:

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

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

ba98ad6321b54e3c449831c1743d3ae0.png
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来回答你的问题。首先,我们需要明确一下频率分布直方图和边际密度函数图的概念。 频率分布直方图是一种用于展示数据分布情况的图表,它将数据分成若干个区间,并用矩形条表示每个区间中数据的频率或数量。一般情况下,我们可以通过统计数据的数或频率来绘制频率分布直方图。 而边际密度函数图则是一种用于展示数据概率密度分布情况的图表,它通过在一定区间内的概率密度来描述数据分布情况。在Matlab中,我们可以使用“histogram”函数来绘制频率分布直方图,使用“ksdensity”函数来绘制边际密度函数图。 下面是一个简单的示例代码,展示如何在Matlab中绘制频率分布直方图和边际密度函数图: ```matlab % 生成随机数据 data = randn(1000,1); % 绘制频率分布直方图 figure; histogram(data,'Normalization','probability'); title('Frequency distribution histogram'); % 绘制边际密度函数图 figure; ksdensity(data); title('Marginal density function'); ``` 在这个例子中,我们生成了一个包含1000个随机数的数据集,并使用“histogram”函数绘制了它的频率分布直方图。我们使用了“Normalization”参数来将频率转换为概率。另外,我们还使用了“title”函数来为图表添加标题。 接着,我们使用“ksdensity”函数绘制了数据的边际密度函数图。同样地,我们也为图表添加了标题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值