如何返回ggplot2基础对象组合

时间:2015-07-31 08:57:41

标签: r object ggplot2

我保存了我的工作空间,其中有ggplot2图的基础对象 示例

basep <- ggplot(data=dat, aes(x=Week, y=corr, color=Stream))

如果我关闭并打开R并加载工作区,则basep位于环境中。

有没有办法返回basep的组成(即:ggplot(data=dat, aes(x=Week, y=corr, color=Stream))),以便我可以将其用于其他图表?

我知道最好的方法是将其保存在脚本文件中,但我想知道是否可以返回此文件,以防我从其他人那里获得工作区文件。

1 个答案:

答案 0 :(得分:3)

您可以将basep用于不同类型的地块。几个例子:

basep + geom_point()

或:

basep + geom_bar()

或:

basep + geom_boxplot()

如果您想知道basep背后的代码是什么,可以使用str()查看basep中存储的内容。一个例子:

# create example dataframe
dat <- data.frame(Week=c(1,1,2,2,3,3), corr=c(0.5,0.6,0.1,0.4,0.9,0.7), Stream=rep(c("a","b"),3))
# create basep
basep <- ggplot(data=dat, aes(x=Week, y=corr, color=Stream))

你得到str(basep)

> str(basep)
List of 9
 $ data       :'data.frame':    6 obs. of  3 variables:
  ..$ Week  : num [1:6] 1 1 2 2 3 3
  ..$ corr  : num [1:6] 0.5 0.6 0.1 0.4 0.9 0.7
  ..$ Stream: Factor w/ 2 levels "a","b": 1 2 1 2 1 2
 $ layers     : list()
 $ scales     :Reference class 'Scales' [package "ggplot2"] with 1 field
  ..$ scales: NULL
  ..and 21 methods, of which 9 are  possibly relevant:
  ..  add, clone, find, get_scales, has_scale, initialize, input, n, non_position_scales
 $ mapping    :List of 3
  ..$ x     : symbol Week
  ..$ y     : symbol corr
  ..$ colour: symbol Stream
 $ theme      : list()
 $ coordinates:List of 1
  ..$ limits:List of 2
  .. ..$ x: NULL
  .. ..$ y: NULL
  ..- attr(*, "class")= chr [1:2] "cartesian" "coord"
 $ facet      :List of 1
  ..$ shrink: logi TRUE
  ..- attr(*, "class")= chr [1:2] "null" "facet"
 $ plot_env   :<environment: R_GlobalEnv> 
 $ labels     :List of 3
  ..$ x     : chr "Week"
  ..$ y     : chr "corr"
  ..$ colour: chr "Stream"
 - attr(*, "class")= chr [1:2] "gg" "ggplot"

现在,如果想知道aes是什么:

> basep$mapping
List of 3
 $ x     : symbol Week
 $ y     : symbol corr
 $ colour: symbol Stream