2024年04月30日 Python 绘制直方图拟合曲线 极客笔记
在数据可视化的过程中,有时候我们需要展示数据的分布情况,直方图是一个常用的工具。直方图可以帮助我们直观地了解数据的分布形态,以及数据的集中趋势和离散程度。除此之外,有时候我们还希望在直方图上添加拟合曲线,来更好地描述数据的概括性信息。
本文将介绍如何使用 Python 绘制直方图,并在直方图上添加拟合曲线。
首先,我们需要准备一组数据来绘制直方图。在这里,我们随机生成一组服从正态分布的数据作为示例数据。
import numpy as np
np.random.seed(0)
data = np.random.normal(loc=0, scale=1, size=1000)
接下来,我们使用 Matplotlib 库来绘制直方图。Matplotlib 是一个功能强大的绘图库,可以用来创建各种类型的统计图表。
import matplotlib.pyplot as plt
plt.hist(data, bins=30, density=True, color='skyblue', edgecolor='black', alpha=0.7)
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.title('Histogram of Data')
plt.show()
运行上述代码后,我们将得到一幅直方图,展示了数据的分布情况。
有时候,直方图本身可能并不能完全展示数据的概况。我们可以通过拟合曲线来更好地描述数据的分布情况。在这里,我们使用 SciPy 库提供的函数来拟合数据,并将拟合曲线添加到直方图中。
from scipy.stats import norm
plt.hist(data, bins=30, density=True, color='skyblue', edgecolor='black', alpha=0.7)
mu, std = norm.fit(data)
xmin, xmax = plt.xlim()
x = np.linspace(xmin, xmax, 100)
p = norm.pdf(x, mu, std)
plt.plot(x, p, 'k', linewidth=2)
plt.xlabel('Value')
plt.ylabel('Density')
plt.title('Histogram and Fitted PDF')
plt.show()
在上述代码中,我们首先使用 norm.fit()
函数拟合数据的均值 mu
和标准差 std
,然后利用拟合后的参数绘制正态分布曲线。最后,将拟合曲线与直方图一同展示出来。
通过添加拟合曲线,我们可以更清晰地看到数据的分布情况,以及数据是否符合某种特定的分布类型。
本文介绍了如何使用 Python 绘制直方图,并在直方图上添加拟合曲线。直方图是一种常用的数据可视化工具,可以帮助我们直观地了解数据的分布情况。而添加拟合曲线则可以进一步描述数据的概括性信息,使得数据的特征更加明显。
本文链接:http://so.lmcjl.com/news/3465/