如何暂停 pylab 图形直到按下某个键或单击鼠标? (Matplotlib)

matplotlibpythondata visualization

要暂停 pylab 图形直到按下鼠标键或单击鼠标,我们可以使用"button_press_event" 键事件。

步骤

  • 设置图形大小并调整子图之间和周围的填充。
  • 设置"TkAgg"背景。
  • 打开交互模式。
  • 创建新图形或激活现有图形。
  • 创建变量,pause=False。
  • 每当"button_press_event"时,暂停图形。
  • 将函数绑定到事件。
  • 创建data, xy 数据点使用 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()

输出

您将看到正弦波和余弦波交替显示为黄色和红色,直到您单击鼠标按钮。单击任一鼠标按钮后,图形将暂停。


相关文章