컨디션 난조 ,,
컨디션 관리도 실력이라더라
matplotlib보다 예쁜 시각화 라이브러리라고만 알고 있었던 Seaborn이다.
일단 연속적인 그래프부터 알아보자.
import seaborn as sns
sns.set_theme(style="whitegrid")
df = sns.load_dataset("titanic")
sns.countplot(x=df["class"])
order를 통해서 컬럼 이름을 정렬할 수 있다.
hue + (palette, color) + hue_order를 통해서 컬럼을 특정 색으로 보여줄 수 있다
matplotlib처럼 ax를 지정하고 인덱싱을 통해 그래프 위치를 지정해줄 수 있다.
분포를 살피기 좋다.
df = sns.load_dataset("titanic")
sns.boxplot(x=df["age"])
sns.boxplot(data=df, x="fare", y="deck", hue="deck", dodge=False)
width
, linewidth
, fliersize
또한 수정이 가능하다.
df = sns.load_dataset("titanic")
sns.violinplot(x=df["age"])
데이터가 연속적이지 않기 때문에, 그래프를 보는 사람에게 오해를 불러일으킬 수 있다.
이러한 오해를 줄이기 위해 bw
, cut
, inner
의 수정을 통해 그래프를 수정한다.
# cut
sns.violinplot(data=df, x="age", y="alive", cut=0)
# bw
sns.violinplot(data=df, x="age", y="alive", bw=.15)
# inner
sns.violinplot(data=df, x="age", y="embark_town", inner="stick")
scale로 그래프의 폭을 조절하거나, split으로 두 데이터를 동시에 나타낼 수 있다.
# scale
sns.violinplot(data=df, x="deck", y="age", hue="alive", split=True)
다음은 불연속적인 그래프이다.
penguins = sns.load_dataset("penguins")
sns.histplot(data=penguins, x="flipper_length_mm")
bins와 binswidth으로 막대의 개수를 조정할 수 있다.
# bins
sns.histplot(data=penguins, x="flipper_length_mm", bins=30)
# binwidth
sns.histplot(data=penguins, x="flipper_length_mm", binwidth=3)
데이터에 따라 유용한 방식을 사용하면 된다.
연속확률밀도를 보여준다.
보통 내부에 색을 채워서(fill=True
)밀도라는 것을 알려준다.
tips = sns.load_dataset("tips")
sns.kdeplot(data=tips, x="total_bill")
multiple 옵션을 stack, layer, fill로 바꾸며 여러 데이터를 나타낼 방법을 수정할 수 있다. 하지만 fill 사용은 지양하고, layer 사용을 추천함.
cumulative=True
옵션을 통해 축적 분포를 확인할 수 있다.
2개 이상의 변수에 대한 결합 확률 분포를 확인할 수 있다.
데이터 간의 상관 관계를 파악하기에 좋다.
vminr과 vmax로 범위를 조정하고, center=0를 통해 색을 확실히 볼 수 있다.
또한 cmap를 수정하여 가독성을 높일 수 있다.
annot=True
를 통해 데이터의 실제 값을 볼 수 있고,
fmt
를 통해서 표현 형식 또한 지정할 수 있다.
linewidth를 추가해서 사각형들을 떨어트릴 수 있고,
square=True
를 통해서 정사각형으로 표현할 수 있다.
특정 부분만 보고 싶을 때는 mask를 씌워서 볼 수 있다.
한 데이터에 대한 두 그래프를 한 번에 나타낼 수 있다.
penguins = sns.load_dataset("penguins")
sns.jointplot(data=penguins, x="bill_length_mm", y="bill_depth_mm")
kind 파라미터의 수정을 통해 여러 그래프로 나타낼 수 있다.
(scatter, kde, hist, hex, reg, resid)
모든 feature에 대해서 다른 feature들에 대한 특징을 나타내준다.
한 눈에 feature 간의 관계를 파악할 수 있어 유용할 것 같다.
penguins = sns.load_dataset("penguins")
sns.pairplot(penguins)
이 그래프 또한 hue를 통해 각 그래프를 분리할 수도 있다.
cornur=True
를 통해 좌측 하단 삼각형 영역만 볼 수 있다.
캐릭터 간의 강함 비교, 아이폰/갤럭시 비교 등에 사용될 수 있다.
feature에 따라 면적이 달라질 수 있어, 면적을 데이터 값으로 오해하지 말자
feature 개수가 많다면 가독성이 떨어진다.
set_thetamin
, set_thetamax
를 통해 부채꼴로 표현할 수 있다.
polar coordinate
를 fill를 조절하여 Radar Chart를 사용할 수 있다.
set_thetagrids
를 통해 원하는 스텝씩 레이블을 달 수 있다.
결측치를 시각화 해주는 라이브러리.
bar chart로도 나타낼 수 있다.
계층적 데이터에 대한 시각화를 도와주는 라이브러리.
plotly 라이브러리를 사용하면 사각형 내부에 사각형을 포함시킬 수 있고,
interactive 시각화를 활용할 수도 있다.
솔직히 어떻게 써야할 지 감은 잘 안 온다
와플처럼 값을 쪼개서 볼 수 있고, 비율을 한 눈에 보기 쉽다.
아이콘을 사용해서 인포그래픽에도 유용하게 사용할 수 있다.(Pictogram Chart)
" 제일 예쁨 "
서두르지 말고,
한 발짝씩 나아가기