Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

두 개의 기존 Matplotlib 플롯을 하나의 플롯으로 병합하는 방법은 무엇입니까?

<시간/>

두 개의 기존 matplotlib 플롯을 하나의 플롯으로 병합하려면 다음 단계를 수행할 수 있습니다. -

  • 그림 크기를 설정하고 서브플롯 사이 및 주변 여백을 조정합니다.
  • numpy를 사용하여 x, y1 및 y2 데이터 포인트를 생성합니다.
  • plot()을 사용하여 (x, y1) 및 (x, y2) 점 플롯 방법.
  • 현재 축의 xy 데이터 포인트를 가져옵니다.
  • argsort() 사용 배열을 정렬할 인덱스를 반환합니다.
  • 각 플롯의 x 및 y 데이터 포인트를 추가합니다.
  • 두 번째 인덱스 서브플롯에서 X 및 Y 데이터 포인트를 플로팅합니다.
  • 그림을 표시하려면 show()를 사용하세요. 방법.

예시

import numpy as np
import matplotlib.pyplot as plt

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

x = np.linspace(-10, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

plt.subplot(211)
plt.plot(x, y1, color='red', lw=5)
plt.plot(x, y2, color='orange', lw=7)

X, Y = [], []

for lines in plt.gca().get_lines():
   for x, y in lines.get_xydata():
      X.append(x)
      Y.append(y)

idx = np.argsort(X)
X = np.array(X)[idx]
Y = np.array(Y)[idx]

plt.subplot(212)

plt.plot(X, Y, color='green', lw=0.75)

plt.show()

출력

두 개의 기존 Matplotlib 플롯을 하나의 플롯으로 병합하는 방법은 무엇입니까? 두 개의 기존 Matplotlib 플롯을 하나의 플롯으로 병합하는 방법은 무엇입니까?