r语言 - 保存并加载 ggplot 图



我正在处理一个大型shinydashboard,并将我的建模代码保存在与主app.R不同的文件中。问题是我需要绘制我的数据。这要求我从一个文件中保存我的ggplots并将它们加载到我的主app.R文件中。如何保存我的 ggplot 并加载它们。

作为一个简单的例子,假设我有以下内容

#make plot
> p <- mtcars %>% 
ggplot(aes(x = mpg, y = cyl))+geom_point()
#save plot
> save(file=here::here("plots/a_plot.Rdata"),p)
#load plot
> p <- load(file=here::here("plots/trans_arima.Rdata"))
> p
[1] "p"

如何加载我的ggplot

您可以将绘图另存为 png 文件,然后将其加载回 youyr 文件 您有多种保存情节的选项。你可以使用 ggplot2s 的 ggsave(( 函数,或者您可以使用 cowplot 包中的 save_plot((。据说save_plot(( 在文件调整方面为您提供更大的灵活性,因此我的选择。 您可以同时探索两者。

请参阅 https://rdrr.io/cran/cowplot/man/save_plot.html 以了解有关save_plot的更多信息。

tmp = data.frame(first = c('a','b','c','d','e','f','g','h','i','j','k','l','m','n'), 
second = c(2,3,4,5,2,3,4,5,6,3,4,4,6, 7))
plot_tmp = ggplot(tmp, aes(first, second)) + geom_bar(stat = 'identity') 
dev.new()
if("png" %in% installed.packages()){
library(png)
}else{
install.packages("png")
library(png)
}

save_plot("~/plot_tmp.png", plot_tmp, base_height = NULL, base_aspect_ratio = 1.618, 
base_width = 6)

使用以下步骤将文件加载到您的闪亮使用,通过使用

#read plot
library(OpenImageR)
img<-OpenImageR::readImage("~/plot_tmp.png")
imageShow(img)

希望这有所帮助。要了解有关OpenImageR以及如何在Shiny中使用它的更多信息,请访问 https://cran.r-project.org/web/packages/OpenImageR/vignettes/The_OpenImageR_package.html

玩得愉快!!!

最新更新