File Exchange

image thumbnail


version by Giuseppe Cardillo
Plot the Kaplan-Meier estimation of the survival function


Updated 20 Apr 2018

View Version History

GitHub view license on GitHub

Plot the Kaplan-Meier estimation of the survival function
Survival times are data that measure follow-up time from a defined starting point to the occurrence of a given event, for example the time from the beginning to the end of a remission period or the time from the diagnosis of a disease to death. Standard statistical techniques cannot usually be applied because the underlying distribution is rarely Normal and the data are often "censored". A survival time is described as censored when there is a follow-up time but the event has not yet occurred or is not known to have occurred. For example, if remission time is being studied and the patient is still in remission at the end of the study, then that patient's remission time would be censored. If a patient for some reason drops out of a study before the end of the study period, then that patient's follow-up time would also be considered to be censored. The survival function S(t) is defined as the probability of surviving at least to time t. The graph of S(t) against t is called the survival curve. The Kaplan-Meier method can be used to estimate this curve from the observed survival times without the assumption of an underlying probability distribution.
Created by Giuseppe Cardillo

To cite this file, this would be an appropriate format:Curve Cardillo G. (2008). KMPLOT: Kaplan-Meier estimation of the survival function.

Cite As

Giuseppe Cardillo (2020). KMplot (, GitHub. Retrieved .

Comments and Ratings (10)

Erin Winkler

Looks great, thanks!

Giuseppe Cardillo

As I rote in the help section, the survivors will have 0 flag in the second column of the Nx2 input matrix

How do i deal with survivors in this program? people that haven't died (yet) during the follow ups.

Xiaoya Li

Elaine Fang


Sometimes this function fails to plot the survival curve reporting such error: "CAT arguments dimensions are not consistent." "Error in ==> kmplot at 240 str2=['Median time ' num2str(mt)]; %string for LEGEND function".

Giuseppe Cardillo

usually you dont exaclty know when a subject really is censored (in example: a patient died between to follow-up points or a patient that decided to not present himself to follow-up). So the best "graphical" choice is to divide the space between to points in to N+1 segments (where N is the censored data between T1 and T2) and to plot a cross for each segments.

Johannes Sarnthein

I noticed that the time of censoring is not plotted correctly. I could not fix it. Could you maybe help?

Johannes Sarnthein

serves the purpose - thanks a lot!

MATLAB Release Compatibility
Created with R2014b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Inspired: MatSurv

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!