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

Matplotlib 플롯에서 데이터를 추출하는 방법

Matplotlib으로 그린 플롯에서 데이터를 다시 가져오려면 get_xdata()get_ydata() 메서드를 사용하면 됩니다. 이 방법을 활용하면 그래프 객체에 저장된 원본 데이터를 손쉽게 확인할 수 있습니다.

진행 단계

  • 그림(figure) 크기를 설정하고 서브플롯 주변 및 사이의 여백(padding)을 조정합니다.
  • NumPy를 사용하여 y 데이터 포인트를 생성합니다.
  • y 데이터를 color=red, linewidth=5 옵션으로 플롯합니다.
  • 데이터 추출 과정임을 알리는 문장을 출력합니다.
  • get_xdata()get_ydata() 메서드를 사용해 3단계에서 생성한 플롯으로부터 데이터를 추출합니다.
  • 추출된 x, y 데이터를 출력합니다.
  • 그림을 화면에 표시하려면 show() 메서드를 사용합니다.

예제 코드

import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
y = np.array([1, 3, 2, 5, 2, 3, 1])
curve, = plt.plot(y, c='red', lw=5)
print("Extracting data from plot....")
xdata = curve.get_xdata()
ydata = curve.get_ydata()
print("X data points for the plot is: ", xdata)
print("Y data points for the plot is: ", ydata)
plt.show()

실행 결과

Extracting data from plot....
X data points for the plot is: [0. 1. 2. 3. 4. 5. 6.]
Y data points for the plot is: [1 3 2 5 2 3 1]

위 예제에서 볼 수 있듯이, plt.plot() 함수가 반환하는 Line2D 객체에 대해 get_xdata()를 호출하면 x축 데이터 배열을, get_ydata()를 호출하면 y축 데이터 배열을 얻을 수 있습니다. x 데이터를 직접 지정하지 않았기 때문에 x 값은 자동으로 0부터 시작하는 인덱스 배열 [0., 1., 2., ..., 6.]로 채워진 것을 확인할 수 있습니다.