在采购函数时,我正在努力克服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) 函数外部也会生成一个空图。
如果我以交互方式运行函数内部的代码,一切都很好。
有什么想法吗?
答案 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 ...
非常感谢你!