How plot multiple Kaplan-Meier curves using lifelines
Using the lifelines library, you can easily plot Kaplan-Meier plots, e.g. as seen in our previous post Minimal Python Kaplan-Meier Plot example:
from lifelines.datasets import load_leukemia
from lifelines import KaplanMeierFitter
df = load_leukemia()
kmf = KaplanMeierFitter()
kmf.fit(df['t'], df['Rx']) # t = Timepoints, Rx: 0=censored, 1=event
kmf.plot()
What if you want to plot multiple survival curves?
The call to kmf.plot()
returns a Matplotlib ax
object which you can use on a second kmf2.plot()
call als argument: kmf2.plot(ax=ax)
.
Full example (note that we also set a fixed Y range of [0.0, 1.0]
, see How to make Y axis start from 0 in lifelines Kaplan-Meier plots):
from lifelines.datasets import load_leukemia, load_lymphoma
from lifelines import KaplanMeierFitter
# Load datasets
df_leukemia = load_leukemia()
df_lymphoma = load_lymphoma()
# Fit & plot leukemia dataset
kmf_leukemia = KaplanMeierFitter()
kmf_leukemia.fit(df_leukemia['t'], df_leukemia['Rx'], label="Leukemia")
ax = kmf_leukemia.plot()
# Fit & plot lymphoma dataset
kmf_lymphoma = KaplanMeierFitter()
kmf_lymphoma.fit(df_lymphoma['Time'], df_lymphoma['Censor'], label="Lymphoma")
ax = kmf_lymphoma.plot(ax=ax)
# Set Y axis to fixed scale
ax.set_ylim([0.0, 1.0])