.png文件未正确保存matplotlib

时间:2014-10-13 20:28:56

标签: python pdf matplotlib png

在png中以300作为dpi保存多个网格数字时,我会失去质量

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

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

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

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

有没有办法在不必使用pdf的情况下获得上述图像的良好分辨率png?

1 个答案:

答案 0 :(得分:5)

.pdf图像是矢量图形,因此保留所有信息。换句话说,在pdf创建中设置dpi=300并不做任何事情(除非您使用rasterized = True设置了特定对象以进行栅格化。)

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

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

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

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