MatPlotLib中plt.draw()的更有效替代方案

NGX*_*XII 6 python performance user-interface interactive matplotlib

我正在尝试使用MatPlotLib创建一个交互式GUI,用户最常注意的是,例如,更改滑块和GUI响应之间的延迟.

目前,我plt.draw()在每个事件结束时使用,它运行良好,除了它导致256ms函数259ms运行时的事实.

在研究替代方案时plt.draw(),我遇到了这个帖子:为什么Matplotlib的绘图速度如此之慢?,建议使用它fig.canvas.blit(ax1.bbox)作为重新加载图形的替代方案,而不是整个图形.
当我用这个,事件处理程序运行在3ms,但下面的事件在GUI的更新,而不是如同事件在缓冲区抓住了当前事件的结束:User input 1> pause> User input 2> GUI responds to input 1> pause> User input 3> GUI responds to input 2,使程序无法使用.

那么我有什么替代品?修复这些问题中的任何一个都可以让我运行一个非常快的GUI.如果需要,我会发布代码.

注1:使用时fig.canvas.blit(ax1.bbox),滑块,按钮等会立即更改,只有子图的行为如上所述.

注2:fig.canvas.draw_idle()在小部件示例中使用http://matplotlib.org/examples/widgets/slider_demo.html,并fig.canvas.draw()执行相同的操作plt.draw()