I'm trying to plot faceted survival curves with autoplot but the combination of covariates and facetting them duplicates levels within the factors
library(survival)
library(ggfortify)
fit <- survfit( Surv(time, status) ~ inst + sex,
data = lung )
autoplot(fit, facets = TRUE)
Error in `levels<-`(`*tmp*`, value = as.character(levels)) :
factor level [3] is duplicated
Has anyone successfully plotted faceted survival curves with autoplot? I tried survminer but the plot looks horrific with the covariates taking up most of the plot area.
I think you should look again at ggsurvplot
, since autoplot.survfit
doesn't seem to like having more than one independent factor variable (whether you facet or not).
The ggsurvplot
function returns a ggplot object, so you don't need to settle for the default options. You can add scales and styling as you see fit. To take your example, we could do:
library(survival)
library(ggfortify)
library(survminer)
fit <- survfit( Surv(time, status) ~ inst + sex,
data = lung )
p <- ggsurvplot(fit, facet.by = "inst", conf.int = TRUE) +
theme(strip.background = element_blank(),
axis.line.x = element_line())
p$facet <- facet_wrap(.~inst, ncol = 3, nrow = 6, scales = "free")
p