Seaborn을 사용한 데이터 분포 시각화
Seaborn은 Matplotlib을 기반으로 다양한 색상 테마와 통계용 차트 등의 기능을 추가한 시각화 패키지이다. 기본적인 시각화 기능은 Matplotlib 패키지에 의존하며 통계 기능은 Statsmodels 패키지에 의존한다. (http://seaborn.pydata.org/)
1차원 분포 플롯
1차원 데이터는 실수 값이면 히스토그램과 같은 실수 분포 플롯으로 나타내고 카테고리 값이면 카운트 플롯으로 나타낸다.
iris = sns.load_dataset("iris") # 붓꽃 데이터
titanic = sns.load_dataset("titanic") # 타이타닉호 데이터
tips = sns.load_dataset("tips") # 팁 데이터
flights = sns.load_dataset("flights") # 여객운송 데이터
1차원 실수 분포 플롯
실수 분포 플롯은 자료의 분포를 묘사하기 위한 것으로 Matplotlib의 단순한 히스토그램과 달리 커널 밀도 (kernel density) 및 러그 (rug) 표시 기능 및 다차원 복합 분포 기능 등을 제공한다. 1차원 실수 분포 플롯 명령에는 rugplot, kdeplot, distplot이 있다.
러그 (rug) 플롯은 데이터 위치를 x축 위에 작은 선분(rug)으로 나타내어 실제 데이터들의 위치를 보여준다.
x = iris.petal_length.values
sns.rugplot(x)
plt.title("Iris 데이터 중, 꽃잎의 길이에 대한 Rug Plot ")
plt.show()
커널 밀도 (kernel density)는 커널이라는 함수를 겹치는 방법으로 히스토그램보다 부드러운 형태의 분포 곡선을 보여주는 방법이다. (kdeplot : http://seaborn.pydata.org/generated/seaborn.kdeplot.html, 커널 밀도 추정 : http://scikit-learn.org/stable/modules/density.html)
sns.kdeplot(x)
plt.title("Iris 데이터 중, 꽃잎의 길이에 대한 Kernel Density Plot")
plt.show()
Seaborn의 distplot 명령은 러그와 커널 밀도 표시 기능이 있어서 Matplotlib의 hist 명령보다 많이 사용된다. (distplot : http://seaborn.pydata.org/generated/seaborn.distplot.html)
sns.distplot(x, kde=True, rug=True)
plt.title("Iris 데이터 중, 꽃잎의 길이에 대한 Dist Plot")
plt.show()
카운트 플롯
countplot 명령을 사용하면 각 카테고리 값별로 데이터가 얼마나 있는지 표시할 수 있다. (countplot : http://seaborn.pydata.org/generated/seaborn.countplot.html)
countplot 명령은 데이터프레임에만 사용할 수 있다.
countplot(x="column_name", data=dataframe)
data 인수에는 대상이 되는 데이터프레임을, x 인수에는 데이터프레임의 열 이름 문자열을 넣는다.
sns.countplot(x="class", data=titanic)
plt.title("타이타닉호의 각 클래스별, 승객 수")
plt.show()
sns.countplot(x="day", data=tips)
plt.title("요일별 팁을 준 횟수")
plt.show()
'Python Library > Matplotlib' 카테고리의 다른 글
[Matplotlib] Seaborn을 사용한 데이터 분포 시각화 (3) (0) | 2022.02.22 |
---|---|
[Matplotlib] Seaborn을 사용한 데이터 분포 시각화 (2) (0) | 2022.02.22 |
[Matplotlib] triangular grid (0) | 2022.02.22 |
[Matplotlib] 여러가지 플롯 (2) (0) | 2022.02.22 |
[Matplotlib] 여러가지 플롯 (1) (0) | 2022.02.22 |