我需要从数值模型中生成100多个图(线图)。到目前为止,代码是生成循环内指定的图,但它不断添加多行到相同的4个图。我希望它完成制作4个图,然后打开一个新的页面并一次又一次地绘制这4个图,所以我应该说25页,共100个图。
到目前为止的代码 - 我从小开始想要在3页上生成12个图并将其保存为文件'plot.pdf':
from t2listing import *
import matplotlib.pylot as plt
from matplotlib.backends.backend_pdf import PdfPages
lst = t2listing('WAI1515PR_AW_407_ayfixold2.listing')
pdf_pages = PdfPages('plot.pdf')
feed = lst.generation.row_name
zone = feed[0:12]
sub = [221, 222, 223, 224]
for i in xrange(3):
fig = plt.figure()
for zone,sub in in zip(feed[0:12],(10/4+1)*sub):
(time, massflow) = lst.history([('g',zone,'Generation rate')])
ax1 = fig.add_subplot(sub)
ax1.plot(time, massflow, 'k-')
plt.ylabel('massflow kg/s')
plt.xlabel('time in seconds')
plt.title('GENER data')
plt.tight_layout()
plt.savefig('plot.pdf')
pdf_pages.savefig(fig)
pdf_pages.close()
到目前为止的结果是我获得了4个图,每个图上有3个线图,任何可能的方法来获得12个单独的图?
答案 0 :(得分:0)
你应该在每次迭代中生成新的数字。例如,在第一次迭代中fig1 = plt.figure()
和ax1 = fig1.add_subplot(sub)
。然后,在第二次迭代中fig2 = plt.figure()
和ax2 = fig2.add_subplot(sub)
,依此类推。通过这种方式,它将在每次迭代中绘制四个子图。您可以将每个数字保存为fig1.savefig(...)
,fig2.savefig(...)
...