如何用Python生成直方图并添加规格线

明俊数据分析 2024-02-23 02:40:03

直方图是一种统计图表,用于展示数据分布的形状。它通过将数据分组到连续的、不重叠的区间(或“箱”)中,然后以这些箱的数量来表示数据分布的情况。每个箱的高度表示在该数值范围内数据点的频数(或频率)。直方图是数据分析和统计中非常重要的工具,尤其用于展示数据的频率分布。

直方图的特点轴:直方图通常包括两个轴——水平轴(x轴)表示数据的类别或数值范围,垂直轴(y轴)表示频数或频率。箱子:数据被分割到一系列的箱子中,每个箱子对应于数据范围的一个区间。箱子的宽度应该是一致的。高度:每个箱子的高度表示该数值范围内的数据点数量。有时,这些高度可以被转换为表示相对频率或概率密度。直方图的用途数据分布:直方图可以展示数据是如何在各个数值区间分布的,包括数据集中(聚集)的趋势和分散(发散)的程度。识别模式:可以用来识别数据的模式,例如正态分布、偏斜分布或双峰分布等。比较数据集:通过比较不同数据集的直方图,可以直观地看出它们在分布形状上的异同。直方图和条形图的区别

虽然直方图和条形图在外观上相似,但它们用于不同类型的数据。直方图用于连续数据,显示数据的分布,而条形图用于离散数据,展示不同类别的比较。

在使用直方图时,正确选择箱子的大小和数量是非常重要的,因为这会影响对数据分布形状的解释。在这个Python示例中,我们创建了一个包含1000个样本点的数据集,这些数据点围绕着平均值50、标准差5的正态分布。接着,我用这些数据生成了一个直方图,并在其上添加了正态分布曲线(PDF)和规格线。

直方图:显示数据的分布情况。正态分布曲线:描绘了理论上的正态分布情况,与直方图的实际数据分布进行比较。规格线:标记了平均值加减一个标准差的位置。在这个示例中,这两条线分别位于大约45(50-5)和55(50+5)。import numpy as npimport matplotlib.pyplot as pltimport scipy.stats as stats# 示例数据:假设这是一组测量数据data = np.random.normal(loc=50, scale=5, size=1000)# 创建直方图plt.hist(data, bins=30, density=True, alpha=0.6, color='g')# 添加正态分布曲线mn, mx = plt.xlim()kde_xs = np.linspace(mn, mx, 301)kde = stats.gaussian_kde(data)plt.plot(kde_xs, kde.pdf(kde_xs), label="PDF")# 添加规格线plt.axvline(data.mean() - data.std(), color='k', linestyle='dashed', linewidth=1)plt.axvline(data.mean() + data.std(), color='k', linestyle='dashed', linewidth=1)# 标签和图例plt.title("Histogram with Normal Distribution and Specification Lines")plt.xlabel("Value")plt.ylabel("Density")plt.legend()# 显示图表plt.show()

0 阅读:7

明俊数据分析

简介:感谢大家的关注