Title: 가장 큰 주제 설명
Label: 축에 해당하는 정보 제공
Tick Label: 축에 눈금을 사용 (스케일 정보 추가)
Legend: 2개 이상의 서로 다른 데이터를 분류하기 위해 사용 (보조 정보)
Annotation: 그 외의 시각화에 대한 설명 추가
Font Components
Detail
Alignment (정렬 관련 요소)
# left, right, center
# top, bottom, center
# vertical, horizontal, 각도
Advanced
bbox (dict형태로 전달)
Color
Color Palette 종류
범쥐형 (Categorical)
연속형 (Sequential)
발산형 (Diverge)
- 중앙을 기준으로 발산 (연속형과 유사)
- 중앙의 색은 편향되지 않아야 됨
색 Tips
실습
Facet (화면 분할 느낌)
Matplotlib 구현
plt.subplot()
plt.figure() + fig.add_subplot()
plt.subplots(1, 2)
첫번째: 세로로 몇개 분할, 두번째: 가로로 몇개 분할fig.add_gridspec(row, col)
fig.subplot2grid()
ax.inset_axes()
make_axes_locatable(ax)
Grid
심플한 처리
선 추가 (기울기, 상한, 하한 추가)
면 추가 (영역 추가)
대표적인 테마들
axvline()
, axhline()
: 원하는 평행선 그릴 수 있음 (xmax, xmin... : 범위 설정 가능)axvspan()
, axhspan()
: 특정 부분 면적을 표시할 수 있음 (xmax, xmin... : 범위 설정 가능)ax.spines
: plot 틀 관련set_visible
set_linewidth
: 축 두께set_position
: 축 위치 변경mpl.style.use(’테마명’)
(import matplotlib as mpl)Categorical API
countplot()
: 대표적인 시각화, 막대 그래프 함수 (hue: 데이터의 구분 기준)boxplot()
: 분포를 살피는 대표적인 시각화fliersize: outlier 사이즈
ref. https://towardsdatascience.com/understanding-boxplots-5e2df7bcbd51
violinplot()
: 부드러운 분포를 보여준다.없는 데이터까지 표시
연속적 표현에서 생기는 데이터의 손실과 오차가 존재
bw: 분포 표현을 얼마나 자세하게 보여줄 것인가
cut: 끝부분을 얼마나 자를 것인가
inner: 내부를 어떻게 표현할 것인가
split: 동시에 비교
boxenplot()
: box와 violin 합친 느낌swarmplot()
: scatter와 violin 합친 느낌 (점이 안 겹침)stripplot()
: scatter와 violin 합친 느낌 (점이 겹침)Distribution API
histplot: 히스토그램
kdeplot: Kernel Density Estimate
ecdfplot: 누적 밀도 함수
rugplot: 선을 사용한 밀도함수
공통 요소
- multiple: 여러개 비교 # layer, stack, fill
회귀선을 추가한 scatter plot
Heatmap: 상관관계 시각화에 사용
2개 피처의 결합확률 분포와 함께 각각의 분포도 제공
pair-wise 관계를 시각화