如何调整ggcuminc图Y轴为百分比并解决风险表截断问题
解决ggcuminc图的Y轴百分比与风险表截断问题
1. 把Y轴转换为百分比格式
ggcuminc默认输出的Y轴是0-1的概率值,要改成百分比,直接用scale_y_continuous()搭配scales::percent()函数即可,代码示例:
library(ggsurvfit) library(survival) library(scales) # 加载数据集并构建竞争风险模型 data(mgus2) cuminc_fit <- cuminc(Surv(futime, death_cause) ~ sex, data = mgus2) # 绘图并设置Y轴为百分比 p <- ggcuminc(cuminc_fit) + scale_y_continuous( labels = percent, limits = c(0, 1) # 这里替换成你需要的坐标轴范围 )
如果需要自定义刻度间隔,比如每20%显示一个刻度,可添加breaks = seq(0, 1, 0.2)参数。
2. 修复风险表被截断的问题
ggcuminc的风险表不能通过p$table修改,得通过add_risktable()的参数或主题调整来解决:
调整风险表高度与字体大小
直接在add_risktable()里设置table_height(控制表格占绘图区域的比例)和fontsize(缩小字体避免内容挤在一起):
p <- p + add_risktable( table_height = 0.2, # 数值越大,表格高度越高 fontsize = 3 # 根据需求调整字体大小 )
增加绘图下边距
如果调整高度和字体后仍有截断,说明绘图区域下边距不足,用theme()扩展边距:
p <- p + theme(plot.margin = margin(1, 1, 2, 1, "cm")) # 顺序为上、右、下、左,单位按需调整
自定义风险表(进阶)
如果需要更精细的控制,比如修改表格列名、显示内容,可使用add_risktable()的stat参数指定自定义统计量,或者结合ggtext包调整样式,但一般前两种方法就能解决截断问题。
内容的提问来源于stack exchange,提问作者geek45
相关产品推荐
相关产品推荐

