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

DrJ*_*ffe 3 python widget ipython matplotlib-basemap ipython-notebook

在 IPython Notebook 中使用 Interactive Widgets 时,特别是 FloatSliderWidget,有没有办法延迟最终结果的渲染?

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

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

非常感谢您的帮助。

干杯,J。

Tho*_*s K 5

有一个interact_manual功能类似于interact“运行”按钮而不是自动更新。文档。我认为这是 IPython 3 中的新功能。

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


Kol*_*ril 5

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))
Run Code Online (Sandbox Code Playgroud)