Почему plt.get_fignums () ничего не возвращает, если работает как одна строка в оболочке spyder ipython? - PullRequest
0 голосов
/ 10 ноября 2019

Я знаю, что есть " текущая цифра " и " текущие оси " в matplotlib, но если я буду запускать следующий код построчно в консоли spyder ipython, " plt.get_fignums () "всегда возвращает пустой список. Если «текущая фигура» и «текущие оси» очищаются после каждого запуска, почему plt.gcf () и plt.gca () по-прежнему что-то возвращают? Означает ли это, что matplotlib всегда сохраняет пустую фигуру и оси при инициализации? Имеет ли это какое-либо отношение к «интерактивному режиму» matplotlib?

import matplotlib.pyplot as plt

plt.figure()
print(plt.get_fignums())
print(plt.gcf(),plt.gca())

Обновление: я упрощаю код для демонстрации проблемы

Python 3.7.3 (по умолчанию, 24 апреля2019, 15:29:51) [MSC v.1915 64 бит (AMD64)] Для получения дополнительной информации введите «авторское право», «кредиты» или «лицензия».

IPython 7.6.1 - расширенный интерактивPython.

In [1]: runfile('xxx.py', wdir='xxx')

[1]
Figure(432x288) AxesSubplot(0.125,0.125;0.775x0.755)

In [2]: print(plt.get_fignums())
   ...: print(plt.gcf(),plt.gca())
[]
Figure(432x288) AxesSubplot(0.125,0.125;0.775x0.755)

In [6]: plt.figure()
   ...: print(plt.get_fignums())
[1]
<Figure size 432x288 with 0 Axes>

In [7]: print(plt.get_fignums())
[]
...