【问题标题】:Storing outputs of a function based on an interactive argument value基于交互式参数值存储函数的输出
【发布时间】:2018-11-19 17:36:59
【问题描述】:

我正在尝试做的是以下内容。我有一些函数 f(m) 我想以交互方式探索不同的 m 值(例如使用 ipywidgets)。对于 m 的特定值,我想在列表中存储一些包含例如 m 的字符串。但是,我事先不知道这些值是什么;我想绘制 f(m),如果我喜欢结果,要么选择 True 或 False,要么从下拉列表中选择 Reject 或 Approve,然后才存储该值。单击键盘上的 A 或 R 也可以。这是我能做的吗?我能想到的最好的方法是使用类似 ipywidgets 的东西:

%matplotlib inline
from ipywidgets import interactive
import matplotlib.pyplot as plt
import numpy as np

def f(m):
    plt.figure(2)
    x = np.linspace(-10, 10, num=1000)
    ID = str(m)
    plt.plot(x, m * x)
    plt.ylim(-5, 5)
    plt.show()

interactive_plot = interactive(f, m=(-2.0, 2.0))
output = interactive_plot.children[-1]
output.layout.height = '350px'
interactive_plot

在这种情况下,ID 是我要存储的对象。我可以添加一个额外的参数evaluation,它可以是AcceptReject 或类似的东西,并向函数添加一个if 语句来附加一个值列表,但这似乎是一个糟糕的选择。因为更改 m 不会更改评估的值,所以只要将 evaluation 设置为 Accept,更改 m 只会将每个 m 的 ID 添加到列表中。因此,对于每个值,我需要将evaluation 设置为AcceptReject,然后将其设置回某个不执行任何操作的值,例如Undetermined,这是很多点击。我相信会有更好的方法来做到这一点;有人能指点我那个方向吗?

【问题讨论】:

    标签: python interactive ipywidgets holoviews


    【解决方案1】:

    这个例子对你的目的来说可能是多余的,但它展示了如何使用 Panel (panel.pyviz.org) 来保存一组当前选择的小部件值(在这种情况下是到一个文件):https://anaconda.org/jbednar/datashaderattractors/notebook

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-06
      • 2011-02-01
      • 1970-01-01
      • 2019-01-30
      • 2023-03-26
      • 2015-04-28
      • 1970-01-01
      相关资源
      最近更新 更多