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

Python Pandas – Seaborn으로 스웜 플롯(Swarm Plot) 그리기

Seaborn의 스웜 플롯(Swarm Plot)은 범주형 데이터를 산점도 형태로 시각화하되, 점들이 서로 겹치지 않도록 배치하는 그래프입니다. 데이터의 분포와 밀도를 한눈에 파악할 수 있어 범주형 변수와 수치형 변수의 관계를 분석할 때 매우 유용합니다.

Seaborn에서는 seaborn.swarmplot() 함수를 사용하여 스웜 플롯을 손쉽게 그릴 수 있습니다.

데이터셋 준비

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

필요한 라이브러리 불러오기

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

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

CSV 파일을 DataFrame으로 불러오기

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

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

스웜 플롯 그리기

x축에는 Age(나이), y축에는 Height(키, 인치)를 지정하여 스웜 플롯을 그려보겠습니다.

sb.swarmplot(x = dataFrame["Age"], y = dataFrame["Height"], data=dataFrame)

전체 예제 코드

지금까지의 내용을 종합한 전체 코드는 다음과 같습니다.

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

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

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

# Age와 Height(inches)로 스웜 플롯 그리기
sb.swarmplot(x = dataFrame["Age"], y = dataFrame["Height"], data=dataFrame)

# y축 라벨 설정
plt.ylabel("Height (inches)")

# 그래프 출력
plt.show()

실행 결과

위 코드를 실행하면 나이별로 선수들의 키 분포가 겹치지 않는 점들로 표현된 스웜 플롯이 출력됩니다. 각 나이대에 점이 몰려 있는 정도를 통해 특정 연령층의 키 분포 밀도를 직관적으로 확인할 수 있습니다.