
【スポンサーリンク】
pyplot.subplotsの基本
pyplot.subplotsはFigureオブジェクトとAxesオブジェクトを返す。各オブジェクトの役割は以下の通り。
- Figure:グラフを描画するキャンバス全体のオブジェクト
- Axes:Figureオブジェクト内の個々のグラフのオブジェクト

【スポンサーリンク】
グラフを表示
公式サイトと同じデータを、subplotsを用いて様々なパターンでグラフ化した。
使用データ
import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 2*np.pi, 400) y = np.sin(x**2)
グラフを一つだけ描画
fig, ax = plt.subplots() ax.plot(x,y)

横に2つ並べて描画
subplotsのncolsオプションで横方向に表示させるグラフの数を設定する。
複数グラフを生成する場合はAxesオブジェクト自体ではなく、Axesオブジェクトのリストが返されるため、個々のAxesオブジェクトにはAxes[0]のような形で表示するグラフを設定する。
fig, ax = plt.subplots(ncols=2) #横に2つ並べる ax[0].plot(x, y) #プロット ax[1].scatter(x, y) #散布図

縦に2つ並べて描画
subplotsのnrowsオプションで縦方向に表示させるグラフの数を設定する。
fig, ax = plt.subplots(nrows=2) #縦に2つ並べる ax[0].plot(x, y) ax[1].scatter(x, y)

縦横に4つのグラフを描画
nrowsとncolsの両方を設定すると、縦横両方向にグラフを並べることができる。
この場合、各Axesオブジェクトにアクセスするには、Axes[0,0]の様な形でグラフを設定する。
fig, ax = plt.subplots(nrows=2, ncols=2) ax[0, 0].plot(x, y) ax[0, 1].scatter(x, y) ax[1, 0].bar(x,y) ax[1, 1].fill(x,y)

nrowsとncolsは明示する必要はないため、以下の様に記述しても問題ない。 但し、必ずnrows→ncolsの順番にする必要がある。
fig, ax = plt.subplots(2, 2)
【スポンサーリンク】