Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- type hint
- 파이썬
- 프로그래머스
- dataframe
- python
- javascript
- 데이터시각화
- 코딩테스트
- 가상환경
- Selenium
- programmers
- Matplotlib
- Algorithm
- queue
- aws jupyter notebook
- NumPy
- 알고리즘
- 자료구조
- 알고리즘 스터디
- 알고리즘스터디
- Stack
- 선그래프
- 정보처리기사 c언어
- openCV
- String Method
- pandas
- 노마드코딩
- MySQL
- 백준
- Join
Archives
- Today
- Total
조금씩 꾸준히 완성을 향해
[Seaborn] 다양한 그래프 그리기3 (violinplot, jointplot, FacetGrid, pairplot) 본문
Python/데이터 시각화
[Seaborn] 다양한 그래프 그리기3 (violinplot, jointplot, FacetGrid, pairplot)
all_sound 2022. 10. 1. 23:24박스플롯 vs 바이올린 플롯
- boxplot(): 범주형 데이터 분포와 주요 통계 지표 함께 제공 -> 분산 파악 어려움
- violinplot(): 커널 밀도 함수 그래프를 y축 방향에 추가
# 그래프 객체 생성(figure에 4개의 서브플롯을 생성)
fig = plt.figure(figsize=(15,10))
ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)
ax4 = fig.add_subplot(2,2,4)
# 그래프 그리기
sns.boxplot(x='alive', y='age', palette='Set2', data=titanic, ax=ax1)
sns.boxplot(x='alive', y='age', hue='sex', palette='Set2', data=titanic, ax=ax2) # hue: x축을 추가
sns.violinplot(x='alive', y='age', palette='Set2', data=titanic, ax=ax3)
sns.violinplot(x='alive', y='age',hue='who', palette='Set2', data=titanic, ax=ax4) # hue: x축을 추가
# title 설정
ax1.set_title('boxplot- alive vs age')
ax2.set_title('boxplot- alive vs age vs sex')
ax3.set_title('violinplot- alive vs age')
ax4.set_title('violinplot- alive vs age vs sex')
plt.show()
조인트 그래프
- jointplot() : 산점도를 기본으로 표시하고, xy축에 각 변수에 대한 히스토그램을 동시에 보여줌
- 두 변수 관계와 데이터가 분산되어 있는 정도를 한눈에 파악하기에 좋음
- kind='reg' (regression), kind='hex'(hexagon), kind='kde'(kernel density)
fig = plt.figure(figsize=(17,10))
#jointplot 그리기
ax1 = sns.jointplot(x='fare', y='age', palette='Set2', data=titanic)
ax2 = sns.jointplot(x='fare', y='age', kind='reg', palette='Set2', data=titanic)
ax3 = sns.jointplot(x='fare', y='age', kind='hex', palette='Set2', data=titanic)
ax4 = sns.jointplot(x='fare', y='age', kind='kde', palette='Set2', data=titanic)
# title 설정
ax1.fig.suptitle('jp fare vs age')
ax2.fig.suptitle('jp fare vs age-regression')
ax3.fig.suptitle('jp fare vs age-hexagon')
ax4.fig.suptitle('jp fare vs age-kernel density')
plt.show()
조건에 맞게 화면 분할
- FacetGrid() : 행,열 방향으로 서로 다른 조건을 적용하여 여러 개의 서브 플롯 생성 (경우의 수 만큼)
- map() : 각 서브 플롯에 적용할 그래프 종류를 그리드 객체에 전달
g = sns.FacetGrid(data=titanic, row='survived', col='who')
g.map(plt.hist, 'age')
plt.show()
이변수 데이터의 분포
- pairplot() : 인자로 전달되는 데이터프레임의 열(변수)을 두 개씩 짝 지을 수 있는 모든 조합에 대해 표현
pair = titanic[['age', 'pclass', 'fare', 'survived']]
sns.pairplot(pair)
'Python > 데이터 시각화' 카테고리의 다른 글
[Folium] 단계 구분도(Choropleth Map) 표시하기 (0) | 2022.10.02 |
---|---|
[Folium] 지도 만들기, Marker 표시하기 (0) | 2022.10.02 |
[Seaborn] 다양한 그래프 그리기2 (pie chart, boxplot, heatmap, stripplot, swarmplot, barplot, countplot) (0) | 2022.10.01 |
[Seaborn] 다양한 그래프 그리기1 (regplot, distplot, histogram, scatter plot) (0) | 2022.10.01 |
[Matplotlib] 다양한 그래프 그리기(면적그래프, 막대그래프, 보조축 활용) (0) | 2022.10.01 |