반응형
seaborn 이란
Seaborn은 Matplotlib에 기반하여 제작된 파이썬 데이터 시각화 모듈이다. 고수준의 인터페이스를 통해 직관적이고 아름다운 그래프를 그릴 수 있다
seaborn 사용법
import seaborn as sns
일반적으로 as를 sns로 한다.
간단한 예제
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib as mpl
import datetime as dt
import seaborn as sns
import json
iris = sns.load_dataset('iris')
titanic = sns.load_dataset('titanic')
tips = sns.load_dataset('tips')
flights = sns.load_dataset('flights')
seaborn 에서 제공해주는 데이터 들이다. 이걸 통해 여러 그래프를 그려보자.
# barplot
# 스타일 테마를 설정 5가지 (darkgrid, whitegrid, dark, white, ticks)
sns.set_style('whitegrid')
# 그래프 객체를 생성하기 위한 피겨 객체 얻어오기
fig = plt.figure(figsize=(15,5))
# 하나의 fig(도화지라고 생각하면 된다)에 3가지 그래프를 그리는 방법이다.
# subplot(행 열 인덱스) 라고 생각하면 된다.
area01 = fig.add_subplot(1,3,1)
area01 = fig.add_subplot(1,3,2)
area01 = fig.add_subplot(1,3,3)
plt.show()
# 스타일에 따라 다르게 나오는 fig
# 그래프 객체를 생성하기 위한 피겨 객체 얻어오기
fig = plt.figure(figsize=(15,5))
sns.set_style('ticks')
area01 = fig.add_subplot(1,3,1)
area02 = fig.add_subplot(1,3,2)
area03 = fig.add_subplot(1,3,3)
sns.barplot(ax=area01)
sns.barplot(ax=area02)
sns.barplot(ax=area03)
plt.show()
# 그래프 객체를 생성하기 위한 피겨 객체 얻어오기
fig = plt.figure(figsize=(15,5))
sns.set_style('dark')
area01 = fig.add_subplot(1,3,1)
area01.set_title('titanic survived - sex')
area02 = fig.add_subplot(1,3,2)
area03 = fig.add_subplot(1,3,3)
# 그래프 객체를 생성하기 위한 피겨 객체 얻어오기
fig = plt.figure(figsize=(15,5))
sns.set_style('dark')
area01 = fig.add_subplot(1,3,1)
area01.set_title('titanic survived - sex')
area02 = fig.add_subplot(1,3,2)
area03 = fig.add_subplot(1,3,3)
#성별에 따른 생존률
sns.barplot(x='sex' , y='survived',data=titanic, ax=area01)
sns.barplot(x='sex' , y='survived',hue='class',data=titanic, ax=area02) # hue로 그룹화가 된다.
sns.barplot(x='sex' , y='survived',hue='class',dodge=False ,data=titanic, ax=area03) # dodge 는 누적 bar 그래프를 만든다.
plt.show()
# countplot
카테고리 값별로 데이터 빈도를 보는 차트다.
y축을 그리지 않으며 해당 변수의 개수를 y축으로 사용한다.
# 그래프 객체를 생성하기 위한 피겨 객체 얻어오기
fig = plt.figure(figsize=(15,5))
sns.set_style('whitegrid')
area01 = fig.add_subplot(1,3,1)
area01.set_title('titanic class')
area02 = fig.add_subplot(1,3,2)
area02.set_title('titanic class - who')
area03 = fig.add_subplot(1,3,3)
area03.set_title('titanic class - who(stacked)')
#countplot은 y 축이없다 conut가 y로 되기 때문이다.
sns.countplot(x='class' ,data=titanic, ax=area01)
sns.countplot(x='class' ,hue='who',palette='Set3',data=titanic, ax=area02) # hue로 그룹화가 된다. palette로 그래프 타입을 고른다.
sns.countplot(x='class' ,hue='who',dodge=False ,palette='Set3',data=titanic, ax=area03) # dodge 는 누적 bar 그래프를 만든다.
plt.show()
#stripplot()
스카터 플롯처럼 모든 데이터를 점으로 시각화
jitter=True 설정하면 위치를 무작위로 바꿔서 겹치지 않게 해 준다.
sns.stripplot(x='day',y='total_bill',data=tips,jitter=True)
plt.title('요일별 팁을 준 횟수')
plt.show()
jitter의 유무
sns.stripplot(x='day',y='total_bill',data=tips)
plt.title('요일별 팁을 준 횟수')
plt.show()
# 그래프 객체를 생성하기 위한 피겨 객체 얻어오기
fig = plt.figure(figsize=(15,5))
sns.set_style('whitegrid')
area01 = fig.add_subplot(1,2,1)
area01.set_title('titanic class')
area02 = fig.add_subplot(1,2,2)
area02.set_title('titanic class - who')
#countplot은 y 축이없다 conut가 y로 되기 때문이다.
sns.stripplot(x='class',y='age',palette='Set3' ,data=titanic, ax=area01)
sns.swarmplot(x='class',y='age',palette='Set3' ,data=titanic, ax=area02) # hue로 그룹화가 된다. palette로 그래프 타입을 고른다.
plt.show()
# boxplot(), violinplot()
전체적인 퍼짐 정도를 한눈에 보기 좋게 보여준다.
sns.set_style('whitegrid')
fig = plt.figure(figsize=(15,5))
ax01 = fig.add_subplot(2,2,1)
ax01.set_title('box')
ax02 = fig.add_subplot(2,2,2)
ax02.set_title('box')
ax03 = fig.add_subplot(2,2,3)
ax03.set_title('violin')
ax04 = fig.add_subplot(2,2,4)
ax04.set_title('violin')
sns.boxplot(x='alive',y='age',data=titanic,ax=ax01)
sns.boxplot(x='alive',y='age',hue='sex',data=titanic,ax=ax02)
sns.violinplot(x='alive',y='age',data=titanic,ax=ax03)
sns.violinplot(x='alive',y='age',hue='sex',data=titanic,ax=ax04)
plt.show()
heatmap()
하나이상의 카테고리 값의 변화를 색깔 변화로 시각화하는 차트
sns.heatmap(table)
plt.show()
# annot
해당 수의 값을 넣어준다
#fmt
format을 나타낸다. 그래서 정수 값으로 값이 나오게 한다.
# linewidth
각 칸의 간격을 만든다.
예제)
반응형
'Base > Python' 카테고리의 다른 글
[Python] 파이썬으로 간단한 STT(음성인식) 개발해보기 (0) | 2023.03.22 |
---|---|
[Python] 간단한 코드로 TTS(음성인식) 개발해보기 (0) | 2023.03.22 |
[Python] 시각화 사용법 - folium 을 통한 지도 시각화 및 마커(marker) 찍기 (0) | 2020.10.22 |
[Python] 시각화 사용법 - matplotlib을 통한 box plot 그리기 (0) | 2020.10.20 |
[Python] matplotlib을 통한 bar plot 그리기 (0) | 2020.10.20 |