You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中kaplanmeier包Kaplan-Meier曲线绘图不显示问题求助

kaplanmeier包绘图异常:仅带methodtype='custom'的调用能显示图形,单独调用km.plot无输出

问题描述

我在用kaplanmeier包绘制Kaplan-Meier曲线时遇到了异常:

  • 运行官方示例代码时,只有保留最后一行带methodtype='custom'参数的km.plot调用,4幅图才会全部显示;注释掉该行则完全看不到任何图形。
  • 在我自己的代码中,单独调用km.plot(results)无法显示绘图,但添加km.plot(results, methodtype='custom')后,会同时显示我的目标图和这个自定义参数的图。

查看源码发现,传入methodtype='custom'会调用_plotkm函数,但作为自学新手,搞不懂为什么会出现这种情况,求解决办法。

官方示例代码

# Import library
import kaplanmeier as km
# Example data
df = km.example_data()

time_event = df['time']
censoring = df['Died']
y = df['group']

results = km.fit(df['time'], df['Died'], df['group'])
# Plot
km.plot(results)

km.plot(results, cmap='Set1', cii_lines=True, cii_alpha=0.05)
km.plot(results, cmap=[(1, 0, 0),(0, 0, 1)])
km.plot(results, cmap='Set1', methodtype='custom')

我的代码

import pandas as pd
import kaplanmeier as km
df = pd.read_csv("*********mydatafile******")
# 重命名列方便后续使用
df.rename(columns ={'Did patient have surgery at any time after diagnosis specifically for atypical mycobacterial infection?':'surgery'}, inplace = True)
# 将Yes/No转换为1/2
df['surgery'].replace({'No': 1, 'Yes': 2}, inplace = True)
time_event = df['Time to event']
censoring = df['Resolved']
y = df['surgery']
results = km.fit(time_event, censoring, y)
km.plot(results)

问题原因分析

这个问题核心是绘图后端的显示逻辑差异:

  • 默认的km.plot调用依赖matplotlib的延迟渲染机制,没有主动触发图形显示;
  • 带methodtype='custom'的调用,内部_plotkm函数显式执行了图形显示命令(比如plt.show()),强制触发了所有已绘制图形的渲染。

解决办法

方法1:手动触发图形显示

在所有km.plot调用后,手动添加matplotlib的显示命令,强制渲染所有图形:

import matplotlib.pyplot as plt
# ... 你的原有代码 ...
km.plot(results)
plt.show()  # 手动触发图形显示

不管是官方示例还是自定义代码,添加这一行后,不需要依赖methodtype='custom'的调用就能正常显示图形。

方法2:适配交互式环境(如Jupyter Notebook)

如果在Jupyter环境中运行,先添加绘图魔法命令确保自动渲染:

%matplotlib inline  # 静态显示图形
# 或者用交互式显示:%matplotlib notebook
# ... 你的原有代码 ...
km.plot(results)

方法3:修复包默认逻辑(可选)

查看km.plot源码会发现,默认分支缺少plt.show()调用,而custom分支存在该命令。你可以给包提交issue建议修复默认行为,或者在自己的代码中封装一个补全显示逻辑的函数。

内容的提问来源于stack exchange,提问作者Cheyennerhap

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 07:59:51