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という同一の軸範囲で表示されます。sharexとsharey引数に最初の軸オブジェクト(ax1)を指定することで、各サブプロットの軸範囲が自動的に同期され、個別に設定する必要がなくなります。この方法は、複数のデータセットを同じスケールで比較したい場合に特に便利です。
-
Matplotlibで各サブプロットの軸テキストを回転表示する方法
Matplotlibでは、text()メソッドにrotation引数を指定することで、各サブプロット内のテキスト(軸ラベルや注釈など)を自由に回転させて表示できます。本記事では、図の作成からテキストの回転、注釈の追加までの一連の手順を、実際のコード例とともにわかりやすく解説します。実装手順新しい図(figure)を作成するか、既存の図をアクティブにします。add_subplot()メソッドを使って、サブプロット配置の一部として図にAxesオブジェクトを追加します。subplots_adjust()メソッドで、サブプロットのレイアウトパラメータを調整します。suptitle()メソッドで、図全体
-
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()メソッ