diff --git a/DESCRIPTION b/DESCRIPTION index 753e7dd49a..ee17449b7b 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -35,7 +35,7 @@ Imports: cli, grDevices, grid, - gtable (>= 0.1.1), + gtable (>= 0.3.6), isoband, lifecycle (> 1.0.1), rlang (>= 1.1.0), diff --git a/NAMESPACE b/NAMESPACE index b58765ecc1..627100df79 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -13,6 +13,8 @@ S3method("[[",ggproto) S3method("[[<-",uneval) S3method(.DollarNames,ggproto) S3method(as.data.frame,mapped_discrete) +S3method(as.gtable,ggplot) +S3method(as.gtable,ggplot_built) S3method(as.list,ggproto) S3method(autolayer,default) S3method(autoplot,default) diff --git a/R/plot-build.R b/R/plot-build.R index f855dddd78..03ac9a5f25 100644 --- a/R/plot-build.R +++ b/R/plot-build.R @@ -312,6 +312,12 @@ ggplotGrob <- function(x) { ggplot_gtable(ggplot_build(x)) } +#' @export +as.gtable.ggplot <- function(x, ...) ggplotGrob(x) + +#' @export +as.gtable.ggplot_built <- function(x, ...) ggplot_gtable(x) + # Apply function to layer and matching data by_layer <- function(f, layers, data, step = NULL) { ordinal <- label_ordinal()