【发布时间】:2021-12-11 16:06:19
【问题描述】:
我想使用一个函数让cowplot::plot_grid() 直接写入PNG。我可以通过脚本使它工作:
g <- ggplot2::ggplot(datasets::iris, ggplot2::aes(x = Sepal.Length, y= Sepal.Width)) + ggplot2::geom_point()
grDevices::png(filename = "mypic1.png", width = 1000, height = 1000, units = "px", bg = "transparent")
cowplot::plot_grid(g)
grDevices::dev.off()
但是,如果我在一个函数中尝试这个,它不起作用:
pxPrint <- function(ggobject, fn, x = 1000, y = 1000) {
grDevices::png(filename = fn, width = x, height = y, units = "px", bg = "transparent")
cowplot::plot_grid(ggobject)
grDevices::dev.off()
}
pxPrint(ggobject = g, fn = "mypic2.png")
这会产生与脚本相同的消息...
RStudioGD
2
...但没有创建文件 mypic2.png。
假设这可能与文件位置有关,我在默认 WD 中的 RStudio 项目之外尝试了相同的代码。同样,mypic1.png 是在标准目录中创建的,但不是 mypic2。但显示的消息不同(在两种情况下):
null device
1
我错过了什么?
【问题讨论】:
-
我想你只是想要
save_plot,比如cowplot::save_plot("mypic1.png", plot = plot_grid(g))? -
虽然这不是答案,但它是一个更好的解决方案,太棒了!