여러 변수 간의 관계를 검사하기 위한 데이터 집합 지향 API
범주형 변수를 사용하여 관측치 또는 집계 통계량을 표시하기 위한 전문적인 지원
일변량 또한 이변량 분포를 시각화
하고 데이터의 부분 집합 간 비교하기 위한 옵션
서로 다른 종류의 종속 변수에 대한 선형 회귀 모형의 자동 추정 및 표시
복잡한 데이터셋의 전체 구조에 대한 편리한 보기
복잡한 시각화를 쉽게 구축할 수 있는 다중 플롯 그리드 구조를 위한 높은 수준의 추상화
import matplotlib.pyplot as plt import pandas as pd from scipy import stats import matplotlib as mpl import numpy as np import seaborn as sns sns.__version__ sns.set(style="whitegrid")
penguins = sns.load_dataset("penguins") penguins
sns.relplot(x="bill_length_mm", y="bill_depth_mm", data=penguins)
sns.relplot(x="flipper_length_mm", y="body_mass_g",data=penguins);
sns.relplot(x="bill_length_mm", y="bill_depth_mm", hue="bill_length_mm", data=penguins);
sns.relplot(x="flipper_length_mm", y="body_mass_g", hue="species", style="species", data=penguins)
sns.relplot(x="flipper_length_mm", y="body_mass_g", hue="species", style="island", data=penguins);
sns.relplot(x="flipper_length_mm", y="body_mass_g", hue="species", col="island", data=penguins)
sns.relplot(x="bill_length_mm", y="bill_depth_mm", hue="species", col = "island", data=penguins);
sns.relplot(x="bill_length_mm", y="bill_depth_mm", hue="flipper_length_mm", data=penguins);
sns.relplot(x="bill_length_mm", y="bill_depth_mm", hue="body_mass_g", data=penguins);
sns.relplot(x="bill_length_mm", y="bill_depth_mm", hue="body_mass_g", size="body_mass_g", sizes=(10,300), data=penguins);
flights = sns.load_dataset("flights") flights
sns.relplot(x="year", y="passengers", kind="line", data=flights)
dots = sns.load_dataset('dots') dots
sns.relplot(x="time", y="firing_rate", kind="line", data=dots);
sns.relplot(x="time", y="firing_rate", ci= None, kind="line", data=dots);
sns.relplot(x="time", y="firing_rate", ci= "sd", kind="line", data=dots);
sns.relplot(x="time", y="firing_rate", estimator=None, kind="line", data=dots);
sns.relplot(x="time", y="firing_rate", hue="choice", kind="line", data=dots);
sns.relplot(x="time", y="firing_rate", hue="align", kind="line", data=dots);
sns.relplot(x="time", y="firing_rate", hue="align", style="choice", kind="line", data=dots);
sns.relplot(x="time", y="firing_rate", hue="align", style="choice", dashes=False, markers=True, kind="line", data=dots);
sns.relplot(x="time", y="firing_rate", hue="align", col="choice", kind="line", data=dots);
sns.relplot(x="time", y="firing_rate", style="choice", kind="line", data=dots.query("align =='sacc'"));
sns.relplot(x="time", y="firing_rate", hue = "coherence", style="choice", kind="line", data=dots.query("align =='sacc'"));
sns.relplot(x="time", y="firing_rate", hue = "coherence", col="choice", kind="line", data=dots.query("align =='sacc'"));
fmri = sns.load_dataset("fmri") fmri
sns.relplot(x="timepoint", y="signal", kind="line", data=fmri)
sns.relplot(x="timepoint", y="signal", sort=False, kind="line", data=fmri)
sns.relplot(x="timepoint", y="signal", style="region", size="event", kind="line", data=fmri);
sns.relplot(x="timepoint", y="signal", hue="subject", style="region", size="event", kind="line", data=fmri);
sns.relplot(x="timepoint", y="signal", hue="subject", col="region", size="event", kind="line", data=fmri);
palette = sns.cubehelix_palette(n_colors=14, light=0.8) sns.relplot(x="timepoint", y="signal", hue="subject", col="region", size="event", palette=palette, kind="line", data=fmri);
palette = sns.cubehelix_palette(n_colors=14, light=0.8) sns.relplot(x="timepoint", y="signal", hue="subject", col="region", palette=palette, kind="line", data=fmri.query("event == 'cue'"));
sns.relplot(x="timepoint", y="signal", hue="subject", col="region", row="event", palette=palette, kind="line", data=fmri);
sns.relplot(x="timepoint", y="signal", hue="event", style="event", col="subject", col_wrap =4, linewidth=3, kind="line", data=fmri.query("region == 'parietal'"));
tdf = pd.DataFrame(np.random.randn(40,4), index=pd.date_range('2022-12-29', periods=40), columns=['A', 'B', 'C', 'D']) tdf
sns.relplot(kind="line", data=tdf);
g = sns.relplot(kind="line", data=tdf); g.fig.autofmt_xdate()
g = sns.relplot(kind="line", data=tdf['A']); g.fig.autofmt_xdate()
stripplot() (with kind="strip", the default)
swarmplot() (with kind="swarm")
penguins
sns.catplot(x="species", y="body_mass_g", data=penguins)
sns.catplot(x="species", y="body_mass_g", jitter = False, data=penguins)
sns.catplot(x="species", y="body_mass_g", kind="swarm", data=penguins)
sns.catplot(x="species", y="body_mass_g", hue="sex", kind="swarm", data=penguins)
sns.catplot(x="sex", y="body_mass_g", hue="species", kind="swarm", data=penguins)
sns.catplot(x="sex", y="body_mass_g", hue="species",kind="swarm", order=["Female sex", "Male"], data=penguins)
sns.catplot(x="body_mass_g", y="species", hue="island",kind="swarm", data=penguins)
sns.catplot(x="species", y="body_mass_g", hue="sex",col="island", aspect=.7, kind="swarm",data=penguins)
boxplot() (with kind="box")
boxenplot() (with kind="boxen")
violinplot() (with kind="violin")
sns.catplot(x="species", y="body_mass_g", kind="box", data=penguins)
sns.catplot(x="species", y="body_mass_g", hue="sex", kind="box", data=penguins)
sns.catplot(x="species", y="body_mass_g", hue="sex", kind="box", dodge=False, data=penguins)
sns.catplot(x="species", y="body_mass_g", col="sex", kind="box", dodge=False, data=penguins)
sns.catplot(x="body_mass_g", y="species", row="sex", kind="box", height=2, aspect=4, data=penguins)
iris = sns.load_dataset("iris") iris
sns.catplot(kind="box", data=iris)
sns.catplot(kind="box", orient='h', data=iris)
sns.catplot(x="species",y="sepal_length", kind="box", data=iris)
sns.catplot(x="petal_length",y="species", kind="box", data=iris)
diamonds = sns.load_dataset("diamonds") diamonds
sns.catplot(x="cut", y="price", kind="boxen", data=diamonds)
sns.catplot(x="color", y="price", kind="boxen", data=diamonds)
sns.catplot(x="color", y="price", kind="boxen", data=diamonds.sort_values("color"))
sns.catplot(x="clarity", y="price", kind="boxen", data=diamonds)
violinplot
: 커널 밀도 추정과 상자 도표 결합
penguins
sns.catplot(x="species", y="body_mass_g", hue="sex", kind="violin", data=penguins)
sns.catplot(x="species", y="body_mass_g", hue="sex", kind="violin", bw=.15, cut=0, data=penguins)
sns.catplot(x="species", y="body_mass_g", hue="sex", kind="violin", split = True, data=penguins)
sns.catplot(x="species", y="body_mass_g", hue="sex", kind="violin", inner="stick",split=True, data=penguins)
sns.catplot(x="species", y="body_mass_g", kind="violin", inner=None, data=penguins) sns.swarmplot(x="species", y="body_mass_g", color='k', size=3, data=penguins, ax=g.ax);
sns.catplot(kind="violin", data=iris)
sns.catplot(kind="violin", orient='h', data=iris)
sns.catplot(x="species", y="sepal_length", kind="violin", data=iris);
sns.catplot(x="petal_length", y="species", kind="violin", data=iris);
barplot() (with kind="bar")
pointplot() (with kind="point")
countplot() (with kind="count")
mpg = sns.load_dataset('mpg') mpg
sns.catplot(x="origin", y="mpg", hue="cylinders", kind="bar", data=mpg);
sns.catplot(x="origin", y="horsepower", hue="cylinders", kind="bar", palette="ch:.20",data=mpg);
sns.catplot(x="cylinders", y="horsepower", kind="bar", palette="ch:.20", edgecolor='.6', data=mpg);