시각화 도구
우리가 사용하려는 데이터는 어떻게 생겼는지 보여주는 도구.
데이터 시각화를 못하면 데이터 분석 힘듦!
matplotlib
- pyplot 객체를 사용하여 데이터를 표시
- pyplot 객체에 그래프들을 쌓은 후 flush(show함수) (보여주고 나면 비움)
- Graph 는 기본 figure 객체에 생성됨
- pyplot 객체 사용시 기본 figure 에 그래프가 그려짐
- plot 은 라인 그래프이므로 쌍 안맞추면 이상하게 그려짐 → X 순서대로 Y 값 적을 것
- plot 만 해도 그려지긴 함, 그래도 show 쓰자
import matplotlib.pyplot as plt
X = range(100)
Y = range(100)
plt.plot(X,Y)
plt.show()

- 기본 figure 객체 외에 따로 객체를 저장해서 사용 가능
- subplot 은 grid 구조로 할당 가능
fig = plt.figure()
fig.set_size_inches(10,3)
ax_1 = fig.add_subplot(1,2,1)
ax_2 = fig.add_subplot(1,2,2)
ax_1.plot(X_1, Y_1, c="b")
ax_2.plot(X_2, Y_2, c="g")
plt.show()

여러 속성들
- Set color
- plot 의 속성으로 c or color 설정 가능, rgb 나 영소문자 심벌 사용가능
X_1 = range(100)
Y_1 = [value for value in X]
X_2 = range(100)
Y_2 = [value + 100 for value in X]
plt.plot(X_1, Y_1, color="#000000")
plt.plot(X_2, Y_2, c="c")
plt.show()

- Set linestyle
- Set title
- latex 타입의 표현도 가능 (수식 표현 가능)
- plt.title('tt')
- Set legend
- text 나 annotation 도 설정 가능
- 저장
- savefigure 사용
- show (flush) 전에 해줘야 함
scatter
- 산전도 그리는 함수
- marker 는 scatter 모양 설정
- 다 검색해서 쓰면 됨
bar
- 막대 그래프 그려주는 함수
- 가로 형태의 hbar 함수도 있음
histogram
- 분포차트 그려주는 함수
- hist 함수 사용, bins 속성 개수만큼 칸을 나눔
boxplot
- 알아둘 필요 있음 (박스플롯 자체 의미도)
- 데이터에 대한 분포를 박스 형태로 그려줌, 몰린 정도와 범위까지 (아웃라이어도)
- boxplot 함수 사용
seaborn
- statistical data visualization (통계적 데이터 시각화)
- matplotlib 를 더 쉽게 다루도록 도와줌 (matplotlib 의 wrapper)
- 기존 matplotlib 에 기본 설정을 추가
- 복잡한 그래프를 간단하게 만들 수 있는 wrapper
- 간단한 코드 + 예쁜 결과
- load_dataset 할 때 "tips" 와 "fmri" 많이 씀 (기본 데이터셋)
- import seaborn as sns 로 함
basic plot
- lineplot
- 주 데이터 선과 분포가 위아래로 나옴
- hue 속성에 카테고리를 넣으면 카테고리 별로 나눠줌
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(style="darkgrid")
tips = sns.load_dataset("tips")
fmri = sns.load_dataset("fmri")
sns.set_style("whitegrid")
sns.lineplot(x="timepoint", y="signal", data=fmri)

- scatterplot
- 기본 scatter 와 거의 동일
- hue 사용 가능
- regplot
- scatterplot 에다가 regression line (선형회귀선) 도 그려줌
- countplot
- 카테고리 데이터를 위해 쓰고 카테고리 데이터 개수를 세어줌
- barplot
- distplot
- violinplot
- 바이올린 플롯 (일반적으로 많이 사용), 분포 보기 편함
- swarmplot
- 기타 여러 플롯 많음
참조