Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จะรวม Matplotlib สองแปลงที่มีอยู่เป็นแปลงเดียวได้อย่างไร


ในการรวมแปลง matplotlib ที่มีอยู่สองแปลงเป็นแปลงเดียว เราสามารถทำตามขั้นตอนต่อไปนี้ -

  • กำหนดขนาดรูปและปรับช่องว่างภายในระหว่างและรอบๆ แผนผังย่อย
  • สร้างจุดข้อมูล x, y1 และ y2 โดยใช้ numpy
  • พล็อต (x, y1) และ (x, y2) จุดโดยใช้ plot() วิธีการ
  • รับจุดข้อมูล xy ของแกนปัจจุบัน
  • ใช้ argsort() เพื่อส่งคืนดัชนีที่จะจัดเรียงอาร์เรย์
  • ต่อท้ายจุดข้อมูล x และ y ของแต่ละพล็อต
  • พล็อตจุดข้อมูล X และ Y ที่แผนผังย่อยดัชนีที่ 2
  • หากต้องการแสดงรูป ให้ใช้ 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 สองแปลงที่มีอยู่เป็นแปลงเดียวได้อย่างไร