在 IPython Notebook 中使用 Interact 小部件呈现延迟

Rendering Delay with Interact Widgets in IPython Notebook

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

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

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

非常感谢您的帮助。

干杯, J.

有一个 interact_manual 功能,其工作方式与 interact 相似,但使用 'Run' 按钮而不是自动更新。 Docs。我认为这是 IPython 3.

中的新功能

为了更普遍地限制小部件,所有小部件都应具有 .msg_throttle 属性。这是一次可以 'in the pipe' 更新的数量。默认值为 3,因此当您拖动滑块时,它会将三个值排队以获得结果。将它设置为 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))