这将在 GUI 中显示该图:
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [1, 4, 9])
plt.show()
但是我该如何将图形保存到文件中(例如 foo.png)?
原文由 Homunculus Reticulli 发布,翻译遵循 CC BY-SA 4.0 许可协议
这将在 GUI 中显示该图:
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [1, 4, 9])
plt.show()
但是我该如何将图形保存到文件中(例如 foo.png)?
原文由 Homunculus Reticulli 发布,翻译遵循 CC BY-SA 4.0 许可协议
正如其他人所说, plt.savefig()
或 fig1.savefig()
确实是保存图像的方法。
但是我发现在某些情况下 总是显示数字。 (例如,Spyder 有 plt.ion()
:交互模式 = On。)我通过强制图形窗口关闭来解决这个问题:
plt.close(figure_object)
(参见 文档)。这样我在一个大循环中就没有一百万个开放数字。用法示例:
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 window
如果需要,您应该可以稍后重新打开该图 fig.show()
(我自己没有测试)。
原文由 Demis 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
使用
matplotlib.pyplot.savefig
时,可以通过扩展名指定文件格式:这分别给出了光栅化或矢量化输出。此外,有时图像周围会出现不需要的空白,可以使用以下方法将其删除:
请注意,如果显示绘图,则
plt.show()
应遵循plt.savefig()
;否则,文件图像将为空白。