본문 바로가기
[업무 지식]/Seaborn

[catplot] Grouped barplots

by 에디터 윤슬 2024. 11. 9.
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)의 제목을 빈 문자열로 설정하여 범례 제목을 제거합니다.
결론
  • 이 시각화는 다음과 같은 경우 유용하게 사용할 수 있습니다:
    • 여러 범주형 변수(예: 종과 성별)에 따른 연속형 변수(예: 몸무게)의 차이를 분석하고자 할 때.
    • 특정 그룹 간 평균 값을 비교하고자 할 때.
    • 실험 결과나 제품 판매 데이터를 시각적으로 표현하고자 할 때.
  • 펭귄 데이터뿐만 아니라 제품 판매량이나 고객 행동 분석 등에서도 유용하게 사용할 수 있습니다