import seaborn as sns
import matplotlib.pyplot as plt
sns.set_theme(style = 'whitegrid')
diamonds = sns.load_dataset('diamonds')
diamonds
seaborn
f, ax = plt.subplots(figsize=(6.5, 6.5))
sns.despine(f, left = True, bottom = True)
clarity_ranking = ["I1", "SI2", "SI1", "VS2", "VS1", "VVS2", "VVS1", "IF"]
sns.scatterplot(
x = 'carat',
y = 'price',
hue = 'clarity',
size = 'depth',
palette = 'ch:r = -.2, d = .3_r',
hue_order = clarity_ranking,
sizes = (1, 8), linewidth = 0,
data = diamonds,
ax = ax
)
코드 설명
- plt.subplots(figsize=(6.5, 6.5)): Matplotlib에서 그래프를 그릴 때 사용하는 캔버스와 **축(ax)**을 생성합니다.
- figsize=(6.5, 6.5)는 그래프의 크기를 설정하는 파라미터로, 가로와 세로의 크기를 각각 6.5인치로 설정합니다.
- f는 Figure 객체로 전체 그림을 나타내고, ax는 Axes 객체로 실제 그래프가 그려질 축을 의미합니다.
- sns.despine(): Seaborn에서 제공하는 함수로, 그래프의 **축 경계선(Spines)**을 제거하는 역할을 합니다.
- left=True: 왼쪽 축 경계선을 제거합니다.
- bottom=True: 아래쪽 축 경계선을 제거합니다.
- 이를 통해 그래프가 더 깔끔하게 표시됩니다.
- clarity_ranking: 다이아몬드의 투명도(clarity) 등급을 나타내는 리스트입니다. 이 리스트는 투명도 등급을 낮은 순서에서 높은 순서로 정렬한 것입니다.
- "I1"은 가장 낮은 투명도를 의미하고, "IF"는 가장 높은 투명도를 의미합니다.
- 이 리스트는 나중에 산점도에서 hue_order 파라미터로 사용되어 투명도 등급이 시각적으로 구분되도록 합니다.
- sns.scatterplot(): Seaborn의 산점도 함수로, 여러 차원의 데이터를 시각화할 수 있습니다.
- x='carat': X축에 다이아몬드의 무게(캐럿)를 표시합니다.
- y='price': Y축에 다이아몬드의 가격을 표시합니다.
- hue='clarity': 점의 색상으로 다이아몬드의 투명도(clarity)를 구분합니다. 각 투명도 등급에 따라 다른 색상이 할당됩니다.
- size='depth': 점의 크기로 다이아몬드의 깊이를 나타냅니다. 깊이가 클수록 점이 커집니다.
- palette='ch:r=-.2,d=.3_r': 색상 팔레트를 설정합니다. 여기서 'ch:r=-.2,d=.3_r'는 색상 맵을 조정하는 파라미터입니다. 색상의 밝기와 채도를 조정하여 시각적으로 구분되도록 합니다.
- hue_order=clarity_ranking: hue에 의해 구분되는 카테고리(투명도 등급)의 순서를 명시적으로 지정합니다. 앞서 정의한 clarity_ranking 리스트에 따라 순서가 정해집니다.
- sizes=(1, 8): 점의 크기 범위를 설정합니다. 최소 크기는 1이고 최대 크기는 8입니다.
- linewidth=0: 점의 외곽선 두께를 설정합니다. 여기서는 외곽선을 없애기 위해 두께를 0으로 설정했습니다.
- data=diamonds: 시각화할 데이터셋으로, 여기서는 다이아몬드 관련 데이터셋인 diamonds를 사용하고 있습니다.
- ax=ax: 앞서 생성한 Axes 객체(ax)에 그래프를 그립니다.
결론
- 주어진 시각화에서 사용할 데이터를 선택할 때:
- 캐럿(carat)과 가격(price) 간의 관계는 기본적으로 매우 유용합니다.
- 여기에 추가적으로 투명도(clarity)와 같은 범주형 변수를 색상으로 구분하고,
- 깊이(depth)와 같은 연속형 변수를 점 크기로 표현하면 다차원 데이터를 효과적으로 시각화할 수 있습니다.
- 이를 통해 다이아몬드의 물리적 특성과 가격 간의 복잡한 관계를 한눈에 파악할 수 있으며, 다른 변수인 컷(cut)이나 색상(color)을 추가하면 더욱 풍부한 분석을 할 수 있습니다.
'[업무 지식] > Seaborn' 카테고리의 다른 글
[catplot] Grouped barplots (0) | 2024.11.09 |
---|---|
[relplot] Line plots on multiple facets (0) | 2024.11.09 |
[displot] Facetting histograms by subsets of data (0) | 2024.11.09 |
[lineplot] Timeseries plot with error bands (0) | 2024.11.08 |
[lmplot] Anscombe’s quartet (0) | 2024.11.08 |