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

Matplotlibでサブプロットの周囲に境界線(枠線)を描画する方法

Matplotlibでサブプロットの周囲に境界線を描きたい場合は、Rectangle(長方形)パッチを活用するのが便利です。この記事では、実際のコード例とともに、その手順をわかりやすく解説します。

実装の手順

  • 図(figure)のサイズを設定し、サブプロット間および周囲の余白を調整します。

  • subplot(121) を使って、現在の図に1つ目のサブプロットを追加します。

  • サブプロットの軸情報(axis)を取得します。

  • アンカーポイント xy と、width(幅)・height(高さ)を指定して長方形を定義します。

  • ステップ4で作成した長方形パッチを、現在のサブプロットに追加します。

  • クリッピングの有効/無効を設定します(ここでは無効にして、軸の外側にも線が描かれるようにします)。

  • subplot(122) を使って、2つ目のサブプロットを追加します。

  • 各サブプロットにタイトルを設定します。

  • show() メソッドを呼び出して、図を表示します。

コード例

from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

sub = plt.subplot(121)
ax = sub.axis()
rec = plt.Rectangle((ax[0] - 0.7, ax[2] - 0.2), (ax[1] - ax[0]) + 1, (ax[3] - ax[2]) + 0.4, fill=False, lw=2, linestyle="dotted")

rec = sub.add_patch(rec)

rec.set_clip_on(False)
plt.title("with border")

sub = plt.subplot(122)
plt.title("without border")

plt.show()

実行結果

上記のコードを実行すると、左側のサブプロットには点線の境界線が描画され、右側のサブプロットには境界線がない状態で並べて表示されます。これにより、境界線の有無による見た目の違いを簡単に確認できます。

Matplotlibでサブプロットの周囲に境界線(枠線)を描画する方法


  1. 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()メソッ

  2. Python Matplotlib:サブプロットでX軸目盛り(xticks)を設定する方法

    Matplotlibのsubplot機能を使うと、1つの図(figure)をnrows×ncolsのグリッド状に分割して複数のグラフを並べて表示できます。さらにplt.xticksを組み合わせることで、各サブプロットのX軸目盛りの位置を自由に制御することが可能です。 実装手順 1本目と2本目の折れ線用に、それぞれデータのリストを作成します。 現在の図にサブプロットを追加します(nrow=1、ncols=2、index=1)。 破線(dashed)スタイルで1本目の折れ線を描画します。 自動スケーリングのマージンを設定します(0.2)。 X軸目盛りを偶数の位置(2, 4, 6, 8, 10)に