如何使用 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()如果你想绘制多条生存曲线怎么办?
对 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])Check out similar posts by category:
Python, Statistics
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow