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

Matplotlib에서 범례와 보조 Y축이 있는 동일한 플롯에 두 개의 Pandas 시계열을 그리는 방법은 무엇입니까?

<시간/>

범례와 보조 Y축이 있는 동일한 플롯에 두 개의 Pandas 시계열을 표시하려면 다음 단계를 수행할 수 있습니다.

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

  • 1차원 ndarray 만들기 축 레이블 포함(시계열 포함).

  • 일부 열 목록으로 데이터 프레임을 만듭니다.

  • 플롯 열 AB 데이터 프레임 plot() 사용 방법.

  • get_legend_handles_labels()를 사용하여 범례의 핸들과 레이블을 반환합니다. 방법.

  • legend()를 사용하여 그림에 범례를 배치합니다. 방법.

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

예시

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

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

ts = pd.Series(np.random.randn(10), index=pd.date_range('2021-04-10', periods=10))

df = pd.DataFrame(np.random.randn(10, 4), index=ts.index, columns=list('ABCD'))

ax1 = df.A.plot(color='red', label='Count')
ax2 = df.B.plot(color='yellow', secondary_y=True, label='Sum')

h1, l1 = ax1.get_legend_handles_labels()
h2, l2 = ax2.get_legend_handles_labels()

plt.legend(h1+h2, l1+l2, loc=2)

plt.show()

출력

Matplotlib에서 범례와 보조 Y축이 있는 동일한 플롯에 두 개의 Pandas 시계열을 그리는 방법은 무엇입니까?