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

SymPy 플롯 2개를 하나의 Matplotlib 그래프로 합쳐 표시하는 방법

SymPy로 생성한 두 개의 플롯을 하나의 Matplotlib 그래프에 함께 표시하려면 extend 메서드를 활용하면 됩니다. 아래 단계를 순서대로 따라 해 보세요.

  • 그림(figure) 크기를 설정하고, 서브플롯 주변과 사이의 여백(padding)을 자동으로 조정합니다.
  • 문자열을 SymPy의 Symbol 클래스 인스턴스로 변환합니다.
  • 단일 변수 함수를 곡선(curve) 형태로 플롯합니다. 이때 show=False 옵션을 지정해 즉시 화면에 출력되지 않도록 합니다.
  • extend 메서드를 사용해 두 번째 플롯(p2)의 모든 시리즈를 첫 번째 플롯(p1)에 추가합니다.
  • 최종 그래프를 화면에 표시하려면 show() 메서드를 호출합니다.

예제 코드

from sympy import symbols
from sympy.plotting import plot
from matplotlib import pyplot as plt

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

x = symbols('x')

p1 = plot(x*x, show=False)
p2 = plot(x, show=False)
p1.extend(p2)

p1.show()

코드 설명

symbols('x')를 통해 수학 기호 x를 정의한 뒤, x*x(포물선)와 x(직선) 두 함수를 각각 플롯 객체로 생성합니다. 이때 show=False를 지정하지 않으면 각 플롯이 개별 창으로 바로 열려 버리므로, 반드시 이 옵션을 넣어야 두 플롯을 하나로 합칠 수 있습니다.

이후 p1.extend(p2)가 실행되면 p2의 모든 데이터 시리즈가 p1에 병합되며, 마지막으로 p1.show()를 호출하면 두 함수가 하나의 Matplotlib 그래프 위에 동시에 그려집니다.

출력 결과

SymPy 플롯 2개를 하나의 Matplotlib 그래프로 합쳐 표시하는 방법