import seaborn as sns
sns.set_theme(style="ticks")
# Load the planets dataset and initialize the figure
planets = sns.load_dataset("planets")
g = sns.JointGrid(data=planets, x="year", y="distance", marginal_ticks=True)
planets
sns.load_dataset("planets"): Seaborn의 내장 데이터셋 중 하나인 planets 데이터셋을 불러옵니다. 이 데이터셋은 외계 행성(Exoplanet)에 대한 정보를 포함하고 있으며, 각 행성의 발견 연도(year), 지구로부터의 거리(distance), 탐지 방법(method) 등의 변수를 포함합니다.
JointGrid: Seaborn의 JointGrid는 두 변수 간의 관계를 시각화할 수 있는 그리드입니다. 여기서는 x="year"와 y="distance"를 설정하여 연도와 거리를 시각화합니다.
marginal_ticks=True: 마진 플롯(주변 히스토그램)에 눈금을 표시하도록 설정합니다.
데이터셋 설명
- Seaborn에서 제공하는 planets 데이터셋을 사용하고 있습니다. 이 데이터셋은 외계 행성에 대한 정보를 담고 있으며 다음과 같은 주요 변수를 포함하고 있습니다:
- year: 외계 행성이 발견된 연도 (이산형 변수).
- distance: 지구로부터 외계 행성까지의 거리 (연속형 변수).
- method: 외계 행성을 탐지한 방법 (범주형 변수).
python
- 전체 코드
import seaborn as sns
sns.set_theme(style="ticks")
# Load the planets dataset and initialize the figure
planets = sns.load_dataset("planets")
g = sns.JointGrid(data=planets, x="year", y="distance", marginal_ticks=True)
# Set a log scaling on the y axis
g.ax_joint.set(yscale="log")
# Create an inset legend for the histogram colorbar
cax = g.figure.add_axes([.15, .55, .02, .2])
# Add the joint and marginal histogram plots
g.plot_joint(
sns.histplot, discrete=(True, False),
cmap="light:#03012d", pmax=.8, cbar=True, cbar_ax=cax
)
g.plot_marginals(sns.histplot, element="step", color="#03012d")
- 로그 스케일 설정
# Set a log scaling on the y axis
g.ax_joint.set(yscale="log")
yscale="log": y축(거리)을 로그 스케일로 변환합니다.
로그 스케일은 값의 범위가 매우 클 때 데이터를 더 명확하게 표현할 수 있습니다.
특히, 외계 행성의 거리는 매우 큰 값을 가질 수 있기 때문에 로그 스케일이 적합합니다.
- 히스토그램 색상바 추가
# Create an inset legend for the histogram colorbar
cax = g.figure.add_axes([.15, .55, .02, .2])
add_axes([.15, .55, .02, .2]): 히스토그램에 색상바(colorbar)를 추가하기 위해 새로운 축을 생성합니다.
[.15, .55, .02, .2]는 색상바의 위치와 크기를 지정하는 값입니다.
- 히스코그램 플롯 추가
# Add the joint and marginal histogram plots
g.plot_joint(
sns.histplot, discrete=(True, False),
cmap="light:#03012d", pmax=.8, cbar=True, cbar_ax=cax
)
g.plot_marginals(sns.histplot, element="step", color="#03012d")
plot_joint(): 두 변수(year, distance) 간의 분포를 히스토그램으로 시각화합니다.
discrete=(True, False): x축: year는 이산형 변수(연속된 정수)로 처리하고, y축: distance는 연속형 변수로 처리합니다.
cmap="light:#03012d": 히스토그램에 적용할 색상 맵을 설정합니다.
pmax=.8: 히스토그램에서 최대 빈도의 80%까지만 색상을 표시하도록 설정합니다.
cbar=True: 색상바를 활성화합니다.
cbar_ax=cax: 이전에 정의한 축(cax)에 색상바를 추가합니다.
plot_marginals(): 각 변수(year, distance)의 주변 분포를 히스토그램으로 시각화합니다.
element="step": 계단형 히스토그램을 그립니다.
color="#03012d": 주변 히스토그램의 색상을 설정합니다.
'[업무 지식] > Seaborn' 카테고리의 다른 글
[FacetGrid] Overlapping densities (‘ridge plot’) (1) | 2024.11.13 |
---|---|
[jointplot] Joint kernel density estimate (0) | 2024.11.13 |
[stripplot] Conditional means with observations (0) | 2024.11.10 |
[boxplot] Horizontal boxplot with observations (0) | 2024.11.09 |
[histplot] Stacked histogram on a log scale (0) | 2024.11.09 |