saving_ggplot <- function(name = 'default', plotname = last_plot()) {
image_name = paste(name, ".png", sep="")
ggsave(image_name, plot = plotname,
scale = 1,
dpi = 300, limitsize = TRUE)
}
这是我保存ggplot的函数。但是,我一生都无法弄清楚如何将name参数作为字符串使用。
例如,如果有人符文 saving_ggplot(FILENAME, PLOTNAME)
它只会说没有对象FILENAME。在python中,我只能捕获它并将其用作str()
,但在R中使用as.character
或toString
仍然无法正常工作。
错误:
saving_ggplot(weightvsageTEST, weightvsageplot) Error in paste(name, ".png", sep = "") : object 'weightvsageTEST' not found
使用ggsave成功调用:
ggsave('weightvsage.png', plot = last_plot(),
scale = 1,
dpi = 300, limitsize = TRUE)
您可以使用substitute()
:
saving_ggplot <- function(name, plotname) {
image_name = paste0(substitute(name), ".png") # paste0 removes need for sep arg
ggsave(image_name, plot = plotname,
scale = 1,
dpi = 300, limitsize = TRUE)
}
saving_ggplot(foo, p) # saves foo.png
或者,如果要保留在tidyverse
准引用语法内,请enexpr()
改用:
enexpr(name) # instead of substitute(name)
数据:
N <- 100
df <- data.frame(x=rnorm(n=N), y=rnorm(n=N))
p <- ggplot(df, aes(x,y)) + geom_smooth()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句