목차
1.import pandas, numpy, seaborn
2.load_dataset
3.seaborn 시각화
import pandas as pd
import numpy as np
import seaborn as sns
# 앤스컴 데이터셋 불러오기
df = sns.load_dataset("anscombe")
# 데이터셋 구조 파악
df.shape
>>> (44, 3)
- 기본 값 :
count
(count를 지정하지 않아도 자동 출력)- x 축 설정 : 범주형 데이터
sns.countplot(data=df, x="dataset")
# 축 변경 sns.countplot(data=df, y="dataset")
- 기본 값 :
평균
(평균을 지정하지 않아도 자동 출력)- x 축 설정 : 범주형 데이터
- 검은 막대 : 신뢰구간
# 신뢰구간 자동 출력 sns.barplot(data=df, x="dataset", y="x") # y축 이름은 임의로 정함
# 신뢰구간(ci) 제거 sns.barplot(data=df, x="dataset", y="x", ci=None)
sns.barplot(data=df, x=“dataset”, y=“x”, ci=“sd”)
에서 sd
: 표준편차n_boot
: 표본을 몇 개 할 것인지 (defalt : 1000)ci
넣으면 시간 오래 걸림 (표본 추출 과정 포함)boxplot
이용하면 분포 확인 가능)🔥 Groupby
# groupby 로 barplot의 x, y 평균 값 구하기 df.groupby("dataset")[["x", "y"]].mean()
dataset x y I 9.0 7.500909 II 9.0 7.500909 III 9.0 7.500000 IV 9.0 7.500909
- 기본 값 : 최솟값, 사분위값, 최댓값
- x 축 설정 : 범주형 데이터
- 검은 박스
♦︎
: 이상치# 상자 수염 그림 sns.boxplot(data=df, x="dataset", y="y")
Robust
함
- 기본 값 : 데이터프레임의 (x, y)
# pandas에 내장되어있는 기능 df.hist()
# bins : 막대 개수 (bins=1이면 막대 1개로 그림) df.hist(bins=1)
- 기본 값 :
count
(cout를 지정하지 않아도 자동 출력)히스토그램
은 전체 데이터에 대한 그래프라면,Displot
은 범주형 데이터별로 나누어 그래프를 그릴 수 있음# hue : 범주형 데이터를 색별로 나눔 (Group by 기능) # kde : 부드러운 곡선을 나타내줌 sns.displot(data=df, x="y", hue="dataset", kde=True)
# col : 범주형에 따라 서브플롯을 만들어 줌 sns.displot(data=df, x="y", hue="dataset", kde=True, col="dataset")
히스토그램
확인 가능히스토그램
과 kdeplot
이 합쳐진 그래프 그릴 수 있음
- 기본 값 :
Density
(밀도를 지정하지 않아도 자동 출력)- 부드러운 곡선을 그려주는 도구
- 범주형 데이터에 따라 색 부여 가능(
hue
)sns.kdeplot(data=df, x="y", hue="dataset")
커널 밀도 추정(kernal density estimation)
그래프히스토그램
이 절대량(count)을 표현한다면 kdeplot
은 상대량(비율)을 시각화
kdeplot
을 데칼코마니 하듯 마주보고 그린 값sns.violinplot(data=df, x="dataset", y="y")
# 축 변경 sns.violinplot(data=df, x="dataset", y="y", orient="h")
히스토그램
의 밀도를 나타낸 것을 마주보고 그린 값kdeplot
으로 그린 그래프를 x축을 기준으로 마주보고 그린 그래프
x
,y
에 입력한 데이터로 그려지는 그래프- 범주형 데이터에 따라 색 부여 가능(
hue
)sns.scatterplot(data=df, x="x", y="y", hue="dataset")
x
,y
에 입력한 데이터로 그려지는 그래프- 범주형 데이터에 따라 색 부여 불가능
- 반투명 영역 :
신뢰구간
sns.regplot(data=df, x="x", y="y")
scatterplot
에선 hue
지원하지만, regplot
에선 지원 Xlmplot
사용
x
,y
에 입력한 데이터로 그려지는 그래프- 범주형 데이터에 따라 색 부여 가능(
hue
)displot
처럼 데이터별 분포 확인 가능- 반투명 영역 :
신뢰구간
# col_wrap : 한 줄에 2개씩 정렬 sns.lmplot(data=df, x="x", y="y", hue="dataset", col="dataset", col_wrap=2)
dataset = IV
를 보면, 이상치 하나때문에 신뢰구간 넓게 형성됨앤스컴 콰르텟(Anscombe's quartet) 데이터로 여러 그래프를 그려보았다. 실제로 데이터를 시각화 해보니, 범주형 데이터에선 어떤 그래프가 필요한지 수치형 데이터에선 어떤 그래프가 필요한지 조금 이해할 수 있었다.
하지만, 내가 다뤄본 데이터가 아직 하나여서 데이터 활용도에 대한 감을 높이기 위해선 여러 사례를 봐야할 것같다고 느꼈다!
주어진 데이터를 효율적으로 사용하기 위해 ! 오늘보다 더 발전한 내일을 위해 ! 모르는 것은 해결될 때까지 찾아보고 내 것으로 만들 수 있도록 노력해야겠다 !! 🔥
만약, 내게 지금 당장 공정 데이터가 주어진다면? 어떤 그래프를 그리면 좋을 지 생각해보았다. 공정 데이터가 단순한다면 scatterplot
이나 lmplot
으로 입력변수에 따른 결과치의 관계를 알아보지 않을까??
이 부분에 대해선 공부를 하면서 더 고민해봐야겠다!