如何用ggsave保存900dpi的ggplot图像并限制不超40百万像素
解决ggplot保存900dpi且不超40MP的问题
首先明确像素总量的计算逻辑:总像素 = 宽度(英寸) × DPI × 高度(英寸) × DPI。已知你要900dpi、总像素≤4000万,先算出允许的最大宽高乘积:max_area <- 40e6 / (900^2)
算出来大概是49.38平方英寸。
接下来根据你的图像宽高比来计算具体的宽高参数:
- 如果用ggplot默认的黄金比例(1.618),可以这么算:
aspect_ratio <- 1.618 # ggplot默认宽高比 max_area <- 40e6 / (900^2) width <- sqrt(max_area * aspect_ratio) height <- sqrt(max_area / aspect_ratio)
- 要是你需要固定比例(比如16:9),就把
aspect_ratio改成16/9就行;正方形的话设为1。
最后用计算好的宽高参数调用ggsave:
ggsave(p, filename = 'fig.tiff', dpi = 900, compression = "lzw", width = width, height = height)
这样就能保证总像素刚好卡在4000万以内,同时满足900dpi的要求,不用依赖limitsize的英寸限制。
内容的提问来源于stack exchange,提问作者MMJJ
相关产品推荐
相关产品推荐

