Matplotlib - 1. 소개와 기초

2025. 1. 21. 11:24프로그래밍 (확장)/Python-Matplotlib

1.1 Matplotlib 개요

Matplotlib이란?

Matplotlib은 Python에서 데이터를 시각화하기 위한 가장 널리 사용되는 라이브러리 중 하나입니다. 이 라이브러리를 사용하면 데이터를 선, 막대, 산점도, 히스토그램, 파이 차트 등 다양한 그래프로 표현할 수 있습니다. Matplotlib은 높은 커스터마이징 기능을 제공하여 데이터를 효과적으로 전달하는 데 매우 유용합니다.


설치 방법

Matplotlib은 Python 패키지 관리자인 pip를 사용하여 설치할 수 있습니다. 설치하기 전에 가상환경을 생성하고 활성화하는 것이 권장됩니다:

# 가상환경 생성 및 활성화 (권장)
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# matplotlib 설치
pip install matplotlib

Jupyter Notebook 사용자는 그래프를 노트북 내에서 바로 보기 위해 아래의 매직 명령어를 실행해야 합니다:

%matplotlib inline    # 정적 그래프를 노트북 셀 안에 표시
%matplotlib notebook  # 대화형(인터랙티브) 그래프를 노트북 셀 안에 표시

기본 구성 요소

Matplotlib은 아래의 주요 구성 요소로 나뉩니다:

  1. Figure:
    • 전체 그래프가 그려지는 "캔버스"입니다.
    • 모든 그래프 요소(Axes, 제목, 범례 등)가 이 안에 포함됩니다.
  2. Axes:
    • 실제 그래프가 그려지는 영역입니다.
    • 하나의 Figure 안에 여러 개의 Axes를 포함할 수 있습니다.
    • x축, y축, z축(3D 그래프의 경우)을 포함합니다.
  3. Plot:
    • 데이터가 시각적으로 표현되는 그래프 자체입니다.
    • 선, 막대, 점 등이 Plot의 예입니다.


1.2 Matplotlib의 두 가지 인터페이스

Matplotlib은 두 가지 방식으로 사용할 수 있습니다:

1. MATLAB 스타일 인터페이스 (pyplot)

  • Matplotlib의 pyplot 모듈을 사용하여 MATLAB과 유사한 방식으로 간단히 그래프를 생성합니다.
  • 코드가 짧고 간단하여 초보자에게 적합합니다.

예시:

import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [4, 5, 6])  # x값: [1, 2, 3], y값: [4, 5, 6]
plt.title("Simple Plot")       # 제목 추가
plt.xlabel("X-axis")           # x축 레이블 추가
plt.ylabel("Y-axis")           # y축 레이블 추가
plt.show()                      # 그래프 표시

2. 객체 지향 인터페이스 (OOP)

  • Figure와 Axes 객체를 명시적으로 생성하여 그래프를 제어합니다.
  • 복잡한 그래프를 생성하거나 커스터마이징이 필요할 때 적합합니다.

예시:

import matplotlib.pyplot as plt

# Figure와 Axes 생성
fig, ax = plt.subplots()        

# Figure는 그래프 전체 캔버스, Axes는 실제 그래프를 그리는 영역입니다.
# 이 방식은 Figure와 Axes를 명시적으로 관리할 수 있어 복잡한 그래프 커스터마이징에 유리합니다.
ax.plot([1, 2, 3], [4, 5, 6])   # Axes 객체에 데이터 추가
ax.set_title("Simple Plot")     # 제목 추가
ax.set_xlabel("X-axis")         # x축 레이블 추가
ax.set_ylabel("Y-axis")         # y축 레이블 추가
plt.show()

두 방식의 비교

특징 MATLAB 스타일 (pyplot) 객체 지향 인터페이스 (OOP)
사용 난이도 간단, 초보자에게 적합 약간 복잡, 고급 사용자에게 적합
커스터마이징 상대적으로 덜 유연함 유연하고 강력한 커스터마이징 가능
권장 사용 시기 간단한 그래프를 빠르게 생성할 때 복잡한 그래프나 여러 축을 사용할 때

1.3 첫 번째 그래프 그리기

기본 선 그래프 만들기

Matplotlib을 사용하여 간단한 선 그래프를 그려봅시다:

import matplotlib.pyplot as plt

# 데이터 설정
x = [1, 2, 3]
y = [4, 5, 6]

# 그래프 생성
plt.plot(x, y)

# 그래프 표시
plt.show()

출력:

  • x축은 [1, 2, 3], y축은 [4, 5, 6]으로 구성된 선 그래프가 나타납니다.

그래프 저장하기

생성된 그래프를 파일로 저장하려면 plt.savefig()를 사용합니다. 다양한 포맷(PNG, PDF, SVG 등)으로 저장할 수 있습니다:

plt.plot(x, y)
plt.title("Saved Graph")
plt.savefig("graph.png", 
            dpi=300,              # 해상도 설정
            format="png",         # 파일 형식
            bbox_inches='tight',  # 여백 자동 조정
            transparent=True      # 배경 투명하게 설정
)
plt.show()

Tip: savefig는 show 이전에 호출해야 정상적으로 저장됩니다.


이 단계에서는 Matplotlib의 기본적인 설치, 구성 요소, 그리고 두 가지 인터페이스와 첫 번째 그래프 그리기까지 다뤘습니다. 다음 단계에서는 그래프 요소와 다양한 그래프 유형을 학습합니다.