保存并加载ggplot图

时间:2018-06-19 22:44:49

标签: r ggplot2

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

举一个简单的例子,我有以下内容

#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

1 个答案:

答案 0 :(得分:0)

您可以将图另存为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的更多信息以及如何在光泽中使用它的信息,请转到https://cran.r-project.org/web/packages/OpenImageR/vignettes/The_OpenImageR_package.html

玩得开心!