iBetter Books
수정

개요

"선배, 이 그래프 좀 봐줄 수 있어요?"

민서가 노트북 화면을 기울여 보여줬습니다. 팀 프로젝트 발표가 사흘 앞으로 다가왔고, 화면에는 식당 데이터를 분석한 산점도가 있었습니다. Matplotlib으로 열심히 만들었지만, 뭔가 허전했습니다. 색상도 밋밋하고, 범례도 어색하고, 그루핑 처리에만 열 줄 넘게 코드를 써야 했습니다.

강주원 선배가 화면을 보더니 한마디 했습니다.

"Seaborn 써봐. 코드가 절반으로 줄어."

이 교재는 그 한마디에서 시작합니다. "소설처럼 읽는 Matplotlib"을 통해 시각화의 기초를 다졌다면, 이제는 통계 시각화의 우아한 세계로 한 걸음 더 나아갑니다. 같은 시리즈의 후속편으로, Matplotlib 위에서 동작하는 Seaborn이 어떻게 코드를 단순하게 만들고 그래프를 더 풍부하게 만드는지 민서의 이야기를 따라가며 배웁니다.

이 교재에 대하여

민서는 통계학과 2학년입니다. 지난 학기 데이터분석 수업에서 Matplotlib을 배웠고, 기본적인 그래프는 그릴 수 있습니다. 문제는 팀 프로젝트였습니다. 식당 팁 데이터를 분석해서 발표해야 하는데, 성별과 요일에 따른 팁 분포를 한 번에 보여주는 그래프를 만들려다 막혔습니다.

Matplotlib으로 그루핑, 색상 지정, 범례 설정까지 하려면 코드가 길어졌고, 그마저도 결과가 세련되지 않았습니다. 선배의 조언대로 Seaborn을 검색해봤더니, 같은 결과를 단 두 줄로 그릴 수 있었습니다.

이 교재는 민서가 Seaborn을 처음 접하는 순간부터 팀 프로젝트를 완성하고, 이후 더 복잡한 통계 시각화까지 도전하는 여정을 따라갑니다. 개념 설명보다 실제 코드와 결과가 먼저 나오고, 코드가 왜 그렇게 생겼는지 민서와 선배의 대화로 풀어냅니다.

대상 독자

이 교재는 다음 분께 맞습니다.

  • Python 기초 문법을 알고 있는 분
  • Pandas로 DataFrame을 다뤄본 분
  • Matplotlib을 배웠지만 코드가 너무 길다고 느끼는 분
  • 통계 시각화를 더 깔끔하게 만들고 싶은 분
  • 대학교 데이터 분석 수업이나 프로젝트를 준비하는 분

R의 ggplot2처럼 통계적으로 의미 있는 그래프를 Python으로 그리고 싶다면, Seaborn이 그 답입니다.

선수 지식

이 교재를 따라가려면 아래 수준의 지식이 필요합니다.

영역 필요 수준 참고 교재
Python 문법 반복문, 조건문, 함수 정의 소설처럼 읽는 Python (입문)
Pandas DataFrame 생성, 필터링, groupby 실전 Pandas
Matplotlib plt.plot, plt.show 수준 소설처럼 읽는 Matplotlib
Jupyter Notebook 셀 실행, 결과 확인

Matplotlib을 깊이 몰라도 괜찮습니다. Seaborn은 Matplotlib 위에서 동작하지만, 사용하는 데 Matplotlib 지식이 필수는 아닙니다.

왜 Seaborn인가

Seaborn을 선택해야 하는 이유는 네 가지입니다.

첫 번째, 통계 시각화에 특화되어 있습니다. 신뢰구간, 회귀선, 분포 추정 같은 통계적 요소를 별도 계산 없이 그래프에 바로 넣을 수 있습니다.

두 번째, Matplotlib보다 코드가 훨씬 짧습니다. 그루핑, 색상 팔레트, 범례를 수동으로 처리하지 않아도 됩니다. hue 하나로 범주형 변수를 색상으로 분리합니다.

세 번째, 기본 스타일이 아름답습니다. 아무 설정 없이도 발표 자료에 쓸 수 있는 수준의 그래프가 나옵니다. 논문 스타일, 발표 스타일을 테마 한 줄로 바꿀 수 있습니다.

네 번째, Pandas DataFrame을 네이티브로 지원합니다. DataFrame을 직접 넘기고 컬럼명을 문자열로 지정하면 됩니다. x, y 배열을 따로 추출할 필요가 없습니다.

교재 구성

파트 제목 주요 내용
PART 00 들어가기 Matplotlib vs Seaborn 비교, 환경 설정
PART 01 첫 번째 통계 그래프 환경 설정, 기본 플로팅, Figure-level vs Axes-level, hue/style/size
PART 02 다양한 차트 barplot, boxplot, violinplot, heatmap
PART 03 레이아웃과 스타일링 FacetGrid, 테마, 팔레트, 폰트
PART 04 Pandas와 실전 실제 데이터셋으로 분석 + 시각화 통합
PART 05 마무리 민서의 팀 프로젝트 완성, 다음 단계 안내