Matplotlibでプロット内に軸線(X軸・Y軸)を描く方法をわかりやすく解説
Matplotlibでは、グラフの枠線(スパイン)の位置や色を調整することで、プロット領域の中央にX軸・Y軸の軸線を描くことができます。本記事では、その具体的な手順とサンプルコードを紹介します。
実装の手順
- 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
- 新しい図を作成するか、既存の図をアクティブにします。
- NumPyを使ってX軸のデータポイントを生成します。
- サブプロット配置の一部として、図に「ax」を追加します。
- plot()メソッドを使用して、xと x**x のデータポイントをプロットします。
- 左側と下側のスパイン(軸線)の位置を「0」に設定し、右側と上側のスパインの色を「none」にして非表示にします。
- 最後にshow()メソッドで図を表示します。
サンプルコード
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
fig = plt.figure()
x = np.linspace(-5, 5, 100)
ax = fig.add_subplot(111)
ax.plot(x, x*x)
ax.spines['left'].set_position('zero')
ax.spines['right'].set_color('none')
ax.spines['bottom'].set_position('zero')
ax.spines['top'].set_color('none')
plt.show()出力結果
このコードを実行すると、以下のようなグラフが出力されます。左側と下側の軸線が原点(0, 0)を通るように移動し、数学の教科書でよく見られるような座標軸スタイルのグラフが描画されます。


ポイント解説
ここで重要なのは spines オブジェクトの操作です。set_position('zero') を指定することで、軸線をデータ座標のゼロ位置(原点)に移動できます。また、set_color('none') を使うことで、不要な上下右の枠線を消去し、すっきりとした見た目のグラフを作成できます。関数の挙動を直感的に示したい場合などに非常に便利なテクニックです。
-
Matplotlibで円の中に長方形をプロットする方法
Matplotlibを使って円の中に長方形を描画したい場合、patchesモジュールが提供するRectangle()クラスとCircle()クラスを組み合わせることで簡単に実現できます。以下の手順に従ってください。手順figure()メソッドを使用して、新しい図を作成するか、既存の図をアクティブにします。add_subplot()メソッドで現在の図にサブプロット(軸)を追加します。Rectangle()クラスとCircle()クラスを使って、長方形と円のインスタンスを作成します。add_patch()メソッドで作成したパッチを軸に追加します。xlim()およびylim()メソッドを使用して、x
-
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()メソッ