Text
- Visual representation들이 줄 수 없는 많은 설명을 추가 가능
- 잘못된 전달에서 생기는 오해를 방지할 수 있음
- Title: 가장 큰 주제를 설명
- Label: 축에 해당하는 데이터 정보를 제공
- Tick label: 축에 눈금을 사용해 스케일 정보를 추가
- Legend: 한 그래프에서 2개 이상의 서로 다른 데이터를 분류하기 위해 사용하는 보조정보
- Annotation(Text): 그 외의 시각화에 대한 설명을 추가
Properties
Font
family
: 글씨체
size
or fontsize
: 크기
style
or fontstyle
: 기울임체(italic), 설명적인 부분에서 주로 사용
weight
or fontweight
: 두께
글씨체에 따른 가독성
Font Details
color
linespacing
: 줄 사이 간격
backgroundcolor
: 하이라이트
alpha
: 투명도
zorder
: z축 순서(앞/뒤 순서)
visible
Alignment
ha
: horizontal alignment, top/bottom/center
va
: vertical alignment, left/right/center
rotation
: vertical/horizontal/degree
multialignment
Advanced
Color
Color에 대한 이해
- 하지만 화려함이 시각화의 전부는 아님
- 가장 중요한 것은 독자에게 원하는 insight를 전달하는 것
- 기존 정보와 느낌을 잘 활용하는 것이 중요
Color Palette의 종류
범주형(Categorical)
- 독립된 색상으로 구성되어 범주형 변수에 사용
- 최대 10개의 색상을 사용, 적을수록 좋음
- 색의 차이로 구분하는 것이 특징
연속형(Sequential)
- 연속적인 색상으로 값을 표현
- 색은 단일 색고로 표현하고, 균일한 색상 변화가 중요
발산형(Diverge)
- 연속형과 유사하나 중앙을 기준으로 발산
- 상반된 값, 서로 다른 2개를 표현하는데 적합
- 중앙의 색은 양쪽의 점에서 편향되지 않아야 함, 꼭 무채색일 필요는 없다
그 외 색 Tips
강조, 그리고 색상 대비
색각 이상
- 삼원색 중에 특정 색을 감지 못하면 색맹
- 부분적 인지 이상이 있다면 색약
- 색 인지가 중요한 분야(과학/연구 등)에 있어서는 이에 대한 고려가 필수
Facet
Multiple view의 필요성
- 화면을 분할해 다양한 관점을 전달
- 같은 데이터셋에 서로 다른 인코딩을 통해 다른 인사이트
- 같은 방법으로 동시에 여러 feature를 보거나
- 큰 틀에서 볼 수 없는 부분 집합을 세세하게 보여줄 수 있음
Matplotlib에서 구현
- Figure: 큰 틀, 언제나 1개
- Ax: 각 플롯이 들어가는 공간, N개
NxM subplots
- 가장 쉬운 3가지 방법
plt.subplot()
plt.figure() + fig.add_subplot()
plt.subplots()
- 쉽게 조정할 수 있는 요소
figuresize
: plot을 몇 인치로 할건지
dpi
: 1인치를 표현하는데 몇 dot(pixel?)을 사용할 것인지
sharex
, sharey
squeeze
aspect
Gird Spec의 활용
- 그리드 형태의 subplots
- 기존 subplots로 4x4를 만들 수 있음
- 이 subplot을 표현하기 위한 2가지 방법
- Slicing 활용
--> fig.add_grid_spec()
- x, y, dx, dy를 활용
--> fig.subplot2grid()
내부에 그리기
- Ax 내부에 subplot을 추가하는 방법
- 미니맵과 같은 형태로 추가하거나
- 외부 정보를 적은 비중으로 추가
--> ax.inset_axes()
- 그리드를 사용하지 않고 사이드에 추가
- 단, 방향의 통계정보를 제공할수도
- 저목 등의 텍스트 추가도 가능
--> make_axes_locatable(ax)
Grid
Grid 이해하기
- Grid: 축과 평행한 선을 사용해 거리 및 값 정보를 보조적으로 제공
color
: 다른 표현들을 방해하지 않게 무채색
zorder
: 항상 layer 순서 상 맨 밑에 오도록 조정
which='major', 'minor', 'both'
: 큰 격자/세부 격자
axis='x','y','both'
: X축? Y축? 동시에?
- 다양한 grid의 예시
- Feature의 절대적 합이 중요한 경우
- Feature의 비율이 중요할 경우
- 가까운 포인트를 찾거나, 한 데이터에서 특정 범위의 데이터를 표현할 때
심플한 처리
어렵지 않게 더 많은 정보와 주의(attention)을 줄 수 있는 방법들
선 추가하기
면 추가하기
Setting 바꾸기