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

Pandas와 Matplotlib로 만든 플롯에 공유 X축·Y축 레이블 추가하는 방법

Pandas 데이터프레임으로 여러 개의 서브플롯을 그릴 때, 모든 플롯이 동일한 축 레이블을 공유하도록 만들고 싶다면 plot() 메서드에 kind="bar", sharex=True, sharey=True 옵션을 함께 사용하면 됩니다.

sharex=True는 x축 눈금과 레이블을 하단 행의 플롯에만 표시하고, sharey=True는 y축 눈금과 레이블을 좌측 열의 플롯에만 표시하여 중복을 없애고 그래프를 더 깔끔하게 정리해 줍니다.

구현 단계

  • 그림(figure) 크기를 설정하고, 서브플롯 사이 및 주변의 여백(padding)을 조정합니다.
  • 2차원이면서 크기가 가변적이고, 서로 다른 자료형을 담을 수 있는 표 형태의 데이터(DataFrame)를 생성합니다.
  • kind="bar", subplots=True, layout=(2, 2), sharex=True, sharey=True 옵션을 지정하여 데이터프레임을 막대그래프로 플롯합니다.
  • show() 메서드를 호출하여 결과 그림을 화면에 표시합니다.

예제 코드

import pandas as pd
import matplotlib.pyplot as plt

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

df = pd.DataFrame(
    {'First': [0.3, 0.2, 0.5, 0.2], 'Second': [0.1, 0.0, 0.3, 0.1],
    'Third': [0.2, 0.5, 0.0, 0.7], 'Fourth': [0.6, 0.3, 0.4, 0.6]},
    index=list('1234'))

axes = df.plot(kind="bar", subplots=True, layout=(2, 2),
               sharey=True, sharex=True)

plt.show()

코드 설명

위 예제에서는 네 개의 열('First', 'Second', 'Third', 'Fourth')을 가진 데이터프레임을 생성하고, subplots=Truelayout=(2, 2)를 통해 각 열을 2×2 격자 형태의 개별 막대그래프로 나누어 그립니다. 이때 sharex=Truesharey=True 덕분에 모든 서브플롯이 같은 축 범위와 눈금을 공유하므로, 값의 상대적인 크기를 한눈에 비교하기 쉽습니다.

실행 결과

Pandas와 Matplotlib로 만든 플롯에 공유 X축·Y축 레이블 추가하는 방법