如何在Matplotlib中创建一个分散堆叠条形图?

如何在Matplotlib中创建一个分散堆叠条形图?

创建一个分散堆叠条形图,在Matplotlib中可以按照以下步骤进行-

  • 设置图形大小并调整子图之间和周围的填充。
  • 初始化变量 N 以获取索引数。
  • 获取 menMeans,womenMeans,menStdwomenStd元组。
  • 初始化条形的 width。
  • 创建一个图形和一组子图。
  • 要获得分散的条形图,我们可以将具有正值和负值的数据放在一起,以得到分散的条形图。
  • 在轴线上添加一条水平线。
  • 设置 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()

输出

如何在Matplotlib中创建一个分散堆叠条形图?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程