Data Viz : Seaborn
Seaborn
Seaborn
은matplotlib
에 확장성을 부여해준 라이브러리입니다.- 개인적으로는 단순히
matplotlib
만 쓰는 것보다는seaborn
을 위주로 많이 사용하는 편입니다. seaborn
은matplotlib
에서보다 좀 더 디테일한 option을 부여해서 그래프와 같은 데이터 시각화가 가능하기 때문입니다.
1
import seaborn as sns
seaborn
은 일반적으로 alias를sns
로 선언합니다.
여러가지 plot
Basic plot
1
2
3
4
5
6
7
8
9
10
11
12
fig, axes = plt.subplots(1, 3, figsize=(18, 4))
plots = [sns.countplot, sns.lineplot, sns.scatterplot]
kws = [
{'x':'gender', 'data':student},
{'data':flights_wide},
{'x':'math score', 'y':'reading score', 'data':student, 'hue':'race/ethnicity',}
]
for idx, ax in enumerate(axes.flatten()):
plots[idx](**kws[idx], ax=ax)
plt.show()
seaborn
은 기존의matplotlib
과 같이barplot
,lineplot
,scatterplot
과 같은 기능들도 지원하지만seaborn
의 가장 좋은 기능은 통계적 시각화가 가능하다는 것입니다.
Statistical Plot
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
fig, axes = plt.subplots(2, 4, figsize=(24, 8))
plots = [sns.countplot, sns.boxplot, sns.violinplot, sns.histplot, sns.kdeplot, sns.ecdfplot, sns.rugplot]
kws = [
{'x':'gender', 'hue':'race/ethnicity', 'hue_order':sorted(student['race/ethnicity'].unique()) },
{'x':'writing score'},
{'x':'race/ethnicity', 'y':'math score', 'hue':'gender', 'order':sorted(student['race/ethnicity'].unique())},
{'x':'writing score'},
{'x':'writing score'},
{'x':'writing score'},
{'x':'writing score'}
]
for idx, ax in enumerate(axes.flatten()):
if idx == 7:
continue
plots[idx](data=student, ax=ax, **kws[idx])
axes.flatten()[-1].axis('off')
plt.show()
seaborn
은countplot
,boxplot
,violinplot
,histplot
,kdeplot
,ecdfplot
,rugplot
등 다양한 종류의 통계적 지표를 표현해주는 시각화 메서드들이 있습니다.
Heatmap
1
2
3
4
5
6
fig, ax = plt.subplots(1,1 ,figsize=(7, 7))
sns.heatmap(heart.corr(), ax=ax,
vmin=-1, vmax=1, center=0,
cmap='coolwarm'
)
plt.show()
seaborn
의heatmap
입니다. 대체로 데이터 feature의 상관관계를 분석할 때 많이 사용합니다.- 기본
heatmap
은 시각적 효과가 좋지 않아서 약간의 수정을 진행하고coolwarm
을 사용하는 것이 좋습니다.
Comments powered by Disqus.