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

Seaborn으로 바이올린 플롯(Violin Plot) 그리기 – Python Pandas 완전 정복

Seaborn 바이올린 플롯이란?

바이올린 플롯(Violin Plot)은 박스플롯(Boxplot)커널 밀도 추정(Kernel Density Estimate, KDE)을 하나로 결합한 시각화 기법입니다. 단순히 최솟값·최댓값·중앙값만 보여주는 박스플롯과 달리, 데이터가 어떤 구간에 얼마나 밀집되어 있는지 곡선의 두께로 직관적으로 확인할 수 있다는 것이 가장 큰 장점입니다.

Python의 대표적인 데이터 시각화 라이브러리인 Seaborn에서는 seaborn.violinplot() 함수를 사용해 손쉽게 바이올린 플롯을 그릴 수 있습니다.

1단계: 필요한 라이브러리 임포트하기

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

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

2단계: CSV 파일 데이터 불러오기

이번 예제에서는 크리켓 선수들의 신체 정보가 담긴 CSV 파일(Cricketers.csv)을 사용합니다. pd.read_csv() 함수로 파일을 읽어 Pandas DataFrame에 저장합니다.

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

3단계: 바이올린 플롯 그리기

'Weight'(체중, kg) 열의 데이터 분포를 바이올린 플롯으로 시각화해 보겠습니다. DataFrame에서 해당 열을 선택해 sb.violinplot()에 전달하기만 하면 됩니다.

sb.violinplot(dataFrame['Weight'])

전체 예제 코드

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

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")

# Weight(체중) 열로 바이올린 플롯 그리기
sb.violinplot(dataFrame['Weight'])

# x축 라벨 설정
plt.xlabel("Weight (kgs)")

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

실행 결과

위 코드를 실행하면 다음과 같이 체중 데이터의 분포가 바이올린 형태로 출력됩니다.

Seaborn으로 바이올린 플롯(Violin Plot) 그리기 – Python Pandas 완전 정복

그래프에서 넓게 퍼진 부분은 해당 체중 구간에 선수들이 많이 분포한다는 의미이며, 좁은 부분은 해당 구간의 데이터가 적다는 것을 나타냅니다. 이처럼 바이올린 플롯을 활용하면 숫자로 된 통계 요약만으로는 놓치기 쉬운 데이터의 실제 분포 모양을 한눈에 파악할 수 있습니다.