сюжет matplotlib и imshow
поведение сюжета matplotlib и imshow меня смущает.
import matplotlib as mpl
import matplotlib.pyplot as plt
Если я вызову plt.show () перед вызовом plt.imshow (i), затем возникает ошибка. Если я позвоню в plt.imshow (i) перед вызовом plt.show (), тогда все работает отлично. Однако, если я закрываю первую фигуру, которая открывается, а затем вызываю plt.imshow (i), новая фигура отображается без вызова plt.шоу.)(
может кто-нибудь объяснить это?
1 ответов
если я позвоню plt.show () перед вызовом plt.imshow (i), затем возникает ошибка. Если я позвоню в plt.imshow (i) до вызываю plt.показать(), то все работать отлично.
plt.show()
отображает рисунок (и входит в mainloop любого бэкэнда gui, который вы используете). Вы не должны называть это, пока вы не построили планы и не хотите, чтобы они отображались.
plt.imshow()
рисует изображение на текущей фигуре (создание фигуры - это не текущая цифра). Зову plt.show()
прежде чем вы нарисуете что-нибудь, не имеет никакого смысла. Если вы хотите явно создать новую фигуру, используйте plt.figure()
.
...новый рисунок отображается не вызываю plt.шоу.)(
этого не произойдет, если вы не используете код в чем-то похожем на режим pylab ipython, где mainloop бэкэнда gui будет запущен в отдельном потоке...
вообще говоря, plt.show() будет последняя строка твоего сценария. (Или будет вызван, когда вы захотите остановиться и визуализировать сюжет, который вы сделали, во всяком случае.)
надеюсь,это имеет смысл.