【Python】積み上げ棒グラフを作成したい

matplotlibによる積み上げ棒グラフの作成方法について備忘録としてまとめます.
使用言語はPythonです.

本記事中で例示するために使用したコードは,こちらからダウンロード可能です.

方法

matplotlibbar()関数を使用し棒グラフを作成する際に,引数bottomを指定することで積み上げ棒グラフを作成することが可能です.
実際のコードを以下に示します.

インストール方法

pip install matplotlib
pip install numpy

実際の使用例

ここでは例として,numpyrandom関数を使用して1~10の範囲内でランダムに要素を作成し棒グラフの高さとします.
要素数は,変数num_xで指定します.

まずは,引数bottomを指定せずにグラフを作成します.

import matplotlib.pyplot as plt
import numpy as np

# 要素数を定義
num_x = 4
x = np.arange(1, num_x+1)
# print(x)
# [1 2 3 4]

y_upper = np.random.randint(1, 10, num_x)
# print(y_upper)
# [9 3 1 8]

y_lower = np.random.randint(1, 10, num_x)
# print(y_lower)
# [2 9 8 9]

# グラフ作成
fig1 = plt.figure()
ax1 = fig1.add_subplot(111)
ax1.bar(x, y_lower, color='blue')
ax1.bar(x, y_upper, color='green')
ax1.set_ylim(0,20)
plt.savefig('false.png')
# plt.show()

積み上げられていない棒グラフ

緑の棒グラフが,先に描画した青の棒グラフに重なる形で可視化されました.
どちらも[縦軸=0]の部分から描画されているため,「」となっている場合,青の棒グラフの値は読み取れなくなってしまっています.

続いて,引数bottomを指定してグラフを作成します.

# グラフ作成
fig2 = plt.figure()
ax2 = fig2.add_subplot(111)
ax2.bar(x, y_lower, color='blue')
ax2.bar(x, y_upper, color='green', bottom=y_lower)
ax2.set_ylim(0,20)
plt.savefig('true.png')
# plt.show()

積み上げ棒グラフ

今度は積み上げて描画することができました.

以上で,積み上げ棒グラフの作成方法についての解説を終わります.
お疲れ様でした.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です