ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [seaborn] Violin Plot 알아보기
    AI-ML 2024. 5. 7. 05:37
    728x90
    반응형

     

    - 목차

     

    키워드.

    • seaborn
    • violin plot

     

    들어가며.

    이번 글에서는 seaborn 라이브러리를 활용하여 Violin Plot 을 시각화하는 방법에 대해서 알아보려고 합니다.

    Violin Plot 은 데이터의 밀집도를 시각화시켜줍니다.

    예를 들어, 연령별 인구분포를 시각화한다고 가정해보겠습니다.

    저연령층과 고령층의 인구는 적으며, 청년과 중장년층의 인구과 많을텐데요.

    이를 Violin Plot 으로 표현하면 아래와 같이 표현됩니다.

    아래의 Violin Plot 을 해석해보면, X 축은 age 데이터를 의미하며, Y 축은 age 변수에 해당하는 밀도를 의미합니다.

    즉, 70 ~ 80세의 인구가 가장 많음을 알 수 있습니다.

    그리고 붉은색으로 표현되는 Violin Plot 내부에 검정색의 Box Plot 이 그려집니다.

    Violin Plot 은 주로 Box Plot 과 함께 표현되어 Quartile 정보를 제공합니다.

     

     

    Violin Plot 은 일반적으로 Numerical Data 를 시각화 대상으로 삼습니다.

    그래서 대륙별 인구분포, 국가별 GDP 과 같이 수치화할 수 있는 데이터를 다루구요.

    아래와 같이 개발도상국의 여부에 따른 기대수명과 지역별 인구의 연령 비율들을 시각화할 수 있습니다.

     

    기본적인 사용법.

    Kaggle 에서 제공되는 Life Expectancy (WHO) 데이터셋을 사용하여 Violin Plot 시각화를 진행합니다.

     

    https://www.kaggle.com/datasets/kumarajarshi/life-expectancy-who

     

    Life Expectancy (WHO)

    Statistical Analysis on factors influencing Life Expectancy

    www.kaggle.com

     

    데이터의 대략적인 구조는 아래와 같습니다.

    저는 "Life expectancy " 칼럼를 활용하여 Violin Plot 을 시각화해보도록 하겠습니다.

     

    아래와 같이 seaborn 과 pandas 를 import 한 후에 sns.violinplot 함수를 활용하여 시각화가 가능합니다.

    기본적으로 data 와 x 인자를 활용하여 시각화가 가능합니다.

    import seaborn as sns
    import pandas as pd 
    
    df = pd.read_csv('./dataset/Life Expectancy Data.csv')
    sns.violinplot(data=df, x="Life expectancy ")

     

     

     

    data.

    sns.violinplot 의 data 인자를 DataFrame 을 입력값으로 수용할 수 있습니다.

    아래의 예시처럼 DataFrame 을 인자로써 전달받고, x 인자에 DataFrame 의 칼럼을 선택함으로써 차트를 시각화할 수 있습니다.

    df = pd.read_csv('./dataset/Life Expectancy Data.csv')
    sns.violinplot(data=df, x="Life expectancy ")

     

    x.

    x 인자를 입력된 DataFrame 에서 어떤 칼럼을 X 축으로 사용할 것인지에 대한 결정입니다.

    아래 예시와 같이 X 축을 "Year", Y 축은 Life Expectancy 로 설정하게 되면,

    연도별 기대수명을 시각화할 수 있습니다.

    import seaborn as sns
    import pandas as pd 
    
    df = pd.read_csv('./dataset/Life Expectancy Data.csv')
    sns.violinplot(data=df, y="Life expectancy ", x="Year")

     

    inner.

    일반적으로 Violin Plot 은 그 내부에 Box Plot 을 가집니다.

    반면 아래와 같이 inner 인자의 값은 None 으로 취하게 되면, Box Plot 이 제외됩니다.

    import seaborn as sns
    import pandas as pd 
    
    df = pd.read_csv('./dataset/Life Expectancy Data.csv')
    sns.violinplot(data=df, y="Life expectancy ", palette='hls', inner=None)

     

     

     

    반응형
Designed by Tistory.