Dùng sự kiện button_press_event để tạm dừng animation. Bật chế độ tương tác plt.ion(), dùng backend TkAgg.
- Set backend TkAgg, bật interactive mode.
- Biến
pauseđiều khiển vòng lặp. - Hàm
onclickđảo giá trịpausekhi click chuột. - Vòng lặp while vẽ luân phiên sin/cos khi không pause.
Ví dụ minh họa
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()
Kết quả đầu ra
Đồ thị sin/cos luân phiên, click chuột để tạm dừng.
