Plt.show() делает зависание терминала

В конце последней функции, которую я вызываю в одной из моих программ, у меня есть следующий код, чтобы построить простой цветной график.

plt.figure()
plt.pcolormesh(X,Y,Z)
plt.colorbar()
plt.show()

Послесловие я возвращаюсь к основному, и моя программа завершена. Сюжет отображается так, как ожидалось, однако, когда я иду, чтобы закрыть его, используя кнопку x в углу (на ubuntu), моя программа не заканчивается. Он просто висит там с запуском процесса. Как я могу исправить это?

Ответы

Ответ 1

ваш matplotlib может быть запущен в неинтерактивный режим по какой-либо причине. Я не уверен, как предотвратить это в вашей локальной конфигурации, но если вы добавите либо это:

plt.ion()

или это:

matplotlib.interactive(True)

где-то в начале вашего script, он должен изменить поведение ваших графиков.

Ответ 2

Для интерактивного режима вам нужно это во главе файла:

import matplotlib
matplotlib.use("TkAgg")