Chapter_1_2_Python_visualisation_seaborn
Page content
공지
제 수업을 듣는 사람들이 계속적으로 실습할 수 있도록 강의 파일을 만들었습니다. 늘 도움이 되기를 바라며. 참고했던 교재 및 Reference는 꼭 확인하셔서 교재 구매 또는 관련 Reference를 확인하시기를 바랍니다.
I. Matplotlib & Seaborn
(1) 기본 개요
Matplotlib
는 파이썬 표준 시각화 도구라고 불리워지며 파이썬 그래프의 기본 토대가 된다고 해도 무방하다. 객체지향 프로그래밍을 지원하므로 세세하게 꾸밀 수 있다.
Seaborn
그래는 파이썬 시각화 도구의 고급 버전이다. Matplotlib
에 비해 비교적 단순한 인터페이스를 제공하기 때문에 초보자도 어렵지 않게 배울 수 있다.
(2) matplotlib & Seabon 설치
설치방법은 윈도우 명령 프롬프트, MacOS, Linux 터미널에서 pip install matplotlib
입력하면 되지만, 간혹 여러 환경에 따라 달라질 수 있으니 관련 싸이트에서 확인하기를 바란다.
- matplotlib 설치 방법: https://matplotlib.org/users/installing.html
- seaborn 설치 방법: https://seaborn.pydata.org/installing.html
II. 기본적인 시각화 문법
- 시각화 문법은 아래와 같다.
import seaborn as sns
sns.name_of_graph(x, y, dataset, options)
- 우선 Sample 데이터를 불러와서 데이터를 확인해보자.
import seaborn as sns
from tabulate import tabulate
sns.set()
tips = sns.load_dataset("tips")
print(tabulate(tips.head(), tablefmt="pipe", headers="keys"))
| | total_bill | tip | sex | smoker | day | time | size |
|---:|-------------:|------:|:-------|:---------|:------|:-------|-------:|
| 0 | 16.99 | 1.01 | Female | No | Sun | Dinner | 2 |
| 1 | 10.34 | 1.66 | Male | No | Sun | Dinner | 3 |
| 2 | 21.01 | 3.5 | Male | No | Sun | Dinner | 3 |
| 3 | 23.68 | 3.31 | Male | No | Sun | Dinner | 2 |
| 4 | 24.59 | 3.61 | Female | No | Sun | Dinner | 4 |
- 위 데이터는 매우 간단한 테이블일 수 있지만, 다변량의 그래프를 하나의 이미지 안에서 어떤 형태로 그래프를 작성할 것인지 선택하는 것은 쉽지 않다.
sns.relplot(x="total_bill", y="tip", col="time",
hue="smoker", style="smoker", size="size",
data=tips);
/img/python_edu/01_basic/Step1_Visualisation/Chapter_1_2_Python_visualisation_seaborn
-
소스코드에 대한 설명을 간단히 하면 아래와 같다.
relplot
은 다변량의 그래프를 작성할 때 사용한다.col
대신row
를 사용해도 된다. 여기에는categorical(=범주형)
자료가 온다. (만약 값이 많으면..?)hue
는 그래프에 표현되는 색상을 의미한다.style
은 범주형 자료를 다르게 표현할 때 사용한다. (예: 동그라미, 별표 등) 대개 범주형 데이터를 지정한다.size
자료의 크기를 의미한다.
-
이쯤되면 여기에서 질문을 해야 한다. 강사는 위 코드를 어떻게 다 알고 있나요?
III. 프로그래밍 초보자를 위한 공식문서 사용법
- 초보자들이 흔히 하는 실수
- 위 소스코드를 외워서 쓰려는 습관 (다 외울 수 있을까?)
- 자주 사용하면 반복적인 것은 자연스럽게 외워진다.
- 그런데, 회사에서 또는 고객사에서
seaborn
대신에bokeh
패키지를 사용하라고 한다면? (또 외워야 하는건가?)
(1) Tips
- 첫째, 소스코드를 의미없이 무작정 외우지 않는다.
- 둘째, 본인이 사용하는 패키지의 문서는 항시 들고 다닌다.
- 셋째, 공부하다가 발견한 가독성 및 성능좋은 소스코드는 본인만의 개발블로그나 문서화하는 습관을 들인다.
- 넷째, 항상 배운 것으로 그치지 않고, 다른 데이터셋으로 한번더 적용해본다.
- 문제는? 공식문서는 한글을 지원하지 않는다! (But, 매우 훌륭한 번역기가 매우 많이 있다)
(2) 기존에 배운 학습 응용 방법
- 먼저 위 코드를 복사해서 적당한 위치에 붙여 넣는다.
sns.relplot(x="total_bill", y="tip", col="time",
hue="smoker", style="smoker", size="size",
data=tips);
import seaborn as sns
dots = sns.load_dataset("dots")
print(dots.head(5))
align choice time coherence firing_rate
0 dots T1 -80 0.0 33.189967
1 dots T1 -80 3.2 31.691726
2 dots T1 -80 6.4 34.279840
3 dots T1 -80 12.8 32.631874
4 dots T1 -80 25.6 35.060487
sns.relplot(x='time',
y = 'firing_rate',
col = 'choice',
hue = 'align',
kind = 'line',
data = dots)
<seaborn.axisgrid.FacetGrid at 0x7ff1aabafc18>
- 이제 여러분 차례입니다. Happy To Code
IV. Reference
An introduction to seaborn. Retrieved from https://seaborn.pydata.org/generated/seaborn.relplot.html#seaborn.relplot.
IV. What’s Next
- 이번 시간에는 간단하게 Python에서 실행하는
matplotlib
시각화의 기본적인 문법에 대해 배웠습니다. - 다음 시간에는
seaborn
에 대해서 배워보도록 합니다.