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

  1. Matplotlib legend에서 선 너비를 설정하는set_linewidth()메소드
  2. Matplotlib legend에서 선 너비를 설정하는matplotlib.pyplot.setp()메소드

범례 객체의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에서 범례 선의 선폭 설정

관련 문장 - Matplotlib Legend

  • Matplotlib에서 범례를 제거하는 방법
  • Matplotlib 에서 플롯 외부에 범례를 배치하는 방법