Matplotlib에서 범주형 변수 시각화하기
Matplotlib는 파이썬에서 가장 널리 사용되는 데이터 시각화 라이브러리입니다. 범주형(categorical) 데이터는 막대그래프(bar), 산점도(scatter), 선그래프(plot) 등 다양한 차트 유형으로 손쉽게 표현할 수 있습니다. 이 글에서는 딕셔너리 형태의 범주형 데이터를 세 가지 그래프로 나란히 시각화하는 과정을 단계별로 살펴보겠습니다.
단계별 진행 과정
- 그림(figure) 크기를 설정하고, 서브플롯 사이와 주변의 여백(padding)을 자동으로 조정합니다.
- 시각화할 데이터를 담은 딕셔너리를 생성합니다.
- 딕셔너리에서 키(keys)와 값(values)을 각각 추출하여 리스트로 변환합니다.
- figure와 서브플롯(subplots) 집합을 생성합니다.
- 추출한 names(범주 이름)와 values(수치 값) 데이터를 이용해 bar, scatter, plot 그래프를 각각 그립니다.
- show() 메서드를 호출하여 최종 그래프를 화면에 표시합니다.
예제 코드
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
data = {'apple': 10, 'orange': 15, 'lemon': 5}
names = list(data.keys())
values = list(data.values())
fig, axs = plt.subplots(1, 3)
axs[0].bar(names, values)
axs[1].scatter(names, values)
axs[2].plot(names, values)
plt.show()
코드 설명
plt.rcParams["figure.figsize"]를 통해 전체 그림의 크기를 가로 7.5인치, 세로 3.5인치로 지정하고, figure.autolayout 옵션을 활성화하면 레이블이나 제목이 잘리지 않도록 여백이 자동 조절됩니다.
예제에서 사용한 데이터는 과일 이름을 키로, 수량을 값으로 가지는 간단한 딕셔너리입니다. list(data.keys())와 list(data.values())를 호출하면 x축에 놓일 범주 이름과 y축에 놓일 수치 값을 얻을 수 있습니다.
plt.subplots(1, 3)은 한 줄에 세 개의 축(axs)을 만들어, 동일한 데이터를 막대그래프·산점도·선그래프 세 가지 방식으로 비교할 수 있게 해줍니다. 이처럼 같은 범주형 데이터를 여러 차트로 나타내면 데이터의 특성을 다양한 관점에서 파악하는 데 도움이 됩니다.
실행 결과

위 코드를 실행하면 apple, orange, lemon 세 범주에 대한 값이 막대그래프, 산점도, 선그래프 순서로 한 화면에 나타납니다. 범주형 데이터의 개수가 많아지거나 값의 분포를 강조하고 싶다면 그래프 유형을 상황에 맞게 선택하면 됩니다.