네이버 부스트캠프 AI Tech 2기
[08.10 Special 강의] 📊 기본적인 차트 활용
Jay x 2
2021. 8. 21. 19:27
728x90
반응형
Bar Plot
- 기본 Bar Plot범주에 따른 수치 값을 비교할 때 적합한 방법이다.(개별 비교, 그룹 비교 모두 적합)
- Vertical(default) : X축 범주, Y축 값
- Horizontal : Y축 범주, X축 값
- Bar Plot ? : 직사각형 막대를 통해 데이터의 값을 표현하는 차트/그래프이다.
- 다양한 Bar Plot
- Multiple Bar Plot두개 이상의 그룹을 쌓아서 표현하는 방법 → Stacked Bar Plot단점 : 맨 밑의 bar 분포는 파악하기 쉽지만, 그 외 분포는 파악하기 어렵다.각 범주에 대해 전체 비율을 추가 → Percentage Stacked Bar Chart겹쳐서 그리는 방법 → Overlapped Bar Plot단점 : 보기가 좀 불편하다.(3개 이상일때)단점 : 구현이 좀 까다롭다.(Matplotlib에서), 그룹이 너무 많아도 가독성이 떨어진다.
- 그룹별 범주에 따른 bar를 이웃되게 그리는 방법 → Grouped Bar Plot
- 투명도 alpha를 조정해서 처리한다.
- 장점 : 비율 정보는 보기 편하게 바꿀 수 있다.
- 더 정확한 Bar Plot: 실제 값과 그에 표현되는 그래픽으로 표현되는 잉크의 양은 비례해야 한다.또한 막대 그래프에만 한정되는 규칙이 아니다.
- 시계열 → 시간순
- 수치형 → 크기순
- 순서형 → 범주의 순서
- 명목형 → 범주의 값 따라 정렬3-3) 적절한 공간 활용
- 또한 전달하고 하는 정보에 따라서 다르게 표현해야 한다.
- 3-4) 복잡함과 단순함
- 여백과 공간만 조정해도 가독성이 높아진다.(ex Matplotlib에서 bar plot은 ax에 꽉 차서 답답함)
- 꼭 한가지 정렬이 정답이 아니라, 여러가지 정렬을 시도하면서 패턴을 발견하고 대시보드에서 Interactive하게 보여주는 것이 유용하다.
- 정확한 차이를 보고 싶다? (EDA)
- 추세나 비교를 하고 싶다. (Dashboard)오차 막대를 추가해 Uncertainty 정보를 추가할 수 있다.(errorbar)다양한 Text정보를 활용해 표현하기(제목이나 라벨)
- Bar사이 갭이 0이면 → Histogram
- 3-5) 기타
- Pandas에서 sort_values(), sort_index()를 사용해서 정렬한다.
- 3-2) 데이터 정렬하기
- ex) 가독성이 높다고 좋은 것은 아니다.
- 반드시 x축의 시작은 zero(0) !
- 3-1) 잉크양 비례의 원칙(Principle of Proportion Ink)
Line Plot
- 기본 Line Plot선 그래프라고 부른다. 연속적인 변화하는 값의 점을 찍고 이를 이어서 표현을 한다. 흐름과 추세를 나타내는데 사용한다.→ .plot() 함수를 사용한다.보통은 5개 이하의 선을 사용하는 것을 추천한다. 많이 중첩이 될 경우는 가독성이 하락한다.1-3) Line Plot을 위한 전처리Noise의 인지적인 방해를 줄이기 위해서 smoothing을 사용한다.(평균을 내서 등등)
- 시시각각 변동하는 데이터는 Noise로 인해 패턴 및 추세 파악이 어렵다.
- 그래서, 색상, 마커, 선의 종류(linestyle, linewidth) 로 구분을 한다.
- 1-2) Line Plot 요소
- 시계열 분석에 특화되어 있다.
- 1-1) Line Plot이란?
- 정확한 Line Plot계절성이나 주기에 예민하기 때문에 축자체를 0에 둘 필요는 없다.
- 라인 끝 단에 레이블을 추가해서 식별에 도움을 주자.
- Min/Max 정보는 추가주면 도움이 될 수 있다!
- 보다 연한 색을 사용하여 uncertainty 표현 가능하다.(신뢰구간이나 분산 등)
- 그래도 이중 축을 그리는 것은 지양한다.
- 한 데이터에 대해 다른 단위를 사용한다.
- 같은 시간 축에 대해 서로 다른 종류의 데이터를 표현하기 위해서 축이 2개가 필요하다.
- 2-4) 이중 축 사용
- 문제는 없는 데이터를 있다고 생각할 수 있으며 작은 차이를 없앨 수가 있다.
- Line은 점을 이어 만드는 요소 → 점과 점 사이에 데이터가 없어서 이를 잇는 방법을 보간이라고 한다.
- 그래프 상에서 간격이 다를 때 : 없는 데이터에 대해 있다고 오해
- 2-2) 간격
- 너무 구체적인 Line Plot보다는 생략된 line plot이 나을 수 있다.(Grid, Annotate 등은 모두 제거한다. 또한 디테일한 정보는 표로 제공하는 것을 추천한다.)
- 2-1) 추세에 집중한다.
Scatter Plot[목적에 초점을 가지자!]
- 기본 Scatter Plot산점도 등의 이름으로 사용된다.색, 모양, 크기를 통해서 다양성을 줄 수 있다.(2차원 데이터 → N 차원 데이터로 확장이 가능하다): 상관 관계를 확인한다.: 세가지 확인이 가능하다!
- 목적
- → .scatter()
- Scatter Plot은 점을 사용해 두 feature간에 관계를 알기 위해 사용하는 그래프이다!
- 정확한 Scatter Plot점이 많아질 수록 점의 분포를 파악하기 힘들다!2-2) 점의 요소와 인지마커 : 거의 구분하기 힘들고 크기가 고르지 않다.2-3) 인과관계와 상관관계2-4) 추세선(그러나 추세선이 2개 이상이 되면 가독성이 떨어질 수 있다.)Grid 와 Scatter는 같이 쓰는 것을 지양한다.
- 그래서 범주형이 포함된 관계에서 heatmap 이나 bubble chart를 추천한다.
- 2-5) ETC
- 추세선을 사용하면 scatter 패턴을 유추할 수 있다.
- 인과 관계 ≠ 상관관계! → 꼭 고민해야하는 부분이다.
- 크기 : 버블차트라고 부른다. 구별하기 쉽지만 오용하기 쉽다. 관계보다는 비율에 초점을 두면 좋다! SWOT 분석 등에 활용 가능하다.
- 색 : 연속은 gradient, 이산은 개별 색상
- 2-1) Overplotting
[수업 회고]
- 원래 matplotlib을 사용해서 시각화를 해본 적있었는데, 생각보다 크기나 배치하는 것에 어려움이 있었다.
- 강의를 보고 기본적인 것 부터 알게 되어서 다음에 시각화를 적극적으로 사용해 봐야겠다.
- Line, Scatter, Bar Plot 의 각각 특징을 잘 살려서 활용해야겠다.
- 시각화에는 정답이 없다고 하고, 읽는 사람에게 원하는 정보만 잘 전달되면 된다고 한다.
반응형