Data Viz 3강) Text/Color/Facet

한량·2021년 8월 20일
0

Text

  • Visual representation들이 줄 수 없는 많은 설명을 추가 가능
  • 잘못된 전달에서 생기는 오해를 방지할 수 있음

Anatomy of a Figure

  • 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

강조, 그리고 색상 대비

  • 색상 대비(Color Contrast) 사용

색각 이상

  • 삼원색 중에 특정 색을 감지 못하면 색맹
  • 부분적 인지 이상이 있다면 색약
  • 색 인지가 중요한 분야(과학/연구 등)에 있어서는 이에 대한 고려가 필수

Facet

Multiple view의 필요성

  • 화면을 분할해 다양한 관점을 전달
    • 같은 데이터셋에 서로 다른 인코딩을 통해 다른 인사이트
    • 같은 방법으로 동시에 여러 feature를 보거나
    • 큰 틀에서 볼 수 없는 부분 집합을 세세하게 보여줄 수 있음

Matplotlib에서 구현

Figure와 Axes

  • 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가지 방법
    1. Slicing 활용
      --> fig.add_grid_spec()
    2. 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축? 동시에?

심플한 처리

어렵지 않게 더 많은 정보와 주의(attention)을 줄 수 있는 방법들

선 추가하기

면 추가하기

Setting 바꾸기

  • 다양한 테마 적용 가능
profile
놀고 먹으면서 개발하기

0개의 댓글