📌 학습 개요
- 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. 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의 규칙
- Principle of Proportion Ink
그래픽의 잉크 양은 표현하는 실제 값에 비례해야 함.
- 반드시 시작은 0

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

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