如何使用ggsave导出与RStudio Plots面板手动导出规格一致的ggplot图表
解决方案
问题根因
- 单位不匹配:RStudio手动导出PDF的尺寸默认单位为厘米,但
ggsave的width、height参数默认单位为英寸,直接填入手动导出的数值会导致实际尺寸偏差2.54倍,布局自然和预期不符 - 翻转问题:R内置默认PDF导出设备存在坐标逻辑差异,部分场景下会出现图表翻转、字体错乱的问题
修复代码
方法1:直接匹配手动导出参数
在原代码基础上补全单位、设备、dpi参数即可得到和手动导出完全一致的结果:
ggsave("plot.pdf", g, width = 10.26, height = 10.09, units = "cm", device = cairo_pdf, dpi = 300)
方法2:完全匹配当前Plots面板显示效果
如果你要完全复刻RStudio Plots面板当前显示的尺寸和布局,可以直接读取当前绘图设备的尺寸传入ggsave:
# 读取当前绘图设备尺寸(单位:英寸) dev_dim <- dev.size() ggsave("plot.pdf", g, width = dev_dim[1], height = dev_dim[2], device = cairo_pdf, dpi = 300)
内容的提问来源于stack exchange,提问作者bird
相关产品推荐
相关产品推荐

