Почему интерактивность графика (перетаскивание и масштабирование) перестает работать в этом примере Python? - PullRequest
1 голос
/ 08 апреля 2019

Я использую TextBox из модуля matplotlib.widgets. По сути, мой код создает график с текстовым полем, в котором пользователь может вводить текст для печати на консоли.

Проблема в том, что я могу в интерактивном режиме перетаскивать и увеличивать график, пока я не введу ни одного числа в текстовое поле. Если я введу число, сюжет перестанет быть интерактивным. Выше не бывает, если я ввожу буквы. Пожалуйста, попробуйте сами с кодом ниже.

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.widgets as mwidgets 

# Data
x = np.arange(0,2*np.pi, 0.01)
y = np.sin(x)

# Plot
fig = plt.figure()
ax = plt.axes()
ax.plot(x, y)

# Ask for text input on the plot display
def submitText(text):
    print('Entered text = {}'.format(text))
axbox = plt.axes([0.3, 0.2, 0.3, 0.05])
text_box = mwidgets.TextBox(axbox, 'Write a text here: ', initial='{}'.format(text))
text_box.on_submit(submitText)


# Display plot
plt.show()

Мне действительно нужно вводить цифры вместо букв и сохранять интерактивное поведение сюжета. Кто-нибудь знает, почему это происходит?

Любые предложения приветствуются.

1 Ответ

2 голосов
/ 08 апреля 2019

Это по сути эта ошибка .

В качестве обходного пути:

  1. Щелкните по текстовому полю
  2. введите свой номер
  3. Щелкните за пределами текстового поля
  4. Нажмите клавишу a
  5. Включение масштабирования / панорамирования и т. Д.
...