학습 개요
- 데이터 시각화는 데이터의 구조와 의미를 효과적으로 전달하는 전략적 표현 방식이며 특히 복잡하거나 고차원적인 데이터를 분석하는 데 있어 시각화는 데이터의 특성과 맥락을 통찰력 있게 드러낼 수 있도록 도와줌
- 따라서 고급 시각화 기법과 이를 구성하는 시각적 요소들에 대한 이해는 데이터 분석가에게 반드시 요구되는 역량임
- 고급 시각화 기법과 그래프 스타일링 기법에 대해 학습함
- 보편적으로 사용되는 시각화 기법 이외에 계층적, 공간적, 관계적 구조를 명확하게 표현할 수 있는 시각화 방법을 다룸
- 시각화의 전달력을 극대화하기 위한 시각 구성 요소들을 학습함
- 컬러 설정, 컬러 맵 적용, 텍스트 구성(제목, 레이블, 범례 등), 마커 및 선 스타일, 폰트 크기와 글꼴 설정, 서브 플롯 구성, 인터랙티브 시각화 구현 등은 사용자와 데이터 간의 상호 작용을 고려한 디자인 구성 방법에 대해 학습함
- 이러한 구성을 동적으로 할 수 있는 인터랙티브 시각화 기법에 대해 다룸
학습 목표
- 색상, 레이블, 주석 등의 시각화 요소를 효과적으로 활용하여 데이터의 의미를 명확히 전달할 수 있음
- 서브 플롯을 활용한 대시보드 구성과 인터랙티브 시각화 기법을 구현할 수 있음
- 실제 비즈니스 문제에 데이터 시각화를 적용하여 의사 결정에 필요한 통찰력을 도출할 수 있음
강의록
고급 시각화 기법
트리맵(Treemap)
- 계층적 데이터를 시각화하는 그래픽 표현 방법
- 카테고리형 데이터를 표현하는 데 효과적이며, 데이터 간의 관계성을 시각적으로 직관적으로 이해하는 데 유용

지도 시각화(Map Visualization)
- 공간적 데이터를 효과적으로 분석하고 전달하는 기법
-
지도 위에 데이터를 시각적으로 표현함으로써 지역 간 차이, 특정 지역의 특성, 이동 경로 등의 정보를 쉽게 파악 가능

네트워크 그래프
- 개체들 간의 연결 관계를 시각적으로 표현하는 도구
- 개체(노드)는 점으로 표현되며, 노드 간의 관계(간선)는 선으로 표현
- 개체들 간의 상호 작용을 분석

바이올린 플롯
- 데이터의 분포와 밀도, 요약 통계(중앙값 등)를 종합적으로 표현할 수 있는 시각화 기법
-
데이터의 전반적인 분포와 중심 값, 퍼짐 정도를 확인

등고선 그래프
- 3차원 데이터를 2차원 평면에 표현하는 그래프
-
표면의 높낮이 변화나 함수의 값이 위치에 따라 어떻게 변하는지 시각적으로 표현

그래프 스타일링
컬러 설정
- 적절한 컬러 선택은 그래프의 가독성을 높이고, 데이터를 효과적으로 전달
- 컬러 지정 방법
- ‘b’(blue), ‘g’(green), ‘r’(red), ‘c’(cyan), ‘m’(magenta), ‘y’(yellow), ‘k’(black), ‘w’(white)
- RGB(Red, Green, Blue), RGBA(R, G, B, Alpha)
- 밝은 계열, 어두운 계열, 중간톤 계열 등 ‘skyblue’, ‘salmon’, ‘forestgreen’과 같이 다양한 컬러 이름을 통해 컬러 지정 가능
컬러 맵
- 데이터의 값에 따라 색을 변화 시키며, 데이터의 크기나 경향성을 시각적으로 표현할 때 사용
- 연속적인 값의 변화나 밀도, 강약의 차이를 표현
- 연속형, 발산형, 정성적, 주기형, 특수 목적형 등 다양한 유형의 컬러맵 존재
- ‘skyblue’, ‘salmon’, ‘forestgreen’과 같은 이름으로 색상 지정 가능
- 기본, 밝은, 어두운, 중간톤 계열 등 다양한 색상 제공
- 데이터 값에 따라 색상을 변화시켜 연속적인 값의 변화나 밀도를 표현
- ‘viridis’, ‘plasma’, ‘Blues’ 등 다양한 맵 제공

축, 레이블, 제목 설정
| 기능 | 함수 | 설명 |
|---|---|---|
| x축 레이블 설정 | plt.xlabel() |
x축 아래에 설명 글자를 추가 |
| y축 레이블 설정 | plt.ylabel() |
y축 왼쪽에 설명 글자를 추가 |
| x축 범위 설정 | plt.xlim(시작, 끝) |
x축의 최소 값과 최대 값 설정 |
| y축 범위 설정 | plt.ylim(시작, 끝) |
y축의 최소 값과 최대 값 설정 |
| 그래프 제목 설정 | plt.title() |
그래프 상단에 제목 추가 |
| 글자 크기 설정 | fontsize=숫자 |
글자 크기 설정 (ex 12, 14 등) |
| 색상 설정 | color='색상명' |
글자 색상 설정 (ex) ‘red’, ‘blue’ 등) |
마커와 선 스타일
| 마커 기호 | 의미 |
|---|---|
| ’.’ | 작은 점 |
| ‘o’ | 동그라미 |
| ’^’ | 위쪽 삼각형 |
| ’s’ | 사각형 |
| ‘D’ | 마름모 |
| ‘x’ | x자 모양 |
| 선 스타일 | 기호 | 의미 |
|---|---|---|
| 실선 | ’-‘ | 실선 |
| 점선 | ’–’ | 점선 |
| 점-대시 선 | ’-.’ | 점-대시 선 |
| 점선 | ’:’ | 점선 |
텍스트 크기 및 글꼴 설정
- 적절한 글자 크기와 글꼴 선택은 정보의 계층 구조를 만들고 시각적 일관성을 유지하는 데 필수적
- 글자 크기 설정
- fontsize 파라미터를 통해 제목, 축 레이블, 범례 등의 텍스트 크기 조정
-
ex)
1
plt.title("그래프 제목", fontsize=15)
- 글꼴 설정
- fontfamily 파라미터로 텍스트의 글꼴 지정
- 특히 한글 사용 시 글꼴 설정은 필수적인 요소
-
ex)
1
plt.rcParams['font.family'] = 'NanumGothic'
서브 플롯
- 하나의 그림(Figure) 안에 여러 개의 그래프(Axes)를 격자 형태로 배치하는 기법
- 멀티 플롯(multiplot)이라고도 칭함
- 서브 플롯 생성
subplot()- 하나씩 생성하여 추가
subplots()- 한 번에 여러 개 생성
- 고려 사항
- 전체 그림 크기 설정
- 행과 열 개수 설정
- 축 공유 여부 설정
- 서브 플롯 간 간격 자동 조정 여부 설정
인터랙티브 시각화
- 사용자가 그래프와 상호 작용할 수 있는 동적 시각화 방식
- 데이터 포인트에 마우스를 올리거나 클릭하여 추가 정보 확인, 확대/축소, 필터링 등 다양한 상호 작용 가능
- 인터랙티브 시각화 라이브러리
- Bokeh 라이브러리
- 대규모 데이터와 복잡한 시각화에 적합한 파이썬 라이브러리
- 웹 애플리케이션과의 연동이 용이
- Plotly 라이브러리
- 파이썬 기반의 인터랙티브 시각화 라이브러리
- D3.js 기반으로 웹 브라우저에서 동작
- Bokeh 라이브러리
개념 정리 실습
-
UCI Machine Learning Repository의 ‘Online Retail’ 데이터 셋을 활용하여 종합 대시보드 구현
| 단계 | 주요 내용 | 사용 도구/방법 | | — | — | — | | 1. 데이터 수집 및 전처리 | - 데이터셋 다운로드
- 데이터 로드
-
데이터 전처리 - pandas 라이브러리 2. 기본 시각화 - 시간에 따른 판매 추이 - 지역별 판매 현황
-
요일 및 시간대별 판매 추이 - Matplotlib, Seaborn -
선, 막대, 히트맵 3. 고급 시각화 - 고객 세그먼트 분석 - 구매 패턴 시각화
-
3D 시각화 - Matplotlib, Seaborn -
산점도, 3D 그래프 4. 종합 대시보드 구현 - 서브 플롯 활용 - Matplotlib의 subplot
연습 문제
-
트리맵(treemap) 시각화는 주로 어떤 데이터를 표현하는 데 효과적인가?
a. 계층적 구조의 카테고리형 데이터
-
다음 중 Matplotlib에서 x축 레이블을 설정하는 함수는?
a.
plt.xlabel() -
Bokeh와 Plotly는 어떤 시각화 방식에 해당하는가?
a. 인터랙티브 시각화
정리 하기
- 기본적인 그래프 이외에도 트리맵, 지도 시각화, 네트워크 그래프, 바이올린 플롯 등의 시각화 기법을 통해 계층적, 공간적, 관계적 데이터를 표현할 수 있음
- 색상 설정은 기본 색상, RGB/RGBA, 색상 이름, 컬러 맵을 활용함
- 축, 레이블, 제목 설정으로 그래프의 정보를 명확히 전달함
- 마커와 선 스타일 설정으로 데이터 포인트와 선을 구분함
- 범례와 주석 추가로 그래프의 의미를 보강함
- 서브 플롯을 활용하여 여러 그래프를 하나의 화면에 배치함
- 3D 시각화로 데이터의 3차원 관계를 표현함
- 인터랙티브 시각화로 사용자가 데이터를 탐색할 수 있게 함
- 종합 대시보드로 여러 시각화를 통합하여 전체적인 통찰력을 제공함