Закройте уже существующие фигуры в matplotlib при работе от затмения

Мой вопрос прост: у меня есть скрипт python, который генерирует цифры, используя matplotlib. Каждый раз, когда я запускаю его, он генерирует новые окна с цифрами. Как я могу закрыть сценарий, который был открыт в предыдущий раз?

аналогичная команда в Matlab заключается в том, чтобы «закрыть все» в начале вашего скрипта matlab.

Я видел несколько предложений сделать что-то вроде

import matplotlib.pyplot as plt plt.close("all") 

Это решение работает, если вы запускаете свой скрипт из оболочки python, например, используя

 >>>> execfile("myScript.py") 

Однако я обнаружил, что это не работает, если я запускаю скрипт с помощью Eclipse / PyDev. Как я могу заставить его работать в Eclipse?

пример:

 from numpy import * from matplotlib.pyplot import * from scipy import * close("all") #close any previously open plots - this doesn't work when running via Eclipse t = linspace(0, 0.1,1000) w = 60*2*pi figure() plot(t,cos(w*t)) plot(t,cos(w*t-2*pi/3)) plot(t,cos(w*t-4*pi/3)) show() 

Это должно построить идеальные сигналы для хорошего 3-фазного источника питания.

2 Solutions collect form web for “Закройте уже существующие фигуры в matplotlib при работе от затмения”

Вы можете закрыть фигуру, вызвав matplotlib.pyplot.close , например:

 from numpy import * import matplotlib.pyplot as plt from scipy import * t = linspace(0, 0.1,1000) w = 60*2*pi fig = plt.figure() plt.plot(t,cos(w*t)) plt.plot(t,cos(w*t-2*pi/3)) plt.plot(t,cos(w*t-4*pi/3)) plt.show() plt.close(fig) 

Вы также можете закрыть все открытые цифры, вызвав matplotlib.pyplot.close("all")

См. Ответ Би Рико для общего дела Eclipse.

Для кого-то, как я, – кто приземляется здесь, потому что у вас много окон, и вы изо всех сил пытаетесь закрыть их, просто убить питона может быть эффективно, в зависимости от ваших обстоятельств. Вероятно, он работает практически в любых обстоятельствах, в том числе с Eclipse.

Я только породил 60 участков из emacs (я предпочитаю, чтобы затмить), а затем я думал, что мой скрипт вышел. Запуск close('all') в моем ipython окне не работал для меня, потому что графики не пришли из ipython, поэтому я прибегал к поиску запущенных процессов python.

Когда я убил интерпретатора, выполняющего сценарий, все 60 графиков были закрыты – например,

 $ ps aux | grep python rsage 11665 0.1 0.6 649904 109692 ? SNl 10:54 0:03 /usr/bin/python3 /usr/bin/update-manager --no-update --no-focus-on-map rsage 12111 0.9 0.5 390956 88212 pts/30 Sl+ 11:08 0:17 /usr/bin/python /usr/bin/ipython -pylab rsage 12410 31.8 2.4 576640 406304 pts/33 Sl+ 11:38 0:06 python3 ../plot_motor_data.py rsage 12431 0.0 0.0 8860 648 pts/32 S+ 11:38 0:00 grep python $ kill 12410 

Обратите внимание, что я не убивал мой ipython / pylab и не убивал диспетчера обновлений (убийство менеджера обновлений, вероятно, плохая идея) …

  • Aptana 3 Неразрешенный импорт - Python
  • Pydev: отправить stdout на реальный (tty) терминал
  • Eclipse не может получить информацию о интерпретаторе в виртуальной среде
  • Импорт с использованием файлов pydev и .pth
  • Отладка проекта с помощью root в PyDev / LiClipse
  • PyDev не признает импорт
  • Невозможно получить Coverage для работы в PyDev, «Файл не имеет статистики»
  • Определение удаленного интерпретатора на удаленной машине Linux с использованием Pydev и RSE Server
  • Python DocStrings & Pydev
  • Как решить ошибку импорта для панд?
  • Eclipse, PyDev «Переводчик проекта не указан»
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.