[33일차]seaborn plot 종류 - Displot (Distributions)

김준석·2024년 1월 11일
0

displot()

변수 하나 혹은 두 개의 분포를 나타낼 때 displot에 포함된 여러 플롯들을 사용하면 아주 효과적이다.

기본적으로 히스토그램이 많이 사용된다.

sns.histplot(penguins, x="flipper_length_mm") #히스토그램을 만드는 함수
sns.displot(penguins, x="flipper_length_mm") #이것도 히스토그램 만듦

histogram

  • 막대너비 조절 : binwidth= 또는 bins= 를 사용
sns.displot(penguins, x="flipper_length_mm", binwidth=3)#너비를 3으로 
sns.displot(penguins, x="flipper_length_mm", bins=20)#20개로 줌

  • 막대 위치 조정 : discrete=True x축 값 중앙에 막대가 위치할 수 있도록 조정.
  • 막대 사이 공간 조정 : shrink= 0~1사이를 넣어줌.
sns.displot(tips, x="size", discrete=True, shrink=.7)


하나의 히스토그램에 여러 데이터 넣기 hue=

hue= 인자를 통해 추가 변수를 히스토그램에 추가할 수 있다.

sns.displot(penguins, x="flipper_length_mm", hue="species")

hue="species" species컬럼 은 3가지의 값이 있다. 이 값들은 flipper_length_mm 컬럼의 값 많큼 x축에 들어가게 된다.

y축에 아무것도 넣지 않는다면 count로 된다.

위처럼 막대간 겹치는 부분은 아래 인자를 사용하면 된다.

element=step : 선들이 이어지는 형태

multiple = stack : 작은바가 큰바 뒤에 오는 형식

multiple=dodge : 변수가 카테고리형인 경우 / 겹치지 않게 두개의 바플롯 생성⭐

한번 써보장

element=step : 선들이 이어지는 형태

sns.displot(penguins, x="flipper_length_mm", hue="species",
element="step")

multiple = stack : 작은바가 큰바 뒤에 오는 형식

sns.displot(penguins, x="flipper_length_mm", hue="species",
multiple="stack")

multiple=dodge : 변수가 카테고리형인 경우

두개의 바로 나눠서 비교해줌.

sns.displot(tips, x="size", discrete=True, shrink=.7,
hue='sex', multiple='dodge')


여러 플롯 그리기

relplot처럼 displot또한 col,row를 이용해 여러 플롯으로 나눠 그릴 수 있다.

sns.displot(penguins, x="flipper_length_mm", col="sex")

col='sex' : sex에는 male과 Female 값이 있기 때문에 두가지로 나눠짐.

이때 stat=’probability’ 를 이용 그래프를 겹치게 하여 빈도의 비율값을 볼 수 있다.

sns.displot(penguins, x="flipper_length_mm", hue="species",
stat="probability")

곡선 플롯 - kdeplot()

부드러운 곡선으로 이루어진 플롯

아래 코드는 같은 결과물을 보여준다.

sns.displot(penguins, x='flipper_length_mm', kind='kde')
sns.kdeplot(penguins, x="flipper_length_mm")

  • bw_adjust를 이용해 곡선을 세밀하게 혹은 더 부드럽게 표현이 가능하다.
sns.displot(penguins, x="flipper_length_mm", kind="kde",
bw_adjust=.25)

kde의 hue 인자!

이것도 hue 인자를 통해 변수간 분포를 더 세밀하게 시각화 할 수 있다!

sns.displot(penguins, x="flipper_length_mm", hue="species",
kind="kde")

species 컬럼의 값 3개를 한번에 보는 코드..!

이때 fill=True 인자를 통해 색을 칠할 수 있다.

sns.displot(penguins, x="flipper_length_mm", hue="species",
kind="kde", fill=True)


heatmap히트맵 / contour 등고선

히트맵

변수가 두개가 들어갈 때 y에 2번째 변수를 넣으면 heatmap을 그려준다.

 sns.displot(penguins, x="bill_length_mm", y="bill_depth_mm")

  • cbar= : 컬러바 유무(True / False)
  • binwidth= x축과y축 간의 크기를 조절
sns.displot(penguins, x="bill_length_mm", y="bill_depth_mm",
binwidth=(2, .5), cbar=True)

등고선

이때 kine= 를 ‘kde’(선형)로 설정하면 등고선을 그려줌.

sns.displot(penguins, x="bill_length_mm", y="bill_depth_mm",
kind="kde")

  • 선의 간격을 조절 할 수도 있다.
    • thresh : 각 측마다의 최소 간격
      levels : 층 수

      sns.displot(penguins, x="bill_length_mm", y="bill_depth_mm",
      kind="kde", thresh=.2, levels=4)
    levels 층 수는 리스트 형태로 내가 직접 설정할 수 있다.
    sns.displot(penguins, x="bill_length_mm", y="bill_depth_mm",
    kind="kde", levels=[.01, .05, .1, .8])
    업로드중..

0개의 댓글