【问题标题】:ipywidgets, how to change slider's value display precisionipywidgets,如何更改滑块的值显示精度
【发布时间】:2017-03-31 13:31:35
【问题描述】:

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

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

【问题讨论】:

    标签: python ipython jupyter ipywidgets


    【解决方案1】:

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

    widgets.FloatSlider(value=7.5, min=0, max=10.0, 
                        step=0.001, readout_format='.3f')
    

    【讨论】:

      【解决方案2】:

      找到解决方案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])
      

      【讨论】:

        【解决方案3】:

        如果您的函数具有 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:',))
        

        the slider result with precision displayed below

        【讨论】:

          猜你喜欢
          • 2021-01-01
          • 2019-02-18
          • 2014-05-14
          • 1970-01-01
          • 1970-01-01
          • 2021-01-12
          • 1970-01-01
          • 2021-05-06
          • 1970-01-01
          相关资源
          最近更新 更多