Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ サブプロット | プロットのカスタマイズ
Pythonによる究極の可視化
セクション 3.  6
single

single

bookサブプロット

メニューを表示するにはスワイプしてください

subplots()pyplot 関数は、1つの図内に複数のプロットを作成するために使用。キャンバス作成時にも登場したが、ここではさらに詳細を解説。

行と列

主な引数は nrowsncolumns で、サブプロットのグリッドを定義。デフォルトでは両方とも 1 となり、単一の Axes が生成される。 subplots() は、レイアウトに応じて Figure と1つの Axes オブジェクト、またはそれらの配列を返す。

12345
import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
copy

2×2のサブプロットグリッドが作成された。

Note
ノート

複数のサブプロットがある場合、subplotsAxesオブジェクトの配列を返し、通常はaxsという変数に格納される(1つのプロットの場合は単数形のax)。

この場合、axsは2次元配列となるため、特定のサブプロットにアクセスするには行と列のインデックスが必要。

1234567891011121314
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear**2 fig, axs = plt.subplots(2, 2) axs[0, 0].plot(data_linear) axs[0, 1].plot(data_squared) axs[1, 0].scatter(data_linear, data_linear) axs[1, 1].scatter(data_linear, data_squared) plt.show()
copy

最初の行には2つの折れ線グラフがあり、2行目には2つの散布図が含まれています。 各グラフは、対応するAxesオブジェクトのメソッドを使用して描画する必要があり、plt.plot()plt.scatter()は使用しません。

1次元配列への変換

2次元のAxes配列は、.ravel()を使ってフラット化し、インデックス指定を簡単にできます。

123456789
fig, axs = plt.subplots(2, 2) axs = axs.ravel() axs[0].plot(data_linear) axs[1].plot(data_squared) axs[2].scatter(data_linear, data_linear) axs[3].scatter(data_linear, data_squared) plt.show()
copy

2x2 配列では、axs.ravel() によって4要素の1次元配列に変換される。

軸の共有

subplots() 関数には sharex および sharey パラメータもある。これらはサブプロット間で x 軸または y 軸を共有するかどうかを制御する。どちらもデフォルトでは False に設定されている。

123456789
fig, axs = plt.subplots(2, 2, sharex=True) axs = axs.ravel() axs[0].plot(data_linear) axs[1].plot(data_squared) axs[2].scatter(data_linear, data_linear) axs[3].scatter(data_linear, data_squared) plt.show()
copy

sharex=True を設定すると、すべてのサブプロットで x 軸が共有されます。 軸を行または列ごとにのみ共有したい場合は、'row' または 'col' を指定することも可能です。

Note
さらに学ぶ

いつも通り、さらに詳しく知りたい場合は、 subplots() documentation をご参照ください。

タスク

スワイプしてコーディングを開始

  1. 正しい関数を使用してサブプロットのグリッドを作成。
  2. グリッドは3行1列とし、最初の2つのパラメータで指定。
  3. x軸をすべてのサブプロットで共有するために、最も右側のキーワード引数を指定。
  4. サブプロット作成関数の結果を fig および axs 変数に格納(左から右へ)。
  5. 1行目(行 data_linear)に 0 の折れ線グラフを配置。
  6. 2行目(行 data_squared)に 1 の折れ線グラフを配置。
  7. 3行目(行 data_exp)に 2 の折れ線グラフを配置。

解答

Switch to desktop実践的な練習のためにデスクトップに切り替える下記のオプションのいずれかを利用して、現在の場所から続行する
すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 3.  6
single

single

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

some-alt