[부스트캠프 AI-Tech] 3주차 Day 2

LKM·2022년 2월 16일
0

✏️학습 정리


3-1. Text 사용하기

  • Text
    • 다른 Visual representation이 줄 수 없는 많은 설명 추가 가능
    • 잘못된 전달에서 생기는 오해 방지
    • 과하면 오히려 방해
    • 종류
      • Title: 가장 큰 주제 설명

      • Label: 축에 해당하는 정보 제공

      • Tick Label: 축에 눈금을 사용 (스케일 정보 추가)

      • Legend: 2개 이상의 서로 다른 데이터를 분류하기 위해 사용 (보조 정보)

      • Annotation: 그 외의 시각화에 대한 설명 추가

  • Text Properties
    • Font Components

    • Detail

      • color
      • linespacing: 줄 사이의 간격
      • backgroundcolor: 배경색
      • alpha: 투명도
      • zorder: z 축으로써의 순서 / 겹칠 때 보이는 순서
      • visible
    • Alignment (정렬 관련 요소)

      • ha # left, right, center
      • va # top, bottom, center
      • rotation # vertical, horizontal, 각도
      • multialignment
    • Advanced

      • bbox (dict형태로 전달)



3-2. Color 사용하기

  • Color

    • 색이 중요한 이유?
      • 위치와 색은 가장 효과적인 채널 구분
    • 화려함이 전부는 아니다!
    • 우리는 이미 많은 색을 사용했다.
      • 카카오: 노란색, 네이버: 초록색 ....
  • Color Palette 종류

    • 범쥐형 (Categorical)

      • 독립된 생상으로 구성, 범주형 변수에 사용
      • 색의 차이로 구분
    • 연속형 (Sequential)

      • 순서형, 연속형 변수에 적합
      • 연속적인 색상 사용 (단일 색조로 표현이 좋다)
    • 발산형 (Diverge)
      - 중앙을 기준으로 발산 (연속형과 유사)
      - 중앙의 색은 편향되지 않아야 됨

  • 색 Tips

    • 색상 대비
      • 명도 대비: 밝은 색과 어두운 색 배치 (회색검정)
      • 색상 대비: 가까운 색은 차이가 더 크게 보임 (파랑보라, 빨강보라)
      • 채도 대비: 채도의 차이, 많이 사용 (회색주황)
      • 보색 대비: 정반대 색상을 사용 (빨강초록)
    • 색각 이상
      • 색맹, 색약에 대한 고려 필요
  • 실습

    • HSL 이해
      • Hue(색조): 빨강, 파랑 등 색상으로 생각하는 부분
      • Saturate(채도): 무채색과의 차이
      • Lightness(광도): 색상의 밝기



3-3. Facet

  • Facet (화면 분할 느낌)

    • 분할을 의미
    • 같은 데이터에 서로 다른 인코딩
    • 같은 방법으로 동시에 여러 feature
    • 부분 집합을 세세하게
  • Matplotlib 구현

    • Figure: 큰틀 / Ax: 각 plot이 들어가는 공간
    • Figure: 1개 / plot: N개
    • N x M subplot
      • plt.subplot()
      • plt.figure() + fig.add_subplot()
      • plt.subplots(1, 2) 첫번째: 세로로 몇개 분할, 두번째: 가로로 몇개 분할
    • 요소
      • figuresize
      • dpi: 해상도
      • sharex, sharey: 각 plot들에 대해 축을 공유할 수 있다.
      • squeeze: 항상 2차원으로 배열을 받을 수 있고, 가변 크기에 대해 유용
      • aspect: x축, y축 비율
    • Grid Spec
      • 그리드 형태의 subplots
      • Slicing 사용 (numpy slicing과 동일) —> fig.add_gridspec(row, col)
      • x, y, dx, dy 사용 —> fig.subplot2grid()
      • 내부에 그리기 (미니맵 느낌) —> ax.inset_axes()
      • 외부에 그리기 (사이드바 느낌) —> make_axes_locatable(ax)



3-4. More Tips

  • Grid

    • 축과 평행한 선을 사용, 거리 및 값 정보 제공
    • 요소
      • color: 최대한 무채색
      • zorder: 맨 밑에 오도록 조정
      • which: 큰 격자, 세부 격자
      • linestyle, linewidth: 선 두께
      • axis: x, y, 동시에
    • 다양한 grid
      • 두 변수의 합 —> x+y = c
      • 비율 —> y = cx
      • 두 변수의 곱 —> xy =c
      • 특정 데이터 중심 —> (x - x`)^2 + (y - y`)^2 = c
  • 심플한 처리

    • 선 추가 (기울기, 상한, 하한 추가)

    • 면 추가 (영역 추가)

  • Theme
    • 대표적인 테마들

  • 실습
    • axvline() , axhline() : 원하는 평행선 그릴 수 있음 (xmax, xmin... : 범위 설정 가능)
    • axvspan() , axhspan() : 특정 부분 면적을 표시할 수 있음 (xmax, xmin... : 범위 설정 가능)
    • ax.spines : plot 틀 관련
      • set_visible
      • set_linewidth: 축 두께
      • set_position: 축 위치 변경
    • theme
      • mpl.style.use(’테마명’) (import matplotlib as mpl)
      • with 구문으로 해당 부분만 테마 적용 가능



4-1. Seaborn 소개

  • Seaborn
    • Matplotlib 기반 통계 시각화 라이브러리
    • 쉬운 문법과 깔끔한 디자인이 특징
    • 다양한 API
      • Categorical API
      • Distribution API
      • Relational API
      • Regression API
      • Multiples API
      • Theme API



4-2. Seaborn Basic

  • Categorical API

    • countplot() : 대표적인 시각화, 막대 그래프 함수 (hue: 데이터의 구분 기준)
    • 4분위수: 데이터를 4등분한 관측값 (min, 25%, 50%, 75%, max)
    • boxplot() : 분포를 살피는 대표적인 시각화
    • violinplot() : 부드러운 분포를 보여준다.
      • 없는 데이터까지 표시

      • 연속적 표현에서 생기는 데이터의 손실과 오차가 존재

      • bw: 분포 표현을 얼마나 자세하게 보여줄 것인가

      • cut: 끝부분을 얼마나 자를 것인가

      • inner: 내부를 어떻게 표현할 것인가

      • split: 동시에 비교

    • ETC
      • boxenplot() : box와 violin 합친 느낌
      • swarmplot() : scatter와 violin 합친 느낌 (점이 안 겹침)
      • stripplot() : scatter와 violin 합친 느낌 (점이 겹침)
  • Distribution API

    • histplot: 히스토그램

      • bins: 막대 개수
    • kdeplot: Kernel Density Estimate

      • fill: 내부를 채움
      • bw_method: 분포를 더 자세하기 표현
      • cumulative: 누적 적용
    • ecdfplot: 누적 밀도 함수

    • rugplot: 선을 사용한 밀도함수

    • 공통 요소
      - multiple: 여러개 비교 # layer, stack, fill

  • Relation & Regression API
    • Scatter Plot
      • 요소: style, hue, size
    • Line Plot
    • Regplot
      • 회귀선을 추가한 scatter plot

  • Matrix API
    • Heatmap: 상관관계 시각화에 사용



4-3. Seaborn Advanced

  • Joint Plot
    • 2개 피처의 결합확률 분포와 함께 각각의 분포도 제공

  • Pair Plot
    • pair-wise 관계를 시각화

  • Facet Grid
    • pair plot과 같이 다중 패널을 사용하는 시각화
profile
함께 자라기

0개의 댓글