Home [오픈 소스 기반 데이터 분석] 11강 - 데이터 시각화
Post
Cancel

[오픈 소스 기반 데이터 분석] 11강 - 데이터 시각화

💡해당 게시글은 방송통신대학교 정재화 교수님의 '오픈 소스 기반 데이터 분석' 강의를 개인 공부 목적으로 메모하였습니다.



학습 개요


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



학습 목표


  • 색상, 레이블, 주석 등의 시각화 요소를 효과적으로 활용하여 데이터의 의미를 명확히 전달할 수 있음
  • 서브 플롯을 활용한 대시보드 구성과 인터랙티브 시각화 기법을 구현할 수 있음
  • 실제 비즈니스 문제에 데이터 시각화를 적용하여 의사 결정에 필요한 통찰력을 도출할 수 있음



강의록


고급 시각화 기법

트리맵(Treemap)

  • 계층적 데이터를 시각화하는 그래픽 표현 방법
    • 카테고리형 데이터를 표현하는 데 효과적이며, 데이터 간의 관계성을 시각적으로 직관적으로 이해하는 데 유용

    image.png

지도 시각화(Map Visualization)

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

    image.png

네트워크 그래프

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

    image.png

바이올린 플롯

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

    image.png

등고선 그래프

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

    image.png

그래프 스타일링

컬러 설정

  • 적절한 컬러 선택은 그래프의 가독성을 높이고, 데이터를 효과적으로 전달
  • 컬러 지정 방법
    • ‘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’ 등 다양한 맵 제공

    image.png

축, 레이블, 제목 설정

기능 함수 설명
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 기반으로 웹 브라우저에서 동작

개념 정리 실습

  • UCI Machine Learning Repository의 ‘Online Retail’ 데이터 셋을 활용하여 종합 대시보드 구현

    | 단계 | 주요 내용 | 사용 도구/방법 | | — | — | — | | 1. 데이터 수집 및 전처리 | - 데이터셋 다운로드

    • 데이터 로드
    • 데이터 전처리 - pandas 라이브러리  
        2. 기본 시각화 - 시간에 따른 판매 추이
    • 지역별 판매 현황
    • 요일 및 시간대별 판매 추이 - Matplotlib, Seaborn
    • 선, 막대, 히트맵    
        3. 고급 시각화 - 고객 세그먼트 분석
    • 구매 패턴 시각화
    • 3D 시각화 - Matplotlib, Seaborn
    • 산점도, 3D 그래프      
        4. 종합 대시보드 구현 - 서브 플롯 활용 - Matplotlib의 subplot



연습 문제


  1. 트리맵(treemap) 시각화는 주로 어떤 데이터를 표현하는 데 효과적인가?

    a. 계층적 구조의 카테고리형 데이터

  2. 다음 중 Matplotlib에서 x축 레이블을 설정하는 함수는?

    a. plt.xlabel()

  3. Bokeh와 Plotly는 어떤 시각화 방식에 해당하는가?

    a. 인터랙티브 시각화



정리 하기


  • 기본적인 그래프 이외에도 트리맵, 지도 시각화, 네트워크 그래프, 바이올린 플롯 등의 시각화 기법을 통해 계층적, 공간적, 관계적 데이터를 표현할 수 있음
  • 색상 설정은 기본 색상, RGB/RGBA, 색상 이름, 컬러 맵을 활용함
  • 축, 레이블, 제목 설정으로 그래프의 정보를 명확히 전달함
  • 마커와 선 스타일 설정으로 데이터 포인트와 선을 구분함
  • 범례와 주석 추가로 그래프의 의미를 보강함
  • 서브 플롯을 활용하여 여러 그래프를 하나의 화면에 배치함
  • 3D 시각화로 데이터의 3차원 관계를 표현함
  • 인터랙티브 시각화로 사용자가 데이터를 탐색할 수 있게 함
  • 종합 대시보드로 여러 시각화를 통합하여 전체적인 통찰력을 제공함
Contents

[클라우드 컴퓨팅] 10강 - 클라우드 아키텍처

[클라우드 컴퓨팅] 11강 - 클라우드 아키텍처