프로그래밍/Python

데이터 과학을 위한 Matplotlib 완벽 가이드

shimdh 2025. 2. 28. 09:20
728x90

데이터 과학에서 가장 중요한 작업 중 하나는 데이터를 효과적으로 시각화하는 것입니다. 데이터가 수집되더라도 이를 이해하고 분석할 수 있도록 시각적으로 표현하지 않으면 의미를 파악하기 어렵습니다.

Python의 Matplotlib강력한 데이터 시각화 라이브러리로, 다양한 차트와 그래프를 생성할 수 있도록 지원합니다. 선 그래프, 막대 그래프, 히스토그램, 산점도, 파이 차트 등 다양한 시각적 표현 방법을 제공하며, 데이터를 보다 직관적으로 이해하는 데 도움이 됩니다.

이번 글에서는 Matplotlib의 주요 개념, 그래프 생성 방법, 다양한 차트 활용법, 스타일링 기법, 실전 예제까지 단계별로 자세히 살펴보겠습니다.


1. Matplotlib이란?

🔹 데이터 시각화의 중요성

  • 숫자로 표현된 데이터를 직관적으로 이해할 수 있도록 변환
  • 패턴, 트렌드, 이상치(Outlier) 등을 쉽게 파악
  • 데이터 기반 의사결정 및 보고서 작성에 활용

🔹 Matplotlib의 특징

✔️ 간단한 API로 다양한 그래프 생성 가능
✔️ 선 그래프, 막대 그래프, 히스토그램, 산점도 등 지원
✔️ 스타일 변경, 레이블 추가, 축 조정 등 세부 조정 가능
✔️ 데이터 과학, 머신러닝, AI 모델 성능 평가 등에 활용


2. Matplotlib 설치 및 기본 사용법

🔹 Matplotlib 설치

Matplotlib은 기본적으로 Python에 포함되지 않으므로 설치가 필요합니다.

pip install matplotlib

설치 후, Matplotlib을 pyplot 모듈과 함께 불러와 사용합니다.

import matplotlib.pyplot as plt

3. 기본적인 그래프 그리기

🔹 선 그래프(Line Plot) 예제

import matplotlib.pyplot as plt

# 데이터 생성
x = [1, 2, 3, 4, 5]
y = [10, 20, 25, 30, 35]

# 선 그래프 그리기
plt.plot(x, y, color='blue', marker='o', linestyle='--')

# 제목 및 축 레이블 추가
plt.title('기본 선 그래프')
plt.xlabel('X 축')
plt.ylabel('Y 축')

# 그래프 표시
plt.show()

결과: X축과 Y축 데이터를 연결하는 파란색 점선의 선 그래프가 생성됩니다.


4. 다양한 차트 만들기

Matplotlib은 다양한 유형의 그래프를 제공하여, 목적에 맞는 시각화를 쉽게 구현할 수 있습니다.

🔹 막대 그래프(Bar Chart)

categories = ['A', 'B', 'C', 'D']
values = [4, 7, 1, 8]

plt.bar(categories, values, color='green')

plt.title('막대 그래프 예제')
plt.xlabel('카테고리')
plt.ylabel('값')

plt.show()

결과: A, B, C, D 네 개의 카테고리에 대한 값이 표시된 수직 막대 그래프가 출력됩니다.


🔹 히스토그램(Histogram)

히스토그램은 데이터 분포를 시각화하는 데 유용합니다.

import numpy as np

data = np.random.randn(1000)  # 정규분포를 따르는 1000개의 랜덤 데이터 생성

plt.hist(data, bins=30, color='purple', edgecolor='black')

plt.title('히스토그램 예제')
plt.xlabel('값')
plt.ylabel('빈도')

plt.show()

결과: 데이터 분포를 보여주는 히스토그램 그래프가 출력됩니다.


🔹 산점도(Scatter Plot)

산점도는 두 변수 간의 관계를 시각적으로 표현하는 데 유용합니다.

x = np.random.rand(50) * 10  # 0~10 사이의 랜덤 값 50개
y = np.random.rand(50) * 100  # 0~100 사이의 랜덤 값 50개

plt.scatter(x, y, color='red', alpha=0.6)

plt.title('산점도 예제')
plt.xlabel('X 값')
plt.ylabel('Y 값')

plt.show()

결과: X축과 Y축 사이의 분포를 보여주는 산점도가 출력됩니다.


🔹 파이 차트(Pie Chart)

파이 차트는 비율을 표현할 때 적합한 차트입니다.

labels = ['Apple', 'Banana', 'Cherry', 'Date']
sizes = [15, 30, 45, 10]

plt.pie(sizes, labels=labels, autopct='%1.1f%%', colors=['red', 'yellow', 'pink', 'brown'])

plt.title('파이 차트 예제')

plt.show()

결과: 과일 종류별 비율을 나타내는 파이 차트가 출력됩니다.


5. 그래프 스타일링 기법

Matplotlib에서는 그래프를 더욱 보기 좋게 꾸밀 수 있는 다양한 옵션을 제공합니다.

🔹 그래프 스타일 변경

plt.plot(x, y, color='blue', linestyle='--', linewidth=2, marker='o', markersize=8, markerfacecolor='red')

설명

  • color='blue' → 파란색 선
  • linestyle='--' → 점선 스타일
  • linewidth=2 → 선 두께 설정
  • marker='o' → 원형 마커 추가
  • markersize=8 → 마커 크기 조정
  • markerfacecolor='red' → 마커 내부 색상 빨간색

🔹 레이블과 제목 추가

plt.xlabel('X 축 제목')
plt.ylabel('Y 축 제목')
plt.title('그래프 제목')

🔹 격자(grid) 추가

plt.grid(True, linestyle='--', alpha=0.7)

설명

  • grid(True) → 격자 표시
  • linestyle='--' → 점선 스타일
  • alpha=0.7 → 투명도 조절

6. 여러 개의 그래프 한 번에 그리기 (서브플롯)

Matplotlib을 사용하면 한 화면에 여러 개의 그래프를 표시할 수 있습니다.

fig, axs = plt.subplots(2, 2, figsize=(10, 8))

# 첫 번째 그래프
axs[0, 0].plot([1, 2, 3], [4, 5, 6])
axs[0, 0].set_title('선 그래프')

# 두 번째 그래프
axs[0, 1].bar(['A', 'B', 'C'], [3, 7, 5])
axs[0, 1].set_title('막대 그래프')

# 세 번째 그래프
axs[1, 0].hist(np.random.randn(100), bins=20)
axs[1, 0].set_title('히스토그램')

# 네 번째 그래프
axs[1, 1].scatter(np.random.rand(10), np.random.rand(10))
axs[1, 1].set_title('산점도')

plt.tight_layout()
plt.show()

결과: 2x2 격자 형태로 네 개의 그래프가 한 화면에 출력됩니다.


🔥 결론: Matplotlib을 활용한 데이터 시각화

Matplotlib은 데이터 과학, 머신러닝, AI 분석, 보고서 작성 등 다양한 분야에서 활용할 수 있는 필수 라이브러리입니다.

🎯 핵심 정리

  • Matplotlib은 Python의 대표적인 데이터 시각화 라이브러리
  • 선 그래프, 막대 그래프, 히스토그램, 산점도, 파이 차트 등 다양한 유형의 그래프 지원
  • 스타일링 옵션을 활용하여 가독성을 높일 수 있음
  • 여러 개의 그래프를 한 번에 표현할 수도 있음

Matplotlib을 잘 활용하면 데이터에서 중요한 인사이트를 도출할 수 있습니다! 🚀

728x90