내가 보려고 만든 MatPlotLib 정리

1. Matplotlib 개요

Matplotlib은 파이썬에서 데이터를 시각화하기 위한 대표적인 라이브러리이다.
데이터 분석이나 머신러닝 과정에서 데이터를 이해하기 위해 다양한 그래프를 생성할 때 사용된다.

지원하는 주요 그래프

  • 선 그래프 (Line Plot)
  • 막대 그래프 (Bar Chart)
  • 수평 막대 그래프 (Horizontal Bar)
  • 산점도 (Scatter Plot)
  • 히스토그램 (Histogram)
  • 파이 차트 (Pie Chart)

Matplotlib은 NumPy, Pandas와 함께 사용되는 경우가 많다.


2. Matplotlib 기본 구조

Matplotlib의 그래프는 다음과 같은 구조로 이루어진다.

구성요소 설명
Figure 전체 그래프가 그려지는 도화지
Axes 실제 그래프가 그려지는 영역
Axis x축, y축

구조 개념


Figure  
└ Axes  
├ x-axis  
└ y-axis

3. Matplotlib 기본 사용

라이브러리 불러오기

import matplotlib.pyplot as plt

pyplot은 Matplotlib에서 가장 많이 사용하는 모듈이다.


4. 기본 선 그래프

하나의 데이터만 입력하는 경우

plt.plot([1, 2, 3, 4])
plt.show()

# 결과
# x축은 자동으로 0,1,2,3이 생성되고
# y값은 [1,2,3,4]로 선 그래프가 그려진다.

Matplotlib은 y값만 입력하면 x값을 자동으로 생성한다.


x와 y를 함께 지정하는 경우

plt.plot([1, 2, 3, 4], [1, 2, 3, 4])
plt.show()

# 결과
# x=[1,2,3,4]
# y=[1,2,3,4]
# 대각선 형태의 선 그래프가 출력된다.

5. NumPy 데이터를 이용한 그래프

Matplotlib은 NumPy 배열과 함께 많이 사용된다.

import numpy as np

data = np.arange(1, 100)

plt.plot(data)
plt.show()

# 결과
# 1부터 99까지 증가하는 선 그래프가 출력된다.

np.arange()는 일정 간격의 배열을 생성할 때 사용된다.


6. 여러 개의 그래프 동시에 그리기

Matplotlib에서는 plot()을 여러 번 호출하면 여러 개의 그래프가 같은 좌표에 표시된다.

data1 = np.arange(1, 50)
plt.plot(data1)

data2 = np.arange(50, 100)
plt.plot(data2)

plt.show()

# 결과
# 두 개의 선 그래프가 같은 그래프 영역에 함께 출력된다.

7. Matplotlib에서 지원하는 주요 그래프

함수그래프 종류설명

plt.plot() 선 그래프 연속적인 데이터 추세
plt.bar() 막대 그래프 범주형 데이터 비교
plt.barh() 수평 막대 그래프 막대를 가로 방향으로 표시
plt.scatter() 산점도 변수 간 관계 표현
plt.hist() 히스토그램 데이터 분포 확인
plt.pie() 파이 차트 비율 표현

8. 그래프 스타일 설정

그래프의 시각적 요소는 다양한 옵션을 통해 설정할 수 있다.

한글 폰트 설정

Matplotlib은 기본적으로 한글이 깨질 수 있기 때문에 폰트를 설정해야 한다.

plt.rc('font', family='NanumBarunGothic')

9. 그래프 크기 및 제목 설정

plt.figure(figsize=(4, 5))

plt.plot([1, 2, 3], [1, 2, 3])

plt.title('제목', fontsize=30)
plt.xlabel('X축', fontsize=20)
plt.ylabel('Y축', fontsize=20, rotation=0)

plt.show()

# 결과
# 제목, x축, y축 이름이 설정된 그래프가 출력된다.

옵션 설명

옵션설명

figsize 그래프 크기
title 그래프 제목
xlabel x축 이름
ylabel y축 이름
fontsize 글자 크기
rotation 텍스트 회전

10. 그래프 스타일 옵션

선 그래프는 다양한 스타일 옵션을 사용할 수 있다.

plt.figure(figsize=(15, 10))

plt.title('마커설정', fontsize=30)

plt.plot(
    np.arange(10),
    np.arange(10),
    color='deepskyblue',
    marker='o',
    linestyle='-.'
)

plt.plot(
    np.arange(10),
    np.arange(10)*2,
    color='deeppink',
    marker='x',
    linestyle='--'
)

plt.show()

# 결과
# 서로 다른 색상과 마커 스타일을 가진 두 개의 선 그래프가 출력된다.

주요 옵션

옵션설명

color 선 색상
marker 점 모양
linestyle 선 스타일

11. 막대 그래프

막대 그래프는 범주형 데이터를 비교할 때 사용된다.

x = ['파이썬', '웹개발', '데이터분석', '머신러닝', '딥러닝', '컴퓨터비전']
y = [95, 70, 75, 60, 50, 30]

plt.figure(figsize=(8, 5))

plt.title('AI 성적표', fontsize=25)
plt.ylabel('수강생 점수')

plt.bar(x, y, alpha=0.5, color='deeppink')

plt.show()

# 결과
# 각 과목에 대한 점수를 막대 그래프로 표시한다.

옵션 설명

옵션설명

alpha 투명도
color 색상

12. 수평 막대 그래프

x = ['파이썬', '웹개발', '데이터분석', '머신러닝', '딥러닝', '컴퓨터비전']
y = [95, 70, 75, 60, 50, 30]

plt.figure(figsize=(8, 5))

plt.title('AI 성적표', fontsize=25)
plt.xlabel('수강생 점수')

plt.barh(x, y, alpha=0.5, color='deepskyblue')

plt.show()

# 결과
# 막대 그래프가 가로 방향으로 출력된다.

13. Pandas 데이터와 Matplotlib

Matplotlib은 Pandas DataFrame과 함께 자주 사용된다.

import pandas as pd

x = ['파이썬', '웹개발', '데이터분석', '머신러닝', '딥러닝', '컴퓨터비전']
y = [95, 70, 75, 60, 50, 30]

df = pd.DataFrame({
    "과목": x,
    "점수": y
})

print(df)

# 결과
#        과목   점수
# 0     파이썬   95
# 1     웹개발   70
# 2   데이터분석   75
# 3    머신러닝   60
# 4     딥러닝   50
# 5   컴퓨터비전   30

14. 객체지향 방식 그래프 생성

Matplotlib은 객체지향 방식으로 그래프를 생성할 수도 있다.

fig, ax = plt.subplots(figsize=(5, 4))

ax.bar(df["과목"], df["점수"])

ax.set_xlabel("과목", fontsize=12)
ax.set_ylabel("점수", fontsize=12)
ax.set_title("코리아 학생 점수", fontsize=20)

plt.show()

# 결과
# Pandas 데이터프레임을 이용한 막대 그래프가 출력된다.

구성

객체역할

fig 전체 도화지
ax 실제 그래프

15. 정리

Matplotlib은 파이썬에서 데이터를 시각화하기 위한 핵심 라이브러리이다.

핵심 개념

  • plt.plot() → 선 그래프
  • plt.bar() → 막대 그래프
  • plt.barh() → 수평 막대 그래프
  • plt.figure() → 그래프 크기 설정
  • title / xlabel / ylabel → 그래프 정보 표시

또한 Matplotlib은 다음 라이브러리와 함께 사용되는 경우가 많다.

  • NumPy → 수치 데이터 생성
  • Pandas → 데이터 분석 및 데이터프레임 시각화