Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Seaborn 스트립 플롯(stripplot)에서 데이터 포인트 겹침 방지하는 방법 – Python 범주형 산점도 시각화

데이터 시각화가 중요한 이유

데이터 시각화는 복잡한 계산을 수행하거나 숫자를 일일이 살펴보지 않고도 데이터 안에서 어떤 일이 일어나고 있는지 직관적으로 파악할 수 있게 해주는 중요한 과정입니다. Seaborn은 데이터 시각화를 돕는 파이썬 라이브러리로, 세련된 커스텀 테마와 고수준 인터페이스를 함께 제공합니다.

범주형 변수에는 일반 산점도를 쓸 수 없다

일반적인 산점도(scatter plot)나 히스토그램은 다루려는 변수가 범주형(categorical)일 경우 적합하지 않습니다. 이럴 때 필요한 것이 바로 범주형 산점도(categorical scatterplot)입니다.

stripplot과 jitter 매개변수

'stripplot', 'swarmplot' 같은 플롯은 범주형 변수를 시각화할 때 활용됩니다. 'stripplot' 함수는 적어도 하나의 변수가 범주형일 때 사용되며, 데이터는 축 중 하나를 따라 정렬된 형태로 표현됩니다.

하지만 stripplot에는 한 가지 단점이 있습니다. 여러 데이터 포인트가 같은 위치에 몰리면서 서로 겹쳐 보일 수 있다는 점입니다. 이러한 겹침 현상을 피하려면 'jitter' 매개변수를 사용해야 합니다. jitter는 데이터에 약간의 무작위 노이즈(random noise)를 추가하여 범주형 축을 따라 값들의 위치를 조금씩 조정함으로써, 포인트가 겹치는 것을 자연스럽게 방지해 줍니다.

stripplot 함수 기본 구문

seaborn.stripplot(x, y, data, jitter = ...)

아래 예제를 통해 'jitter' 매개변수를 활용해 데이터셋의 범주형 변수를 시각화하는 방법을 살펴보겠습니다.

예제 코드

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
my_df = sb.load_dataset('iris')
sb.stripplot(x = "species", y = "petal_length", data = my_df, jitter = True)
plt.show()

출력 결과

Seaborn 스트립 플롯(stripplot)에서 데이터 포인트 겹침 방지하는 방법 – Python 범주형 산점도 시각화

코드 설명

  • pandas, seaborn, matplotlib 등 필요한 패키지들을 가져옵니다(import).
  • Seaborn의 'load_dataset' 함수를 사용하여 붓꽃(iris) 데이터셋을 로드합니다.
  • 불러온 데이터는 데이터프레임(my_df) 형태로 저장됩니다.
  • 'stripplot' 함수를 사용해 데이터를 시각화하며, x축에는 'species'(종), y축에는 'petal_length'(꽃잎 길이)를 지정합니다.
  • 데이터 값들이 서로 겹치지 않도록 추가 매개변수 'jitter'를 True로 설정합니다.
  • plt.show()를 호출하여 화면에 그래프를 출력합니다.