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