Jupyter notebook 每次更新IPyWidget时更新显示的值
在我的笔记本中,我有7个浮动滑块小部件。我想让这7个小部件的产品始终以一种方式显示,当用户移动滑块时,显示的值会更新。目前我正在尝试在Widgets.Text(n)中显示SliderWidget的产品,但我不确定这是否是最好的解决方案Jupyter notebook 每次更新IPyWidget时更新显示的值,jupyter-notebook,ipython,ipywidgets,Jupyter Notebook,Ipython,Ipywidgets,在我的笔记本中,我有7个浮动滑块小部件。我想让这7个小部件的产品始终以一种方式显示,当用户移动滑块时,显示的值会更新。目前我正在尝试在Widgets.Text(n)中显示SliderWidget的产品,但我不确定这是否是最好的解决方案 import ipywidgets as widgets caption = widgets.Label(value='Play around with the variables to see how N changes!') r = widgets
import ipywidgets as widgets
caption = widgets.Label(value='Play around with the variables to see how N changes!')
r = widgets.FloatSlider(value=1,
min=1.0,
max=3.0,
step=0.1,
description="R*")
fp = widgets.FloatSlider(value=1,
min=0.35,
max=1.0,
step=0.05,
description="fp")
ne = widgets.FloatSlider(value=1
min=0.2,
max=3.0,
step=0.1,
description="ne")
fl = widgets.FloatSlider(value=1,
min=1.0,
max=1.3,
step=0.05,
description="fl")
fi = widgets.FloatSlider(value=1,
min=0.5,
max=1.5,
step=0.05,
description="fi")
fc = widgets.FloatSlider(value=0.20,
min=0.10,
max=0.30,
step=0.05,
description="fi",)
l = widgets.FloatSlider(value=60000000.0,
min=5000000.0,
max=1000000000.0,
step=5000000,
description="fi")
n = widgets.Text(
value= str(int(r.value * fp.value * ne.value * fl.value * fi.value * fc.value * l.value)) + " civilizations" ,
description='Estimated N:',
disabled=True)
left_box = VBox([r, fp, ne,fl])
right_box = VBox([ fi,fc,l,n])
HBox([left_box, right_box])
我使用的代码显示小部件,但不会自动更新小部件n。对于我来说,不需要每次打印新值的最佳方法是什么?您可以对每个滑块的值更改使用和回调函数
def on_value_change(change):
n.value = str(int(r.value * fp.value * ne.value * fl.value * fi.value * fc.value * l.value)) + " civilizations"
r.observe(on_value_change)
fp.observe(on_value_change)
# ...