본문 바로가기
데이터 분석/시각화

[Seaborn] 8. Strip Plot(Jitter Plot) 그리기 (feat. stripplot)

by 부자 꽁냥이 2022. 8. 12.

 


안녕하세요~ 꽁냥이에요. 이번 포스팅은 Seaborn에서 stripplot을 이용하여 Strip Plot(Jitter Plot)을 그리는 방법을 소개하려고 합니다. 

 

- 목차 -

1. Seaborn stripplot 기본

2. Seaborn stripplot 다양한 기능


   1. Seaborn stripplot 기본

stripplot은 기본적으로 x인자 또는 y인자에 수치형 원소를 갖는 배열(리스트, 튜플, Pandas 시리즈 등)을 넣어주게 됩니다. 이때 x인자에 넣어주면 수평, y인자에 넣어주면 수직으로 stripplot을 그리게 됩니다.

 

import seaborn as sns
sns.set_theme(style='whitegrid')
tip_df = sns.load_dataset('tips')
sns.stripplot(x=tip_df['total_bill']) ## 수평 Strip Plot
# sns.stripplot(y=tip_df['total_bill']) ## 수직 Strip Plot

 

수평 Strip Plot(왼쪽), 수직 Strip Plot(오른쪽)

stripplot에는 색상, 마커 모양 등 Strip Plot을 꾸밀 수 있는 여러 가지 인자가 있습니다. 아래 코드를 통해서 확인해보세요. 이외에 다른 인자가 어떤 것들이 있는지 궁금하신 분들은 여기를 참고해주세요.

 

import seaborn as sns
sns.set_theme(style='whitegrid')
tip_df = sns.load_dataset('tips')
## 수직 Strip Plot
sns.stripplot(y=tip_df['total_bill'],
              jitter=0.2, ## 수평으로 퍼지는 정도,
              color='red', ## 마커 색상
              size=7, ## 마커 사이즈
              marker='*' ## 마커 모양
             )


   2. Seaborn stripplot 다양한 기능

1) Pandas 데이터프레임 지원

데이터가 Pandas 데이터프레임 형식으로 되어있다면 Seaborn으로 시각화하기가 매우 좋습니다.

 

stripplot의 data인자에 주어진 데이터프레임을 넣고 x(또는 y) 인자에 칼럼명을 지정합니다. 당연히 칼럼명은 데이터프레임의 칼럼에서 정의되어 있어야 합니다.

 

import seaborn as sns
sns.set_theme(style='whitegrid')
tip_df = sns.load_dataset('tips')
 
## 수직 Strip Plot
ax = sns.stripplot(data=tip_df, y='total_bill')

 

 

이 상태에서 x인자를 추가하면 여러 개 Strip Plot을 그릴 수 있습니다. 아래 코드는 일별 total_bill에 대한 Strip Plot을 그린 것입니다. 이때 Order 인자를 사용하여 요일 순서를 바꿀 수 있습니다.

 

ax = sns.stripplot(data=tip_df, x='day', y='total_bill', 
                    order=['Sun', 'Sat', 'Fri', 'Thur'])

 


2) 범주를 색상으로 표현(hue, hue_order)

hue 인자를 사용하면 좀 더 세분화된 Strip Plot을 그릴 수 있습니다. hue 인자에 범주형 칼럼명(데이터프레임 속 칼럼 이어야 함)을 넣어주면 해당 범주에 대한 세분화된 Strip Plot을 그릴 수 있습니다. 이때 hue_order를 이용하면 범주의 색상 적용 순서를 원하는대로 바꿀 수 있어요. 그리고dodge을 True로 하면 hue에서 지정한 칼럼을 대상으로 점들을 한 곳에 모아 Strip Plot을 그려주고 False인 경우 분리해서 Strip Plot을 그려줍니다.

 

여기서는 추가적으로 palette인자에 컬러맵을 지정했습니다. palette에서 사용할 수 있는 컬러 맵은 여기를 참고해주세요.

 

ax = sns.stripplot(data=tip_df, x='day', y='total_bill',
                 order=['Sun', 'Sat', 'Fri', 'Thur'],
                 hue='time',
                 hue_order=['Dinner', 'Lunch'],
                 palette='cool',
                 dodge=False, ## 점을 섞어서 표현 True 분리해서 표현
                )

 

dodge=False (왼쪽), dodge=True(오른쪽)


이번 포스팅에서는 Seaborn을 이용하여 Strip Plot을 그리는 방법에 대해서 알아보았습니다. 사실 꽁냥이는 Strip Plot을 잘 안 쓰는데 몇몇 동료 분들이 쓰는 것을 보았는데 특정 상황에서는 쓸만하더라고요. 그래서 오늘 배운 내용 알아두시면 쓸만할 거예요. 오늘도 꽁냥이 글 읽어주셔서 감사합니다. 안녕히 계세요.

 


댓글


맨 위로