我有一系列ggplot对象,我试图保存到.rdata文件以便稍后加载到Markdown文档中。 ggplot对象本身很小(几KB)。但是,当我尝试将对象保存为.rdata文件以供以后检索时,生成的.rdata文件现在超过8千兆字节。我已经尝试直接从GUI保存绘图,保存为.rds ...保存为.pdf或其他图像会产生几KB的正常图像。
我很难过,还有其他人遇到过这个问题吗?
下面的示例工作流程,我无法提供可重现的问题代码,因为我无法上传制作此图所需的数据帧
mcmsy<- (ggplot(data = subset(MonteCarlo, Policy == 'RBFM' &
Year == BaselineYear), aes(MSY), alpha = 0.8) + geom_density(fill = 'steelblue2'))
object.size(mcmsy)
save(mcmsy, file = 'mcmsy_plot.rdata')
答案 0 :(得分:1)
我偶然发现了这个问题。这确实与环境有关。如果要将绘图保存为Rdata
文件,则应在生成绘图的函数内创建新环境,以便不保存完整的环境。例如:
makePlot <- function(plot.data){
env <- new.env(parent = globalenv())
env$subset <- subset
my.plot <- with(env, {
my.plot <- ggplot(plot.data, ...)
return(my.plot)
})
return(my.plot)
}