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

วิธีหยุดชั่วคราวรูป Pylab จนกว่าจะกดปุ่มหรือคลิกเมาส์ (Matplotlib)


เพื่อหยุดชั่วคราวรูป Pylab จนกว่าจะกดปุ่มหรือคลิกเมาส์ ให้ใช้คีย์อีเวนต์ "button_press_event"

ขั้นตอน

  • กำหนดขนาดรูปและปรับระยะห่างระหว่างและรอบซับพล็อต
  • ตั้งค่าแบ็กเอนด์ "TkAgg"
  • เปิดโหมดโต้ตอบ (interactive mode) ON
  • สร้างรูปใหม่หรือเปิดใช้งานรูปที่มีอยู่
  • สร้างตัวแปร pause=False
  • เมื่อเกิด "button_press_event" ให้หยุดรูป
  • ผูกฟังก์ชันกับอีเวนต์
  • สร้าง data, x และ y ด้วย NumPy
  • วนลูป True เปลี่ยนเส้นพล็อตและสี
  • ใช้ show() เพื่อแสดงรูป

ตัวอย่าง

import matplotlib
from matplotlib import pyplot as plt
import numpy as np

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

matplotlib.use("TkAgg")
plt.ion()
fig = plt.figure()
pause = False

def onclick(event):
    global pause
    pause = not pause

fig.canvas.mpl_connect('button_press_event', onclick)

data = np.linspace(-10, 10, 100)
x = np.sin(data)
y = np.cos(data)
flag = 1
while True:
    if not pause:
        if flag == 1:
            fig.clear()
            plt.plot(data, y, color='red')
            flag = 0
        else:
            fig.clear()
            plt.plot(data, x, color='yellow')
            flag = 1
    fig.canvas.get_tk_widget().update()

ผลลัพธ์

วิธีหยุดชั่วคราวรูป Pylab จนกว่าจะกดปุ่มหรือคลิกเมาส์ (Matplotlib)

คุณจะเห็นคลื่นไซน์และโคไซน์สลับกันสีเหลืองและแดงจนกว่าคุณจะคลิกปุ่มเมาส์ รูปจะหยุดหลังจากคลิกปุ่มเมาส์ใดๆ