Python
 Computer >> コンピューター >  >> プログラミング >> Python

Matplotlibですべてのサブプロットに同じ軸範囲を設定する方法

Matplotlibで複数のサブプロットに共通の軸範囲(リミット)を設定したい場合、subplot()メソッドを使って2行×2列の4つのサブプロットを作成し、x軸・y軸を共有(share)することで実現できます。これにより、すべてのグラフが同じスケールで表示され、データの比較がしやすくなります。

手順

  • 図のサイズを設定し、サブプロット間の余白を調整します。

  • 現在の図にインデックス1の位置へサブプロットを追加します。

  • set_xlim()およびset_ylim()メソッドを使用して、x軸とy軸の表示範囲を設定します。

  • 1つ目の軸に折れ線グラフを描画します。

  • 同じ軸範囲を共有する形で、インデックス2の位置にサブプロットを追加します。

  • 2つ目の軸に折れ線グラフを描画します。

  • 同様に、インデックス3の位置にも同じ軸範囲でサブプロットを追加します。

  • 3つ目の軸に折れ線グラフを描画します。

  • 最後に、インデックス4の位置にも同じ軸範囲でサブプロットを追加します。

  • 4つ目の軸に折れ線グラフを描画します。

  • 図を表示するにはshow()メソッドを使用します。

コード例

from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
ax1 = plt.subplot(2, 2, 1)
ax1.set_xlim(left=0, right=5)
ax1.set_ylim(bottom=0, top=5)
ax1.plot([1, 4, 3])
ax2 = plt.subplot(2, 2, 2, sharey=ax1, sharex=ax1)
ax2.plot([3, 4, 1])
ax3 = plt.subplot(2, 2, 4, sharey=ax1, sharex=ax1)
ax3.plot([2, 4, 2])
ax4 = plt.subplot(2, 2, 3, sharey=ax1, sharex=ax1)
ax4.plot([4, 0, 4])
plt.show()

実行結果

上記のコードを実行すると、2×2のグリッド状に配置された4つのサブプロットすべてが、x軸0〜5、y軸0〜5という同一の軸範囲で表示されます。sharexsharey引数に最初の軸オブジェクト(ax1)を指定することで、各サブプロットの軸範囲が自動的に同期され、個別に設定する必要がなくなります。この方法は、複数のデータセットを同じスケールで比較したい場合に特に便利です。

  1. Matplotlibで各サブプロットの軸テキストを回転表示する方法

    Matplotlibでは、text()メソッドにrotation引数を指定することで、各サブプロット内のテキスト(軸ラベルや注釈など)を自由に回転させて表示できます。本記事では、図の作成からテキストの回転、注釈の追加までの一連の手順を、実際のコード例とともにわかりやすく解説します。実装手順新しい図(figure)を作成するか、既存の図をアクティブにします。add_subplot()メソッドを使って、サブプロット配置の一部として図にAxesオブジェクトを追加します。subplots_adjust()メソッドで、サブプロットのレイアウトパラメータを調整します。suptitle()メソッドで、図全体

  2. Matplotlibの等高線図に軸線や原点を描画する方法

    Matplotlibで等高線図を描画する際、グラフ上に軸線や原点(x=0、y=0)を明示したいケースがあります。本記事では、contourf()メソッドで等高線図を作成し、axhline()でy=0の水平線、axvline()でx=0の垂直線を重ねて描画する方法を解説します。 実装の手順 numpyを使用して、x、y、zのデータポイントを作成します。 plt.axis(off)メソッドを使って、デフォルトの軸を非表示に設定します。 contourf()メソッドにx、y、zのデータポイントを渡して、塗りつぶし等高線図を描画します。 x=0とy=0の線を赤色でプロットします。 show()メソッ