Matplotlib 범례에서 선의 선폭을 설정하는 방법

Suraj Joshi 2024년2월15일
  1. Matplotlib legend에서 선 너비를 설정하는set_linewidth()메소드
  2. Matplotlib legend에서 선 너비를 설정하는matplotlib.pyplot.setp()메소드
Matplotlib 범례에서 선의 선폭을 설정하는 방법

범례 객체의set_linewidth()메소드와artist 객체의setp()메소드를 사용하여 Matplotlib 범례에서 선의 선폭을 변경할 수 있습니다.

Matplotlib legend에서 선 너비를 설정하는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에서 범례 선의 선폭 설정

플롯에서 두 줄의 선 너비는 각각3.05.0이며 범례에서 선의 선 너비는 기본적으로 플롯에서와 동일한 선 너비를 사용합니다.

leg = plt.legend()

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

legend는 범례 객체이고legend.get_lines()는 범례의 행 인스턴스 목록을 반환합니다.

set_linewidth()는 범례 선의 선 너비를 플롯의 값이 아닌 다른 값으로 변경할 수 있습니다.

Matplotlib legend에서 선 너비를 설정하는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