Barplot

yst3147·2022년 2월 5일
0

공부 내용

  • Barplot
  • 다양한 Barplot
  • 정확한 Barplot

Barplot

  • Barplot이란 직사각형 막대를 사용하여 데이터의 값을 표현하는 차트/그래프
    -> 막대 그래프, bar chart, bar graph 등의 이름으로 사용
  • 범주(category)에 따른 수치 값을 비교하기에 적합
    -> 개별 비교, 그룹 비교 모두 적합

막대의 방향에 따른 분류

  • 수직(vertical) : x축에 범주, y축에 값 표기(default)
    -> .bar() 활용
  • 수평(horizontal) : y축에 범주, x축에 값 표기(범주가 많을 때 적합)
    -> .barh() 활용

다양한 Barplot

  • Barplot에서는 범주에 대해 각 값을 표현
    -> 1개의 feature에 대해서만 결과를 보여줌
  • 여러 Group을 보여주기 위해서는 다른 여러가지 방법이 필요

Multiple Barplot

  • 플롯을 여러 개 그리는 방법
  • Group 간의 비교가 어렵다는 단점이 있음

Stacked Barplot

  • 2개 이상의 그룹을 쌓아서(stack) 표현하는 bar plot
    -> 각 bar에서 나타나는 그룹의 순서가 항상 유지돼야 함
  • 쌓아서 보면 각 그룹에 대한 전체 비율은 알기 쉬움
  • 맨 밑의 bar 분포는 파악하기 쉽지만 그 외의 분포 파악하기 어려운 단점
  • 2개의 그룹이 positive/negative라면 축 조정 가능

Percentage Stacked Barplot

  • Stacked barplot 응용
  • 각 범주에 대해 전체 비율을 나타냄(Percentage Stacked Bar Chart)

Overlapped Barplot

  • 2개 이상의 그룹을 겹쳐서 표현하는 bar plot
  • 같은 x, y축을 사용해서 비교가 쉬움 -> 2개 그룹만 비교할 때 한정
  • 3개 이상의 그룹을 겹치면 보기가 어렵다는 단점
    -> Barplot 보다는 Seaborn Areaplot(면적 plot)이 효과적
  • 투명도(alpha)를 조정하여 겹치는 부분 파악 -> 실험을 통해 선택
  • 두 그룹 색깔 및 명도나 채도도 중요

Grouped Barplot

  • 그룹별 범주에 따른 bar를 이웃되게 배치하는 bar plot
  • Matplotlib으로는 비교적 구현이 까다로움
    -> seaborn 라이브러리에는 Grouped Barplot 구현됨
  • 그룹 개수는 5개~7개 이하인 것이 적당함
    -> 그룹이 많다면 데이터가 적은 그룹은 ETC로 묶어서 처리

정확한 Barplot

Principle of Proportion Ink(잉크 양 비례의 법칙)

  • 실제 값과 그에 표현되는 그래픽으로 표현되는 잉크 양은 비례해야 함
  • x축의 시작은 반드시 zero(0)여야 함!!
    -> 그렇지 않으면 전체적인 비교가 어려울 수 있음
  • 비교를 위한다면 세로축을 늘리는게 좋을 수 있음
  • 막대 그래프에만 한정되는 원칙은 아님
    -> Areaplot, Donut Chart 등 다수의 시각화에서 적용

데이터 정렬하기

  • 시각화에서는 순서가 중요하므로 정렬이 필수적임

  • 데이터 종류의 따른 정렬 기준

    • 시계열 : 시간순
    • 수치형 : 크기순
    • 순서형 : 범주 순서대로
    • 명목형 : 범주의 값 따라서 정렬
  • 정렬 방법에 따라 여러가지 패턴을 발견할 수 있음
    -> 여러 방식의 plot 한 번에 보여주면 유용

적절한 공간 활용

  • 여백과 공간만 조절해도 가독성 높아짐

  • Matplotlib 공간 활용 techniques

    • X/Y axis Limit : x, y 범위
    • Spines : 테두리 선
    • Gap : 막대의 두께
    • Legend : 범례(위치 이동)
    • Margins : 양 옆 공간

복잡함과 단순함

  • 불필요하게 복잡한 시각화 하지 말 것
    • ex) 3D, 직사각형이 아닌 다른 형태의 bar 등
  • 무엇을 보고 싶은가에 따라 복잡도 달라짐
    • 정확한 차이(EDA)
    • 큰 틀에서 비교 및 추세 파악(Dashboard)
  • 전달하고자 하는 정보에 따라 복잡하게 그릴 수 있음
    • Grid : 격자
    • Ticklabels : 축 숫자
      • Major & Minor
    • Text 추가 위치 및 방법

ETC

  • 오차 막대를 추가하여 Uncertainty(불확실성) 정보 추가 (errorbar)
  • Bar 사이 Gap을 0으로 만들면 히스토그램(Histogram)
    • .hist()를 사용하면 가능
    • 연속된 느낌을 줄 수 있음
  • 제목, 라벨 등 Text 정보 활용

0개의 댓글