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

Python에서 Matplotlib를 활용해 함수가 그림(Figure)을 반환하도록 구현하는 방법

Python에서 Matplotlib를 사용할 때, 함수가 생성한 그림(figure) 객체를 반환하도록 만들면 코드의 재사용성이 크게 향상됩니다. 아래 단계를 따라 구현할 수 있습니다.

구현 단계

  • 그림 크기를 설정하고, 서브플롯 주변 및 사이의 여백(padding)을 조정합니다.
  • numpy를 사용해 x, y 데이터 포인트를 생성합니다.
  • figure() 메서드로 새 그림을 생성하거나 기존 그림을 활성화하는 plot(x, y) 함수를 정의합니다.
  • plot() 메서드로 x, y 데이터를 그린 뒤, fig 인스턴스를 반환(return)합니다.
  • plot(x, y) 함수를 호출하고, 반환된 그림 인스턴스를 변수 f에 저장합니다.
  • 그림을 화면에 표시하려면 show() 메서드를 사용합니다.

예제 코드

import numpy as np
from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

def plot(x, y):
    fig = plt.figure()
    plt.plot(x, y)
    return fig

x = np.linspace(-10, 10, 100)
y = np.sin(x)

f = plot(x, y)

plt.show()

실행 결과

Python에서 Matplotlib를 활용해 함수가 그림(Figure)을 반환하도록 구현하는 방법

코드 설명

이 예제에서 핵심은 plot() 함수 내부에서 plt.figure()로 새로운 그림 객체를 만들고, 이를 return fig로 반환한다는 점입니다. 이렇게 하면 호출자가 그림 인스턴스를 변수에 저장해 나중에 추가 수정(제목 추가, 축 레이블 변경 등)을 하거나 파일로 저장할 수 있습니다.

또한 np.linspace(-10, 10, 100)으로 -10부터 10까지 100개의 균등한 간격의 값을 생성하고, 이에 대한 사인(sin) 곡선을 그려 그래프를 완성합니다. plt.rcParams 설정을 통해 그림 크기와 자동 레이아웃 조정을 미리 지정하면 여백 문제 없이 깔끔한 출력을 얻을 수 있습니다.