【问题标题】:How to define the default value of a Slider widget on ipywidgets?如何在 ipywidgets 上定义 Slider 小部件的默认值?
【发布时间】:2016-07-01 10:36:09
【问题描述】:

在 Jupyter Notebook 上并使用 ipywidgets 我可以使用紧凑版本创建滑块

import ipywidgets as ip
def f(x):
    print(x)
ip.interact(f, x = (0, 1, 1))

滑块的默认值为 0,但我想将其设为 1。我该怎么做?

【问题讨论】:

    标签: ipython ipython-notebook jupyter jupyter-notebook ipywidgets


    【解决方案1】:

    小部件缩写(使用元组来请求滑块等)仅公开可以传递给小部件的选项的一小部分。默认值来自函数定义中的默认值(如果可用),或者来自范围的中心(如果不可用)。如果您不想更改现有函数的签名以为其提供默认参数,则有两个选项可以指定初始值:

    1. 将您的函数包装在另一个指定默认值的函数中:

      def f(x, y):
          print(x, y)
      
      @interact(x=(0, 5), y=(-1.,3.))
      def g(x=1, y=2.0):
          return f(x, y)
      
    2. 直接实例化一个Widget并指定value属性,而不是依赖缩写:

      w = widgets.IntSlider(value=1, min=0, max=1)
      interact(f, x=w)
      

    【讨论】:

      【解决方案2】:

      在函数定义中设置默认值应该可以:

      import ipywidgets as ip
      def f(x=1):
          print(x)
      ip.interact(f, x = (0, 1, 1))
      

      【讨论】:

      • 成功了!谢谢,尽管这迫使我重新排序我的函数输入,以便所有具有默认值的都位于函数声明的末尾!理想情况下,我会在小部件声明中使用默认值。但你的解决方案帮助了我!谢谢
      • 这是因为f 中的x=1 默认参数,而不是因为interact 调用中x 元组中的第三个1
      猜你喜欢
      • 1970-01-01
      • 2019-11-25
      • 2011-06-30
      • 1970-01-01
      • 2016-05-10
      • 1970-01-01
      • 1970-01-01
      • 2015-04-14
      • 2014-03-07
      相关资源
      最近更新 更多