[비정제 데이터] matplotlib vs. seaborn 시각화 비교

jul ee·2025년 4월 14일

데이터 성장기

목록 보기
43/139

데이터 분석을 하다 보면, 수치보다 더 직관적인 것이 바로 시각화이다.

숫자만으로는 보이지 않던 패턴이, 시각화를 통해 명확하게 드러나는 순간을 경험해 보았을 것이다 :)

이 글에서는 파이썬에서 가장 널리 사용되는 시각화 라이브러리인 matplotlibseaborn,

그리고 그 안에서 많이 쓰이는 함수들인 distplot, scatterplot, boxplot의 차이와 사용법을 정리해 보았다.



matplotlib vs seaborn, 어떤 걸 써야 할까?

데이터 시각화를 시작할 때 가장 먼저 마주치는 질문 중 하나가

"matplotlib이 좋을까? seaborn이 더 나을까?" 일 것이다.

두 라이브러리는 모두 파이썬에서 강력한 시각화 기능을 제공하지만, 목적과 난이도, 커스터마이징 유무에 따라 적절한 선택이 달라질 수 있다.

아래 표를 통해 각각의 특징과 차이를 비교해 보자.

구분matplotlibseaborn
탄생기본 시각화 도구 (저수준 API)matplotlib 기반 고수준 시각화 라이브러리
특징커스터마이징 자유도 매우 높음통계 시각화에 최적화, 코드가 더 간단함
사용 목적세밀한 조작, 복잡한 도표 구성빠른 시각화, 통계 기반 그래프
대표 함수plt.plot(), plt.hist()sns.histplot(), sns.boxplot()

두 라이브러리는 각자의 장점이 명확하다.

  • 빠르게 예쁜 그래프를 그려야 할 때는 seaborn이 훨씬 효율적이고 직관적이다.
  • 반대로 레이블, 색상, 스타일 등을 세밀하게 조정해야 하거나,
    여러 시각화를 하나로 조합하려면 matplotlib이 더 강력하다.

처음에는 seaborn으로 시작해서 익숙해진 뒤,
필요할 때 matplotlib으로 커스터마이징을 확장하는 접근도 좋다.

더 자세한 사용 가이드는 matplotlib 공식 문서, seaborn 공식 문서를 참고하자.



주요 시각화 함수 비교

distplot  → 분포 확인용 (히스토그램 + KDE)

📌 distplot()은 deprecated 되었다!
   → 최근에는 histplot() + kdeplot() 조합을 많이 사용한다.

import seaborn as sns
import matplotlib.pyplot as plt

sns.histplot(data=df, x='Age', kde=True)

kde=True를 넣으면 커널 밀도 추정 곡선이 같이 그려진다.
분포 형태와 중심 경향, 밀도까지 한 번에 볼 수 있어 매우 유용하다.



scatterplot  → 변수 간 관계 시각화

sns.scatterplot(data=df, x='Age', y='Fare', hue='Survived')
# `hue` 옵션으로 색깔로 그룹 구분도 가능하다.

산점도는 두 수치형 변수 사이의 관계를 파악할 때 사용한다.
선형 관계, 이상치, 군집 등을 시각적으로 확인할 수 있다.



boxplot  → 이상치와 분포 구조를 시각화

sns.boxplot(data=df, y='Fare')

상자 수염 그림(Boxplot)은 데이터의 중앙값, 사분위수, 이상치를 시각화해준다.

  • 특히 이상치 탐지와 변수 간 비교에 효과적이다.
sns.boxplot(data=df, x='Pclass', y='Fare')  # 클래스별 운임 비교


목적에 따라 함수 선택하기

시각화 함수는 정말 다양하지만,
항상 "무엇을 보고 싶은가?" 에 따라 선택 기준이 달라져야 한다.

아래에 목적별로 어떤 함수를 선택하면 좋은지 정리해 보았다.

목적추천 함수설명
데이터 분포 확인sns.histplot(), sns.kdeplot()분포 형태 + 밀도곡선 시각화 가능
변수 간 관계 파악sns.scatterplot()산점도로 연속형 변수 간 관계 확인
이상치 및 분포 구조 확인sns.boxplot()사분위수 + 이상치 시각화

그래프를 고를 때는 먼저
"내가 보고 싶은 건 분포일까, 관계일까, 이상치일까?" 를 질문해 보는 것이 좋다.

각 함수가 가진 시각화 목적을 이해하면 복잡한 데이터를 더 효과적으로 해석할 수 있다.




시각화를 통해 우리는 단순히 예쁜 그래프를 그리는 것이 아니라, 데이터의 속성을 정확히 읽어내고 설명할 수 있게 된다.

  • seaborn은 빠르고 직관적인 시각화를 원할 때,
  • matplotlib은 복잡한 구조나 커스터마이징이 필요할 때

각각 선택할 수 있다.


각 함수별 목적을 정확히 이해하고 나면, 데이터가 원하는 메시지를 더 잘 드러낼 수 있게 될 것이다.
profile
AI에 관심을 가지고, 데이터로 가치를 만들어 나가는 과정을 기록합니다.

0개의 댓글