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

Matplotlib을 활용해 Python에서 반복적으로 여러 플롯 생성하기

Matplotlib은 데이터 시각화를 위해 널리 사용되는 대표적인 Python 패키지입니다. 데이터 시각화는 숫자를 일일이 살펴보거나 복잡한 계산을 수행하지 않고도 데이터에 어떤 현상이 일어나고 있는지 직관적으로 파악할 수 있게 해주는 핵심 단계이며, 정량적인 인사이트를 효과적으로 전달하는 데 큰 도움이 됩니다.

Matplotlib은 데이터를 기반으로 2차원 플롯을 생성하는 데 사용됩니다. 객체 지향 API를 제공하기 때문에 Python 애플리케이션 안에 손쉽게 플롯을 삽입할 수 있으며, IPython 셸, Jupyter Notebook, Spyder IDE 등 다양한 환경에서 활용할 수 있습니다.

Matplotlib은 Python으로 작성되었으며, Python의 수치 연산 패키지인 NumPy를 기반으로 만들어졌습니다.

Windows 환경에서는 아래 명령어를 통해 Matplotlib을 설치할 수 있습니다.

pip install matplotlib

Matplotlib의 주요 의존성 패키지는 다음과 같습니다.

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

이제 Matplotlib을 사용하여 하나의 그림(figure) 안에 여러 개의 플롯을 반복적으로 생성하는 방법을 살펴보겠습니다.

예제 코드

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()
fig.subplots_adjust(top=0.8)
ax1 = fig.add_subplot(211)
ax1.set_ylabel('Y축')
ax1.set_title('간단한 플롯')

t = np.arange(0.0, 1.0, 0.01)
s = np.sin(2*np.pi*t)
line, = ax1.plot(t, s, color='blue', lw=2)
np.random.seed(4567232)

ax2 = fig.add_axes([0.15, 0.1, 0.8, 0.3])
n, bins, patches = ax2.hist(np.random.randn(1000), 50,
                            facecolor='yellow', edgecolor='green')
ax2.set_xlabel('x 라벨')
plt.show()

실행 결과

위 코드를 실행하면 사인 곡선을 나타내는 선 그래프와 난수로 생성된 히스토그램이 하나의 figure 안에 함께 출력됩니다.

코드 설명

  • 필요한 패키지를 임포트하고, 사용 편의성을 위해 별칭(alias)을 정의합니다.

  • 'figure' 함수를 사용하여 빈 그림(figure) 객체를 생성합니다.

  • 'add_subplot' 함수를 사용하여 그래프를 그릴 영역(서브플롯)을 만듭니다.

  • NumPy 라이브러리를 활용하여 데이터 값을 생성합니다.

  • 'random' 모듈의 'seed' 함수를 사용하여 재현 가능한 난수 데이터 포인트를 만듭니다.

  • 'add_axes'를 통해 새로운 서브플롯 영역을 추가하여 두 번째 플롯을 배치합니다.

  • 'plot' 함수를 사용하여 데이터를 선 그래프로 시각화하고, 'hist' 함수로 히스토그램을 그립니다.

  • set_xlabel, set_ylabel, set_title 함수를 사용하여 X축, Y축 라벨과 제목을 지정합니다.

  • 'show' 함수를 호출하여 결과를 화면에 출력합니다.

이처럼 Matplotlib의 subplot과 add_axes 기능을 조합하면 하나의 figure 안에 여러 종류의 플롯을 반복적이고 유연하게 배치할 수 있습니다. 이는 여러 데이터셋을 한눈에 비교 분석해야 하는 상황에서 특히 유용합니다.