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")

1.kind키워드에 box라는 문자열을 전달하면 결과물을 box plot으로 표현 가능
# kind - box
sns.catplot(data=df, x="age", y="class",kind="box")

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,
)

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,
)

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)
