在 MATLAB 中绘制数据的频率分布曲线
我们将研究在 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')
输出:
如上所述,首先要计算 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)
输出:
请注意,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]
相关文章
如何在 Matplotlib Pyplot 中显示网格
发布时间:2024/02/04 浏览次数:142 分类:Python
-
本文演示了如何在 Python Matplotlib 中在一个图上画一个网格。使用 grid()函数来绘制网格,并解释了如何改变网格颜色和线条类型。
在 Matplotlib 中的图中添加文字
发布时间:2024/02/04 浏览次数:180 分类:Python
-
本教程展示了我们如何使用 plt.text()方法在 Matplotlib 中为图或轴添加文字。
如何在 Matplotlib 中的多个线条之间进行填充
发布时间:2024/02/04 浏览次数:208 分类:Python
-
`fill_between()` 每次只能填充两条线之间的区域,但是我们可以选择一对行来填充多个线条之间的区域。
如何在 Matplotlib 中画一条任意线
发布时间:2024/02/04 浏览次数:166 分类:Python
-
本教程讲解了我们如何在 Matplotlib 中使用 matplotlib.pyplot.plot()、matplotlib.pyplot.vlines()、matplotlib.pyplot.hlines()方法和 matplotlib.collection.LineCollection 绘制任意线条。
Pandas 在 Matplotlib 柱状图上绘制多列图
发布时间:2024/02/04 浏览次数:189 分类:Python
-
在本教程中,我们将探讨如何使用 `DataFrame` 对象的 `plot()` 方法在柱状图上绘制多列。
如何在 Matplotlib 中绘制数据列表的直方图
发布时间:2024/02/04 浏览次数:178 分类:Python
-
本教程介绍了如何使用 plt.hist()方法从数据列表中绘制直方图。我们可以使用 plt.hist()方法从数据列表中绘制直方图。
Matplotlib 中的叠加条形图
发布时间:2024/02/04 浏览次数:182 分类:Python
-
本教程展示了如何使用 plt.bar()方法将某些数据集的条形图堆叠在另一个数据集上。我们在 Matplotlib 中使用 matplotlib.pyplot.bar()方法生成条形图。
在 Python Matplotlib 中生成反向色彩图
发布时间:2024/02/04 浏览次数:136 分类:Python
-
本教程解释了如何反转 Python Matplotlib Plot 的 Colormap。
设置 Matplotlib 网格间隔
发布时间:2024/02/04 浏览次数:250 分类:Python
-
本教程将介绍我们如何在 Matplotlib 绘图中设置网格间距,并对主要网格和次要网格应用不同的样式。