ipywidgets,如何更改滑块的值显示精度

J_y*_*ang 5 python ipython jupyter ipywidgets

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

它可以工作,但问题是滑块值的显示四舍五入到小数点后两位。结果,显示屏始终显示1.00。

在此处输入图片说明

有什么方法可以显示其实际值?

Pal*_*oha 7

从 ipywidgets 6.x 版本开始,FloatSlider包含readout_format属性。只需将其设置为您想要的精度,例如:

widgets.FloatSlider(value=7.5, min=0, max=10.0, 
                    step=0.001, readout_format='.3f')
Run Code Online (Sandbox Code Playgroud)


eri*_*lin -1

如果您的函数有一个return值并且它显示您想要在下面的标签中看到的精度(如图所示),您的代码就可以工作

主要来自信息@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:',))
Run Code Online (Sandbox Code Playgroud)

下面显示的滑块精度结果