반응형
시각화 방식은 크게 3가지입니다.
- Matplotlib pyplot 방식 (plt.plot)
- Matplotlib 객체지향 방식 (fig, axes)
- Pandas 내장 시각화 (df.plot)
이 3가지 방식은 각자 탄생한 목적이 다릅니다. 실무에서 '어떨 때 어떤 방식을 선택해야 하는지' 완벽하게 비교해서 정리! 🚀
🆚 파이썬 시각화 3대장 완벽 비교 가이드
1️⃣ Matplotlib pyplot 방식 (초간단 스케치용)
파이썬이 제공하는 가장 1차원적이고 직관적인 방식입니다. 도화지나 액자를 명시적으로 만들지 않아도, 파이썬이 알아서 '현재 화면'에 그림을 그려줍니다.
- 어디에 사용하나요? * 간단한 리스트나 1차원 데이터를 빠르게 눈으로 확인하고 싶을 때.
- 어떨 때(When) 사용하나요? * 혼자서 데이터를 탐색(EDA)하는 과정에서 "이 데이터 대충 어떻게 생겼지?" 하고 1초 만에 확인해 보고 싶을 때.
- 그래프를 꾸밀 필요 없이 형태만 보면 충분할 때.
- 어떻게(How) 사용하나요?
- plt. 뒤에 원하는 그래프 이름을 붙여서 차례대로 명령을 내립니다.
Pythonimport matplotlib.pyplot as plt # 데이터 준비 x = [1, 2, 3] y = [10, 20, 30] # 순서대로 명령 (그리기 -> 제목달기 -> 보여주기) plt.plot(x, y) plt.title("간단 확인용") plt.show()
2️⃣ Matplotlib 객체지향(OO) 방식 (실무 보고서/대시보드용)
그래프의 모든 요소(전체 도화지 fig, 개별 그래프 액자 axes)를 변수로 지정해 놓고, 내 마음대로 정밀하게 조종하는 방식입니다. 실무에서 가장 권장되는 표준 방식입니다.
- 어디에 사용하나요? * 상사에게 보고할 깔끔한 리포트나, 여러 데이터를 한 화면에 모아보는 대시보드를 만들 때.
- 어떨 때(When) 사용하나요? * 한 화면에 여러 개의 그래프(Subplot)를 2행 2열처럼 바둑판 배열로 그려야 할 때.
- X축은 공유하면서 왼쪽/오른쪽 Y축을 다르게 쓰는 등(이중 축) 정밀한 조작이 필요할 때.
- 각 그래프마다 크기, 색상, 범례 위치 등을 디테일하게 세팅해야 할 때.
- 어떻게(How) 사용하나요?
- 먼저 plt.subplots()로 도화지와 액자를 만든 뒤, 개별 액자(axes)에 명령을 내립니다.
Pythonimport matplotlib.pyplot as plt # 1행 2열짜리 도화지와 액자 생성 fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10, 4)) # 첫 번째 액자(0번)에 명령 내리기 axes[0].plot(x, y) axes[0].set_title("첫 번째 정밀 그래프") # 주의: set_ 이 붙음! # 두 번째 액자(1번)에 명령 내리기 axes[1].scatter(x, y) axes[1].set_title("두 번째 정밀 그래프") plt.show()
3️⃣ Pandas 내장 시각화 (데이터프레임 맞춤형 초고속 시각화)
데이터 분석의 핵심인 'Pandas 데이터프레임(df)'을 다루고 있다면, X축/Y축 데이터를 일일이 뽑아낼 필요 없이 표 자체를 통째로 그래프로 바꿔주는 마법의 기능입니다.
- 어디에 사용하나요? * Pandas로 불러온 CSV, 엑셀 데이터(DataFrame 또는 Series)를 시각화할 때.
- 어떨 때(When) 사용하나요? * 데이터를 groupby나 pivot_table로 깔끔하게 묶어놓은 직후, 그 표 모양 그대로 막대그래프나 선 그래프로 넘기고 싶을 때.
- "범례 이름은 컬럼명으로, X축 이름은 인덱스로 알아서 해줘!" 라며 파이썬에게 귀찮은 세팅을 떠넘기고 싶을 때.
- 누적 막대그래프(stacked=True)를 그려야 할 때. (Matplotlib으로 그리면 코드가 아주 복잡하지만 Pandas로는 옵션 하나면 끝납니다.)
- 어떻게(How) 사용하나요?
- 데이터프레임 뒤에 바로 .plot()을 붙이고 괄호 안에 원하는 그래프 종류(kind)를 적습니다. 디테일한 옵션은 1번 방식인 plt를 섞어 씁니다.
Python# 이미 잘 정리된 판다스 데이터프레임 df 가 있다고 가정 # 한 줄로 그리기 끝! (X축/Y축/범례 알아서 됨) df.plot(kind='bar', stacked=True, figsize=(8, 4)) # 디테일한 제목 등은 plt 방식 섞어 쓰기 plt.title("Pandas 초고속 누적 막대그래프") plt.show()
🎯 한눈에 보는 요약 치트시트
| 비교 항목 | 1. plt 방식 (Pyplot) | 2. fig, axes (객체지향) | 3. df.plot (Pandas 내장) |
| 핵심 한 줄 평 | 빠르고 간편한 메모장 | 디테일 끝판왕 전문가용 툴 | 데이터프레임 전용 자동화 기계 |
| 코드 복잡도 | 매우 쉬움 | 다소 김 (설정할 게 많음) | 가장 쉬움 (한 줄 컷) |
| 다중 그래프 | 그리기 어려움 | 가장 최적화됨 (강력 추천) | 표가 나눠져 있으면 그리기 어려움 |
| 추천 상황 | 혼자 데이터 휙 훑어볼 때 | 최종 보고서, 논문, 대시보드 만들 때 | 그룹화/피벗 완료된 표를 바로 그릴 때 |
💡 실무자의 시각화 작업 흐름 (꿀팁)
실제 데이터 분석가들은 이 3가지를 따로 쓰지 않고 상황에 맞게 섞어서 씁니다.
- 데이터를 불러와 판다스로 정리한다.
- 잘 정리됐는지 확인하기 위해 Pandas .plot()으로 빠르게 그려본다.
- "오, 이 그래프는 리포트에 넣어야겠다!" 싶으면, 객체지향(fig, axes) 방식으로 코드를 다시 짜서 색상, 축 이름, 폰트 크기를 영혼을 갈아 넣어 예쁘게 다듬는다.
반응형
'두두 IT > 파이썬' 카테고리의 다른 글
| [PYTHON] NumPy 데이터 다루기 (0) | 2026.05.08 |
|---|---|
| [PYTHON] 파이썬 데이터 분석 기초 Numpy (0) | 2026.05.08 |
| [PYTHON 시각화] Pandas 내장 시각화 (0) | 2026.05.07 |
| [PYTHON 시각화] Matplotlib 주요그래프 (1) | 2026.05.07 |
| [PYTHON 시각화] Matplotlib 개요 (0) | 2026.05.07 |