Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 Matplotlib로 퀴버 플롯(Quiver Plot) 만드는 방법 완벽 가이드

Matplotlib는 파이썬에서 가장 널리 사용되는 데이터 시각화 라이브러리 중 하나입니다. 데이터 시각화는 복잡한 수치 계산 없이도 데이터 안에서 어떤 현상이 일어나고 있는지 직관적으로 파악할 수 있게 해주는 중요한 과정입니다. 또한 정량적인 인사이트를 청중에게 효과적으로 전달하는 데 큰 도움이 됩니다.

Matplotlib는 2차원 플롯을 손쉽게 생성할 수 있으며, 객체 지향 API를 제공하기 때문에 파이썬 애플리케이션 안에 플롯을 자유롭게 삽입할 수 있습니다. IPython 셸, Jupyter 노트북, Spyder IDE 등 다양한 개발 환경에서 활용 가능합니다.

Matplotlib는 순수 파이썬으로 작성되었으며, 파이썬의 대표적인 수치 계산 패키지인 NumPy를 기반으로 만들어졌습니다.

Matplotlib 설치 방법

윈도우 환경에서는 아래 명령어 한 줄로 간단히 설치할 수 있습니다.

pip install matplotlib

Matplotlib가 정상적으로 동작하기 위해 필요한 의존성 패키지는 다음과 같습니다.

Python (3.4 버전 이상)
NumPy
Setuptools
Pyparsing
Libpng
Pytz
FreeType
Six
Cycler
Dateutil

퀴버 플롯(Quiver Plot)이란?

퀴버 플롯은 벡터장을 시각화하는 대표적인 방법으로, 점 (x, y) 위치에 성분 (u, v)를 가진 속도 벡터들을 화살표 형태로 표현합니다. 바람의 흐름, 유체의 움직임처럼 방향과 크기를 동시에 보여줘야 하는 데이터에 특히 유용합니다. 다음 명령어로 생성할 수 있습니다.

quiver(x, y, u, v, color)

여기서 'x', 'y', 'u', 'v'는 1차원 또는 2차원 데이터 시퀀스의 좌표가 될 수 있습니다.

Matplotlib로 퀴버 플롯 구현하기

실제 예제 코드를 통해 Matplotlib로 퀴버 플롯을 생성하는 과정을 살펴보겠습니다.

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 5.4, 0.5)
y = np.arange(0, 5.4, 0.5)

X, Y = np.meshgrid(x, y)
u = np.cos(X)*Y
v = np.sin(Y)*Y

fig, ax = plt.subplots(figsize =(12, 8))
ax.quiver(X, Y, u, v)

ax.xaxis.set_ticks([])
ax.yaxis.set_ticks([])
ax.axis([-0.7, 2.7, -0.7, 2.7])
ax.set_aspect('equal')

plt.show()

실행 결과

파이썬 Matplotlib로 퀴버 플롯(Quiver Plot) 만드는 방법 완벽 가이드

코드 상세 설명

  • 데이터 분석에 필요한 NumPy와 Matplotlib 패키지를 임포트하고, 각각 np와 plt라는 별칭을 지정합니다.

  • NumPy의 arange 함수를 사용해 0부터 5.4까지 0.5 간격의 x, y 좌표 데이터를 생성합니다.

  • meshgrid 함수로 격자 형태의 좌표 배열을 만든 뒤, 코사인과 사인 함수를 조합해 벡터의 x축 성분(u)과 y축 성분(v)을 정의합니다.

  • subplots 함수를 호출해 그림의 전체 크기(figsize)를 가로 12, 세로 8 인치로 설정합니다.

  • Matplotlib의 핵심 함수인 quiver를 호출하여 격자 위에 화살표 벡터들을 그립니다.

  • 마지막으로 show 함수를 호출해 완성된 플롯을 화면에 출력합니다.