This function plots Cumulative Incidence Curves. For cuminc objects it's a ggplot2 version of plot.cuminc. For survfitms objects a different geometry is used, as suggested by @teigentler.

  gnames = NULL,
  gsep = " ",
  multiple_panels = TRUE,
  ggtheme = theme_survminer(),
  coef = 1.96, = FALSE,



an object of a class cmprsk::cuminc - created with cmprsk::cuminc function or survfitms created with survfit function.


a vector with group names. If not supplied then will be extracted from fit object (cuminc only).


a separator that extracts group names and event names from gnames object (cuminc only).


if TRUE then groups will be plotted in different panels (cuminc only).


function, ggplot2 theme name. Default value is theme_survminer. Allowed values include ggplot2 official themes: see theme.


see, scaling actor for the ribbon. The default value is 1.96.

if TRUE then additional layer (geom_ribbon) is added around the point estimate. The ribon is plotted with boundries +- coef*standard deviation.


further arguments passed to the function ggpar for customizing the plot.


Returns an object of class gg.


if (FALSE) { if(require("cmprsk")){ set.seed(2) ss <- rexp(100) gg <- factor(sample(1:3,100,replace=TRUE),1:3,c('BRCA','LUNG','OV')) cc <- factor(sample(0:2,100,replace=TRUE),0:2,c('no event', 'death', 'progression')) strt <- sample(1:2,100,replace=TRUE) # handles cuminc objects print(fit <- cmprsk::cuminc(ss,cc,gg,strt)) ggcompetingrisks(fit) ggcompetingrisks(fit, multiple_panels = FALSE) ggcompetingrisks(fit, = TRUE) ggcompetingrisks(fit, multiple_panels = FALSE, = TRUE) # handles survfitms objects library(survival) df <- data.frame(time = ss, group = gg, status = cc, strt) fit2 <- survfit(Surv(time, status, type="mstate") ~ 1, data=df) ggcompetingrisks(fit2) fit3 <- survfit(Surv(time, status, type="mstate") ~ group, data=df) ggcompetingrisks(fit3) } library(ggsci) library(cowplot) ggcompetingrisks(fit3) + theme_cowplot() + scale_fill_jco() }