如何在 Matplotlib 圖例中設定線的線寬

Suraj Joshi 2023年1月30日
  1. set_linewidth() 方法設定 Matplotlib 圖例的線寬
  2. matplotlib.pyplot.setp()方法
如何在 Matplotlib 圖例中設定線的線寬

我們可以通過使用圖例物件的 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()

輸出:

使用 set_linewidth 方法在 Matplotlib 中設定圖例行的線寬

繪圖中兩條線的線寬分別為 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()

輸出:

使用 setp 方法在 Matplotlib 中設定圖例的線寬

作者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

相關文章 - Matplotlib Legend