Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Matplotlib 서브플롯에 Pandas DataFrame.plot 그래프 넣는 방법

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('제목')을 사용하면 각 서브플롯에 개별 제목을 붙일 수 있습니다.