Python——作图
百分比堆积柱状图
import matplotlib.pyplot as plt
import numpy as np
# 定义数据
categories = ['Cat A', 'Cat B', 'Cat C']
values1 = [20, 30, 15]
values2 = [10, 25, 20]
values3 = [5, 10, 15]
# 将数据转化为相对百分比
total = np.array(values1) + np.array(values2) + np.array(values3)
percent1 = (np.array(values1) / total) * 100
percent2 = (np.array(values2) / total) * 100
percent3 = (np.array(values3) / total) * 100
# 绘制堆积柱状图
fig, ax = plt.subplots()
bar_width = 0.35
index = np.arange(len(categories))
ax.bar(index, percent1, bar_width, label='Value 1')
ax.bar(index, percent2, bar_width, bottom=percent1, label='Value 2')
ax.bar(index, percent3, bar_width, bottom=percent1 + percent2, label='Value 3')
# 添加标签和标题
ax.set_xlabel('Categories')
ax.set_ylabel('Percentage')
ax.set_title('Stacked Percentage Bar Chart Example')
ax.set_xticks(index)
ax.set_xticklabels(categories)
ax.legend()
# 显示图表
plt.show()
我们将每个值转换为相对百分比,以便在堆积柱状图中使用。接下来,我们使用matplotlib
的 bar
函数绘制了堆积柱状图,并使用 bottom
参数来进行堆积。
百分比柱状堆积图原理上是多个柱状图的堆积, 而bottom
参数就是用于改变基准高度
的。因此在绘图之前要将数据转换为总体百分比,确保柱状图堆积后高度是一致的。