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

Pandas와 Matplotlib으로 하나의 그래프에 여러 상자 그림(박스플롯) 그리기

Pandas나 Matplotlib에서 하나의 그래프에 여러 상자 그림(boxplot)을 그리려면 몇 가지 간단한 단계만 거치면 됩니다. 상자 그림은 데이터의 중앙값, 사분위수, 분포 범위, 이상치를 한눈에 보여주기 때문에 여러 데이터 그룹을 비교할 때 특히 유용한 시각화 도구입니다.

구현 단계

  • 그림 크기를 설정하고 서브플롯 사이와 주변의 여백(padding)을 조정합니다.

  • 두 개의 열을 가진 Pandas 데이터프레임을 생성합니다.

  • plot() 메서드에 kind='box' 옵션을 지정하여 데이터프레임을 시각화합니다.

  • show() 메서드를 호출해 완성된 그래프를 화면에 표시합니다.

예제 코드

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt

# 그림 크기 설정
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

# 두 개의 열을 가진 Pandas 데이터프레임 생성
data = pd.DataFrame({"Box1": np.random.rand(10), "Box2": np.random.rand(10)})

# 데이터프레임을 상자 그림으로 시각화
ax = data[['Box1', 'Box2']].plot(kind='box', title='boxplot')

# 그래프 표시
plt.show()

실행 결과

위 코드를 실행하면 Box1과 Box2 두 열에 대한 상자 그림이 하나의 그래프에 나란히 그려집니다. 각 상자는 해당 열 데이터의 중앙값, 사분위 범위(IQR), 수염(whisker) 범위, 그리고 범위를 벗어난 이상치를 직관적으로 보여줍니다.

Pandas와 Matplotlib으로 하나의 그래프에 여러 상자 그림(박스플롯) 그리기

추가 팁

상자 그림의 모양을 더 세부적으로 조정하고 싶다면 다음 옵션들을 활용할 수 있습니다.

  • notch=True: 중앙값 부분이 잘린 노치(notch) 형태로 표시하여 중앙값의 신뢰 구간을 확인할 수 있습니다.

  • patch_artist=True: 상자 내부에 색상을 채워 그룹을 더욱 구분하기 쉽게 만듭니다.

  • vert=False: 상자 그림을 가로 방향으로 회전하여 표시합니다.

  • 열이 많은 데이터프레임이라면 data.plot(kind='box')처럼 열 목록을 생략해도 전체 수치형 열이 자동으로 그려집니다.