Pandas DataFrame으로 만든 그래프를 Matplotlib의 서브플롯(subplot) 안에 배치하려면, plot() 메서드에 대상 축(ax)을 지정해주면 됩니다. 아래 단계를 따라 진행할 수 있습니다.
구현 단계
- 그림(figure) 크기를 설정하고, 서브플롯 사이와 주변 여백을 자동으로 조정합니다.
- plt.subplots()로 figure와 두 개의 축(ax1, ax2)을 생성합니다.
- pd.DataFrame()을 사용해 Pandas 데이터프레임을 만듭니다.
- DataFrame.plot() 메서드를 호출하면서 ax 인자에 원하는 축을 전달하여 해당 서브플롯에 그래프를 그립니다.
- plt.show() 메서드로 최종 그래프를 화면에 표시합니다.
예제 코드
import pandas as pd
import matplotlib.pyplot as plt
# 그림 크기 및 자동 레이아웃 설정
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
# 2개의 서브플롯 생성
fig, (ax1, ax2) = plt.subplots(2)
# 샘플 데이터프레임 생성
df = pd.DataFrame(dict(name=["Joe", "James", "Jack"], age=[23, 34, 26]))
# name 컬럼을 인덱스로 지정한 뒤 각 축에 그래프 그리기
df.set_index("name").plot(ax=ax1)
df.set_index("name").plot(ax=ax2)
plt.show()실행 결과
위 코드를 실행하면 세로로 나열된 두 개의 서브플롯에 동일한 선 그래프가 각각 표시됩니다. 핵심은 plot(ax=...)처럼 ax 인자를 활용하는 것입니다. 이 방식을 응용하면 하나의 figure 안에 서로 다른 DataFrame이나 다양한 종류의 그래프를 자유롭게 배치할 수 있습니다.
추가 팁
- 여러 개의 서브플롯: plt.subplots(2, 2)처럼 행과 열을 지정하면 2x2 격자 형태로 축을 만들 수 있습니다.
- 그래프 종류 변경: plot(kind='bar') 또는 df.plot.bar(ax=ax1) 등으로 막대그래프도 손쉽게 그릴 수 있습니다.
- 제목 추가: ax.set_title('제목')을 사용하면 각 서브플롯에 개별 제목을 붙일 수 있습니다.