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)

      class="highlight">
      1
      
        plt.title("그래프 제목", fontsize=15)
      
    • 글꼴 설정
      • fontfamily 파라미터로 텍스트의 글꼴 지정
      • 특히 한글 사용 시 글꼴 설정은 필수적인 요소
      • ex)

        class="highlight">
        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강 - 클라우드 아키텍처