다양한 범주형 값을 가지는 데이터를 시각화하는데 좋은 방법
행, 열 방향으로 서로 다른 조건을 적용하여 여러 개의 서브 플롯 제작
각 서브 플롯에 적용할 그래프 종류를 map() 메서드를 이용하여 그리드 객체에 전달
[그리는 방법]
1. FacetGrid에 데이터프레임과 구분할 row, col, hue 등을 전달해 객체 생성
2. 객체(facet)의 map 메서드에 그릴 그래프의 종류와 종류에 맞는 컬럼 전달
예시 - distplot의 경우 하나의 컬럼 // scatter의 경우 두개의 컬럼
데이터 불러오기
https://steadiness-193.tistory.com/196
위 포스팅에서 아웃라이어와 누락값들을 제거한 타이타닉 데이터프레임을 이용한다.
스타일 설정
col
히스토그램 (plt.hist)
col 인자에 성별을 전달함으로써 좌측엔 남성, 우측엔 여성의 히스토그램 그래프가 그려진다.
직접 bins를 이용해 구간을 설정할 수도 있다.
색깔 조정
color
map 메서드 인자에 color를 이용해 전체 색을 바꿀 수 있다.
sns.distplot
히스토그램이라는 결과물은 같지만 kde나 rug 옵션을 줄 수 있는 sns.distplot을 이용해도 된다.
col, row
hist
컬럼엔 성별을, 로우엔 생존 여부를 넣었다.
두 컬럼 집단별 요금의 분포를 볼 수 있게 됐다.
col, row 인잣값에 따라 survived=0 | sex='male' 와 같은 방법으로 그래프를 구분한다.
col, row
regplot
이번엔 두개의 컬럼의 관계를 볼 수 있는 regplot으로 그려봤다.
col, row에 쓴 컬럼까지 고려하면 총 4개의 컬럼을 이용한 셈이다.
(성별, 생존여부)별로 요금과 나이의 산점도를 볼 수 있다.
col, hue
regplot
컬럼별로는 성별을 구분하고
색깔별로는 생존여부를 구분한다.
그 구분들별로 요금과 나이의 분포를 볼 수 있다.
col, hue - 범례 추가
.add_legend()
그냥 hue만 있으면 뭐가 뭔지 모르니 수동으로 범례를 추가해주면
더 편하게 볼 수 있다.
col, hue - 색상 자동 변경
palette
palette에 Set1을 넣어 자동으로 빨강, 파랑으로 색을 바꿔줄 수 있다.
col, hue - hue 순서 변경
hue_order
hue_order를 통해 hue에 전달한 생존 여부별 구분값의 순서를 바꿔줄 수 있다.
기존엔 자동으로 0이 빨강이었지만 지금은 1이 빨강이다.
col, hue - 색상 수동 변경
palette
palette 옵션에 hue 값에 맞는 딕셔너리를 전달하면 색상을 원하는대로 바꿔줄 수 있다.
col, hue - xlabel, ylabel 추가
.set_axis_labels()
.set_axis_labels에 차례대로 x축, y축에 넣을 label을 입력해주면 된다.
col, hue - x, y축 경계 설정
.set(xlim=(N, N), ylim=(N, N))
기존의 서브 플롯은 자동으로 0 미만으로 경계가 설정되어있다.
0부터 경계를 설정하니 조금 잘려서 나오는 것처럼 보인다.
col, row, hue
regplot
컬럼으론 성별을, 로우로는 생존여부를
hue 옵션으로는 등급을 전달해 구분했다.
그 구분들 별로 요금과 나이의 분포를 확인했으니 총 5개 컬럼을 사용한 셈이다.
col, row, hue - 범례 추가
.add_legend()
이 역시 hue 옵션의 설명을 추가해줘야 보기 편해진다.
col, row, hue - 서브플롯간 간격 조정
.fig.subplots_adjust(wspace=.n, hspace=.n)
지금은 wspace와 hspace의 값을 0.5로 설정해서
서브 플롯간의 간격을 좁혀줬다.
'시각화 > Seaborn' 카테고리의 다른 글
Seaborn - 색깔 조정 : color, palette (0) | 2020.10.27 |
---|---|
Seaborn - 스타일 변경 : set_style (0) | 2020.07.31 |
Seaborn - 산점도 그래프 : lmplot (0) | 2020.07.31 |
Seaborn - 관계 그래프 : pairplot (1) | 2020.07.31 |
Seaborn - 조인트 그래프 : jointplot (0) | 2020.07.31 |