[python] 獲取matplotlib中的數字列表


2 Answers

Pyplot有get_fignums方法,返回圖號列表。 這應該做你想要的:

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(100)
y = -x

plt.figure()
plt.plot(x)
plt.figure()
plt.plot(y)

for i in plt.get_fignums():
    plt.figure(i)
    plt.savefig('figure%d.png' % i)
Question

我想要:

pylab.figure()
pylab.plot(x)
pylab.figure()
pylab.plot(y)
# ...
for i, figure in enumerate(pylab.MagicFunctionReturnsListOfAllFigures()):
  figure.savefig('figure%d.png' % i)

在pylab中返回當前數字列表的神奇函數是什麼?

網絡搜索沒有幫助......




我傾向於使用字符串命名我的數字,而不是使用默認(和非描述性)整數。 這是一種檢索該名稱並使用描述性文件名保存圖形的方法:

import matplotlib.pyplot as plt
figures = []
figures.append(plt.figure(num='map'))
# Make a bunch of figures ...
assert figures[0].get_label() == 'map'

for figure in figures:
    figure.savefig('{0}.png'.format(figure.get_label()))



這應該對你有幫助(來自pylab.figure doc):

呼叫簽名::

figure(num = None,figsize =(8,6),dpi = 80,facecolor ='w',edgecolor ='k')

創建一個新的數字並返回一個:class: matplotlib.figure.Figure實例。 如果num = None ,則圖形編號將遞增,並且將創建一個新圖形。**返回的圖形對象具有一個包含該編號的數字屬性。

如果你想在一個循環中回憶你的數字,那麼一個好的方法是將你的數字實例存儲在一個列表中並在循環中調用它們。

>> f = pylab.figure()
>> mylist.append(f)
etc...
>> for fig in mylist:
>>     fig.savefig()



Related