迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > MATLAB >

在 MATLAB 中绘制数据的频率分布曲线

作者:迹忆客 最近更新:2023/04/23 浏览次数:

我们将研究在 MATLAB 中绘制数据频率分布曲线的不同方法。我们将使用不同的示例代码和相关输出来清除你的概念,并使用 MATLAB 为你提供完整的见解。

请注意,MATLAB 允许用户使用不同的函数执行统计操作,例如 histfit()hist()sshist()

频率分布是一个列表/表格/图表,显示我们的数据集中某些可能性发生的频率。我们可以使用 MATLAB 绘制数据的频率分布曲线。

我们可以手动添加数据或从 Excel 工作表中导入数据。使用不同的函数,我们可以很容易地获得所需的曲线。


在 MATLAB 中使用 sshist() 函数计算密度估计并获得我们数据的频率曲线

要在 MATLAB 中绘制频率分布图形曲线,我们首先需要计算直方图的最佳箱数。

对于我们的核密度估计计算,我们将假设我们的频率分布在 MATLAB 中具有直方图的标准箱长度。

尽管如此,这种方法几乎可能是不现实的。第一种方法计算最佳 bin 宽度以产生最清晰的曲线,同时尽可能多地保留核心 PDF。

函数 sshist 不包含在 MATLAB 的标准函数列表中,但我们可以获得函数的源代码并使用它来运行我们的代码来计算 bin 的密度估计。见例子,

Our_data = randn(1,1e4);

optN = sshist(Our_data);

figure(1)
[M,C] = hist(Our_data);
[Nop,Cop] = hist(Our_data,optN);
[f,xi] = ksdensity(Our_data,Cop);

dNom = mode(diff(Center));
dNom = mode(diff(Cop));

plot(Center,N/dNom,'.-',Cop,Nop/dNom,'.-',xi,f*length(Our_data),'.-')
legend('Default','Optimum','ksdensity')
title('Frequency Distribution')

输出:

频率图 1

如上所述,首先要计算 optimal-bin。此计算背后的原因是为我们的频率分布直方图提供结构。

当我们使用 ksdensity 函数时,它返回一个平坦的曲线。因此,这取决于我们工作的性质以及根据我们的数据我们想要的输出图的类型。

请注意,我们使用了一个额外的 m 文件来成功执行此代码。函数 sshist() 未在 MATLAB 中预定义。

这就是为什么我们需要复制这个函数的源代码,创建一个 m 文件,并将复制的代码粘贴到这里。

然后执行代码得到频率分布图。


在 MATLAB 中使用 histfit() 函数获取我们数据的频率曲线

为了使用 histfit() 构建具有正态分布拟合的频率分布直方图,让我们将数据样本的大小设为 100,方差为 1,平均值为 10。

rng default;
freq_dist_data = normrnd(10,1,120,1);
histfit(freq_dist_data)

输出:

频率图 2

请注意,MATLAB 中的 histfit 函数与 fitdist 函数的工作方式类似,以将我们的频率分布拟合到我们的数据集并返回拟合中使用的所有值。

fitting_values = fitdist(freq_dist_data,'Normal')

输出:

fitting_values = 

  NormalDistribution

  Normal distribution
       mu = 10.0894   [9.88181, 10.297]
    sigma =  1.1484   [1.01919, 1.31541]

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 Matplotlib Pyplot 中显示网格

发布时间:2024/02/04 浏览次数:142 分类:Python

本文演示了如何在 Python Matplotlib 中在一个图上画一个网格。使用 grid()函数来绘制网格,并解释了如何改变网格颜色和线条类型。

如何在 Matplotlib 中画一条任意线

发布时间:2024/02/04 浏览次数:166 分类:Python

本教程讲解了我们如何在 Matplotlib 中使用 matplotlib.pyplot.plot()、matplotlib.pyplot.vlines()、matplotlib.pyplot.hlines()方法和 matplotlib.collection.LineCollection 绘制任意线条。

Matplotlib 中的叠加条形图

发布时间:2024/02/04 浏览次数:182 分类:Python

本教程展示了如何使用 plt.bar()方法将某些数据集的条形图堆叠在另一个数据集上。我们在 Matplotlib 中使用 matplotlib.pyplot.bar()方法生成条形图。

设置 Matplotlib 网格间隔

发布时间:2024/02/04 浏览次数:250 分类:Python

本教程将介绍我们如何在 Matplotlib 绘图中设置网格间距,并对主要网格和次要网格应用不同的样式。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便