Matplotlib 凡例の線の線幅を設定する方法
Suraj Joshi
2023年1月30日
2020年6月12日

凡例オブジェクトの 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()
出力:
プロットの 2 本の線の線幅はそれぞれ 3.0
と 5.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()
出力:
Author: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn関連記事 - Matplotlib Legend
- Matplotlib で凡例をプロットの外側に配置する方法
- Matplotlib で凡例のフォントサイズを変更する方法
- Matplotlib のすべてのサブプロットに単一の凡例を作成する方法
- Matplotlib で凡例を削除する方法
- Matplotlib の凡例タイトル