我使用ggplot创建了数百个图并将它们全部保存到列表中。我使用以下命令将列表保存到磁盘:
save(list_of_plots,file="list_of_plots.rdata")
现在我想显示这些图并使用ggsave保存一些。但是,调用列表项只会显示该图的组成部分。
> names(plots00_t2[[1]])
[1] "data" "layers" "scales" "mapping" "options"
[6] "coordinates" "facet" "plot_env"
更新:当我重新打开这些文件时,我的愚蠢错误是没有加载ggplot2。但是,在尝试显示这些图时,我得到:
Error in get("make_aesthetics", env = x, inherits = TRUE)(x, ...) :
could not find function "calc_aesthetics"
如此重建这些情节,我该如何解决这个问题呢?
答案 0 :(得分:2)
使用内部函数calc_aesthetics的最后一个版本是ggplot2版本0.8.2。如果可能,请检查哪个版本的ggplot2用于创建绘图并加载该绘图。否则,请尝试使用0.8.2或更早版本。
从http://cran.r-project.org/src/contrib/Archive/ggplot2/下载文件并将其保存在计算机上的某个位置(我在这里使用G:/ Temp)。然后使用此代码安装并调用特定版本:
install.packages(
"G:Temp/ggplot2_0.8.2.tar.gz",
lib="G:/Templibs",
repos=NULL,
type="source")
library(ggplot2,lib.loc="G:/Templibs")
在此之后,您应该能够打印图表。另请参阅this question以及?library
和?install.packages
答案 1 :(得分:1)
可能会发生ggplot2的代码同时被更改,并且“calc_aesthetics”不再可用。在这种情况下,您应该安装旧版本的ggplot2,以恢复您的工作。
虽然,上述情况不太可能发生。这个问题似乎源于你的地块的某些部分没有得到妥善保存的事实。
你应该生成traceback(),它可能会对问题有所了解。