Matplotlibの積み上げ面グラフ

Matplotlibの積み上げ面グラフ#

公開日

Matplotlibで積み上げ面グラフをプロットするには、ax.stackplotを使用します。 ax.stackplotの最初の引数は横軸の値、2番目の引数は縦軸の値です。 縦軸の値を2次元配列とすると、複数系列のデータとしてプロットされます。

import matplotlib.pyplot as plt

x = [1, 2, 3]
y = [[1, 3, 2], [1, 2, 1]]

fig, ax = plt.subplots()
ax.stackplot(x, y)
plt.show()
../_images/1626ff4fb3b26845304ddb8624d3424e5db0c623395177f5608dc0c80ca24a37.png

もしくは、以下のように縦軸の値を複数の引数として与えることも可能です。

x = [1, 2, 3]
y1 = [1, 3, 2]
y2 = [1, 2, 1]

fig, ax = plt.subplots()
ax.stackplot(x, y1, y2)
plt.show()
../_images/1626ff4fb3b26845304ddb8624d3424e5db0c623395177f5608dc0c80ca24a37.png

色の変更#

グラフの色を変更するには、色のリストをcolorsオプションに渡します。colorオプションの詳細は以下の記事を参考にして下さい。

Matplotlib 色の書式

fig, ax = plt.subplots()
ax.stackplot(x, y, colors=["brown", "pink"])
plt.show()
../_images/d6be117f338d7695282deef39fbb0c04343610702427152932dea53d1d54859b.png

データのラベル#

ax.stackplotlabelsオプションにデータのラベルを配列で与えることができます。ラベルを凡例として表示するには、ax.legend()を追加します。ax.legend()の詳細については以下の記事を参照ください。

Matplotlibの凡例の設定

fig, ax = plt.subplots()
ax.stackplot(x, y, labels=["data 1", "data 2"])
ax.legend()
plt.show()
../_images/3b74caf9b711e6db833e09e11d5d3d28ae843609351c637159135df20371978d.png