如何使用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()
(附竞争风险图:
)
解决方案
要调整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
相关产品推荐
相关产品推荐

