如何在 Matplotlib 中创建一个发散堆叠条形图?
要在 Matplotlib 中创建一个发散堆叠条形图,我们可以采取以下步骤 -
- 设置图形大小并调整子图之间和周围的填充。
- 初始化变量 N 以获取索引数量。
- 获取 menMeans、womenMeans、menStd 和 womenStd 元组。
- 初始化条形的 宽度。
- 创建一个图形和一组子图。
- 要获得发散柱形,我们可以将具有正值和负值的数据放入其中以形成发散柱形。
- 在轴上添加一条水平线。
- 设置 Ylabel、title、ticks、ticklabels 和 legend。
- 要显示图形,请使用 show() 方法。
示例
import matplotlib.pyplot as plt import numpy as np plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True N = 5 menMeans = (20, -35, 30, 35, -27) womenMeans = (25, -32, 34, 20, -25) menStd = (2, 3, 4, 1, 2) womenStd = (3, 5, 2, 3, 3) ind = np.arange(N) width = 0.35 fig, ax = plt.subplots() p1 = ax.bar(ind, menMeans, width, yerr=menStd, label='Men') p2 = ax.bar(ind, womenMeans, width, bottom=menMeans, yerr=womenStd, label='Women') ax.axhline(0, color='grey', linewidth=0.8) ax.set_ylabel('Scores') ax.set_title('Scores by group and gender') ax.set_xticks(ind) ax.set_xticklabels(('G1', 'G2', 'G3', 'G4', 'G5')) ax.legend() plt.show()
输出
广告