Programming

Python Visualization Library 완전 정리 : Matplotlib

Lucas.Kim 2026. 2. 15. 13:49
반응형

데이터 분석에서 시각화는 선택이 아니라 필수 과정입니다.
특히 Python에서는 matplotlib, seaborn, pandas, plotly가 가장 많이 활용됩니다.

이 글에서는 다음을 정리합니다.

  • 통계적 시각화 vs 업무 분석 시각화 차이
  • Matplotlib 구조 (Figure & Axes)
  • pyplot 인터페이스 이해
  • 실전 코드 기반 기본 설정 방법
  • 축, 틱, 범례, 제한 범위 설정 방법

기초이지만 반드시 정확히 이해해야 할 내용입니다.


1. Python 주요 시각화 라이브러리

✅ Python library

  • matplotlib
  • seaborn
  • pandas
  • plotly

📊 통계적인 시각화 (Statistical)

히스토그램, 바차트, 분위, 상관히트맵, 산포도
→ 주로 Seaborn

Seaborn 특징

  1. Matplotlib 보다 쉽고 이쁘게, pandas와 쉬운 연동
  2. Matplotlib 기반으로 쉽게 작성됨
  3. Default 설정만으로 Matplotlib보다 수려한 Visual 제공하며 Pandas 와 쉽게 연동
    그러나 Matplotlib을 어느정도 알고있어야함

📈 Matplotlib 특징

  1. Python Visualization 가장 많이 사용되는 라이브러리
  2. 3차원 이상의 입체시각화도 다양하게 지원
  3. 직관적이지 못한 API로 인해 개발에 익숙해지는 많은 시간이 소요됨
  4. Figure와 Axes 구조 이해가 시작 → Label, Legend 등 세팅

📊 업무분석 시각화 (Business Analysis)

바차트, 라인플롯, 파이차트, 영역 차트, 산포도, 방사형 차트
→ 주로 Plotly

Plotly는 인터랙티브 대시보드 및 BI 시각화에 적합합니다.


2. Matplotlib.pyplot 모듈의 이해

imort matplotlib.pyplot as plt


plt.plot([1.2.3],[4,5,6])
plt.title('Hello plot')
plt.show()

🔎 코드 설명

  • matplotlib.pyplot은 Matlab 스타일 인터페이스를 제공합니다.
  • plt.plot()은 선 그래프를 생성합니다.
  • plt.title()은 그래프 제목을 설정합니다.
  • plt.show()는 그래프를 화면에 출력합니다.

pyplot 은 Matlab 스타일의 interface를 가지며
MatLab 사용자들이 보다 쉽게 Python에 적용할수있도록 설계되었습니다.


3. Pyplot의 두가지 구성요소 : Figure, Axes

✅ Figure

  • 그림을 그리기 위한 Canvas 역할
  • 전체 그림판
  • 크기, 배경색 설정

✅ Axes

  • 실제 데이터가 그려지는 영역
  • X축, Y축, Title, Legend 등을 설정하는 객체

관계 구조

  • Figure는 액자
  • Axes는 그림

Axes(Line2D, Text, XAxis, YAxis) → Figure에 포함됩니다.


4. 여러개의 plot을 가지는 Figure

fig, (ax1, ax2)= plt.subplots(1,2,figsize=(10,6))

🔎 설명

  • plt.subplots()는 Figure와 Axes를 동시에 생성합니다.
  • (1,2)는 1행 2열 구조
  • figsize=(10,6)은 전체 그림 크기 설정

5. 기본 2D Plot 예제

import matplotlib.pyplot as plt
%matplotlib inline

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

plt.title('Hello Plot')

plt.show()

🔎 설명

  • [1,2,3] → X축 값
  • [2,4,6] → Y축 값
  • 직선 그래프 출력

6. Figure 크기 설정

plt.figure(
    figsize=(10,4) # 액자 가로 10, 세로 4 설정
)

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

plt.title('Hello Plot')

plt.show()

🔎 설명

  • plt.figure()는 Figure 객체 생성
  • figsize는 가로, 세로 크기 지정
plt.figure(
    figsize=(8,6), # Figure 객체 크기
    facecolor='yellow' # 배경 색상 설정
)
plt.plot([1,2,3],
         [2,4,6])
plt.title('Hello Plot')

plt.show()

7. Axes 객체 확인

ax = plt.axes()
print(type(ax))
  • 현재 axes 객체를 생성 및 확인합니다.

8. DataFrame 활용 예제

import pandas as pd

df = pd.DataFrame({
    'x_value': [1,2,3,4,5,6],
    'y_value':[2,4,6,8,10,12]
})

plt.plot(df['x_value'],
         df['y_value'])

목적

  • pandas DataFrame과 연동하여 시각화

9. 스타일 설정

plt.plot(x_value,
         y_value,
         color='green') # 라인 색상 설정

plt.plot(x_value,
         y_value,
         color='red',
         marker='o',
         linestyle='dashed',
         linewidth=2,
         markersize=6)

설정 항목

  • color → 선 색상
  • marker → 점 모양
  • linestyle → 선 스타일
  • linewidth → 선 두께
  • markersize → 점 크기

10. 축 이름 설정

plt.xlabel('X axis')
plt.ylabel('Y axis')

11. 틱(Tick) 조정

plt.xticks(ticks=np.arange(0,100,5),
           rotation=45)
plt.yticks(rotation=45)

목적

  • X축 간격 조정
  • 라벨 회전 (가독성 개선)

12. 축 범위 제한

plt.xlim(0,50)
plt.ylim(0,100)
  • X축, Y축 표시 범위 제한

13. 범례 설정

plt.plot(x_value,
         y_value,
         color='green',
         label='temp')

plt.legend()

label 설정 후 plt.legend() 호출

 

Matplotlib을 이해하는 핵심은 단 하나입니다.

Figure와 Axes 구조를 정확히 이해하는 것

  • Figure = 액자
  • Axes = 실제 그림 영역
  • pyplot = 빠르게 그리는 Matlab 스타일 인터페이스

Seaborn은 Matplotlib 기반이므로
Matplotlib 구조를 이해하면 Seaborn도 훨씬 쉬워집니다.

반응형