From 84445900be79ec8ae24d7c9ab29454a6a1bf1494 Mon Sep 17 00:00:00 2001 From: Teun van den Brand Date: Thu, 20 Mar 2025 16:16:00 +0100 Subject: [PATCH] add `as.gtable` methods --- DESCRIPTION | 2 +- NAMESPACE | 2 ++ R/plot-build.R | 6 ++++++ 3 files changed, 9 insertions(+), 1 deletion(-) 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()