使用ggsave保存ggplot2图像出现渐变,如何匹配tiff函数输出?
解决ggsave保存ggplot2图像与tiff函数效果不一致的问题
我尝试通过两种方法保存ggplot2绘制的图像:
方法一(使用基础tiff设备):
tiff('path/plot.tiff', units="in", width=8, height=5, res=300) # 此处需插入你的ggplot绘图代码 dev.off()
方法二(使用ggsave):
ggsave('test.tiff', device = 'tiff', units = 'in', width=8, height=5)
但ggsave保存的图像出现了渐变失真效果,希望让ggsave的输出与tiff方法的结果一致。
两种保存效果对比
- ggsave保存效果:

- tiff函数保存效果:

解决方案
问题根源在于ggsave调用tiff设备时的默认参数与基础tiff()函数不一致:基础tiff()默认使用compression="none"无压缩设置,而ggsave的默认tiff设备可能启用了压缩,导致出现渐变伪影。
只需在ggsave中显式指定compression="none",并匹配方法一的分辨率参数,即可让输出一致:
ggsave('test.tiff', device = 'tiff', units = 'in', width=8, height=5, compression = "none", res = 300)
如果需要完全复刻基础tiff函数的所有参数设置,也可以直接传入自定义设备函数:
ggsave('test.tiff', device = function(filename) grDevices::tiff( filename, units="in", width=8, height=5, res=300, compression="none" ), width=8, height=5, units="in")
内容的提问来源于stack exchange,提问作者Krzyztopher
相关产品推荐
相关产品推荐

