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](../_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](../_images/1626ff4fb3b26845304ddb8624d3424e5db0c623395177f5608dc0c80ca24a37.png)
色の変更#
グラフの色を変更するには、色のリストをcolors
オプションに渡します。color
オプションの詳細は以下の記事を参考にして下さい。
fig, ax = plt.subplots()
ax.stackplot(x, y, colors=["brown", "pink"])
plt.show()
![../_images/d6be117f338d7695282deef39fbb0c04343610702427152932dea53d1d54859b.png](../_images/d6be117f338d7695282deef39fbb0c04343610702427152932dea53d1d54859b.png)
データのラベル#
ax.stackplot
のlabels
オプションにデータのラベルを配列で与えることができます。ラベルを凡例として表示するには、ax.legend()
を追加します。ax.legend()
の詳細については以下の記事を参照ください。
fig, ax = plt.subplots()
ax.stackplot(x, y, labels=["data 1", "data 2"])
ax.legend()
plt.show()
![../_images/3b74caf9b711e6db833e09e11d5d3d28ae843609351c637159135df20371978d.png](../_images/3b74caf9b711e6db833e09e11d5d3d28ae843609351c637159135df20371978d.png)