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

Matplotlib의 플롯에서 모든 범례를 얻는 방법은 무엇입니까?

<시간/>

matplotlib의 플롯에서 모든 범례를 가져오려면 get_children()을 사용할 수 있습니다. 메서드를 사용하여 축의 모든 속성을 가져온 다음 모든 속성을 반복합니다. 항목이 Legend의 인스턴스인 경우 범례 텍스트를 가져옵니다.

단계

  • Figure 크기를 설정하고 서브플롯 사이와 주변의 패딩을 조정합니다.

  • numpy를 사용하여 x 데이터 포인트를 만듭니다.

  • Figure와 서브플롯 세트를 생성합니다.

  • 플롯 sin(x)cos(x) plot() 사용 다른 라벨과 색상을 가진 방법.

  • 축의 자식을 가져오고 범례의 텍스트를 가져옵니다.

  • 그림을 표시하려면 show()를 사용하세요. 방법.

예시

import numpy as np
from matplotlib import pyplot as plt
import matplotlib

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

x = np.linspace(-10, 10, 100)
fig, ax = plt.subplots()

ax.plot(np.sin(x), color='red', lw=7, label="y=sin(x)")
ax.plot(np.cos(x), color='orange', lw=7, label="y=cos(x)")

plt.legend(loc='upper right')

for item in ax.get_children():
   if isinstance(item, matplotlib.legend.Legend):
      print(item.texts)

plt.show()

출력

Matplotlib의 플롯에서 모든 범례를 얻는 방법은 무엇입니까?