如何使用 lifelines 绘制多条 Kaplan-Meier 曲线

使用 lifelines 库,你可以轻松绘制 Kaplan-Meier 图,例如在我们之前的文章最小 Python Kaplan-Meier 图示例中所见:

kaplan_meier_example.py
from lifelines.datasets import load_leukemia
from lifelines import KaplanMeierFitter
df = load_leukemia()

kmf = KaplanMeierFitter()
kmf.fit(df['t'], df['Rx']) # t = 时间点, Rx: 0=删失, 1=事件
kmf.plot()

Kaplan-Meier survival curve for leukemia dataset

如果你想绘制多条生存曲线怎么办?

kmf.plot() 的调用返回一个 Matplotlib ax 对象,你可以在第二次 kmf2.plot() 调用中作为参数使用:kmf2.plot(ax=ax)

完整示例(注意我们还设置了固定的 Y 范围 [0.0, 1.0],参见如何使 lifelines Kaplan-Meier 图的 Y 轴从 0 开始):

kaplan_meier_multiple.py
from lifelines.datasets import load_leukemia, load_lymphoma
from lifelines import KaplanMeierFitter
# 加载数据集
df_leukemia = load_leukemia()
df_lymphoma = load_lymphoma()

# 拟合并绘制白血病数据集
kmf_leukemia = KaplanMeierFitter()
kmf_leukemia.fit(df_leukemia['t'], df_leukemia['Rx'], label="Leukemia")
ax = kmf_leukemia.plot()

# 拟合并绘制淋巴瘤数据集
kmf_lymphoma = KaplanMeierFitter()
kmf_lymphoma.fit(df_lymphoma['Time'], df_lymphoma['Censor'], label="Lymphoma")
ax = kmf_lymphoma.plot(ax=ax)

# 将 Y 轴设置为固定比例
ax.set_ylim([0.0, 1.0])

Multiple Kaplan-Meier survival curves for leukemia and lymphoma datasets


Check out similar posts by category: Python, Statistics