What I'm trying to do is the following. I have some function f(m) that I want to explore interactively for different values of m (for example using ipywidgets). For specific values of m, I'd like to store some string containing for example m in a list. However, I don't know beforehand which values those will be; I want to plot f(m), and if I like the result, either choose something like True or False, or select Reject or Approve from a dropdown list, and only then have the value be stored. Clicking A or R on the keyboard would also be fine. Is this something I can do? The best I could come up with was using something like 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
In this case, ID
is the object I would like to store. I could add an extra argument evaluation
which is either Accept
or Reject
or something like that, and add an if statement to the function that appends a list of values, but that seems like a poor choice. Because changing m won't change the value of evaluation, so varying m would just add the ID to the list for every m as long as evaluation
is set to Accept
. So then for every value I'd need to set evaluation
to Accept
or Reject
, and then set it back to some value that doesn't do anything like Undetermined
, which is a lot of clicks. I am sure there would be a better way of doing so; could someone point me in that direction?