Создание кнопок для ответа на вопрос в блокноте Jupyter и предоставление обратной связи - PullRequest
0 голосов
/ 23 апреля 2020

Я хотел бы написать python код в блокноте jupyter, который

  • запускается несколько раз (в течение для l oop)
  • Отображение графика (например, график рассеяния, см. код ниже)
  • Печать вопроса о графике. (например, хорошо ли выглядит этот график? да или нет?)
  • Создает кнопки для ответа (на самом деле это не обязательно кнопки, подойдет любой тип ответа)
  • Печать отзыва на основе ответ
  • Сохраняет данные

На самом деле, это не обязательно должно быть в точности похоже на приведенный ниже код, поскольку я буду экспериментировать только на себе. Например, код может быть запущен в другом окне и т. Д. c. Я пробовал модуль expyriment, но показывает картинки только из файлов, а не из matplotlib.

Любые решения из разных подходов также приветствуются.

import time
import numpy as np
import matplotlib.pyplot as plt
from IPython.display import clear_output

data = []
x = np.arange(10)

for i in range(50):

    # below four lines creates a scatterplot and avg is the average of y values
    y = np.random.random(10)
    plt.scatter(x,y)
    plt.show()
    print('Question: Is the average of y values >= .5?')
    avg = np.average(y)

    #### now I don't know how to do this part ####
    createButtons('yes','no')
    resp = getButtonResponse
    #### #### #### #### #### #### #### #### ####

    # create a to-be-displayed feedback based on response
    if ((avg >= .5) & (resp == 'yes')) | ((avg < .5) & (resp == 'no')):
        feedback = 'You are right.'
    else:
        feedback = 'You are wrong.'

    # save the data, print the feedback and proceed with the next experiment
    data.append([avg,resp])
    print(feedback)
    time.sleep(1)
    clear_output(wait = True)
...