matplotlib numpy - TypeError: Не удается прочитать свойство 'props' из undefined - График не отображается? - PullRequest
0 голосов
/ 04 ноября 2019

Этот код работает на одной машине, но не на другой. Я не могу изолировать проблему с зависимостями.

Пример кода из: https://matplotlib.org/3.1.1/gallery/lines_bars_and_markers/simple_plot.html

-

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

# Data for plotting
t = np.arange(0.0, 2.0, 0.01)
s = 1 + np.sin(2 * np.pi * t)

fig, ax = plt.subplots()
ax.plot(t, s)

ax.set(xlabel='time (s)', ylabel='voltage (mV)',
       title='About as simple as it gets, folks')
ax.grid()

fig.savefig("test.png")
plt.show()

-> TypeError: Не удается прочитать свойство 'props' из неопределенного

Этот код не создает трассировку стека явного сбоя. Ошибка TypeEr: возвращается вызовом plt.show (). Я пытался найти эту ошибку, но не смог найти ничего сообщенного. (Я добавил скриншот того, что visual-studio на сервере, над которым я работаю, показывает. Я, скорее всего, просто создаю докер из моей другой среды, поскольку я должен был это сделать в первую очередь, чтобы избежать нарушения конфигурации.) Графикправильно сохраняет в файл. Это просто проблема с plt.show ().

np. версия '1.17.2'

matplotlib. версия '3.1.1'

снимок экрана

График сохраняет правильно

1 Ответ

0 голосов
/ 04 ноября 2019

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

Я подозреваю, что это вызов ax.set (). Не видел этого раньше и никогда не использовал. Может быть, это не рекомендуется в mpl 3.1.1. По-видимому, эта ошибка может возникать, когда вы передаете параметр, который функция не знает (xlabel, ylabel, title): Uncaught TypeError: Невозможно прочитать свойство 'value' из неопределенного

В качестве теста попробуйте запустить это:

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

# Data for plotting
t = np.arange(0.0, 2.0, 0.01)
s = 1 + np.sin(2 * np.pi * t)

fig, ax = plt.subplots()
ax.plot(t, s)


ax.set_ylabel('voltage (mV)')
ax.set_xlabel('time (s)')
ax.set_title('About as simple as it gets, folks')
ax.grid()

fig.savefig("test.png")
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...