如何复制保存到列表中磁盘的ggplot?

时间:2010-10-09 19:14:49

标签: r ggplot2

我使用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"

如此重建这些情节,我该如何解决这个问题呢?

2 个答案:

答案 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(),它可能会对问题有所了解。