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

Seaborn에서 hue(색조) 매개변수로 조인트 플롯 그리는 방법 – Matplotlib 예제


Seaborn의 hue(색조) 매개변수를 사용하면 데이터를 범주별 값에 따라 색상으로 구분하는 조인트 플롯(jointplot)을 손쉽게 그릴 수 있습니다. 아래에서는 Matplotlib과 함께 이를 구현하는 단계별 방법을 소개합니다.

구현 단계

  • 그림(figure) 크기를 설정하고 서브플롯 주변 및 사이의 여백을 자동으로 조정합니다.
  • numpy를 이용해 x 데이터 포인트를 생성합니다.
  • 여러 곡선 데이터를 담은 딕셔너리를 만듭니다.
  • 딕셔너리를 기반으로 표 형태의 데이터프레임(DataFrame)을 생성합니다.
  • jointplot() 메서드에 hue 매개변수를 지정하여 조인트 플롯을 그립니다.
  • show() 메서드를 호출해 그림을 화면에 표시합니다.

예제 코드

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

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

x = np.linspace(0, 1, 5)

d = {
    'y=sin(x)': np.sin(x),
    'y=cos(x)': np.cos(x),
    'y=x': x,
}
df = pd.DataFrame(d)
jg = sns.jointplot(data=df, x="y=sin(x)", y="y=cos(x)",
                   height=3.5, hue="y=x")
plt.show()

코드 설명

np.linspace(0, 1, 5)는 0부터 1 사이를 5등분한 값을 가진 배열을 생성합니다. 이 값을 바탕으로 sin 곡선, cos 곡선, 그리고 y=x 직선 데이터를 딕셔너리에 저장한 뒤 pandas의 DataFrame으로 변환합니다. 이후 sns.jointplot() 호출 시 x축에는 sin 값, y축에는 cos 값을 지정하고, hue="y=x" 옵션을 추가하면 해당 열의 값에 따라 데이터 포인트가 서로 다른 색상으로 구분되어 표시됩니다.

실행 결과

Seaborn에서 hue(색조) 매개변수로 조인트 플롯 그리는 방법 – Matplotlib 예제

위 코드를 실행하면 두 변수 간의 관계를 보여주는 중앙의 산점도와, 각 변수의 개별 분포를 나타내는 가장자리의 히스토그램이 결합된 조인트 플롯이 생성됩니다. hue 매개변수 덕분에 각 데이터 포인트는 "y=x" 열의 값에 대응하는 색상으로 채색되어, 범주 간 차이를 한눈에 파악할 수 있습니다.