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

Python Seaborn으로 단일 수평 스웜 플롯(Swarm Plot) 그리는 방법

Seaborn 스웜 플롯(Swarm Plot)이란?

Seaborn의 스웜 플롯(Swarm Plot)은 범주형 데이터를 시각화하는 산점도(scatterplot)의 한 종류로, 각 데이터 포인트가 서로 겹치지 않도록 자동으로 조정되어 배치됩니다. 덕분에 데이터의 실제 분포와 밀도를 한눈에 파악할 수 있으며, 개별 관측값까지 명확하게 드러난다는 장점이 있습니다.

스웜 플롯은 seaborn.swarmplot() 함수를 사용해 그릴 수 있고, 수치형 변수를 하나만 지정하면 단일 수평 방향의 플롯이 생성됩니다.

데이터셋 준비

이번 예제에서는 크리켓 선수 정보가 담긴 CSV 파일인 Cricketers2.csv를 사용한다고 가정하겠습니다.

1. 필요한 라이브러리 임포트

먼저 시각화와 데이터 처리에 필요한 라이브러리를 임포트합니다.

import seaborn as sb
import pandas as pd
import matplotlib.pyplot as plt

2. CSV 파일 불러오기

Pandas의 read_csv() 함수를 사용해 CSV 파일의 데이터를 DataFrame으로 불러옵니다.

dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\Cricketers2.csv")

3. "Matches" 열로 스웜 플롯 그리기

x축에 "Matches"(경기 수) 열을 지정하여 단일 수평 스웜 플롯을 그립니다.

sb.swarmplot(x = dataFrame["Matches"])

전체 예제 코드

지금까지의 과정을 하나로 정리한 전체 코드는 다음과 같습니다.

import seaborn as sb
import pandas as pd
import matplotlib.pyplot as plt

# CSV 파일의 데이터를 Pandas DataFrame으로 불러오기
dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\Cricketers2.csv")

# 테마 설정
sb.set_theme(style="whitegrid")

# Matches 열을 기준으로 스웜 플롯 그리기
sb.swarmplot(x = dataFrame["Matches"])

# 그래프 화면에 표시
plt.show()

실행 결과

위 코드를 실행하면 경기 수(Matches)의 분포가 겹침 없이 표현된 수평 스웜 플롯이 출력됩니다. 각 점은 개별 선수를 나타내며, 점이 많이 모여 있는 구간일수록 해당 경기 수대의 선수가 많다는 의미입니다.

Python Seaborn으로 단일 수평 스웜 플롯(Swarm Plot) 그리는 방법

참고 사항

데이터 포인트 수가 매우 많으면 스웜 플롯을 그리는 데 시간이 오래 걸릴 수 있습니다. 이런 경우 size 매개변수로 점 크기를 줄이거나, 일부 데이터만 샘플링한 뒤 시각화하는 것이 효율적입니다.