[Python] matplotlib의 pyplot과 subplot 란?

sonnie
lucky-sonnie
Published in
4 min readJun 6, 2022

주식 자동 매매 시스템을 만들면서 matplotlib의 pyplot 과 subplot에 대한 개념정리요필요해서 작성하는 포스팅

matplotlib이란, 데이터 시각화 도구입니다. numpy가 다차원 배열을 쉽게 처리하고 효율적으로 사용할 수 있도록 지원하고(데이터가가커질수록 저장 및 가공을 하는데 효율성을 보장한다.), 판다스가 배열 저장 및 배열을 다루는데 특화되었다면 matplotlib은 그 데이터들을 그래프와 같은 형태로 시각화해주는 부분을 담당한다.

matplotlib.pyplot

matplotlib.pyplot은matplotlib 의 상태 기반 인터페이스이다. pyplot은 암묵적인, MATLAB같은 표시방법을 제공한다. 그리고 화면에 수치를 보여주고, 수치 GUI 매니저의 역할을 합니다. pyplot은 주로 상호적인 표시와 프로그래밍 표시 생성의 간단한 경우에 사용된다.

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 5, 0.1)
y = np.sin(x)
plt.plot(x, y)
위 코드 output

복잡한 그래프 표시에는 명시적인 (객체 지향) api가 권장되지만, pyplot은 수치나 그 수치의 축을 만들어 내는데 보통 사용된다.

수치를 그리려면 pyplot.figure, pyplot.subplotspyplot.subplot_mosaic 를 보고, 축에 그리는 방법을 보려면 Axes API를 참고하세요.

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 5, 0.1)
y = np.sin(x)
fig, ax = plt.subplots()
ax.plot(x, y)

matplotlib.pyplot.subplot(*args, **kwargs)

현재의 수치에 축을 추가하거나 이미 존재하는 축을 가져온다. 이 함수는 암묵적 api와 함께 작동할 때 추가적인 작업을 제공하는 Figure.add_subplot 의 wrapper 이다.

** 호출방법 ** 
subplot(nrows, ncols, index, **kwargs)
subplot(pos, **kwargs)
subplot(**kwargs)
subplot(ax)

subplot의 파라미터들

*args: int, (int, int, index), or SubplotSpec, default: (1, 1, 1). subplot의 위치는 아래 셋 중에 하나로 표현된다.

  • 3개의 정수 (nrows, ncols, index). 이 subplot은 nrows의 행과 ncols의 열의 좌표 위에 index의 위치를 갖는다. index는 왼쪽 위 코너에서 1부터 증가하며 오른쪽으로 증가한다. index는 subplot의 (1을 기준으로, last를 포함한다) 라는 뜻의 (first, last)로 나타내는 2 -튜플이 될 수도 있다.
  • 3자리의 정수. 자리수들은 3개의 정수로 해석되어진다. (fig.add_subplot(235) 가 fig.add_subplot(2,3,5) 로 해석됨 ) 하위 플롯이 9개 이하인 경우에만 사용할 수 있다.
  • *kwargs : 이 메소드는 클래스 기반의 리턴되는 축들을 위한 키워드 변수를 갖는다. (figure 제외)

새로운 축을 만드는 것은 같은 부분을 공유하는 것을 넘어 겹치는 이미 존재하고 있던 축을 삭제한다.

참고: https://wiserloner.tistory.com/922, https://matplotlib.org/3.5.0/api/_as_gen/matplotlib.pyplot.html, https://matplotlib.org/3.5.0/api/_as_gen/matplotlib.pyplot.subplot.html#matplotlib.pyplot.subplot

--

--