import seaborn as sns
import matplotlib.pyplot as plt
sns.set_theme(style="ticks")
# Load the example planets dataset
planets = sns.load_dataset("planets")
planets
데이터셋 설명
- planets 데이터셋은 외계 행성을 탐지한 다양한 방법과 그 결과를 포함하고 있습니다. 주요 변수는 다음과 같습니다:
- distance: 지구에서 해당 외계 행성까지의 거리 (단위: 파섹).
- method: 외계 행성을 발견한 탐지 방법 (예: Transit, Radial Velocity 등).
- 그 외에도 궤도 주기(period), 질량(mass) 등의 변수가 포함되어 있습니다.
- 시각화에서는 탐지 방법(method)에 따른 행성 거리(distance) 분포를 나타내고 있습니다.
seaborn
# Initialize the figure with a logarithmic x axis
f, ax = plt.subplots(figsize=(7, 6))
ax.set_xscale("log")
# Plot the orbital period with horizontal boxes
sns.boxplot(
planets,
x="distance",
y="method",
hue="method",
whis=[0, 100],
width=.6,
palette="vlag"
)
# Add in points to show each observation
sns.stripplot(planets, x="distance", y="method", size=4, color=".3")
# Tweak the visual presentation
ax.xaxis.grid(True)
ax.set(ylabel="")
sns.despine(trim=True, left=True)
코드 설명
- 로그 스케일 설정:
- ax.set_xscale("log"): 이 코드는 x축을 로그 스케일로 변환합니다. 로그 스케일은 값의 범위가 매우 클 때 작은 값과 큰 값을 동시에 효과적으로 표현할 수 있도록 도와줍니다. 여기서는 행성의 **거리(distance)**가 매우 큰 범위로 분포되어 있으므로 이를 로그 스케일로 변환하여 시각화합니다.
- 데이터셋:
- sns.load_dataset("planets"): Seaborn에서 제공하는 planets 데이터셋을 불러옵니다. 이 데이터셋은 다양한 행성 탐지 방법(method)에 따라 발견된 외계 행성들의 정보(예: 거리(distance), 궤도 주기(period) 등)를 포함하고 있습니다.
- 상자 그림(Boxplot):
- sns.boxplot(): 상자 그림은 데이터의 분포를 시각화하는 데 사용됩니다. 여기서는 각 탐지 방법에 따라 행성의 거리 분포를 나타냅니다.
- x="distance": 행성까지의 거리를 x축에 표시합니다.
- y="method": 행성을 탐지한 방법을 y축에 표시합니다.
- hue="method": 탐지 방법별로 색상을 구분합니다.
- whis=[0, 100]: 상자 그림에서 모든 데이터를 포함하도록 설정합니다 (이상치도 포함).
- palette="vlag": 파란색과 빨간색 계열의 색상 팔레트를 사용합니다.
- sns.boxplot(): 상자 그림은 데이터의 분포를 시각화하는 데 사용됩니다. 여기서는 각 탐지 방법에 따라 행성의 거리 분포를 나타냅니다.
- 스트립 플롯(Stripplot):
- sns.stripplot(): 각 개별 데이터를 점으로 표시하여 상자 그림 위에 겹쳐서 시각화합니다.
- size=4: 점 크기를 설정합니다.
- color=".3": 점의 색상을 회색으로 설정하여 상자 그림과 잘 구분되도록 합니다.
- sns.stripplot(): 각 개별 데이터를 점으로 표시하여 상자 그림 위에 겹쳐서 시각화합니다.
- 시각적 조정:
- ax.xaxis.grid(True): x축에 그리드를 추가하여 값을 쉽게 읽을 수 있도록 합니다.
- ax.set(ylabel=""): y축 레이블을 제거하여 깔끔한 디자인을 유지합니다.
- sns.despine(trim=True, left=True): 그래프의 왼쪽 테두리를 제거하고 여백을 최소화하여 깔끔하게 만듭니다.
시각화 적용 사례
- 천문학 연구:
- 천문학자들은 다양한 탐지 방법을 통해 발견된 외계 행성들의 거리를 비교할 수 있습니다. 예를 들어, 특정 탐지 방법(예: Transit)이 다른 방법보다 더 먼 거리에 있는 행성을 많이 발견하는지 확인할 수 있습니다.
- 탐사 전략 분석:
- 우주 탐사 기관에서는 어떤 탐사 기법이 더 효과적으로 외계 행성을 발견하는지를 분석할 수 있습니다. 이를 통해 향후 우주 망원경이나 탐사 장비 설계에 반영할 수 있습니다.
- 데이터 과학 교육:
- 로그 스케일 및 상자 그림과 같은 통계적 시각화를 학습하는 데 사용할 수 있으며, 복잡한 데이터를 어떻게 효과적으로 표현할 수 있는지를 보여주는 좋은 예시입니다.
'[업무 지식] > Seaborn' 카테고리의 다른 글
[Jointgrid] Joint and marginal histograms (0) | 2024.11.13 |
---|---|
[stripplot] Conditional means with observations (0) | 2024.11.10 |
[histplot] Stacked histogram on a log scale (0) | 2024.11.09 |
[jointplot] Hexbin plot with marginal distributions (1) | 2024.11.09 |
[relplot] Scatterplot heatmap (0) | 2024.11.09 |