Seaborn 라이브러리를 이용한 KDE Plot 및 2D KDE Plot 그리기
Mozen
·2023. 10. 21. 18:09
1. Seaborn 라이브러리란?
Seaborn은 Python의 데이터 시각화 라이브러리로, Matplotlib을 기반으로 하여 보다 아름답고 의미 있는 데이터 시각화를 위한 편리한 인터페이스를 제공합니다. Seaborn의 주요 특징 및 장점은 다음과 같습니다:
- 아름다운 기본 스타일: Seaborn은 Matplotlib의 기본 스타일보다 더 현대적이고 세련된 시각화를 제공합니다. 그리고 기본 색상 팔렛트와 테마가 풍부하여 쉽게 사용할 수 있습니다.
- 데이터프레임 호환: Seaborn은 Pandas의 DataFrame과 매우 잘 통합되어 있으므로 데이터 분석 결과를 직접 시각화하기 쉽습니다.
- 고급 분포 플롯 도구: 커널 밀도 추정(Kernel Density Estimation, KDE)과 같은 고급 통계 도구를 통합하여 복잡한 데이터 분포를 시각화할 수 있습니다.
- 시간 절약: 복잡한 시각화를 몇 줄의 코드로 간단히 생성할 수 있어, 시간을 절약하면서도 고급 시각화를 만들 수 있습니다.
- 다양한 플롯 유형: 히트맵, 박스 플롯, 바이올린 플롯, 페어 플롯 등 다양한 고급 차트와 플롯을 쉽게 생성할 수 있습니다.
- 통계적 시각화: Seaborn은 데이터의 중심 경향, 분포, 상관 관계 등 통계적 특성을 시각화하는데 중점을 둡니다. 이를 통해 데이터를 깊이 있게 이해하는 데 도움을 줍니다.
- 플롯 커스터마이징: Seaborn은 Matplotlib를 기반으로 하기 때문에, 필요한 경우 Matplotlib의 기능을 활용하여 플롯을 세부적으로 커스터마이징할 수 있습니다.
간단한 예제로, Seaborn을 사용하여 히트맵을 그리는 방법은 다음과 같습니다:
import seaborn as sns; sns.set_theme()
import numpy as np
# 임의의 데이터 생성
data = np.random.rand(10, 12)
# 히트맵 그리기
sns.heatmap(data)
2. Seaborn 라이브러리를 활용한 두 데이터의 KDE 생성
Seaborn 라이브러리를 사용해 두 데이터에 대한 KDE (Kernel Density Estimation)를 그리고, KDE의 중심 좌표를 추출하기 위한 코드를 작성해보겠습니다.
- 먼저, 두 데이터셋에 대해 KDE를 그리기 위해 sns.kdeplot를 사용합니다.
- KDE의 중심 좌표(즉, 최댓값을 갖는 좌표)를 찾기 위해 scipy의 gaussian_kde 함수를 사용합니다.
다음 코드는 두 데이터셋에 대해 KDE를 그리고, 각 KDE의 최댓값을 갖는 x 좌표(즉 중심 좌표)를 빨간색 점으로 그래프에 표시하는 코드 예제입니다:
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from scipy.stats import gaussian_kde
# 샘플 데이터 생성
data1 = np.random.randn(1000)
data2 = np.random.randn(1000) + 2
# 두 데이터에 대한 KDE 그리기
sns.kdeplot(data1, label='Data 1', shade=True)
sns.kdeplot(data2, label='Data 2', shade=True)
# 각 데이터에 대한 KDE의 중심 좌표 찾기
kde1 = gaussian_kde(data1)
kde2 = gaussian_kde(data2)
x1 = np.linspace(min(data1), max(data1), 1000)
x2 = np.linspace(min(data2), max(data2), 1000)
center1 = x1[np.argmax(kde1(x1))]
center2 = x2[np.argmax(kde2(x2))]
print(f"Data 1 KDE Center: {center1}")
print(f"Data 2 KDE Center: {center2}")
# 중심 좌표 표시
plt.scatter([center1, center2], [kde1(center1), kde2(center2)], color='red', s=50, zorder=5)
plt.legend()
plt.show()
3. 두 데이터를 활용한 2D KDE Plot 생성
각 데이터를 x축과 y축으로 설정하고 2D KDE plot을 그리기 위해서는 seaborn의 `kdeplot` 함수를 사용하면 됩니다.
아래는 `data1`을 x축으로, `data2`를 y축으로 사용하여 2D KDE plot을 그리는 코드입니다. `cmap='Blues'`는 컬러 맵을 파란색 계열로 설정하며, `fill=True`는 KDE plot 내부를 채우기 위한 설정입니다:
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
# 샘플 데이터 생성
data1 = np.random.randn(1000)
data2 = np.random.randn(1000) + 2
# 2D KDE plot 그리기
sns.kdeplot(x=data1, y=data2, cmap='Blues', fill=True)
# 그래프 표시
plt.xlabel('Data 1')
plt.ylabel('Data 2')
plt.title('2D KDE Plot')
plt.show()
'파이썬, 데이터, 데이터 시각화' 카테고리의 다른 글
Google Colab 기초: 클라우드에서 Python 프로그래밍 시작하기 (0) | 2024.04.16 |
---|---|
파이썬 문자열 다루기 - 문자열 관련 함수 (0) | 2024.04.07 |
파이썬 문자열 다루기 - 리스트 순회와 인덱싱 (0) | 2024.04.05 |
데이터(data)와 데이터 리터러시(data literacy)가 중요한 이유 (2) | 2024.04.02 |
2D KDE Plot의 특정 면적에 해당되는 지점 및 중심 구하기 (0) | 2023.10.22 |