[33일차]seaborn plot 종류 - Catplot (Categorical)_strip plot

김준석·2024년 1월 11일
0

relplot() 에서 다루고자 하는 변수가 categorical(혹은 이산형 : 일정한 원소값을 같는. 요일같이)데이터인 경우 산점도나 선형플롯대신 catplot()을 사용하는 것이 더 효과적이다.

catplot() 에서 사용 가능한 플롯들은 크게 3가지로 나뉜다.

  • 범주형 산점도 : strip plot, swarm plot
  • 범주형 분포도 : box plot, violin plot
  • 범주형 추정도표 : bar plot, point plot

strip plot

catplot의 기본이 되는 플롯으로

한쪽 변수가 categorical 데이터인 산점도라고 이해하면 된다.

한 범주에 속하는 모든 점이 범주형 변수에 해당하는 축을 따라 동일한 위치에 있게 된다.

sns.catplot(data=tips, x='day', y='total_bill')

이때, jitter= 인자를 사용해서 점들이 좌우로 퍼진 정도를 조절 또는 비활성화 할 수 있다.

sns.catplot(data=tips, x="day", y="total_bill", jitter=.3)
sns.catplot(data=tips, x="day", y="total_bill", jitter=False)


swarm plot

catplot에서 점들이 붙지 않게 만드는 것.

  • 상대적으로 데이터 수가 적은 경우에만 잘 작동한다.
  • 관측치 분포를 더 잘 표현할 수 있다.
  • catplot 에서 kind= 인자를 ‘swarm’ 이라고 넣으면 swarm 플롯이 나온다.
sns.swarmplot(data=tips, x="day", y="total_bill")
sns.catplot(data=tips, x="day", y="total_bill", kind="swarm")

관계형 도표와 마찬가지로 hue 인자를 사용하여 다른 값을 넣어줄 수 있다.

(size나 style은 지원되지 않음)

sns.catplot(data=tips, x="day", y="total_bill", hue="sex",
kind="swarm")

똑같은 색의 점들이 sex의 값에 따라 색이 달라짐!


strip plot 활용-1

데이터에 pandas Categorical 데이터 유형이 있는 경우 조건을 달 수도 있다.

.dtype 을 이용하면 확인이 가능하다.

tips['day'].dtype

이런 유형인 경우에 아래와 같이 쓸 수 있다.

tips데이터에서 size컬럼이 3이아닌 것.

sns.catplot(data=tips.loc[tips['size']!=3], x="size",
y="total_bill")

strip plot 활용-2

order= 인자를 통해 x축에 나오는 순서를 변경할 수 있다.

smoker 라는 컬럼은 Yes, No 라는 데이터가 있다.
이를 catplot으로 플롯을 만들면 x축에는 Yes, No 순서로 기입이 될 것 이다.

하지만 order= 인자를 쓴다면 아래와 같이 표현 가능!

sns.catplot(data=tips, x="smoker", y="tip", order=["No",
"Yes"])

0개의 댓글