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

如何使用ggcuminc增大竞争风险图的非风险表文本尺寸?

问题描述

基于以死亡和目标结局为竞争风险的模型,用ggcuminc绘制了华法林组与非华法林组的对比图。目前图中除风险表外的其他文本尺寸过小,已掌握增大风险表文本的方法,但不知道如何调整其余文本组件,求解决方案。

附带绘图代码:

#plot the event, according to med status

fit <- fit %>%
  mutate(oac = ifelse(oac == 1, "warfarin", "Non-Warfarin"))
    
cuminc(Surv(lof, status) ~ oac, data = fit)

ggcuminc(theme=theme_ggsurvfit_default(), size = 2) +
  labs(
    y = "cumulative incidence, %",
    x = "Follow up time (Month)"
  ) +

  add_confidence_interval() +

  add_risktable(
    times = NULL,
    risktable_stats = c("n.risk"),
    risktable_group = c("auto", "strata", "risktable_stats"), # 原代码存在语法错误:缺少右括号
    risktable_height = NULL,
    combine_groups = FALSE,
    size = 6) +

  scale_y_continuous(label = scales::percent)  +
  scale_x_continuous(breaks = c(1,3,6,12,24))

dev.off()

(附竞争风险图:competing risk plot)


解决方案

要调整ggcuminc图中除风险表外的所有文本组件尺寸,直接通过theme()函数修改对应元素即可,以下是具体调整方案和修正后的完整代码:

可调整的文本组件及对应参数

  • 坐标轴标题:axis.title.x、axis.title.y,用element_text(size = 数值)设置尺寸
  • 坐标轴刻度标签:axis.text.x、axis.text.y,用element_text(size = 数值)设置尺寸
  • 图例标题:legend.title
  • 图例文本:legend.text

修正后的完整代码

#plot the event, according to med status

fit <- fit %>%
  mutate(oac = ifelse(oac == 1, "warfarin", "Non-Warfarin"))
    
# 将拟合结果存入变量,代码逻辑更清晰
cuminc_fit <- cuminc(Surv(lof, status) ~ oac, data = fit)

ggcuminc(cuminc_fit, theme=theme_ggsurvfit_default(), size = 2) +
  labs(
    y = "cumulative incidence, %",
    x = "Follow up time (Month)"
  ) +
  add_confidence_interval() +
  add_risktable(
    times = NULL,
    risktable_stats = c("n.risk"),
    risktable_group = "strata", # 参数只需传入单个目标值,无需传向量
    risktable_height = NULL,
    combine_groups = FALSE,
    size = 6
  ) +
  scale_y_continuous(label = scales::percent)  +
  scale_x_continuous(breaks = c(1,3,6,12,24)) +
  # 新增theme调整所有文本尺寸,数值可按需修改
  theme(
    axis.title.x = element_text(size = 12),
    axis.title.y = element_text(size = 12),
    axis.text.x = element_text(size = 10),
    axis.text.y = element_text(size = 10),
    legend.title = element_text(size = 12),
    legend.text = element_text(size = 10)
  )

dev.off()

补充说明

  • 原代码中add_risktable的risktable_group参数存在语法错误(缺少右括号),已修正;同时该参数只需传入单个字符串值(如"strata"),无需传向量。
  • 所有size的数值可根据需求自行调整,比如14、16等,直到文本大小符合预期。
  • theme_ggsurvfit_default()是ggsurvfit包的默认主题,叠加theme()会覆盖默认主题的对应设置,不会产生冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 08:55:02