📊 Matplotlib中的10种直方图类型(附示例)
Updated on

直方图是数据分布可视化中最常用的工具之一。借助Python的matplotlib
,你可以以多种方式自定义直方图,以更好地理解你的数据。
在这篇文章中,我们将探讨10种不同类型的直方图,它们的用途,以及如何使用示例代码轻松创建每一种。
1. 基本直方图
📌 用途:
可视化数据集的频数分布。
plt.hist(data)
plt.title("基本直方图")
plt.xlabel("值")
plt.ylabel("频数")
2. 自定义分箱的直方图
📌 用途:
通过调整箱子数量,控制直方图的分辨率。
plt.hist(data, bins=20)
plt.title("自定义分箱的直方图")
3. 彩色直方图
📌 用途:
使直方图更易阅读或配合你的配色方案。
plt.hist(data, color='skyblue', edgecolor='black')
plt.title("彩色直方图")
4. 归一化直方图(密度图)
📌 用途:
显示概率密度而非原始频数 — 适合比较不同分布。
plt.hist(data, density=True, color='lightgreen', edgecolor='black')
plt.title("归一化直方图(密度)")
5. 累积分布直方图
📌 用途:
可视化数据的累计和,有助于理解数据随时间或值的累积情况。
plt.hist(data, cumulative=True, color='orange', edgecolor='black')
plt.title("累积分布直方图")
6. 含KDE叠加的直方图
📌 用途:
叠加平滑的密度曲线,估计分布形状。
import seaborn as sns
sns.histplot(data, kde=True, color='mediumpurple', edgecolor='black')
plt.title("含KDE叠加的直方图")
7. 堆叠直方图
📌 用途:
比较多个分布并观察它们对总和的贡献。
plt.hist([data1, data2], stacked=True, color=['steelblue', 'salmon'], edgecolor='black')
plt.title("堆叠直方图")
plt.legend(['数据集1', '数据集2'])
8. 步进样式直方图
📌 用途:
仅显示轮廓线的直方图(适合比较多组数据且避免杂乱)。
plt.hist(data, histtype='step', color='darkgreen')
plt.title("步进样式直方图")
9. 横向直方图
📌 用途:
翻转坐标轴 — 当y轴标签更有意义或空间有限时使用。
plt.hist(data, orientation='horizontal', color='plum', edgecolor='black')
plt.title("横向直方图")
10. 加权直方图
📌 用途:
对每个值应用权重 — 当数据点的重要性或频率不同。
weights = np.random.rand(len(data))
plt.hist(data, weights=weights, color='goldenrod', edgecolor='black')
plt.title("加权直方图")
🧠 最后总结
直方图不仅仅是简单的柱形图 — 通过不同的样式,能够传达数据中的特定洞察。无论你是在做探索性数据分析(EDA)还是准备最终报告,掌握这些变体能让你的数据讲述更加有力。