Pandas 기능으로 여러 데이터프레임 플로팅하기
데이터 분석을 하다 보면 서로 다른 두 개 이상의 데이터프레임을 하나의 그래프에 함께 시각화해야 하는 경우가 자주 있습니다. Pandas에서 제공하는 plot() 메서드와 matplotlib의 ax(축) 객체를 활용하면 이를 간단하게 구현할 수 있습니다.
여러 데이터프레임을 하나의 그래프로 그리려면 아래 단계를 따르면 됩니다.
- 그림(figure) 크기를 설정하고, 서브플롯 사이와 주변의 여백(padding)을 조정합니다.
- 2차원 테이블 형태의 데이터를 담을 수 있는 두 개의 Pandas 데이터프레임 df1과 df2를 생성합니다.
- plot() 메서드를 사용해 df1을 먼저 그리고, 반환된 축 객체(ax)를 df2의
ax인자에 전달하여 같은 그래프 위에 겹쳐 그립니다. - show() 메서드를 호출하여 최종 그래프를 화면에 표시합니다.
핵심 포인트
여기서 가장 중요한 것은 첫 번째 plot() 호출이 반환하는 축 객체입니다. 이 객체를 두 번째 데이터프레임의 plot(ax=ax) 인자로 넘겨주면, 두 개의 데이터프레임이 서로 다른 x축 레이블을 가지더라도 하나의 좌표평면 위에 함께 나타납니다.
예제 코드
import pandas as pd
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
df1 = pd.DataFrame(
dict(
name=['John', 'James', 'Stephen', 'Kandy'],
age=[23, 45, 12, 34]
)
)
df2 = pd.DataFrame(
dict(
subject=['Math', 'Physics', 'Chemistry', 'Biology'],
marks=[67, 98, 90, 75]
)
)
ax = df1.plot(x='name', y='age')
df2.plot(ax=ax, x='subject', y='marks')
plt.show()실행 결과
위 코드를 실행하면 두 개의 데이터프레임 데이터가 하나의 그래프에 함께 출력됩니다.

