如何在 Matplotlib 中繪製 X 座標相同的並排條形圖?


為了在 matplotlib 中繪製 X 座標相同 (G1、G2、G3、G4 和 G5) 的並排條形圖,我們可以採取以下步驟:

  • 建立以下列表:**標籤、men_means** 和 **women_means**,其中包含不同的資料元素。

  • 使用 **numpy.arrange()** 方法返回給定區間內的均勻間隔值。

  • 設定寬度變數,即 width=0.35。

  • 使用 **subplots** 方法建立 **fig** 和 **ax** 變數,其中預設 nrows 和 ncols 為 1。

  • 條形圖位於具有給定 *對齊*方式的 *x* 位置。它們的尺寸由 *高度* 和 *寬度* 給定。垂直基線為 *底部*(預設為 0),因此使用 plt.bar() 方法建立 rect1 和 rect2。

  • 使用 **plt.ylabel()** 方法設定 Y 軸標籤。

  • 使用 **set_title()** 方法為座標軸設定標題。

  • 使用 **set_xticks()** 方法獲取或設定 X 軸的當前刻度位置和標籤。

  • 使用 **set_xticklabels()** 方法設定網格的 X 軸刻度標籤。

  • 使用 **legend()** 方法在圖形上放置圖例。

  • 使用 **autolabel()** 方法(使用者定義的方法)為建立的條形圖 (**rect1** 和 **rect2**) 新增一些標籤。

  • 要顯示圖形,請使用 **plt.show()** 方法。

示例

import matplotlib.pyplot as plt
import numpy as np
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
labels = ['G1', 'G2', 'G3', 'G4', 'G5']
men_means = [20, 34, 30, 35, 27]
women_means = [25, 32, 34, 20, 25]

x = np.arange(len(labels))
width = 0.35

fig, ax = plt.subplots()
rects1 = ax.bar(x - width / 2, men_means, width, label='Men')
rects2 = ax.bar(x + width / 2, women_means, width, label='Women')

ax.set_ylabel('Scores')
ax.set_title('Scores by group and gender')
ax.set_xticks(x)
ax.set_xticklabels(labels)
ax.legend()

def autolabel(rects):
   for rect in rects:
      height = rect.get_height()
      ax.annotate('{}'.format(height),
         xy=(rect.get_x() + rect.get_width() / 2, height),
         xytext=(0, 3), # 3 points vertical offset
         textcoords="offset points",
         ha='center', va='bottom')

autolabel(rects1)
autolabel(rects2)

plt.show()

輸出

更新於:2021年5月6日

1K+ 次瀏覽

啟動您的 職業生涯

完成課程後獲得認證

開始
廣告
© . All rights reserved.