Matplotlib автоматически показывает рисунок

Я использую 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 версия).

Изменилось ли что-то в поведении по умолчанию, чего я не могу найти в документации?

Вы случайно не работаете с jupyter, а команды too находятся в двух разных ячейках?

Quang Hoang 30.05.2019 18:44

Это не проблема matplotlib, возможно, ваша версия Eclipse Oxygen изменилась или использует другую настройку? Вы используете IPython? Изменилась ли версия IPython?

ImportanceOfBeingErnest 30.05.2019 19:53

@QuangHoang Я не использую Jupyter.

mibm 02.06.2019 09:32

@ImportanceOfBeingErnest версия Eclipse такая же (я буквально скопировал ее со старого ноутбука). Я не использую IPython

mibm 02.06.2019 09:32
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Зайдя в код matplotlib, я обнаружил, что интерактивный режим был установлен — вероятно, по умолчанию, поскольку у меня нигде нет файла matplotlibrc.

Я добавил matplotlib.interactive(False) в начале main(), чтобы решить эту проблему. По-видимому, я все еще получаю интерактивный режим при отладке даже с приведенной выше строкой, так что этого мне достаточно (на данный момент).

Другие вопросы по теме