Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Matplotlib를 사용하여 플롯에 사용자 정의 범례 기호를 배치하는 방법은 무엇입니까?

<시간/>

플롯에 맞춤형 범례 기호를 표시하려면 다음 단계를 수행할 수 있습니다.

  • 그림 크기를 설정하고 서브플롯 사이 및 주변 여백을 조정합니다.
  • HandlerPatch 상속 클래스에서 create Artists 메서드를 재정의하고 플롯에 타원형 패치를 추가하고 패치 핸들러를 반환합니다.
  • 을 사용하여 플롯에 원 그리기 수업.
  • 현재 축에 원 패치를 추가합니다.
  • legend() 사용 플롯에 범례를 배치하는 방법입니다.
  • 그림을 표시하려면 show()를 사용하세요. 방법.

예시

import matplotlib.pyplot as plt, matplotlib.patches as mpatches
from matplotlib.legend_handler import HandlerPatch

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

class HandlerEllipse(HandlerPatch):
   def create_artists(self, legend, orig_handle, xdescent, ydescent, width, height, fontsize, trans):
      center = 0.5 * width - 0.5 * xdescent, 0.5 * height - 0.5 * ydescent
      p = mpatches.Ellipse(xy=center, width=width + xdescent, height=height + ydescent)
      self.update_prop(p, orig_handle, legend)
      p.set_transform(trans)
      return [p]

c = mpatches.Circle((0.5, 0.5), 0.25, facecolor="green", edgecolor="red", linewidth=1)
plt.gca().add_patch(c)

plt.legend([c], ["An ellipse,Customized legend element"],
handler_map={mpatches.Circle: HandlerEllipse()})

plt.show()

출력

Matplotlib를 사용하여 플롯에 사용자 정의 범례 기호를 배치하는 방법은 무엇입니까?