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

Matplotlibで凡例フレームの線幅を指定する方法

Matplotlibでは、set_linewidth()メソッドを使うことで、凡例フレームの枠線の太さを自由に指定できます。この記事では、具体的な手順とサンプルコードを通じて、その使い方をわかりやすく解説します。

実装の手順

  • 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
  • NumPyを使用してxデータポイントとyデータポイントを作成します。
  • subplots()メソッドを使って、図とサブプロットのセットを作成します。
  • plot()メソッドでxとyのデータをプロットします。
  • 図に凡例を配置し、その凡例インスタンスを取得します。
  • 凡例内の線を取得し、set_linewidth()メソッドで線幅を設定します。
  • show()メソッドを使って図を表示します。

サンプルコード

import numpy as np
import matplotlib.pyplot as plt

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

x = np.linspace(-5, 5, 100)
y = np.sin(x)

fig, ax = plt.subplots()
ax.plot(x, y, c='r', label='y=sinx', linewidth=3.0)

leg = plt.legend()
leg.get_lines()[0].set_linewidth(6)

plt.show()

コードの解説

このコードでは、まずnp.linspace()で-5から5までの範囲に100個の等間隔データポイントを生成し、その正弦波(sin)を赤色の線(c='r')で描画しています。プロット時の線幅はlinewidth=3.0に設定されています。

ポイントとなるのは次の2行です。

leg = plt.legend()
leg.get_lines()[0].set_linewidth(6)

plt.legend()で作成した凡例オブジェクトからget_lines()メソッドを使って凡例内の線要素を取得し、インデックス[0]で最初の線にアクセスします。そしてset_linewidth(6)を呼び出すことで、凡例内のサンプル線の太さを6に変更しています。これにより、グラフ本体の線よりも太い凡例線が表示され、視覚的な強調が可能になります。

実行結果

Matplotlibで凡例フレームの線幅を指定する方法

上記のコードを実行すると、正弦波のグラフとともに凡例が表示され、凡例内のサンプル線が指定した太さ(6)で描画されていることが確認できます。同様の手法は、複数の系列がある場合にも応用でき、get_lines()のリストから任意のインデックスを選択することで、それぞれの凡例線の太さを個別に制御できます。

  1. Matplotlibで凡例ボックスのサイズを調整する方法

    Matplotlibの凡例ボックスのサイズを調整するには、legend()メソッドのborderpad引数を使用します。borderpadの値を大きくするほど、凡例ボックス内の余白が広がり、ボックス全体のサイズも大きくなります。手順異なる線幅(linewidth)を持つ2つのリストを使って、line1とline2を作成します。図に凡例を配置し、凡例ボックスのサイズを調整するために、legend()メソッドでborderpad=2を指定します。図を表示するには、show()メソッドを使用します。サンプルコードfrom matplotlib import pyplot as plt plt.rcP

  2. Matplotlibでプロット上のグリッドサイズを定義する方法

    Matplotlib を使ってプロット上にグリッド(格子線)を表示し、その間隔(サイズ)を自由に定義する方法を紹介します。基本的な流れは以下の手順のとおりです。 グリッドサイズを定義する手順 figure() メソッドを使って、新しい図(Figure)を作成するか、既存の図をアクティブにします。 サブプロット配置の一部として、add_subplot() で図に Axes(座標軸)を追加します。 入力リストを渡して曲線をプロットします。 margins() メソッドで x 軸・y 軸のマージンを 0 に設定します。 X 軸のグリッド位置を指定するには、set_ticks() に目盛りの座標