12

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

在此处输入图像描述

有没有办法显示它的实际值?

4

3 回答 3

8

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

widgets.FloatSlider(value=7.5, min=0, max=10.0, 
                    step=0.001, readout_format='.3f')
于 2020-04-21T10:29:48.463 回答
0

在这里找到解决方案

值是在途中以某种方式计算的,也许使用 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])

小部件

于 2019-10-09T22:16:12.563 回答
-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:',))

滑块结果的精度如下所示

于 2017-04-12T17:30:50.477 回答