Matplotlib subplot の仕方

グラフを並べて表示したいとき、 2つの方法がある。ほかにもあるかもだけど2つの方法を知っている。

matplotlib.pyplot.subplotsを使う

fig, axes = plt.subplots(figsize=(10, 10), nrows=2, ncols=4, subplot_kw={'adjustable': 'box-forced'})

axes には nrows , ncols で指定したmatrixが入る。この場合、

array([[<matplotlib.axes._subplots.AxesSubplot object at 0x0000023A5A4D6F28>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x0000023A59495EF0>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x0000023A582FFFD0>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x0000023A59DBFE10>],
       [<matplotlib.axes._subplots.AxesSubplot object at 0x0000023A58305208>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x0000023A57F77AC8>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x0000023A59BABC18>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x0000023A58763908>]], dtype=object)

matplotlib.axes._subplots.AxesSubplot object なるものが作成される。

ここにどしどしグラフを埋め込むことができる。

axes[1,2].bar(left, height, width=0.02, yerr=0.1, ecolor="black", tick_label=label,capsize=10, align ='center')

f:id:kimoppy126:20180207191522p:plain

matplotlib.pyplot.subplot を使う

微妙に違う。複数形じゃなくなっている。

# 2×2の1枚目
plt.subplot(221)
# 2×2の2枚目
plt.subplot(222)
# 2×2の3枚目
plt.subplot(223)
# 2×2の4枚目
plt.subplot(224)
plt.ylim(ymax = 1.0, ymin = 0)
plt.bar(left, height, width=0.01, yerr=0.1, ecolor="black", tick_label=label,capsize=10, align ='center')

f:id:kimoppy126:20180207191736p:plain

以上。久しぶりの投稿でした。