The survminer R package provides functions for facilitating survival analysis and visualization.

The main functions, in the package, are organized in different categories as follow.

Survival Curves

  • ggsurvplot(): Draws survival curves with the ‘number at risk’ table and ‘censoring count plot’.
  • arrange_ggsurvplots(): Arranges multiple ggsurvplots on the same page.
  • ggsurvevents(): Plots the distribution of event’s times.
  • surv_summary(): Summary of a survival curve. Compared to the default summary() function, surv_summary() creates a data frame containing a nice summary from survfit results.
  • surv_cutpoint(): Determines the optimal cutpoint for one or multiple continuous variables at once. Provides a value of a cutpoint that correspond to the most significant relation with survival.
  • pairwise_survdiff(): Multiple comparisons of survival curves. Calculate pairwise comparisons between group levels with corrections for multiple testing.

Diagnostics of Cox Model

  • ggcoxzph(): Graphical test of proportional hazards. Displays a graph of the scaled Schoenfeld residuals, along with a smooth curve using ggplot2. Wrapper around plot.cox.zph().
  • ggcoxdiagnostics(): Displays diagnostics graphs presenting goodness of Cox Proportional Hazards Model fit.
  • ggcoxfunctional(): Displays graphs of continuous explanatory variable against martingale residuals of null cox proportional hazards model. It helps to properly choose the functional form of continuous variable in cox model.

Summary of Cox Model

  • ggforest(): Draws forest plot for CoxPH model.
  • ggcoxadjustedcurves(): Plots adjusted survival curves for coxph model.

Competing Risks

  • ggcompetingrisks(): Plots cumulative incidence curves for competing risks.

Find out more at, and check out the documentation and usage examples of each of the functions in survminer package.

Installation and loading

Install from CRAN as follow:

Or, install the latest version from GitHub:

Load survminer:

ggsurvplot: Drawing survival curves

Fitting survival curves

Basic plots

Customized survival curves

Note that, additional arguments are available to customize the main title, axis labels, the font style, axis limits, legends and the number at risk table.

More customized survival curves

Focus on xlim and parameters which do not change the calculations of estimates of survival surves. Also note risk.table.y.text.col = TRUE and risk.table.y.text = FALSE that provide bars instead of names in text annotations of the legend of risk table.

Uber customized survival curves

Uber platinum customized survival curves

Uber platinum premium customized survival curves

Blog posts

소스: Drawing Survival Curves using ‘ggplot2’ • survminer