relplot()
에서 다루고자 하는 변수가 categorical(혹은 이산형 : 일정한 원소값을 같는. 요일같이)데이터인 경우 산점도나 선형플롯대신 catplot()
을 사용하는 것이 더 효과적이다.
catplot()
에서 사용 가능한 플롯들은 크게 3가지로 나뉜다.
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)
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의 값에 따라 색이 달라짐!
데이터에 pandas Categorical 데이터 유형이 있는 경우 조건을 달 수도 있다.
.dtype
을 이용하면 확인이 가능하다.
tips['day'].dtype
이런 유형인 경우에 아래와 같이 쓸 수 있다.
tips데이터에서 size컬럼이 3이아닌 것.
sns.catplot(data=tips.loc[tips['size']!=3], x="size",
y="total_bill")
order=
인자를 통해 x축에 나오는 순서를 변경할 수 있다.
smoker 라는 컬럼은 Yes, No 라는 데이터가 있다.
이를 catplot으로 플롯을 만들면 x축에는 Yes, No 순서로 기입이 될 것 이다.
하지만 order=
인자를 쓴다면 아래와 같이 표현 가능!
sns.catplot(data=tips, x="smoker", y="tip", order=["No",
"Yes"])