import seaborn as sns
sns.set_theme(style="whitegrid")
penguins = sns.load_dataset("penguins")
penguins
seaborn
# Draw a nested barplot by species and sex
g = sns.catplot(
data=penguins,
kind="bar",
x="species",
y="body_mass_g",
hue="sex",
errorbar="sd",
palette="dark",
alpha=.6,
height=6
)
g.despine(left=True)
g.set_axis_labels("", "Body mass (g)")
g.legend.set_title("")
설명
- sns.set_theme(style="whitegrid"): Seaborn의 테마를 설정하는 함수입니다. 여기서는 "whitegrid" 스타일을 사용하여 밝은 배경에 그리드가 표시되는 깔끔한 스타일을 적용합니다. 이 스타일은 데이터를 더 명확하게 보여주는 데 유용합니다.
- sns.load_dataset("penguins"): Seaborn에서 제공하는 펭귄 데이터셋을 불러옵니다. 이 데이터셋은 펭귄의 다양한 신체 특성(예: 종, 성별, 몸무게 등)을 포함하고 있습니다.
- 주요 변수:
- species: 펭귄의 종 (Adelie, Chinstrap, Gentoo)
- sex: 성별 (Male, Female)
- body_mass_g: 펭귄의 몸무게 (g 단위)
- 주요 변수:
- sns.catplot(): 범주형 데이터를 시각화하는 함수로, 여러 종류의 플롯을 그릴 수 있습니다. 여기서는 막대 그래프(bar plot)를 그리도록 설정되어 있습니다.
- data=penguins: 시각화할 데이터셋을 지정합니다. 여기서는 penguins 데이터셋을 사용합니다.
- kind="bar": 막대 그래프를 그리도록 설정합니다.
- x="species": X축에 표시할 변수를 지정합니다. 여기서는 펭귄의 종(species)이 X축에 표시됩니다.
- y="body_mass_g": Y축에 표시할 변수를 지정합니다. 여기서는 펭귄의 몸무게(body_mass_g)가 Y축에 표시됩니다.
- hue="sex": 막대 그래프에서 색상을 성별(sex)에 따라 다르게 설정합니다. 즉, 수컷과 암컷이 다른 색상으로 구분됩니다.
- errorbar="sd": 막대 그래프에 표준 편차(SD)를 기준으로 오차 막대(error bar)를 추가합니다.
- palette="dark": 어두운 색상 팔레트를 사용하여 막대의 색상을 설정합니다.
- alpha=.6: 막대의 투명도를 0.6으로 설정합니다. 값이 1에 가까울수록 덜 투명해지고, 값이 0에 가까울수록 더 투명해집니다.
- height=6: 그래프의 높이를 6인치로 설정합니다.
- g.despine(left=True): Seaborn의 despine() 함수는 그래프에서 특정 축 경계선을 제거하는 역할을 합니다.
- left=True: 왼쪽 축 경계선을 제거하여 그래프가 더 깔끔하게 보이도록 만듭니다.
- g.set_axis_labels("", "Body mass (g)"): X축과 Y축의 레이블을 설정하는 함수입니다.
- X축 레이블은 빈 문자열로 설정되어 있어 표시되지 않습니다.
- Y축 레이블은 "Body mass (g)"로 설정되어 펭귄의 몸무게 단위를 나타냅니다.
- g.legend.set_title(""): 범례(legend)의 제목을 빈 문자열로 설정하여 범례 제목을 제거합니다.
결론
- 이 시각화는 다음과 같은 경우 유용하게 사용할 수 있습니다:
- 여러 범주형 변수(예: 종과 성별)에 따른 연속형 변수(예: 몸무게)의 차이를 분석하고자 할 때.
- 특정 그룹 간 평균 값을 비교하고자 할 때.
- 실험 결과나 제품 판매 데이터를 시각적으로 표현하고자 할 때.
- 펭귄 데이터뿐만 아니라 제품 판매량이나 고객 행동 분석 등에서도 유용하게 사용할 수 있습니다
'[업무 지식] > Seaborn' 카테고리의 다른 글
[violinplot] Grouped violinplots with split violins (0) | 2024.11.09 |
---|---|
[barplot] Grouped boxplots (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 |