극 좌표계를 사용하는 시각화
회전, 주기성 등을 표현하기에 적합
projection = polar
를 추가
직교 좌표계 X, Y에서 변환 가능
Radar Chart
극 좌표계를 사용하는 대표적인 차트
중심점을 기준으로 N개의 변수 값을 표현
데이터의 Quality 표현에 좋음
주의점
각 feature는 독립적, 척도가 같아야한다! (키와 나이의 경우 척도가 완전 다르다!)
feature의 순서에 따라 많이 달라진다.
feature가 많아지면 가독성이 떨어짐.
<실습>
Polar Coordinate 만들기
subplot(..., projection=’polar’)
또는 subplot(..., polar=True)
scatter()
, bar()
, plot()
, fill()
표현가능Polar Coordinate 조정
set_rmax()
: 반지름 조정set_rmin(1)
: 중심이 1로 바뀌게 된다.set_rticks()
: 반지름 표기 grid 조정set_rlabel_position
: 반지름 label이 적히는 위치의 각도 조정set_thetamin()
: 각도의 min 값set_thetamax()
: 각도의 max값Radar Chart
set_thetagrids()
: 각도에 따른 grid 및 ticklabels 변경set_theta_offset()
: 시작 각도 변경Pie Chart
원을 부채꼴로 분할하여 표현하는 통계 차트
가장 많이 사용하지만.... 지양해야한다!
Pie Chart
Donut Chart
Sunburst Chart
- 계층적 데이터를 시각화
<실습>
ax.pie()
: 기본 파이차트 그리기
bar plot과 비교
—> bar plot이 비교하기 훨씬 쉽다!
Pie Chart Custom
ax.pie(..., startangle=각도)
: 시작 각도 설정
ax.pie(..., explode=리스트)
: 특정 부분 강조
ax.pie(..., shadow=True)
: 차트에 그림자 표시
ax.pie(..., autopct='%1.1f%%')
: 차트에 퍼센트 표시 (소수점 조절 가능)
ax.pie(..., labledistance=거리)
: label을 차트와 떨어뜨린다.
ax.pie(..., rotatelabels=각도)
: 중심점 기준으로 label의 각도 회전 (지양)
ax.pie(..., counterclock=False)
: 차트 생성 방향
ax.pie(..., radius=길이)
: 원 반지름
Pie Chart 변형
결측치를 시각화
계층적 데이터의 대표적 시각화
직사각형을 사용하여 포함 관계를 표현
타일링 알고리즘에 따라 형태가 다양해짐
모자이크 플롯과 유사
와플 형태로 discrete하게 값을 나타내는 차트
Icon을 사용한 Waffle Chart도 가능 (Pictogram Chart)
집합 등에서 사용하는 벤 다이어그램
원이 4개 이상부터는 값을 확인하기 어려움
<실습>
MissingNo
msno.matrix()
: 결측치를 matrix로 나타내어 흰 부분으로 표시msno.matrix(..., sort=’descending’)
: 정렬하여 더 보기 쉬워짐msno.bar()
: 직접적으로 bar chart로도 그리기 가능Treemap
potly에서 더 자세히..
squarify.plot()
: 랜덤 색상으로 treemap 생성
squarify.plot(..., pad=0.2)
: 직사각형 사이의 공간 생성
squarify.plot(..., text_kwargs={})
: 텍스트 요소를 딕셔너리로 전달
Waffle Chart
plt.figure(FigureClass=Waffle,..)
: 기본 Waffle Chartplt.figure(..., legend={})
: 범례 설정plt.figure(..., cmap_name='tab10')
: 컬러맵을 전달해서 색 변경plt.figure(..., starting_location='SE')
: 네 꼭지점을 기준으로 시작점 설정 가능plt.figure(..., vertical=True)
: 기본적으로 가로로 진행, 설정시 세로로 진행plt.figure(..., block_arranging_style='new-line')
: 어떤 식으로 나열할지 설정, 기본은 snakeplt.figure(..., icon='child')
: 아이콘 명칭Venn
venn2(subset = (3, 2, 1))
01: 1번째 set에 들어갈 내용
10: 2번째 set에 들어갈 내용
11: 교집합에 들어갈 내용
3개의 서브셋
venn3(subsets = (1, 2, 3, 4, 5, 6, 7), set_labels = ('Set1', 'Set2', 'Set3'))