Взаимодействующая диаграмма с текстовым полем

PythonPythonBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом уроке мы узнаем, как создать интерактивную диаграмму с текстовым полем с использованием Matplotlib. Виджет Textbox позволяет пользователям вводить текст, который обновляет диаграмму в режиме реального времени.

Советы по работе с ВМ

После запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Импортируем необходимые библиотеки

Сначала нам нужно импортировать необходимые библиотеки. Мы будем использовать NumPy и Matplotlib для создания диаграммы и виджета Textbox.

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.widgets import TextBox

Создаем начальную диаграмму

Далее мы создаем начальную диаграмму, которая будет обновляться в зависимости от ввода пользователя. В этом примере мы создаем диаграмму функции с t в качестве независимой переменной.

fig, ax = plt.subplots()
fig.subplots_adjust(bottom=0.2)

t = np.arange(-2.0, 2.0, 0.001)
l, = ax.plot(t, np.zeros_like(t), lw=2)

Определяем функцию submit

Мы определяем функцию submit, которая будет вызываться, когда пользователь отправляет текстовый ввод. Эта функция обновляет отображаемую функцию в зависимости от ввода пользователя.

def submit(expression):
    """
    Update the plotted function to the new math *expression*.

    *expression* is a string using "t" as its independent variable, e.g.
    "t ** 3".
    """
    ydata = eval(expression, {'np': np}, {'t': t})
    l.set_ydata(ydata)
    ax.relim()
    ax.autoscale_view()
    plt.draw()

Создаем виджет Textbox

Мы создаем виджет Textbox и добавляем его на рисунок. Метод on_submit используется для вызова функции submit, когда пользователь нажимает клавишу Enter в текстовом поле или покидает его. Мы также задаем начальное значение виджета Textbox равным t ** 2.

axbox = fig.add_axes([0.1, 0.05, 0.8, 0.075])
text_box = TextBox(axbox, "Evaluate", textalignment="center")
text_box.on_submit(submit)
text_box.set_val("t ** 2")  ## Trigger `submit` with the initial string.

Отображаем диаграмму

Наконец, мы отображаем диаграмму для пользователя.

plt.show()

Резюме

В этом уроке мы узнали, как создать интерактивную диаграмму с текстовым полем с использованием Matplotlib. Мы создали начальную диаграмму, определили функцию submit, которая обновляет диаграмму, создали виджет Textbox и отобразили диаграмму для пользователя. С этими знаниями вы можете создать собственные интерактивные диаграммы с вводом пользователя.