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

[violinplot] Grouped violinplots with split violins

by 에디터 윤슬 2024. 11. 9.
import seaborn as sns
sns.set_theme(style="dark")

# Load the example tips dataset
tips = sns.load_dataset("tips")
tips

seaborn

sns.violinplot(
    data=tips, 
    x="day", 
    y="total_bill", 
    hue="smoker",
    split=True, 
    inner="quart", 
    fill=False,
    palette={"Yes": "g", "No": ".35"}
)

설명

  • sns.set_theme(style="dark"): Seaborn의 테마를 설정하는 함수입니다.
    • style="dark": 어두운 배경을 적용하여 데이터 포인트와 선이 더 명확하게 보이도록 설정합니다. 이 스타일은 시각적으로 강조하고 싶은 데이터를 더 돋보이게 할 때 유용합니다.
  • sns.violinplot(): 바이올린 플롯(violin plot)을 그리는 함수입니다. 바이올린 플롯은 데이터의 분포를 시각화하는 도구로, 히스토그램과 커널 밀도 추정(KDE)을 결합한 형태입니다.
    • data=tips: 시각화할 데이터셋을 지정합니다. 여기서는 tips 데이터셋을 사용합니다.
    • x="day": X축에 표시할 변수를 지정합니다. 여기서는 요일(day)이 X축에 표시됩니다.
    • y="total_bill": Y축에 표시할 변수를 지정합니다. 여기서는 총 지불 금액(total_bill)이 Y축에 표시됩니다.
    • hue="smoker": 흡연 여부(smoker)에 따라 색상을 다르게 설정합니다. 즉, 흡연자와 비흡연자가 각각 다른 색상으로 구분됩니다.
    • split=True: 흡연자와 비흡연자의 바이올린 플롯을 하나의 바이올린 모양으로 결합하여 비교하기 쉽게 만듭니다. 각 요일마다 흡연자와 비흡연자의 분포가 한 바이올린 안에서 나뉘어져 비교됩니다.
    • inner="quart": 바이올린 내부에 사분위수(quartile)를 표시합니다. 이를 통해 데이터의 중앙값과 사분위수를 시각적으로 확인할 수 있습니다.
    • fill=False: 바이올린 플롯 내부를 채우지 않고 빈 상태로 유지합니다. 이는 플롯을 더 간결하게 보이게 하며, 외곽선만 강조됩니다.
    • palette={"Yes": "g", "No": ".35"}: 흡연 여부에 따라 색상을 지정합니다. 여기서는 흡연자는 녹색("g"), 비흡연자는 회색(".35")으로 설정됩니다.
결론
  • 이 시각화는 다음과 같은 경우 유용하게 사용할 수 있습니다:
    • 여러 범주형 변수(예: 요일과 흡연 여부)에 따른 연속형 변수(예: 총 지불 금액)의 분포를 분석하고자 할 때.
      • 실제 사례로는 레스토랑에서 요일별로 손님의 소비 패턴을 파악하거나 소매업체에서 특정 상품 카테고리의 판매량 변화를 지역별로 비교하는 데 활용할 수 있습니다.
    • 특정 그룹 간 평균 값을 비교하고자 할 때.
      • 헬스케어 분야에서는 환자의 BMI 변화나 혈압 데이터를 성별 또는 나이에 따라 비교하여 맞춤형 건강 프로그램을 설계하는 데 도움을 줄 수 있습니다.

'[업무 지식] > Seaborn' 카테고리의 다른 글

[jointplot] Hexbin plot with marginal distributions  (1) 2024.11.09
[relplot] Scatterplot heatmap  (0) 2024.11.09
[barplot] Grouped boxplots  (0) 2024.11.09
[catplot] Grouped barplots  (0) 2024.11.09
[relplot] Line plots on multiple facets  (0) 2024.11.09