使用IPython Notebook中的Interact小部件渲染延迟

时间:2015-02-24 10:50:36

标签: python widget ipython ipython-notebook matplotlib-basemap

在IPython Notebook中使用交互式窗口小部件时,特别是FloatSliderWidget,有没有办法延迟最终结果的渲染?

我使用小部件和底图来显示地图数据,并且在每个步骤(滑动滑块时控制图像叠加alpha)的渲染尝试非常慢。

我可以设置延迟最终渲染的标志等吗?或者在我设置所有滑块时添加一个按钮来显示图像?

非常感谢您的帮助。

干杯, 学家

2 个答案:

答案 0 :(得分:4)

interact_manual函数的作用类似于interact,但使用“运行”按钮而不是自动更新。 Docs。我认为这是IPython 3中的新功能。

对于更常见的限制小部件,所有小部件都应具有.msg_throttle属性。这是一次可以在“管道中”进行的更新。默认值为3,因此当您拖动滑块时,它会将三个值排队以获得结果。将其设置为1应该使它对慢速函数更具响应性 - 在上一次执行完成之前不会发送另一个值。对于更快的功能,较低的值会使输出变化不太顺畅。

答案 1 :(得分:1)

2019年更新

现在有选项continuous_update=False,它限制了从滑块到鼠标释放事件的执行。

https://minrk-ipywidgets.readthedocs.io/en/latest/examples/Using%20Interact.html

实际上,它是这样的:

from ipywidgets import *
import numpy as np
import matplotlib.pyplot as plt
t= np.arange(0,1,0.01)
def pltsin(f):
    plt.plot(t,np.sin(2*np.pi*t*f))
    plt.show()
interact(pltsin,f=FloatSlider(min=1, max=23, step=1,continuous_update=False))