在 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))
在 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))