我想做的是以下几点。我有一些函数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只会将ID添加到每m个列表中。因此,对于每个值,我需要将evaluation
设置为Accept
或Reject
,然后将其重新设置为某个值,该值不会执行Undetermined
这样的操作,这是很多点击。我相信会有更好的方法。有人可以指出我的方向吗?
答案 0 :(得分:0)
此示例可能对您而言有些矫kill过正,但是它显示了如何使用Panel(panel.pyviz.org)将一组当前选定的小部件值(在这种情况下,保存到文件中)保存:https://anaconda.org/jbednar/datashaderattractors/notebook