.png文件未正确保存matplotlib

use*_*764 1 python pdf png matplotlib

在png中以300为dpi保存多个网格数字时,我的质量会下降

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

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

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

fig.savefig(filepath, format = 'png'
             ,bbox_inches='tight',dpi=300)
Run Code Online (Sandbox Code Playgroud)

有没有办法获得如上所述的图像的良好分辨率png而不必诉诸于使用pdf?

far*_*rth 6

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

.png图像是光栅图形(例如,检查出来).因此,您必须调整dpi以获得所需的文件大小与质量的平衡.换句话说,图像正确地保存,它只是比"完美"的质量PDF较低.

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

" 你应该使用哪种栅格格式?" .png并且.jpg是最常见的.前者对具有相同颜色的大块的图像具有更好的压缩,而后者对于高像素可变性(例如照片)具有更好的压缩. 查看此信息以获取更多信息.

请注意,虽然.png被认为是"无损",但它只是保留了栅格化信息.保存/转换为栅格化格式时,信息仍然丢失.