【发布时间】: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,它可以是Accept 或Reject 或类似的东西,并向函数添加一个if 语句来附加一个值列表,但这似乎是一个糟糕的选择。因为更改 m 不会更改评估的值,所以只要将 evaluation 设置为 Accept,更改 m 只会将每个 m 的 ID 添加到列表中。因此,对于每个值,我需要将evaluation 设置为Accept 或Reject,然后将其设置回某个不执行任何操作的值,例如Undetermined,这是很多点击。我相信会有更好的方法来做到这一点;有人能指点我那个方向吗?
【问题讨论】:
标签: python interactive ipywidgets holoviews