ノート
完全なサンプルコードをダウンロードするには、ここをクリックしてください
#を使用して複数のサブプロットを作成するplt.subplots
pyplot.subplots
個々のプロットの作成方法を適切に制御しながら、1 回の呼び出しで Figure とサブプロットのグリッドを作成します。より高度なユース ケースGridSpec
では、より一般的なサブプロット レイアウトに使用したりFigure.add_subplot
、Figure 内の任意の場所にサブプロットを追加したりできます。
サブプロットが 1 つだけの図#
subplots()
引数なしの場合、 aFigure
と single
が返されますAxes
。
これは、実際には、1 つの Figure と Axes を作成する最も簡単で推奨される方法です。
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('A single plot')
Text(0.5, 1.0, 'A single plot')
サブプロットを一方向に積み重ねる#
の最初の 2 つのオプション引数はpyplot.subplots
、サブプロット グリッドの行数と列数を定義します。
一方向のみに積み重ねる場合、返さaxs
れるのは、作成された Axes のリストを含む 1D numpy 配列です。
fig, axs = plt.subplots(2)
fig.suptitle('Vertically stacked subplots')
axs[0].plot(x, y)
axs[1].plot(x, -y)
[<matplotlib.lines.Line2D object at 0x7f2d00efd510>]
少数の Axes のみを作成する場合は、それらを各 Axes 専用の変数にすぐに展開すると便利です。そうすればax1
、より冗長な の代わりに使用できますaxs[0]
。
fig, (ax1, ax2) = plt.subplots(2)
fig.suptitle('Vertically stacked subplots')
ax1.plot(x, y)
ax2.plot(x, -y)
[<matplotlib.lines.Line2D object at 0x7f2d00a95b70>]
サブプロットを並べて取得するには、1 つの行と 2 つの列のパラメーターを渡します。1, 2
fig, (ax1, ax2) = plt.subplots(1, 2)
fig.suptitle('Horizontally stacked subplots')
ax1.plot(x, y)
ax2.plot(x, -y)
[<matplotlib.lines.Line2D object at 0x7f2cfb43d330>]
サブプロットを2方向に積み重ねる#
2 方向にスタックする場合、返さaxs
れる は 2D NumPy 配列です。
サブプロットごとにパラメーターを設定する必要がある場合は、 を使用して 2D グリッド内のすべてのサブプロットを反復すると便利です。for ax in axs.flat:
fig, axs = plt.subplots(2, 2)
axs[0, 0].plot(x, y)
axs[0, 0].set_title('Axis [0, 0]')
axs[0, 1].plot(x, y, 'tab:orange')
axs[0, 1].set_title('Axis [0, 1]')
axs[1, 0].plot(x, -y, 'tab:green')
axs[1, 0].set_title('Axis [1, 0]')
axs[1, 1].plot(x, -y, 'tab:red')
axs[1, 1].set_title('Axis [1, 1]')
for ax in axs.flat:
ax.set(xlabel='x-label', ylabel='y-label')
# Hide x labels and tick labels for top plots and y ticks for right plots.
for ax in axs.flat:
ax.label_outer()
2D でもタプルアンパッキングを使用して、すべてのサブプロットを専用変数に割り当てることができます。
fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2)
fig.suptitle('Sharing x per column, y per row')
ax1.plot(x, y)
ax2.plot(x, y**2, 'tab:orange')
ax3.plot(x, -y, 'tab:green')
ax4.plot(x, -y**2, 'tab:red')
for ax in fig.get_axes():
ax.label_outer()
極軸#
のパラメーターsubplot_kwはpyplot.subplots
、サブプロットのプロパティを制御します ( も参照Figure.add_subplot
)。特に、極座標軸のグリッドを作成するために使用できます。
スクリプトの合計実行時間: ( 0 分 7.774 秒)