Хранение выходных данных функции на основе значения интерактивного аргумента - PullRequest
0 голосов
/ 19 ноября 2018

Я пытаюсь сделать следующее. У меня есть функция f (m), которую я хочу исследовать в интерактивном режиме для различных значений m (например, с помощью ipywidgets). Для конкретных значений m я хотел бы сохранить в списке строку, содержащую, например, m. Тем не менее, я не знаю заранее, какие это будут ценности; Я хочу построить график f (m), и если мне нравится результат, либо выберите что-то вроде True или False, либо выберите «Отклонить» или «Утвердить» в раскрывающемся списке, и только после этого сохраните значение. Нажатие 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 не приведет к изменению значения оценки, изменение m просто добавит идентификатор в список для каждого m, если для evaluation установлено значение Accept. Итак, для каждого значения мне нужно установить evaluation в Accept или Reject, а затем установить его обратно на какое-то значение, которое ничего не делает, например Undetermined, что является большим количеством кликов. Я уверен, что был бы лучший способ сделать это; кто-то может указать мне в этом направлении?

1 Ответ

0 голосов
/ 29 ноября 2018

Этот пример, вероятно, излишний для ваших целей, но он показывает, как использовать Panel (panel.pyviz.org) для сохранения набора выбранных в данный момент значений виджетов (в данном случае в файл): https://anaconda.org/jbednar/datashaderattractors/notebook

...