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

Seaborn KDE 플롯에서 중앙값 표시하는 방법

Seaborn의 KDE(커널 밀도 추정) 플롯에 데이터의 중앙값을 시각적으로 표시하면 분포의 중심을 한눈에 파악할 수 있습니다. 이 글에서는 KDE 플롯 위에 중앙값 위치를 수직선으로 표시하는 방법을 단계별로 알아보겠습니다.

구현 단계

  • 그림 크기를 설정하고 서브플롯 주변 및 사이의 여백(padding)을 조정합니다.
  • NumPy를 사용하여 무작위 데이터를 생성합니다.
  • 생성된 데이터의 중앙값(median)을 계산합니다.
  • kdeplot() 함수로 음영 처리된 밀도 곡선을 그립니다.
  • axvline() 메서드를 사용해 중앙값 위치에 수직선을 추가합니다.
  • show() 메서드로 최종 그림을 화면에 출력합니다.

예제 코드

import numpy as np
import seaborn as sns
from matplotlib import pyplot as plt

# 그림 크기 및 자동 레이아웃 설정
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

# 정규분포를 따르는 무작위 데이터 30개 생성
data = np.random.randn(30)

# 데이터의 중앙값 계산
xmedian = np.median(data)

# 음영 처리된 KDE 플롯 그리기
k = sns.kdeplot(x=data, shade=True)

# 중앙값 위치에 빨간색 수직선 표시
plt.axvline(xmedian, c='red')

plt.show()

실행 결과

코드를 실행하면 파란색 음영으로 채워진 KDE 밀도 곡선이 그려지고, 데이터의 중앙값 위치에 빨간색 수직선이 표시됩니다. 이를 통해 분포가 어떤 지점을 중심으로 형성되어 있는지 직관적으로 확인할 수 있습니다.

핵심 포인트

np.median()은 데이터 배열의 중앙값을 반환하는 NumPy 함수입니다. sns.kdeplot()shade=True 옵션은 곡선 아래 영역을 색으로 채워 밀도를 더 잘 보이게 해줍니다. 마지막으로 plt.axvline()은 x축의 특정 값 위치에 수직선을 그리는 Matplotlib 함수로, 중앙값뿐만 아니라 평균이나 특정 임계값을 표시할 때도 유용하게 활용할 수 있습니다.