The code below won't reprex properly. It extracts the ggplot object for separate plotting, which can be patchworked in the normal way. The tables have to be plotted separately or could, I suppose, be rendered as an annotation only plot separately and patchworked.
library(survminer)
library(patchwork)
# from documentation
# Fit survival curves
#++++++++++++++++++++++++++++++++++++
require("survival")
fit<- survfit(Surv(time, status) ~ sex, data = lung)
# Basic survival curves
# NOTE risk.table = FALSE
#++++++++++++++++++++++++++++++++++++
ggsurv <- ggsurvplot(fit, data = lung, risk.table = FALSE,
main = "Survival curves",
submain = "Based on Kaplan-Meier estimates",
caption = "created with survminer"
)
# duplicate for multiple plotting
ggsurv2 <- ggsurvplot(fit, data = lung, risk.table = FALSE,
main = "Survival curves",
submain = "Based on Kaplan-Meier estimates",
caption = "created with survminer"
)
# Extract ggplot objects
a <- ggsurv$plot
b <- ggsurv2$plot
# Extract tables
atab <- ggsurv$data.survtable
btab <- ggsurv$data.survtable
# plot graphs
a / b
# display table separately
pander::pander(atab)