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

Seaborn 라이브러리로 Python에서 헥스빈(hexbin) 플롯 시각화하는 방법

Seaborn은 데이터 시각화를 돕는 파이썬 라이브러리로, 다양한 커스텀 테마와 고수준(high-level) 인터페이스를 제공합니다. 이 인터페이스를 활용하면 데이터의 종류를 세밀하게 제어하고, 특정 필터가 적용될 때 데이터가 어떻게 반응하는지 손쉽게 조정할 수 있습니다.

헥스빈(Hexagonal Binning)이란?

헥사고널 비닝(육각형 구간화)은 이변량(bivariate) 데이터 분석에 활용되는 기법입니다. 특히 데이터가 희소(sparse)하게 분포되어 있거나, 즉 데이터가 고르지 않게 흩어져 있는 경우에 유용합니다. 데이터가 불균일하게 산포되어 있으면 일반적인 산점도(scatterplot)만으로는 모든 데이터 포인트를 효과적으로 파악하기 어렵습니다.

바로 이런 상황에서 육각형 빈닝이 강력한 대안이 됩니다. 겹치는 데이터 포인트들을 육각형 영역별로 집계하여 밀도를 한눈에 보여주기 때문입니다.

예제 코드

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

my_df = sb.load_dataset('iris')
sb.jointplot(x = 'petal_length', y = 'petal_width', data = my_df, kind = 'hex')
plt.show()

실행 결과

위 코드를 실행하면 꽃잎 길이(petal_length)와 꽃잎 너비(petal_width)의 관계를 육각형 빈 형태로 표현한 조인트 플롯이 출력됩니다. 색상이 진할수록 해당 영역에 데이터 포인트가 많이 밀집되어 있음을 의미합니다.

코드 설명

  • 필요한 패키지들(pandas, seaborn, matplotlib)을 임포트합니다.
  • 'load_dataset' 함수를 사용해 seaborn에서 제공하는 'iris' 데이터셋을 불러옵니다.
  • 불러온 데이터는 데이터프레임(dataframe) 형태로 저장됩니다.
  • 'jointplot' 함수를 사용해 데이터를 시각화합니다.
  • x축에는 'petal_length', y축에는 'petal_width'를 매개변수로 지정합니다.
  • kind 매개변수를 'hex'로 설정하여 육각형 빈닝(hexbin) 플롯을 그리도록 지정합니다.
  • plt.show()를 호출해 최종 그래프를 화면에 출력합니다.

이처럼 Seaborn의 jointplot 함수에 kind='hex' 옵션 하나만 추가하면, 복잡한 설정 없이도 직관적인 헥스빈 플롯을 간편하게 생성할 수 있습니다.