如何在 Matplotlib 圖例中設定線的線寬
Suraj Joshi
2023年1月30日
2020年6月9日
我們可以通過使用圖例物件的 set_linewidth()
方法和 artist
物件的 setp()
方法來更改 Matplotlib 圖例中的線寬。
set_linewidth()
方法設定 Matplotlib 圖例的線寬
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()
輸出:
繪圖中兩條線的線寬分別為 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