본문으로 건너뛰기

05-010. Python 기본 시각화

Python 기본 시각화

Python에서 사용하는 시각화 패키지는 대표적으로 Matplotlib 라이브러리가 가장 널리 사용되며, 다양한 차트와 커스터마이징 기능을 제공한다.
Matplotlib의 기본 사용법과 주요 차트, 스타일링 방법을 실제 예제와 함께 설명한다.

ℹ️알아두기: Matplotlib은 만들어진지 오래된 패키지로 대부분의 Python 시각화 패키지가 이용해서 시각화를 구현하는데 사용하는 기초 패키지다.


Matplotlib 기초

Matplotlib는 파이썬에서 가장 많이 쓰이는 시각화 라이브러리다.
기본적인 plot 함수 사용법과 figure, axes 개념을 익히는 것이 중요하다.

기본 구조

import matplotlib.pyplot as plt

# 데이터 준비
x = [1, 2, 3, 4, 5]
y = [10, 8, 6, 4, 2]

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

# 선 그래프 그리기
ax.plot(x, y)

# 차트 타이틀과 축 레이블
ax.set_title('기본 선 그래프')
ax.set_xlabel('X축')
ax.set_ylabel('Y축')

plt.show()

기본 차트 그리기

선 그래프 (Line Plot)

import matplotlib.pyplot as plt
import numpy as np

# 현실적인 데이터: 연도별 평균 기온 변화 예시
years = np.arange(2010, 2021)
avg_temp = [12.3, 12.7, 13.1, 13.5, 13.2, 13.8, 14.0, 13.9, 14.2, 14.5, 14.7]

plt.plot(years, avg_temp, marker='o', linestyle='-', color='teal')
plt.title('연도별 평균 기온 변화')
plt.xlabel('연도')
plt.ylabel('평균 기온(℃)')
plt.grid(True, linestyle='--', alpha=0.5)
plt.show()

막대 그래프 (Bar Chart)

# 노트북 컴퓨터 브랜드별 판매량
labels = ['삼성', 'LG', '레노버', '애플']
values = [120, 85, 60, 55]

plt.bar(labels, values, color='skyblue')
plt.title('노트북 브랜드별 판매량')
plt.xlabel('브랜드')
plt.ylabel('판매량(만 대)')
plt.show()

산점도 (Scatter Plot)

import numpy as np

x = np.random.rand(50)
y = np.random.rand(50)

plt.scatter(x, y, color='red')
plt.title('산점도')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()

히스토그램 (Histogram)

data = np.random.randn(1000)

plt.hist(data, bins=30, color='green', alpha=0.7)
plt.title('히스토그램')
plt.xlabel('값')
plt.ylabel('빈도')
plt.show()

차트 스타일링과 커스터마이징

Matplotlib은 색상, 선 스타일, 마커, 폰트, 범례, 타이틀 등 다양한 요소를 조정할 수 있다.

주요 옵션 사용

x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

plt.plot(x, y, color='purple', linestyle='--', marker='s', linewidth=2, markersize=8, label='데이터')
plt.title('스타일링 예시', fontsize=16, fontweight='bold')
plt.xlabel('X축', fontsize=12)
plt.ylabel('Y축', fontsize=12)
plt.legend(loc='upper left')
plt.grid(True, linestyle=':', color='gray', alpha=0.5)
plt.show()

한글 폰트 설정

import matplotlib.pyplot as plt
plt.rc('font', family='Malgun Gothic') # 윈도우의 경우
plt.rcParams['axes.unicode_minus'] = False # 마이너스 깨짐 방지

실전 예제: 여러 차트 한 번에 그리기

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(1, 6)
y1 = x ** 2
y2 = np.sqrt(x)

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

axs[0].plot(x, y1, 'bo-', label='제곱')
axs[0].set_title('제곱')
axs[0].legend()

axs[1].plot(x, y2, 'gs--', label='제곱근')
axs[1].set_title('제곱근')
axs[1].legend()

plt.suptitle('여러 차트 한 번에 그리기')
plt.tight_layout()
plt.show()

요약

  • Matplotlib는 파이썬에서 가장 기본적인 도구다.
  • 선, 막대, 산점도, 히스토그램 등 다양한 차트를 쉽게 그릴 수 있다.
  • 색상, 선 스타일, 마커, 폰트, 범례 등 다양한 커스터마이징이 가능하다.
  • 실전에서는 여러 차트를 한 화면에 배치하거나, 한글 폰트 등 환경 설정도 중요하다.