Pārlūkot izejas kodu

R make rendering of plots by method plot_components optional (#551)

Dmitrij Melichov 7 gadi atpakaļ
vecāks
revīzija
e5967a541e
1 mainītis faili ar 12 papildinājumiem un 8 dzēšanām
  1. 12 8
      R/R/plot.R

+ 12 - 8
R/R/plot.R

@@ -85,6 +85,8 @@ plot.prophet <- function(x, fcst, uncertainty = TRUE, plot_cap = TRUE,
 #' @param yearly_start Integer specifying the start day of the yearly
 #'  seasonality plot. 0 (default) starts the year on Jan 1. 1 shifts by 1 day
 #'  to Jan 2, and so on.
+#' @param render_plot Boolean indicating if the plots should be rendered.
+#'  Set to FALSE if you want the function to only return the list of panels.
 #'
 #' @return Invisibly return a list containing the plotted ggplot objects
 #'
@@ -92,7 +94,7 @@ plot.prophet <- function(x, fcst, uncertainty = TRUE, plot_cap = TRUE,
 #' @importFrom dplyr "%>%"
 prophet_plot_components <- function(
   m, fcst, uncertainty = TRUE, plot_cap = TRUE, weekly_start = 0,
-  yearly_start = 0
+  yearly_start = 0, render_plot = TRUE
 ) {
   # Plot the trend
   panels <- list(
@@ -131,13 +133,15 @@ prophet_plot_components <- function(
     }
   }
 
-  # Make the plot.
-  grid::grid.newpage()
-  grid::pushViewport(grid::viewport(layout = grid::grid.layout(length(panels),
-                                                               1)))
-  for (i in seq_along(panels)) {
-    print(panels[[i]], vp = grid::viewport(layout.pos.row = i,
-                                           layout.pos.col = 1))
+  if (render_plot) {
+    # Make the plot.
+    grid::grid.newpage()
+    grid::pushViewport(grid::viewport(layout = grid::grid.layout(length(panels),
+                                                                 1)))
+    for (i in seq_along(panels)) {
+      print(panels[[i]], vp = grid::viewport(layout.pos.row = i,
+                                             layout.pos.col = 1))
+    }
   }
   return(invisible(panels))
 }