从源函数返回ggplot2数字

时间:2017-12-29 14:28:13

标签: r ggplot2

在采购函数时,我正在努力克服R的打印行为。 我想写一个生成ggplot的函数并按顺序返回该图 以后保存。

所以看起来应该是这样的

file: func.R

make_plot <- function(data){
p <- ggplot(...)
print(p)
return(p)
}


source('func.R')
p <- make_plot(data)
ggsave('somewhere.png', plot=p)

我的问题是生成的图是空的,并且调用print(p) 函数外部也会生成一个空图。

如果我以交互方式运行函数内部的代码,一切都很好。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

感谢您的快速回复。我很抱歉,但错误全是我的,真正的代码看起来像

  file: func.R
  make_plot <- function(data){
    p <- ggplot(...)
    p + geom_vline ...
    print(p)
    return(p)
  }

  source('func.R')
  p <- make_plot(data)
  ggsave('somewhere.png', plot=p)

所以重新调整的图形对象真的是空的。 显然应该是

 p <- ggplot(...)
 p <- p + geom_vline ...
非常感谢你!