Если я позвоню plt.show () до вызова
plt.imshow (i), тогда возникает ошибка.
Если я позвоню plt.imshow (i) до
вызов plt.show (), затем все
работает отлично.
plt.show()
отображает цифру (и входит в основной цикл любого используемого вами интерфейса GUI). Вы не должны называть это, пока вы не запланировали вещи и не хотите, чтобы они отображались.
plt.imshow()
рисует изображение на текущей фигуре (создание фигуры - это не текущая фигура). Вызывать plt.show()
до того, как вы что-то нарисовали, не имеет никакого смысла. Если вы хотите явно создать новую фигуру, используйте plt.figure()
.
... новая фигура отображается без
Вызов plt.show ().
Этого не произойдет, если вы не запустите код в чем-то похожем на режим pylab в ipython, где основной цикл бэкэнда GUI будет выполняться в отдельном потоке ...
Вообще говоря, plt.show () будет последней строкой вашего скрипта. (Или будет вызван всякий раз, когда вы хотите остановить и визуализировать сюжет, который вы сделали, во всяком случае.)
Надеюсь, в этом есть смысл.