在数据可视化中,堆叠直方图是一种常用的方法,用于展示不同类别数据在相同区间内的分布情况。Matplotlib 是一个强大的 Python 绘图库,可以用来创建各种静态、动态和交互式的图表。
堆叠直方图(Stacked Histogram)是将多个直方图叠加在一起,每个直方图代表一个数据类别,所有直方图的高度之和表示该区间的总数。
以下是一个使用 Matplotlib 创建堆叠直方图的示例代码:
import matplotlib.pyplot as plt
import numpy as np
# 生成示例数据
np.random.seed(0)
data1 = np.random.normal(100, 10, 200)
data2 = np.random.normal(80, 30, 200)
data3 = np.random.normal(90, 20, 200)
data = [data1, data2, data3]
# 设置直方图的区间
bins = np.linspace(50, 150, 30)
# 创建堆叠直方图
plt.hist(data, bins=bins, label=['Data 1', 'Data 2', 'Data 3'], stacked=True)
# 添加图例
plt.legend()
# 设置标题和轴标签
plt.title('Stacked Histogram Example')
plt.xlabel('Value')
plt.ylabel('Frequency')
# 显示图表
plt.show()
对于颜色冲突问题,可以使用 matplotlib.cm
中的颜色映射:
import matplotlib.cm as cm
colors = cm.viridis(np.linspace(0, 1, len(data)))
plt.hist(data, bins=bins, label=['Data 1', 'Data 2', 'Data 3'], stacked=True, color=colors)
通过这种方式,可以确保每个类别都有独特的颜色,同时保持整体视觉效果的和谐。
总之,堆叠直方图是一种强大的数据可视化工具,通过合理的设计和调整,可以有效地展示和分析复杂的数据集。
领取专属 10元无门槛券
手把手带您无忧上云