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

파이썬 Matplotlib로 와플 차트(Waffle Chart) 만드는 방법

와플 차트(Waffle Chart)는 목표 달성 진행 상황을 한눈에 보여주는 데 널리 활용되는 시각화 기법입니다. 이름 그대로 와플처럼 정사각형 격자가 빽빽하게 채워진 형태로, 각 칸이 특정 값의 비율을 나타내기 때문에 데이터 구성 비중을 직관적으로 파악할 수 있습니다.

Matplotlib에서는 새로운 피겨를 생성하거나 기존 피겨를 활성화할 때 FigureClass=Waffle 옵션을 사용하면 손쉽게 와플 차트를 그릴 수 있습니다. 이 기능은 pywaffle 라이브러리가 제공하므로, 먼저 설치가 필요합니다(pip install pywaffle).

구현 단계

  • 딕셔너리를 이용해 Pandas 데이터프레임을 생성합니다.

  • FigureClass=Waffle, rows=5(행 개수), values=df.price(값), labels=df.books(레이블) 옵션과 함께 plt.figure()를 호출해 새 피겨를 만듭니다.

  • plt.show() 메서드를 사용해 완성된 차트를 화면에 표시합니다.

예제 코드

import pandas as pd
import matplotlib.pyplot as plt
from pywaffle import Waffle

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

data = {'books': ['physics', 'chemistry', 'math', 'english', 'hindi'],
        'price': [80, 87, 89, 56, 39]
}
df = pd.DataFrame(data)

fig = plt.figure(
    FigureClass=Waffle,
    rows=5,
    values=df.price,
    labels=list(df.books)
)
plt.show()

실행 결과

위 코드를 실행하면 과목별 가격 정보가 행 5개짜리 와플 격자 형태로 시각화됩니다. 각 과목(물리, 화학, 수학, 영어, 힌디어)은 서로 다른 색상의 사각형 블록으로 표현되며, 블록의 개수가 해당 과목 가격에 비례합니다. 범례(legend)를 함께 확인하면 어떤 색상이 어느 과목에 해당하는지 쉽게 알 수 있습니다.

참고 팁

  • rows 대신 columns 매개변수를 지정하면 열 개수를 기준으로 차트를 배치할 수 있습니다.

  • legend, colors, title 등의 추가 옵션을 활용하면 차트의 가독성과 디자인을 더욱 향상시킬 수 있습니다.

  • 값의 합이 클 경우 rounding_rule 또는 값 스케일링을 조정해 전체 블록 수를 적절히 제한하는 것이 좋습니다.