끄적이는 개발노트

260513_강의 정리 (Matplotlib) 본문

Python

260513_강의 정리 (Matplotlib)

크런키스틱 2026. 5. 13. 10:05
728x90

■ Matplotlib 시각화 (EDA)

  • Matplotlib 계열 흐름
    1. matplotlib
      • Python의 가장 기본이 되는 시각화 라이브러리
      • 거의 모든 Python 시각화 라이브러리의 기반
    2. pandas.plot
      • matplotlib를 쉽게 사용할 수 있도록 래핑한 기능
      • 데이터프레임 기반 빠른 시각화
    3. seaborn
      • 통계 분석용 시각화 강화
      • 회귀선, 분포, 상관관계, 범주 비교 등에 특화
    4. plotly / dash
      • 인터랙티브(확대/hover) 웹 시각화
      • 대시보드 제작 가능
  • 기본 구조
    • figure (캔버스)
      • 전체 도화지 (Canvas)
      • 그래프 전체 영역
      • 여러 개의 그래프 (ax)를 포함 가능
    • Axes
      • 실제 그래프가 그려지는 영역 (제목, 그래프, 눈금, 범례)
      • 여러 개 생성 가능
    • Axis
      • 축 (x, y)
    • Spines
      • 그래프 경계선
    • Canvas
      • 실제 출력되는 화면 영역
  • 내부 계층 구조
    1. Backend Layer
      • 실제 출력 담당
      • 역할
        • PNG 저장
        • GUI 출력
        • Notebook 렌더링
      • 종류
        • TkAgg
        • Qt
        • Agg
        • WebAgg
    2. Artist Layer
      • 그래프를 구성하는 객체 계층
      • 모든 요소가 Artist 객체 (text, line, axis, legend 등)
    3. Scripting Layer (pyplot)
      • 사용자가 가장 많이 쓰는 인터페이스
      • 특징
        • MATLAB 스타일
        • 빠른 그래프 생성
        • 내부적으로 figure/axes 자동 생성
  • 출력 결과 형태
    • Raster Image
      • 픽셀 기반 이미지 (PNG, JPG)
      • 확대 시 깨짐 (계단 현상)
    • Vector Image
      • 수학적 좌표 기반 (SVG, PDF)
      • 확대해도 안 깨짐
  • 종류
    • 범주형 : 그룹(카테고리) 간 비교
      • Bar : 범주별 값 비교
      • Pie : 전체 대비 비율 표현
      • Stacked Bar : 누적 막대 그래프
    • 수치형 분포 : 데이터가 어떻게 퍼져있는지
      • Histogram : 구간(bin) 별 빈도수
      • KDE : 분포를 부드러운 곡선 => 밀도
      • Box : 사분위수 기반 분포
      • Violin : Box + KDE
    • 수치형 관계 : 변수 간 관계 확인
      • Scatter : 점으로 관계 표현
      • Bubble : Scatter + 점 크기 추가
      • Heatmap : 색으로 수치 표현
    • 시계열 : 시간 흐름 분석
      • Line : 시간 변화 추이
      • Area : 면적으로 누적 변화 표현
      • OHLC : 금융 데이터용
    • 3차원/공간 시각화
      • Surface : 3차원 곡면
      • Contour : 등고선 그래프
      • mplot3d : matplotlib 3D 모듈
  • 이미지 정규화
    • 픽셀 값을 일정 범위로 변환
    • 255로 나눔 → 0~1 사이 값으로 변환
728x90

'Python' 카테고리의 다른 글

260518_강의 정리 (Pandas)  (0) 2026.05.18
260512_강의 정리 (NumPy)  (0) 2026.05.13
260415_강의 정리 (Flask)  (1) 2026.04.15
260410_강의정리 (Python을 이용한 MySQL DB 연동)  (0) 2026.04.10
260406_강의정리 (클래스 관계)  (0) 2026.04.06