Python の Matplotlib.pyplot.subplots()
マットプロットリブ は Python のライブラリであり、 ナムピー 図書館。 パイプロット は、MATLAB のようなインターフェイスを提供する Matplotlib モジュールへの状態ベースのインターフェイスです。 subplots()> Python の関数を使用すると、単一の Figure 内で複数のサブプロット Matplotlib の作成が簡素化され、さまざまなデータセットやプロットを整理して同時に視覚化できるようになります。
例:
これは簡単な例です パイソン を使用してグラフをプロットするコード Matplotlib ライブラリ 。
Python3
# sample code> import> matplotlib.pyplot as plt> > plt.plot([> 1> ,> 2> ,> 3> ,> 4> ], [> 16> ,> 4> ,> 1> ,> 8> ])> plt.show()> |
出力:
Python matplotlib を使用してプロットする
Matplotlib subplots() 構文
の subplots() 関数 の中に パイプロットモジュール Matplotlib ライブラリの は、Figure とサブプロットのセットを作成するために使用されます。
構文: matplotlib.pyplot.subplots(nrows=1、ncols=1、sharex=False、sharey=False、squeeze=True、subplot_kw=None、gridspec_kw=None、**fig_kw)
パラメーター: このメソッドは、以下で説明するパラメータを受け入れます。
- nrows、ncols : これらのパラメータは、サブプロット グリッドの行/列の数です。
- シェアレックス、シェアリー: これらのパラメーターは、x (sharex) 軸または y (sharey) 軸間でのプロパティの共有を制御します。
- 絞る: このパラメータはオプションのパラメータであり、デフォルトが True のブール値が含まれます。
- 1 つ目: このパラメータは、図の番号またはラベルを設定する pyplot.figure キーワードです。
- サブプロット_kwd: このパラメーターは、各サブプロットの作成に使用される add_subplot 呼び出しに渡されるキーワードを含む辞書です。
- グリッドスペック_kw: このパラメーターは、サブプロットが配置されるグリッドの作成に使用される GridSpec コンストラクターに渡されるキーワードを含む辞書です。
戻り値: このメソッドは次の値を返します。
- イチジク : このメソッドは Figure レイアウトを返します。
- 斧: このメソッドは、axes.Axes オブジェクトまたは Axes オブジェクトの配列を返します。
Python サブプロット Matplotlib の例
この例では、matplotlib.pyplot の subplots() 関数を使用して単純なプロットを作成します。
Python3
# Implementation of matplotlib function> import> numpy as np> import> matplotlib.pyplot as plt> # First create some toy data:> x> => np.linspace(> 0> ,> 2> *> np.pi,> 400> )> y> => np.sin(x> *> *> 2> )> fig, ax> => plt.subplots()> ax.plot(x, y)> ax.set_title(> 'Simple plot'> )> fig.suptitle(> 'matplotlib.pyplot.subplots() Example'> )> plt.show()> |
出力:
matplotlib.pyplot.subplots() 関数の例
subplots() を使用して複数のプロットを表示する
Matplotlib subplots() 関数を使用すると、同じデータまたは軸を使用して複数のプロットをプロットできます。理解を深めるためにいくつかの例を見てみましょう。
サブプロットを一方向に積み重ねる
この例では、y 軸を共有する 2 つのプロットをプロットします。 nrows パラメーターと ncols パラメーターはそれぞれ 1 と 2 に設定されます。これは、プロットに 1 行 2 列、または 2 つのサブプロットがあることを意味します。これらのサブプロットには、インデックス [0] と [1] を使用してアクセスできます。
Python3
# Implementation of matplotlib function> import> numpy as np> import> matplotlib.pyplot as plt> # First create some toy data:> x> => np.linspace(> 0> ,> 2> *> np.pi,> 400> )> y1> => np.sin(x)> y2> => np.sin(x> *> *> 2> )> # create 2 subplots> fig, ax> => plt.subplots(nrows> => 1> , ncols> => 2> )> ax[> 0> ].plot(x, y1)> ax[> 1> ].plot(x, y2)> # plot 2 subplots> ax[> 0> ].set_title(> 'Simple plot with sin(x)'> )> ax[> 1> ].set_title(> 'Simple plot with sin(x**2)'> )> fig.suptitle(> 'Stacked subplots in one direction'> )> plt.show()> |
出力:
サブプロットを一方向に積み重ねる
サブプロットを 2 方向に積み重ねる
この例は前の例と似ています。唯一の違いは、nrows と ncols の値を 2 に指定したことです。これは、プロットが 2 行 2 列に分割され、合計 4 つのサブプロット matplotlib が得られることを意味します。インデックスを使用してこれらのプロットにアクセスできます。
Python3
# Implementation of matplotlib function> import> numpy as np> import> matplotlib.pyplot as plt> # First create some toy data:> x> => np.linspace(> 0> ,> 2> *> np.pi,> 400> )> y1> => np.sin(x)> y2> => np.sin(x> *> *> 2> )> y3> => y1> *> *> 2> y4> => y2> *> *> 2> fig, ax> => plt.subplots(nrows> => 2> , ncols> => 2> )> ax[> 0> ,> 0> ].plot(x, y1, c> => 'red'> )> ax[> 0> ,> 1> ].plot(x, y2, c> => 'red'> )> ax[> 1> ,> 0> ].plot(x, y3, c> => 'blue'> )> ax[> 1> ,> 1> ].plot(x, y3, c> => 'blue'> )> ax[> 0> ,> 0> ].set_title(> 'Simple plot with sin(x)'> )> ax[> 0> ,> 1> ].set_title(> 'Simple plot with sin(x**2)'> )> ax[> 1> ,> 0> ].set_title(> 'Simple plot with sin(x)**2'> )> ax[> 1> ,> 1> ].set_title(> 'Simple plot with sin(x**2)**2'> )> fig.suptitle(> 'Stacked subplots in two direction'> )> plt.show()> |
出力:
サブプロットを 2 方向に積み重ねる
軸の共有
この例では、同じ軸を共有するグラフをプロットします。 Y 軸とラベルを共有し、独自の X 軸とラベルを持つプロットを作成します。これは、subplot() 関数の「num」パラメータに値を渡すことで実行できます。 「sharex」パラメータは True に設定されます。これは、作成されたプロットが X 軸を共有することを意味します。
Python3
# Implementation of matplotlib function> import> numpy as np> import> matplotlib.pyplot as plt> # First create some toy data:> x> => np.linspace(> 0> ,> 2> *> np.pi,> 400> )> y1> => np.sin(x)> y2> => np.sin(x> *> *> 2> )> fig, (ax1, ax2)> => plt.subplots(> 2> , sharex> => True> )> ax1.plot(x, y1, c> => 'red'> )> ax2.plot(x, y2, c> => 'red'> )> ax1.set_ylabel(> 'Simple plot with sin(x)'> )> ax2.set_ylabel(> 'Simple plot with sin(x**2)'> )> fig.suptitle(> 'Subplots with shared axis'> )> plt.show()> |
出力:
共有軸を持つサブプロット
極軸
この例では、極座標を使用してグラフをプロットします。 subplot() 関数の subplot_kw パラメータには、「polar」に設定された投影の辞書値が与えられ、これにより subplot() 関数に極グラフを作成するように指示されます。
Python3
# Implementation of matplotlib function> import> numpy as np> import> matplotlib.pyplot as plt> # First create some toy data:> x> => np.linspace(> 0> ,> 1.5> *> np.pi,> 100> )> y> => np.sin(x> *> *> 2> )> +> np.cos(x> *> *> 2> )> fig, axs> => plt.subplots(nrows> => 2> , ncols> => 2> ,> > subplot_kw> => dict> (polar> => True> ))> axs[> 0> ,> 0> ].plot(x, y)> axs[> 1> ,> 1> ].scatter(x, y)> fig.suptitle(> 'matplotlib.pyplot.subplots() Example'> )> plt.show()> |
出力:
matplotlib.pyplot.subplots() 関数の例