这将在GUI中显示图形:
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [1, 4, 9])
plt.show()
但我如何将图形保存到文件(例如foo.png)中?
这将在GUI中显示图形:
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [1, 4, 9])
plt.show()
但我如何将图形保存到文件(例如foo.png)中?
当前回答
import matplotlib.pyplot as plt
plt.savefig("image.png")
在Jupyter Notebook中,您必须在一个单元格中删除plt.show()并添加plt.savefig()以及其他plt代码。图像仍将显示在笔记本中。
其他回答
您可以使用任何扩展名(png、jpg等)和所需的分辨率保存图像。这里有一个功能来保存您的身材。
import os
def save_fig(fig_id, tight_layout=True, fig_extension="png", resolution=300):
path = os.path.join(IMAGES_PATH, fig_id + "." + fig_extension)
print("Saving figure", fig_id)
if tight_layout:
plt.tight_layout()
plt.savefig(path, format=fig_extension, dpi=resolution)
“fig_id”是您希望保存数字的名称。希望它有帮助:)
如果像我一样使用Spyder IDE,则必须禁用交互模式:
plt.ioff()
(此命令在科学启动时自动启动)
如果要再次启用,请使用:
plt.ion()
没有什么对我有用。问题是保存的图像很小,我找不到它是怎么变大的。
这似乎使它更大,但仍然不是全屏。
https://matplotlib.org/stable/api/figure_api.html#matplotlib.figure.Figure.set_size_inches
图set_size_inches((宽,高))
希望这对某人有所帮助。
import datetime
import numpy as np
from matplotlib.backends.backend_pdf import PdfPages
import matplotlib.pyplot as plt
# Create the PdfPages object to which we will save the pages:
# The with statement makes sure that the PdfPages object is closed properly at
# the end of the block, even if an Exception occurs.
with PdfPages('multipage_pdf.pdf') as pdf:
plt.figure(figsize=(3, 3))
plt.plot(range(7), [3, 1, 4, 1, 5, 9, 2], 'r-o')
plt.title('Page One')
pdf.savefig() # saves the current figure into a pdf page
plt.close()
plt.rc('text', usetex=True)
plt.figure(figsize=(8, 6))
x = np.arange(0, 5, 0.1)
plt.plot(x, np.sin(x), 'b-')
plt.title('Page Two')
pdf.savefig()
plt.close()
plt.rc('text', usetex=False)
fig = plt.figure(figsize=(4, 5))
plt.plot(x, x*x, 'ko')
plt.title('Page Three')
pdf.savefig(fig) # or you can pass a Figure object to pdf.savefig
plt.close()
# We can also set the file's metadata via the PdfPages object:
d = pdf.infodict()
d['Title'] = 'Multipage PDF Example'
d['Author'] = u'Jouni K. Sepp\xe4nen'
d['Subject'] = 'How to create a multipage pdf file and set its metadata'
d['Keywords'] = 'PdfPages multipage keywords author title subject'
d['CreationDate'] = datetime.datetime(2009, 11, 13)
d['ModDate'] = datetime.datetime.today()
由于服务器上没有gui,因此使用“agg”。使用gui和VSC在ubuntu 21.10上进行调试。在调试中,尝试显示绘图,然后保存到web UI的文件。
发现显示前需要保存,否则保存的绘图为空。我想这场演出会因为某种原因使剧情明朗化。执行以下操作:
plt.savefig(imagePath)
plt.show()
plt.close(fig)
而不是:
plt.show()
plt.savefig(imagePath)
plt.close(fig)