1

我正在使用 matplotlib 创建一个交互式图形。

作为输入给出的数据是实时计算的,并且当数据准备好绘制时调用用于创建图形的函数,所以我不能使用动画模块。除此之外,新数据不会显示在与前一个相同的轴上,并且输出图形包括 3d 绘图和 gui 小部件。

每次绘制数据时,如果用户想要与输出交互,我都会调用 plt.pause(30)。30 秒过去后,数字会更新。

我要做的是创建一个 gui 按钮,按下该按钮将取消 plt.pause 并取消阻止程序执行。到目前为止,我还没有找到这个简单(?)查询的答案。有谁知道是否有办法通过将 plt.pause() 从 GUI 以某种方式绑定到 gui 小部件来停止它?如果没有,有没有办法绕过这种情况?

4

1 回答 1

1

好的,我不得不去 matplotlib 的 github 了解主要思想是什么。类似以下的函数:

def button_function(val):
   plt.gcf().canvas.stop_event_loop()

使用 . 与按钮连接时,完全符合我的要求on_clicked这个问题困扰了我一天,当我发布这个问题时,我在 10 分钟内找到了答案。感谢stackoverflow给了我一种写下来的方法......

于 2016-12-21T10:22:00.463 回答