Matplotlib 凡例の線の線幅を設定する方法

  1. set_linewidth() メソッド
  2. matplotlib.pyplot.setp() メソッド

凡例オブジェクトの set_linewidth() メソッドと artist オブジェクトの setp() メソッドを使用することにより、Matplotlib 凡例の線の線幅を変更できます。

set_linewidth() メソッド

plot 関数の linewidth パラメータは特定のオブジェクトのプロットの幅を制御するために使用でき、set_linewidth() メソッドは Matplotlib の凡例の線の幅を制御するために使用できます。

import numpy as np
import matplotlib.pyplot as plt

x=np.linspace(-3,3,100)
y1=np.sin(x)
y2=np.cos(x)

fig, ax = plt.subplots(figsize=(8,6))

ax.plot(x, y1, c='r', label='sinx',linewidth=3.0)
ax.plot(x, y2, c='g', label='cosx',linewidth=5.0)

leg = plt.legend()

leg.get_lines()[0].set_linewidth(6)
leg.get_lines()[1].set_linewidth(10)

plt.show() 

出力:

set_linewidth メソッドを使用して Matplotlib の凡例の線の線幅を設定する

プロットの 2 本の線の線幅はそれぞれ 3.05.0 であり、凡例の線の線幅はデフォルトでプロットと同じ線幅を使用します。

leg = plt.legend()

leg.get_lines()[0].set_linewidth(6)

leg は凡例オブジェクトであり、leg.get_lines() は凡例内のラインインスタンスのリストを返します。

set_linewidth() は凡例線の線幅をプロット以外の値に変更できます。

matplotlib.pyplot.setp() メソッド

matplotlib.pyplot.setp() メソッドを使用すると、pyplot オブジェクトのプロパティを設定できます。setp() 関数の linewidth パラメータを使用して、特定の凡例オブジェクトの線幅を設定できます。

 import numpy as np
import matplotlib.pyplot as plt

x=np.linspace(-3,3,100)
y1=np.sin(x)
y2=np.cos(x)

fig, ax = plt.subplots(figsize=(8,6))

ax.plot(x, y1, c='r', label='sinx',linewidth=3.0)
ax.plot(x, y2, c='g', label='cosx',linewidth=5.0)

leg = plt.legend()

leg_lines = leg.get_lines()
leg_texts = leg.get_texts()

plt.setp(leg_lines[0], linewidth=6)
plt.setp(leg_lines[1], linewidth=12)
plt.setp(leg_texts, fontsize=10)

plt.show() 

出力:

Matplotlib で凡例の線の線幅を setp メソッドを使用して設定する

関連記事 - Matplotlib Legend

  • Matplotlib で凡例をプロットの外側に配置する方法
  • comments powered by Disqus