如何用ggsave和here将grid.arrange组合的ggplot图保存到指定文件夹
解决ggsave结合here保存grid.arrange组合图的路径错误问题
错误原因
你碰到的报错核心是参数传参顺序/方式错误:ggsave的第一个默认参数是filename(需要字符串路径),如果误将CombPlot(gtable/grob类型的组合图对象)放在第一个参数位,同时把here生成的路径放在后面,就会把图对象传给filename参数,触发类型不匹配错误。而默认保存到Script文件夹时,你应该是正确把文件名字符串放在了第一个位置,所以能正常执行。
解决方案
方法1:明确指定参数名(推荐,避免顺序混淆)
直接给filename和plot参数赋值,彻底避免参数顺序问题:
library(ggplot2) library(gridExtra) library(here) # 假设已生成CombPlot组合图 ggsave( filename = here("Output_Files", "combined_plot.png"), plot = CombPlot, width = 12, # 可选:自定义图片宽度 height = 8, # 可选:自定义图片高度 dpi = 300 # 可选:设置分辨率 )
方法2:调整参数顺序
严格遵循ggsave(filename, plot)的参数顺序,把here生成的路径字符串放在首位:
ggsave(here("Output_Files", "combined_plot.png"), CombPlot)
额外注意事项
- 确保项目根目录下的
Output_Files文件夹存在,如果不存在,可提前执行以下代码创建:
dir.create(here("Output_Files"), recursive = TRUE)
- grid.arrange生成的gtable/grob对象完全兼容ggsave,只要参数传对就可以正常保存
内容的提问来源于stack exchange,提问作者LZ24AP
相关产品推荐
相关产品推荐

