如何使用R包survminer调整风险表图例文本大小?
调整survminer风险表分组标签字体大小的解决方案
针对你遇到的survminer包中风险表左下角分组标签(Male/Female)字体过大的问题,核心是要单独修改风险表对象的ggplot主题元素——默认的risk.table.fontsize参数仅控制风险表内的数字字体,不影响分组标签。以下是两种可行方案:
方案1:生成后修改风险表对象
先正常生成包含风险表的生存曲线,再单独调整风险表的y轴文本(即分组标签)大小:
library(survival) library(survminer) # 示例数据与模型拟合 data(lung) lung$sex <- factor(lung$sex, levels = c(1,2), labels = c("Male", "Female")) fit <- survfit(Surv(time, status) ~ sex, data = lung) # 生成ggsurvplot对象 p <- ggsurvplot(fit, risk.table = TRUE) # 调整风险表分组标签字体大小(这里设置为8,可根据需求修改) p$table <- p$table + theme(axis.text.y = element_text(size = 8)) # 输出图形 print(p)
方案2:生成时直接指定风险表主题
在调用ggsurvplot时,通过risk.table.theme参数直接定义风险表的主题,包含分组标签的字体设置:
p <- ggsurvplot( fit, risk.table = TRUE, # 自定义风险表主题,调整y轴文本大小 risk.table.theme = theme_cleantable() + theme(axis.text.y = element_text(size = 8)) ) print(p)
关键说明
- 风险表本质是一个独立的ggplot对象,存储在
ggsurvplot返回结果的$table字段中 - 分组标签属于风险表的y轴文本,对应ggplot主题中的
axis.text.y元素 - 如果需要同时调整主图的图例字体,可以额外添加
legend.font = element_text(size = 8)参数到ggsurvplot中
内容的提问来源于stack exchange,提问作者Jason
相关产品推荐
相关产品推荐

