Я предполагаю, что вы делаете это в IDLE на Windows, потому что именно там я заметил эту же проблему.
Из того, что я вывел, есть проблема с использованием бэкенда TkAgg, который поставляется с базовым дистрибутивом Python и, по-видимому, используется по умолчанию для matplotlib при использовании matplotlib с IDLE. Это как-то связано с тем, как IDLE использует подпроцессы, потому что, если я запускаю IDLE с опцией -n, которая отключает подпроцессы, у меня нет этой проблемы. Самый простой способ запустить его IDLE с параметром -n в Windows - щелкнуть правой кнопкой мыши по файлу и выбрать «Открыть с IDLE». Если вы сделаете это, вы должны получить оболочку IDLE, которая говорит
=== Нет подпроцесса ===
чуть выше приглашения. Например, заимствуя код из решения Хоакина, вы можете попробовать этот простой код:
from matplotlib import interactive
interactive(True)
from pylab import *
plot([1,2,3,4])
затем закройте окно и снова введите последнюю строку в консоли. У меня работает в IDLE с параметром -n.
Так что вы можете сделать? Вы всегда можете запустить IDLE в режиме без подпроцессов, но в этом есть опасность. Вы можете использовать другую IDE. Многие люди предлагают IPython, хотя я сам еще не продал его. Вы также можете попробовать другой бэкэнд для matplotlib. Я собираюсь попробовать это через некоторое время, потому что мне было интересно, будет ли это работать.