Matplotlib는 데이터 시각화에 가장 널리 사용되는 대표적인 파이썬 패키지입니다.
데이터 시각화가 중요한 이유는, 방대한 숫자를 일일이 살펴보거나 복잡한 계산을 수행하지 않고도 데이터 안에서 어떤 일이 일어나고 있는지 직관적으로 파악할 수 있게 해주기 때문입니다. 또한 정량적인 분석 결과와 인사이트를 청중에게 효과적으로 전달하는 데에도 큰 도움이 됩니다.
Matplotlib란?
Matplotlib는 데이터를 기반으로 2차원 플롯을 생성하는 데 사용됩니다. 객체 지향 API를 제공하기 때문에 파이썬 애플리케이션 안에 손쉽게 플롯을 삽입할 수 있으며, IPython 셸, Jupyter Notebook, Spyder IDE 등 다양한 개발 환경에서 활용할 수 있습니다.
Matplotlib는 순수 파이썬으로 작성되었으며, 파이썬의 대표적인 수치 연산 패키지인 NumPy를 기반으로 만들어졌습니다.
Windows 환경에서는 아래 명령어로 간단히 설치할 수 있습니다.
pip install matplotlib
Matplotlib 설치 시 필요한 의존성 패키지는 다음과 같습니다.
Python (3.4 버전 이상) NumPy Setuptools Pyparsing Libpng Pytz FreeType Six Cycler Dateutil
여러 개의 그래프가 필요한 경우
데이터 분석을 하다 보면 서로 다른 두 데이터 세트를 나란히 비교하며 이해해야 하는 경우가 종종 있습니다. 예를 들어 한 데이터가 다른 데이터에 따라 어떻게 변하는지 확인하고 싶을 때, 여러 개의 그래프를 하나의 화면에 함께 그려 비교하면 훨씬 효율적입니다.
아래에서 Matplotlib의 subplot 함수를 사용해 두 개의 그래프를 그리는 방법을 알아보겠습니다.
참고: 이전 글과 목표는 같지만, 여기서는 두 개의 그래프를 만들기 위해 'subplot' 함수를 명시적으로 사용한다는 점이 다릅니다.
예제 코드
import numpy as np
import matplotlib.pyplot as plt
x1_val = np.linspace(0.0, 6.0)
x2_val = np.linspace(0.0, 3.0)
y1_val = np.cos(2.3 * np.pi * x1_val) * np.exp(-x1_val)
y2_val = np.cos(2.4 * np.pi * x2_val)
plt.subplot(2, 1, 1)
plt.plot(x1_val, y1_val, 'o-')
plt.title('2 plots using "subplot" function')
plt.ylabel('Plot 1')
plt.subplot(2, 1, 2)
plt.plot(x2_val, y2_val, '.-')
plt.xlabel('x-axis')
plt.ylabel('Plot 2')
plt.show()실행 결과

코드 설명
필요한 패키지를 임포트하고, 코드 작성의 편의를 위해 별칭(alias)을 정의합니다.
NumPy 라이브러리를 사용해 서로 다른 두 데이터 세트(x1_val, x2_val)를 생성합니다.
'subplot' 함수를 호출하여 하나의 화면 안에 두 개의 개별 플롯 영역을 만듭니다. subplot(2, 1, 1)은 2행 1열 배치 중 첫 번째 위치를 의미합니다.
'plot' 함수를 사용해 각 데이터 세트를 그래프로 그립니다.
xlabel, ylabel, title 함수를 사용해 X축 라벨, Y축 라벨, 그래프 제목을 지정합니다.
마지막으로 'show' 함수를 호출하여 완성된 그래프를 화면에 출력합니다.
이처럼 subplot 함수를 활용하면 별도의 창을 여러 개 띄우지 않고도 하나의 figure 안에 여러 그래프를 깔끔하게 배치할 수 있어, 데이터 간 비교 분석에 매우 유용합니다.