Skip to main content
 首页 » 编程设计

python之.png 文件未正确保存 matplotlib

2025年05月04日15hnrainll

在以 300 dpi 保存 png 中的多网格图形时,我失去了质量

但是,将图形保存为 pdf 时不会发生此错误。

这是保存生成的图像的一小部分代码:

fig.savefig(filepath, format = 'pdf' 
             ,bbox_inches='tight',dpi=300) 
 
fig.savefig(filepath, format = 'png' 
             ,bbox_inches='tight',dpi=300) 

有没有一种方法可以在不必求助于 pdf 的情况下获得上述图像的良好分辨率 png?

请您参考如下方法:

.pdf 图像是矢量图形,因此保留了所有信息。换句话说,在创建 pdf 时设置 dpi=300 不会执行任何操作(除非您已使用 rasterized = True 将特定对象设置为光栅化)。

.png 图像是光栅图形(例如 check this out )。因此,您必须调整 dpi 以获得您想要的文件大小与质量的平衡。换句话说,图像保存正确,只是质量低于“完美”pdf。

图像输出格式的选择取决于您将如何使用它。如果您有想要完美缩放(缩放)的简单绘图,矢量图形(.pdf、.svg)非常有用。但是,如果您要绘制很多点(>10,000 左右),这可能会导致文件非常大。在这种情况下,最好栅格化图形,因为无论如何一个人都看不到那么多数据点。

“您应该使用哪种栅格格式?” .png 和.jpg 是最常见的。前者对具有大块相同颜色的图像具有更好的压缩,而后者对高像素可变性(例如照片)具有更好的压缩。 Check this out for more info.

请注意,虽然 .png 被认为是“无损”的,但它只是在保留光栅化信息的意义上如此。保存/转换为光栅化格式时,信息仍然会丢失。