대표 그래프
Bar Plot
- .bar() / .barh()
- 범주(category)에 따른 수치 값을 비교하기에 적합한 방법.
- 여러 그룹의 값을 표현하기 위해서 어떻게 할까?
- multiple bar plot : 플롯 자체를 여러 개 그리는 방법
- stacked bar plot : 2개 이상의 그룹을 쌓아서 표현하는 방법
- overlapped bar plot : 2개 그룹을 겹친 후에 투명도 조절을 통해 표현하는 방법.
- grouped bar plot : 그룹별 범주에 따른 bar를 이웃되게 배치하는 방법.
- Principle of Proportion Ink
실제 값과 그에 표현되는 그래픽의 잉크 양은 비례해야 한다.
즉 축의 시작은 zero! - 여백과 공간 조정을 통한 적절한 공간 활용도 중요.
Line Plot
- .plot()
- 연속적으로 변화하는 값을 순서대로 점으로 나타내고 이를 선으로 연결한 그래프
- 시간/순서에 대한 변화에 적합하여 추세를 살피기 위해 사용. 시계열 분석에 특화
- 5개 이하의 선을 사용하는 것을 추천.
- '색상 / 마커 / 선의 종류'를 통해 구별
- Line plot에 필요한 전처리
시시각각 변동하는 데이터는 Noise로 인해 패턴 및 추세 파악이 어려움.
인지적인 방해를 줄이기 위해 smoothing 기법 사용. - Line plot은 추세를 보는게 주된 목적
Bar plot과 달리 축을 0에 둘 필요도 없고 너무 디테일할 필요가 없음
하지만 지나친 편집은 오히려 오해를 불러일으키므로 일반적인 분석에서는 지양 - 간격
간격이 불규칙적할 경우 정보에 오해를 일으킬 수 있음. - 보간
Line은 점과 점을 이어 만드는 요소. 점과 점 사이에 데이터가 없기에 이를 잇는 방법. - 이중 축
한 plot에 대해 2개의 축을 이중 축(dual axis)라 함.
같은 시간 축에 대해 서로 다른 종류의 데이터를 표현하기 위한 .twinx()
한 데이터에 대해 다른 단위를 사용할 경우 .secondary_xaxis(), .secondary_yaxis() 사용
2개의 plot 그리기 >>>>> 이중축 사용 - 보다 연한 색을 사용해서 uncertainty 표현 가능
Scatter Plot
- .scatter()
- 점을 사용하여 두 feature간 관계를 표현하는 그래프
- '색(color) / 모양(marker) / 크기(size)'를 통해 구별
- scatter plot의 목적
⊙ 상관관계 확인(양의 상관관계 / 음의 상관관계 / 없음)
⊙ 군집 확인
⊙ 값 사이의 차이 확인
⊙ 이상치 확인 - Overplotting의 경우
점이 많아질수록 분포 파악이 힘들다.
⊙ 투명도 조정
⊙ 지터링(jittering) : 점의 위치를 조금씩 변경
⊙ 2차원 히스토그램 : heatmap을 사용하여 깔끔한 시각화
⊙ Contour plot : 분포를 등고선을 사용하여 표현 - 색 : 이산은 개별 색상으로 연속은 gradient로 표현
- 마커 : 추천하지 않는 방식
- 크기 : 버블 차트(bubble chart)라고 부름. 구별하기는 쉽지만 오용하기 쉬움. 관계보다는 각 점간 비율에 초점두자.
- 인과 관계(causal relation)과 상관 관계(correlation)은 다르다!
인과 관계는 항상 사전 정보와 함께 가정으로 제시할 것! - 추세선을 사용하면 scatter의 패턴을 유추할 수 있음. 추세선이 2개 이상이면 가독성 떨어지니 주의.
- Grid는 지양
- 범주형이 포함된 관계에서는 heatmap 또는 bubble chart 추천
차트의 요소
Text
시각화만으로 전달할 수 없는 설명 추가할 수 있고 잘못된 전달에서 생기는 오해를 방지할 수도 있다.
But, 지나친 Text 사용은 오히려 이해를 방해할 수도 있음.
Color
- 가장 효과적인 채널 구분
- 화려한 색은 매력적이고 시각화의 요소이긴 하지만, 원하는 인사이트를 전달하는게 제일 중요
- 사람이 특정 색에 대해 공통적으로 가지는 느낌이 존재
- Color Palette의 종류
⊙ 범주형(Categorial / Discrete / Qualitative): 독립된 색상으로 구성되어 범주형 변수에 사용.
색의 차이로 구분. 채도, 명도 조정은 지양.
⊙ 연속형(Sequential): 정렬된 값을 가지는 순서형, 연속형 변수에 적합. 연속적인 색상을 사용해 값 표현.
색상은 단일 색조로 표현.
⊙ 발산형(Diverge): 연속형과 유사하지만 중앙을 기준으로 발산. 상반된 값/ 서로 다른 2개를 표현하는데 적합. - 강조(Highlighting)
데이터의 다름을 보이기 위함.
색상 대비(Color Contrast): 강조의 방법 중 하나
⊙ 명도 대비: 밝은 색과 어두운 색을 통해 표현 (회색 검정)
⊙ 색상 대비: 가까운 색을 배치해 둘의 차이를 크게 표현 (파랑 보라. 빨강 보라)
⊙ 채도 대비: 채도의 차이를 통해 채도를 더 높게 표현 (회색 주황)
⊙ 보색 대비: 정반대 색상을 사용해 더욱 선명하게 표현 (빨강 초록) - 색각 이상(색맹/색약)에 대한 고려 필요
- HSL
⊙ Hue(색조): 색상으로 생각하는 부분. 빨강~보라의 스펙트럼을 0-360으로 표현
⊙ Saturate(채도): 무채색과의 차이. 선명도
⊙ Lightness(광도): 색상의 밝기
Facet
- 분할을 의미
- 인코딩 방식 / 제시하는 feature에 따라 다양한 관점을 전달 가능.
- Figure & Axes
Figure : 큰 틀
Axes : 각 플롯이 들어가는 공간
cf) DPI(Dots per Inch) : 해상도를 의미 - N*M subplot 그리기
subplot(), subplots(), figure()+add_subplot(), add_grid_spec(), subplot2grid(), - 내부에 그리기
ax.insert_axes(), make_axes_locatable(ax)
Grid
- grid는 축과 평행한 선을 사용하여 거리 및 값 정보를 제공
무채색(color)
Layer 순서 상 맨밑(zorder)
큰 격자 / 세부 격자 (which= 'major' / 'minor' / 'both')
X축 / Y축 / 동시 (axis = 'x' / 'y' / 'both') - 다양한 타입의 grid
⊙ 두 Feature의 합이 중요한 경우 x+y=c
⊙ 두 Feature간 비율이 중요한 경우 y=cx
⊙ 두 Feature의 곱이 중요 xy=c
⊙ 특정 데이터를 중심으로 (x-x`)^2 + (y-y`)^2 = c - 그 외, 심플한 처리
선 추가하기
면 추가하기
Setting / Theme 바꾸기
'네이버 부스트캠프 AI Tech > Data Visualization' 카테고리의 다른 글
[부스트캠프 AI Tech] Interactive visualization & 비정형 데이터셋 viz (0) | 2022.02.17 |
---|---|
[부스트캠프 AI Tech] 다양한 시각화 방법론 (0) | 2022.02.13 |
[부스트캠프 AI Tech] Seaborn (0) | 2022.02.05 |
[부스트캠프 AI Tech] 데이터 시각화 기초 (0) | 2022.02.03 |
댓글