Pandas의 플롯 함수에서 matplotlib.figure.Figure 객체를 반환하려면 다음 단계를 따르면 됩니다.
- 그림 크기를 설정하고 서브플롯 주변과 사이의 여백을 자동으로 조정합니다.
- Pandas 데이터프레임 df를 생성합니다.
- barh() 메서드를 사용하여 가로 막대 그래프를 그립니다.
- 현재 Figure 인스턴스를 가져옵니다.
- 축(axes)의 오른쪽 하단 위치에 범례(legend)를 배치합니다.
- 그림을 화면에 표시하려면 show() 메서드를 사용합니다.
예제 코드
from matplotlib import pyplot as plt
import pandas as pd
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
df = pd.DataFrame({'a': range(10)})
ax = df.plot.barh(color=(1, 0, 0, 0.25))
fig = ax.get_figure()
ax.legend(loc='lower right')
plt.show()핵심 포인트 설명
위 코드에서 가장 중요한 부분은 ax.get_figure()입니다. Pandas의 plot.barh() 메서드는 Axes 객체를 반환하며, 이 Axes 객체에 내장된 get_figure() 메서드를 호출하면 해당 플롯이 속한 matplotlib.figure.Figure 객체를 얻을 수 있습니다.
또한 plt.rcParams["figure.figsize"]로 그림 크기를 지정하고, plt.rcParams["figure.autolayout"] = True로 설정하면 레이블이나 제목이 잘리지 않도록 레이아웃이 자동 조정됩니다.
실행 결과
위 코드를 실행하면 빨간색 반투명(알파 값 0.25) 가로 막대 그래프가 그려지며, 오른쪽 하단에 범례가 함께 표시됩니다.