Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中在单个文件上保存两个绘图?_Python_Image_Matplotlib_Plot_Save - Fatal编程技术网

如何在python中在单个文件上保存两个绘图?

如何在python中在单个文件上保存两个绘图?,python,image,matplotlib,plot,save,Python,Image,Matplotlib,Plot,Save,我已经生成了两个不同的图。但我需要将它们都保存到一个“.png”文件中。我希望避免使用子图,因为当我这样做时,它似乎会改变我的图的大小和形状,我需要保持原样。以下是我的代码当前的外观: fig = plt.figure(1) plt.clf() plot1(*args) plt.savefig('plot1.png') plot2(*args) plt.savefig('plot2.png') 如果您能提供任何帮助,我们将不胜感激 否,查看plt.sub

我已经生成了两个不同的图。但我需要将它们都保存到一个“.png”文件中。我希望避免使用子图,因为当我这样做时,它似乎会改变我的图的大小和形状,我需要保持原样。以下是我的代码当前的外观:

fig = plt.figure(1)
    plt.clf()
    plot1(*args)
    plt.savefig('plot1.png')
    plot2(*args)
    plt.savefig('plot2.png')

如果您能提供任何帮助,我们将不胜感激

否,查看
plt.subplot()
。您可以在一个图形中绘制两个绘图,并将其保存到一个文件中。

更改图形的大小并使用
子绘图()

默认尺寸为(8英寸6英寸)

你能把它做成(16英寸,6英寸)并排放在一起吗

fig = plt.figure(figsize=(16,6))
ax0 = fig.add_subplot(121)
ax0.plot(*args0)
ax1 = fig.add_subplot(122)
ax1.plot(*args1)
plt.tight_layout()
plt.savefig('plots.png')

也可以将多个图形保存到一个文件中,而无需使用子图(如果您正在查找的话)。这可以使用
matplotlib
PdfPages
后端来完成。这里创建了一个文件,可以在其中多次调用
savefig
来保存图像

import numpy
import matplitlib.pylab as plt
from matplotlib.backends.backend_pdf import PdfPages

x = numpy.linspace(0, 100, 101)
y = numpy.cos(x)
z = numpy.sin(x)

cos_plot = plt.figure(1)
plt.plot(x, y)

sin_plot = plt.figure(2)
plt.plot(x, z)

pp = PdfPages("Cosine and sine plots.pdf")
pp.savefig(cos_plot, dpi = 300, transparent = True)
pp.savefig(sin_plot, dpi = 300, transparent = True)
pp.close()
请注意,
dpi
transparent
选项是可选的


希望这有帮助

只是当我这样做的时候,它迫使它们具有相同的高度,进入一个网格状的配置。有什么办法可以解决吗?第2行输入错误:它应该是matplotlib,而不是
matplitlib
。否则,它工作得很好。