将绘图保存为图像文件,而不是使用Matplotlib显示它
我正在写一个快速而肮脏的脚本来动态生成剧情。 我使用下面的代码(来自Matplotlib文档)作为起点:
from pylab import figure, axes, pie, title, show
# Make a square figure and axes
figure(1, figsize=(6, 6))
ax = axes([0.1, 0.1, 0.8, 0.8])
labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
fracs = [15, 30, 45, 10]
explode = (0, 0.05, 0, 0)
pie(fracs, explode=explode, labels=labels, autopct='%1.1f%%', shadow=True)
title('Raining Hogs and Dogs', bbox={'facecolor': '0.8', 'pad': 5})
show() # Actually, don't show, just save to foo.png
我不想在GUI上显示绘图,而是想将绘图保存到一个文件(比如说foo.png),例如,它可以在批处理脚本中使用。 我怎么做?
虽然问题已得到解答,但我想在使用savefig时添加一些有用的提示。 文件格式可以由扩展名指定:
savefig('foo.png')
savefig('foo.pdf')
将分别给出光栅化或矢量化输出,这两个都可能有用。 另外,你会发现pylab
在图像周围留下了一个慷慨的,通常不受欢迎的空白空间。 删除它:
savefig('foo.png', bbox_inches='tight')
解决方案是:
pylab.savefig('foo.png')
正如其他人所说, plt.savefig()
或fig1.savefig()
确实是保存图像的方式。
但是我发现在某些情况下(例如Spyder有plt.ion()
:interactive mode = On),总是显示数字。 我通过强制关闭巨型循环中的数字窗口来解决这个问题,所以在循环中我没有一百万个开放数字:
import matplotlib.pyplot as plt
fig, ax = plt.subplots( nrows=1, ncols=1 ) # create figure & 1 axis
ax.plot([0,1,2], [10,20,3])
fig.savefig('path/to/save/image/to.png') # save the figure to file
plt.close(fig) # close the figure
链接地址: http://www.djcxy.com/p/67593.html
上一篇: Save plot to image file instead of displaying it using Matplotlib
下一篇: When to use cla(), clf() or close() for clearing a plot in matplotlib?