Matplotlibで図のマージン(余白)を設定する方法をわかりやすく解説
Matplotlibで作成するグラフの余白(マージン)を調整したい場合、margins()メソッドを使うことで簡単に設定できます。この記事では、実際のコード例とともに、マージン設定の基本的な手順を紹介します。
margins()メソッドとは
margins()は、プロット領域の周囲にどれだけの余白を設けるかを指定するメソッドです。引数としてxやyに0〜1の範囲の値を渡すことで、軸方向ごとのマージン率を制御できます。例えばmargins(x=0, y=0)と指定すると、データ範囲ぴったりにプロットが表示され、余白がなくなります。
実装手順
- figureサイズを設定し、サブプロット間および周囲のパディングを調整します。
- numpyを使ってtとyのデータポイントを作成します。
- 現在の図にインデックス1の位置へサブプロットを追加します。
- plot()メソッドでtとyのデータポイントをプロットします。
- グラフにタイトルを設定します。
- 同じくインデックス2の位置へサブプロットを追加します。
- plot()メソッドでtとyのデータポイントをプロットします。
- グラフにタイトルを設定します。
- margins(x=0, y=0)を使ってグラフのマージンを設定します。
- show()メソッドで図を表示します。
コード例
import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
t = np.linspace(-2, 2, 10)
y = np.exp(-t)
plt.subplot(121)
plt.plot(t, y)
plt.title("Without margins")
plt.subplot(122)
plt.plot(t, y)
plt.title("With x=0 and y=0 margins")
plt.margins(x=0, y=0)
plt.show()実行結果
上記コードを実行すると、左側にはデフォルトの余白があるグラフ、右側にはmargins(x=0, y=0)によって余白がゼロになったグラフが並んで表示されます。これにより、マージン設定の効果をひと目で比較できます。

まとめ
Matplotlibのmargins()メソッドを使えば、グラフ周辺の余白を柔軟に制御できます。データを画面いっぱいに表示したい場合や、複数のグラフの見た目を揃えたい場合などに活用してみてください。なお、個別の軸に対してのみ設定したい場合は、margins(x=0)のように片方だけ指定することも可能です。
-
MatplotlibでRectangle(長方形)に色を設定する方法
Matplotlibで長方形(Rectangle)に色を設定するには、以下の手順に従います。手順figure() メソッドを使用して、新しい図(Figure)を作成するか、既存の図をアクティブにします。add_subplot() メソッドを使用して、サブプロット構成の一部として図に ~.axes.Axes を追加します。長方形は、アンカーポイント(基準座標)と幅・高さを指定することで定義できます。作成したRectangleパッチを add_patch() でプロットに追加します。xlim() および ylim() メソッドを使用して、x軸とy軸の表示範囲を設定します。図を表示するには、show
-
Matplotlibで円の中に長方形をプロットする方法
Matplotlibを使って円の中に長方形を描画したい場合、patchesモジュールが提供するRectangle()クラスとCircle()クラスを組み合わせることで簡単に実現できます。以下の手順に従ってください。手順figure()メソッドを使用して、新しい図を作成するか、既存の図をアクティブにします。add_subplot()メソッドで現在の図にサブプロット(軸)を追加します。Rectangle()クラスとCircle()クラスを使って、長方形と円のインスタンスを作成します。add_patch()メソッドで作成したパッチを軸に追加します。xlim()およびylim()メソッドを使用して、x