-
[seaborn] Violin Plot 알아보기AI-ML 2024. 5. 7. 05:37728x90반응형
- 목차
키워드.
- 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 " 칼럼를 활용하여 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)
반응형'AI-ML' 카테고리의 다른 글
[scikit-surprise] SVD 모델 생성하기 (0) 2024.05.18 [scikit-surprise] Dataset 이해하기 (0) 2024.05.14 [scikit-surprise] SVD Model 알아보기 ( Singular Value Decomposition ) (0) 2024.05.07 [seaborn] Count Plot 그리기 ( sns.countplot, sns.catplot ) (0) 2024.05.06 [scikit-learn] KFold 알아보기 ( cross validation ) (1) 2024.04.28