在python中(对于在GUI中创建的一个图形),我能够通过使用以下方式将图形保存在.jpg和.pdf下:
plt.savefig(filename1 + '.pdf')
或
plt.savefig(filename1 + '.jpg')
使用一个文件我想在.pdf或.jpg中保存多个数字(就像在数学实验室中完成的那样)。有人可以帮忙吗?
答案 0 :(得分:43)
使用PdfPages
解决您的问题。将figure
对象传递给savefig
方法。
例如,如果您打开了一堆figure
个对象,并且想要将它们保存为多页PDF,则可以执行以下操作:
import matplotlib.backends.backend_pdf
pdf = matplotlib.backends.backend_pdf.PdfPages("output.pdf")
for fig in xrange(1, figure().number): ## will open an empty extra figure :(
pdf.savefig( fig )
pdf.close()
答案 1 :(得分:15)
您的意思是将多个数字保存到一个文件中,还是使用一个脚本保存多个数字?
以下是使用一个脚本保存两个不同数字的方法。
>>> from matplotlib import pyplot as plt
>>> fig1 = plt.figure()
>>> plt.plot(range(10))
[<matplotlib.lines.Line2D object at 0x10261bd90>]
>>> fig2 = plt.figure()
>>> plt.plot(range(10,20))
[<matplotlib.lines.Line2D object at 0x10263b890>]
>>> fig1.savefig('fig1.png')
>>> fig2.savefig('fig2.png')
...将这两个图表生成到他们自己的“.png”文件中:
要将它们保存到同一文件,请使用子图:
>>> from matplotlib import pyplot as plt
>>> fig = plt.figure()
>>> axis1 = fig.add_subplot(211)
>>> axis1.plot(range(10))
>>> axis2 = fig.add_subplot(212)
>>> axis2.plot(range(10,20))
>>> fig.savefig('multipleplots.png')
上面的脚本生成了这个单独的“.png”文件:
答案 2 :(得分:0)
我也遇到了同样的问题。我试图将 2,000 个散点图放入单个 .pdf 中。我能够开始该程序,但它在几百后中止。 即使我在一个 .pdf 中创建了六个散点图,对于六个 .jpg 的 .pdf 文件,每个 30kb 的 .pdf 文件也是巨大的(比如 7mb)。当我打开 .pdf 时,似乎 .pdf 正在绘制图表上的每个点(每个图表都有数千个点),而不是显示图像。总有一天,我会找出正确的选项,但这里有一个快速而肮脏的解决方法。我将散点图打印到本地目录中的单个 .jpg 文件中。