Matplotlib savefig 图像修剪
以下示例代码将生成一个没有轴的基本线图并将其保存为 SVG 文件:
import matplotlib.pyplot as plt
plt.axis('off')
plt.plot([1,3,1,2,3])
plt.plot([3,1,1,2,1])
plt.savefig("out.svg", transparent = True)
如何设置图像的分辨率/尺寸?折线图之外的图像的所有边都有填充。如何删除填充以使线条出现在图像边缘?
The following sample code will produce a basic line plot with no axes and save it as an SVG file:
import matplotlib.pyplot as plt
plt.axis('off')
plt.plot([1,3,1,2,3])
plt.plot([3,1,1,2,1])
plt.savefig("out.svg", transparent = True)
How do I set the resolution / dimensions of the image? There is padding on all sides of the image beyond the line graph. How do I remove the padding so that the lines appear on the edge of the image?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我一直对 matplotlib 中有如此多的方法来做同样的事情感到惊讶。
因此,我确信有人可以使这段代码更加简洁。
无论如何,这应该清楚地展示如何解决您的问题。
savefig()
的文档。I am continually amazed at how many ways there are to do the same thing in matplotlib.
As such, I am sure that someone can make this code much more terse.
At any rate, this should clearly demonstrate how to go about solving your problem.
Documentation for
savefig()
.默认的轴对象为标题、刻度标签等留出了一些空间。制作自己的轴对象来填充整个区域:
在 svg 格式中,我看不到底部的线条,但在 png 格式中我可以,所以这可能是 svg 渲染器的一个功能。您可能只想添加一点填充以使所有内容都可见。
The default axis object leaves some room for titles, tick labels and the like. Make your own axis object that fills the whole area:
In svg format I can't see the line that's right at the bottom, but in png format I can, so it's probably a feature of the svg renderer. You might want to add just a little padding to keep everything visible.
减少大部分填充的一个非常简单的方法是在保存图形之前调用tight_layout()。
A very easy way to trim down most padding is to call
tight_layout()
before saving the figure.