Matplotlib - catplot

category
URL
date
Jan 27, 2023
slug
Matplotlib-catplot
author
status
Public
tags
Playdata_Python
summary
Matplotlib - catplot
type
Post
thumbnail
updatedAt
Jan 27, 2023 06:42 AM

catplot()

  • categorical plot인 catplot은 axes-level(row,col)까지 분류를 나눌 수 있다.
  • catplot은 카테고리화를 더 세분화해서 작업할 수 있는 플롯
  • kind 키워드 인수를 사용하면 axes-level에 사용할 그래프의 유형을 선택할 수 있다.
  • kind를 선택핞고 catplot()의 결과를 살펴보면 jittered strip plot의 결과를 얻을 수 있다.
  • jittered strip plot은 각 축을 기준하여 데이터의 분포를 점으로 표현 → 이때 점들이 최대한 겹치지않도록 세로 방향으로 무작위로 위치를 찍어주는 플롯.
# catplot()
df = sns.load_dataset("titanic")
sns.catplot(data=df, x="age", y="class")
notion image
 
1.kind키워드에 box라는 문자열을 전달하면 결과물을 box plot으로 표현 가능
# kind - box
sns.catplot(data=df, x="age", y="class",kind="box")
notion image
2.kind를 violin으로 가능
  • 커널 밀도 히스토그램을 그려줌(모양이 바이올린 같다하여 violin plot)
  • hue를 sex column에 따라 분류했고 split 키워드 인수에 True 값을 전달 했기 때문에 가운데를 기준으로 성별에 따라 커널 밀도 함수가 표현되어 비댕칭되게 표현되고 있음.
# kind = violin

sns.catplot(
    data=df, x="age", y="class", hue="sex",
    kind="violin", bw=.25, cut=0, split=True,
)
notion image
 
3.kind를 bar plot
  • 주목할 점은 axes가 2개인 것처럼 표현 가능
  • col 키워드 인수에 sex column name을 설정하였기에 sex 분류에 따라 그래프가 col 단위로 쪼개짐
  • axes-level 단위로 분류 가능
# kind - bar plot

sns.catplot(
    data=df, x="class", y="survived", col="sex",
    kind="bar", height=4,aspect=.6,
)
notion image
 
4.연속해서 그래프를 그리는 메서드
  • 연속해서 그래프를 그리는 메서드를 여러 차례 사용하면 그에 해당하는 그래프 레이어가 겹치게 보이게 됨
  • swarmplot은 jittered strip plot과 흡사해 보이지만 다르다.
  • jittered strip plot은 병렬한 방향이지만 정해진 범위 내에 랜덤하게 찍어서 최대한 겹치지 않게 한 방식이고. swarmplot은 완전히 겹치지 않게 병렬로 점을 찍어 표현하는 방식
# 연속해서 그래프를 그리는 메서드

sns.catplot(data=df, x="age", y="class", kind="violin", color=".9", inner=None)
sns.swarmplot(data=df, x="age", y="class", size=3)
notion image