BioF3 FigCode · SCI 绘图代码集
KM 生存曲线(KM Survival Curve)
分类:生存分析 | 依赖包:survival、survminer
解决的生物学问题
不同分组(如基因高/低表达)的患者生存时间是否存在显著差异?
应用场景
- 基因表达高低分组的预后分析
- 突变 vs 野生型生存对比
- 临床分期生存差异
- 治疗方案疗效评估
输入数据格式
数据框:time, status, group
关键参数
- 分组方式(中位数 / 最佳截断值 surv_cutpoint)
- time 单位(月 / 天)
- risk.table 是否显示风险表
- palette 配色方案
- conf.int 是否显示置信区间
快速开始
1. 直接在线运行
打开 FigCode 在线绘图,点击本工具卡片的"在线绘图"按钮即可用内置示例数据出图,零环境配置。
2. 本地复现
下载脚本和示例数据,本地 RStudio 运行:
# 下载
curl -O https://<your-site>/figcode/scripts/km-curve.R
curl -O https://<your-site>/figcode/data/km-curve.csv
3. 安装依赖
# CRAN 包
install.packages(c("survival", "survminer"))
# Bioconductor 包(如需)
# BiocManager::install(c())
完整代码
library(survival)
library(survminer)
# --- Demo data ---
set.seed(42)
n <- 100
df <- data.frame(
time = c(rexp(50, 0.02), rexp(50, 0.05)),
status = sample(0:1, n, replace = TRUE, prob = c(0.3, 0.7)),
group = rep(c("High", "Low"), each = 50)
)
# --- Plot ---
fit <- survfit(Surv(time, status) ~ group, data = df)
ggsurvplot(fit, data = df,
pval = TRUE, risk.table = TRUE,
palette = c("#0f766e", "#dc2626"),
xlab = "Time (months)", ylab = "Survival Probability",
title = "Kaplan-Meier Survival Curve")
替换为自己的数据
脚本中以 # --- Demo data --- 标注的段落是示例数据生成代码。替换为自己的数据时,保持列名一致即可:
- 输入格式:数据框:time, status, group
- 使用
read.csv()/readRDS()读取本地文件
延伸阅读
- 相关教程:KM 生存曲线 完整流程
- 出现 bug?欢迎在 FigCode 页面 点击对应卡片,在评论区留言。