[Python] Matplolib

wooaeng·2025년 10월 30일

Python

목록 보기
5/8
post-thumbnail

가상환경 활성화 (MacOS)
source 가상환경 이름/bin/activate

파이썬 가상환경 선택 (VS code)
control + shift + p > Python: Select interpreter

데이터 시각화

데이터 분석 결과를 쉽게 이해하고 판단할 수 있도록 데이터를 시각적으로 표현해 전달하는 과정

필요성

  • 시각적 요소를 활용해 데이터를 요약함으로써, 많은 양의 데이터를 한 눈에 파악 가능
  • 전문 지식이 없어도 누구나 해당 데이터를 인지하고 활용할 수 있게 함
  • 단순한 데이터 요약, 통계분석 결과보다 정확한 데이터 분석결과 도출 가능

대표적인 Python 데이터 시각화 라이브러리

  • matplotlib
  • seaborn
  • pandas
  • plotly
  • folium

Matplotlib

  • 데이터 시각화를 위한 파이썬 패키지
  • 2차원 그래프를 위한 패키지이지만, API를 이용해 3D 그래프 등 다양한 형식 지원
  • Seaborn, Pandas 등 Python의 다른 시각화 패키지들이 기본으로 삼는 패키지

    설치
    pip install matplotlib

    • (설치 파일에서 기본값 변경) 기본 폰트는 한글을 지원하지 않으므로 폰트 변경 필요
      1. 파이썬설치경로\Lib\site-packages\matplotlib\mpl-data\matplotlibrc 접근
      2. font.famliy 를 설치된 폰트 중 한글 지원 폰트로 변경
        font.family: Malgun gothic **MacOS의 경우 Apple SD Gothic Neo
      3. axes.unicode_minusFalse 로 변경
        axes.unicode_minus: False
    • 항상 적용될 기본값은 설치 파일에서 기본값을 변경하고, 현재만 일시적으로 적용할 설정은 아래 코드를 이용해 변경
      plt.rcParams["font.family"] = "malgun gothic"
      plt.rcParams['axes.unicode_minus'] = False

그래프 구성요소

  • figure
  • axes(subplot)
  • axis
    • 축(x, y)은 값들을 표시하는 선
    • axis label (x, y) : 축의 레이블(설명)
  • ticks : 축의 값을 알려주는 눈금
    • Major tick
    • Minor tick
  • title : 플롯 제목
  • legend (범례)
    • 하나의 axes내에 여러 그래프를 그린 경우 그것에 대한 설명

그래프 그리기

  1. matplotlib.pylot 모듈 import
    import matplotlib.pylot as plt # alias는 관례적으로 plt
  2. 그래프 그리기
  3. 필요한 설정 부여
  4. 화면에 그리기 - 실행문의 마지막에 pyplot.show()를 호출해 그래프 생성

pyplot 이용

import matplotlib.pyplot as plt

x = [ 1, 2, 3, 4, 5 ]
y = [10, 50, 20, 15, 30]

# 각종 속성 입력
plt.plot(x,y)
plt.title("그래프 제목 입력", fontsize="20")
plt.xlabel("x축 label명", fontsize="10")
plt.ylabel("y축 label명", fontsize="10")
plt.grid(True, linestyle=":")

# 그래프 출력
plt.show()
메소드역할
plt.figure()- 그래프를 그릴 캔버스 생성
- () 안에 figsize=(좌우 크기, 상하 크기, 단위 inch) 넣어 크기 지정
plt.subplot()- 캔버스 상 그래프가 들어갈 구역 생성
- () 안에 row, columns, num 삽입
- 하나의 figure에 여러 그래프 그릴 때 사용
plt.plot()- 선 그래프 그리기
plt.scatter()- 점 그래프 그리기
plt.title()- 그래프 제목 추가하기
plt.tight_layout()- 여러 그래프 생성 시 그래프 간 간격 조정
plt.legend()각 그래프의 라벨을 이용한 범례 지정
plt.show()그래프 출력

Figure와 Axes객체 이용

  • AxesSubplot객체(Axes를 표현하는 객체)의 메소드 이용
  • axes 생성
구문
plt.gch()- plt로 그래프를 그릴 때 대상 axes를 반환
- 하나의 figure에 하나의 axes만 필요로 하는 경우 사용
figure.add_subplot()- 하나의 figure에 여러 개의 axes를 필요로 하는 경우 사용
- figure 먼저 생성 > axes 추가
pyplot.subplots()- figure와 axes 배열을 동시에 생성

  • 객체=plt.gca() 로 그래프 그릴 객체 생성, 객체.메소드() 형태로 입력
메소드역할
.plot()선 그래프 그리기, linestyle 지정 가능
.scatter()점 그래프 그리기
.set_title()그래프 제목 설정
.set_xlabel()x축 라벨 값 설정
.set_ylabel()y축 라벨 값 설정
.grid()축 배경 눈금선 설정, linestyle 지정 가능
.legend()각 그래프의 라벨을 이용한 범례 지정
.show()그래프 출력

0개의 댓글