2016-07-22 3 views
0

Можно ли отобразить одну фигуру несколько раз в matplotlib?Отображение рисунка несколько раз с помощью matplotlib

Я ищу решение, которое может примерно выглядеть следующим образом:

fig1 = plt.figure() 
fig2 = plt.figure() 

ax1 = fig1.add_subplot(111) 
ax2 = fig2.add_subplot(111) 

ax1.imshow(a) 
ax2.imshow(b) 

fig1.show() 
fig2.show() 
fig1.show() 

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

Я также попытался приостановить сюжет при запуске скрипта:

fig1.show() 
plt.pause(10) 

, но это показывает сразу обе цифры. Почему IDLE способен отображать fig1.show() и ждать, пока он не будет закрыт, но при запуске скрипта fig1.show() немедленно закрывается, если не приостановлено? И почему он отображает все цифры одновременно, а не только один экземпляр?

ответ

-1

Если вы запустите matplotlib внутри, например ipython, вы должны использовать fig1.show(), чтобы показать фигуру, и в то же время избежать блокировки терминала ipython. Однако, если вы хотите запустить скрипт из cmd, то есть с python script.py, вместо этого вы должны использовать plt.show() (обратите внимание, что этого достаточно с plt.show() один раз, даже если у вас несколько цифр), что будет поддерживать цифры.

+0

Да, это имеет смысл, однако мой главный вопрос касался чего-то другого. При запуске в режиме сценария (т. Е. Python script.py), могу ли я отобразить одну и ту же цифру дважды с помощью plt.show()? Я хотел сказать, что я могу сделать это в интерактивном режиме с помощью fig.show(). Есть ли способ сделать это в скрипте? – jolaem

Смежные вопросы