Я использую matplotlib
версию 3.0.3
в Eclipse Oxygen 3 в Windows 10.
import matplotlib.pyplot as plt
fig, axes = plt.subplots(nrows=4, ncols=4) # Figure is shown!?
plt.show() # expected to see figure only here
Кажется, что всякий раз, когда вызывается метод plt
, matplotlib
уже открывает пользовательский интерфейс.
Это полезно при отладке, но я обычно хочу просто savefig
и не останавливаться, чтобы посмотреть на сгенерированное изображение...
У меня это нормально работало на моем предыдущем ноутбуке с Windows 7 (не знаю, какая matplotlib
версия).
Изменилось ли что-то в поведении по умолчанию, чего я не могу найти в документации?
Это не проблема matplotlib, возможно, ваша версия Eclipse Oxygen изменилась или использует другую настройку? Вы используете IPython? Изменилась ли версия IPython?
@QuangHoang Я не использую Jupyter.
@ImportanceOfBeingErnest версия Eclipse такая же (я буквально скопировал ее со старого ноутбука). Я не использую IPython
Зайдя в код matplotlib
, я обнаружил, что интерактивный режим был установлен — вероятно, по умолчанию, поскольку у меня нигде нет файла matplotlibrc
.
Я добавил matplotlib.interactive(False)
в начале main()
, чтобы решить эту проблему.
По-видимому, я все еще получаю интерактивный режим при отладке даже с приведенной выше строкой, так что этого мне достаточно (на данный момент).
Вы случайно не работаете с jupyter, а команды too находятся в двух разных ячейках?