[Boostcamp 3주차] Data Viz - Bar Plot

yoonene·2022년 2월 4일
0

Boostcamp AI Tech

목록 보기
16/27

📌 학습 개요

  • bar plot
  • multiple bar plot
    • stacked bar plot
    • overlapped bar plot
    • grouped bar plot
  • Bar plot의 규칙

Bar Plot

= 막대 그래프 = bar chart = bar graph

직사각형 막대를 통해 데이터의 값을 표현하는 그래프/차트
범주(category)에 대한 수치 값을 비교하는 데에 적합


.bar() : 수직(vertical) / x축에 범주, y축에 값 표기 / default
.barh() : 수평 (horizontal) / y축에 범주, x축에 값 표기 / 범주가 많을 때

Multiple Bar Plot

  • plot을 여러 개 그리는 방법
  • 한 plot에 같이 그리는 방법
    1. 쌓아서 표현
    2. 겹쳐서 표현
    3. 이웃에 배치하여 표현

1. Stacked Bar Plot

  • 2개 이상의 그룹을 쌓아서 표현
  • 각 범주마다 그룹이 쌓이는 순서는 절대 고정
  • 단점: 맨 밑 그룹 bar의 분포는 파악하기 쉽지만 위에 쌓인 bar의 분포는 파악하기 어려움.
  • .bar() -> bottom 파라미터
  • .barh() -> left 파라미터
  • Percentage Stacked Bar Chart
    전체의 비율을 나타내는 방식

2. Overlapped Bar Plot

  • 2개 그룹만 비교할 때 겹쳐서 보여주는 방법
  • 투명도 조절(alpha 파라미터)을 통해 겹치는 부분을 파악할 수 있음
  • 같은 축을 사용하기 때문에 비교가 쉬움
  • Bar plot에서보다 Area plot에서 더 효과적

3. Grouped Bar Plot

  • 각 범주에 각 그룹의 bar를 나란히 배치하는 방법
  • Matplotlib에서는 구현이 어려운 편. seaborn이 있음.
  • 그룹이 5~7개 이하일 때 효과적 (너무 많으면 일부 그룹은 ETC로 처리)

Bar Plot의 규칙

  1. Principle of Proportion Ink
    그래픽의 잉크 양은 표현하는 실제 값에 비례해야 함.
  • 반드시 시작은 0

    위 그래프처럼 0으로 시작하지 않고 150으로 시작하면 같은 차이여도 더 크게 보인다.
  1. 데이터 정렬하기
  • Pandas의 sort_values(), sort_index()를 사용하여 정렬
  • 데이터의 종류에 따라 다른 기준으로 정렬
    • 시계열 - 시간순
    • 수치형 - 크기순
    • 순서형 - 순서대로
    • 명목형 - 범주의 값에 따라 (?)
  • 여러 가지 기준의 정렬을 통해 패턴 발견
  • 대시보드에서는 Interactive로 제공하는 것이 좋음
  1. 적절한 공간 조정
    가독성을 위해 여백과 공간을 조정 (Bar Plot 1 -> 2)

  2. 적절한 복잡함과 단순함

  • 쓸모 없는 복잡함은 쓸모 없다.
  • 보고자 하는 정보를 잘 나타낼 수 있는 시각화가 좋은 시각화
    • 나무를 볼 때 - 정확한 차이 (EDA)
    • 숲을 볼 때 - 큰 틀에서 비교 및 추세 파악 (Dashboard)
  • Grid, Ticklabels(Major, Minor), Text/Annotate 등 복잡함을 추가할 수 있음.
  1. 그외
  • 오차 막대 추가 -> Uncertainty 정보 시각화 가능 (errorbar)
  • Bar 사이에 Gap이 0으로 붙어있다면 -> Histogram (.hist())
  • 다양한 Text 활용 -> 제목 (.set_title()), 라벨 (.set_xlabel(), .set_ylabel()) 등
profile
NLP Researcher / Information Retrieval / Search

0개의 댓글