在jupyter中,我有以下代码使用ipywidgets为我的变量r创建一个滑块控件。
from ipywidgets import interact, interactive, fixed, interact_manual
import ipywidgets as widgets
r = 0.9992
def sl(r=0.9992):
global ar
ar = r
interact(sl, r=(0.999, 1, 0.0001))
它可以工作,但问题是滑块值的显示四舍五入到小数点后2位。结果,显示屏始终显示1.00。
有没有办法显示其实际价值?
答案 0 :(得分:3)
从ipywidgets的6.x版本开始,FloatSlider
包含readout_format
属性。只需将其设置为所需的精度,例如像这样:
widgets.FloatSlider(value=7.5, min=0, max=10.0,
step=0.001, readout_format='.3f')
答案 1 :(得分:0)
如果您的函数具有return
值并且它显示您想要在下面的标签中看到的精度(如图像中),则您的代码可以正常工作
主要来自info @ http://test-widgets.readthedocs.io/en/latest/examples/Using%20Interact.html
from ipywidgets import *
from IPython.display import display
def SL(r):
return r
interact(SL,r=widgets.FloatSlider(value=0.9992,min=0.9990,max=1.0000,step=0.0001,description='Precision:',))
答案 2 :(得分:0)
找到的解决方案here
值是以某种方式计算的,也许不可能用FloatSlider来实现。您可以使用SelectionSlider而不是Float。
my_values = [i / 1000 for i in range(10)] # [0.001, 0.002, ...] Or use numpy to list
SelectionSlider(options=[("%g"%i,i) for i in my_values])