我正在使用survminer包和ggsurvplot进行生存图。我正在使用该选项来获取风险表(即risk_table = T)。风险表立即输出存活图中每个组的行。风险表的每个标签都是生存图中组的颜色。我希望整个风险表都是黑色的,甚至包括风险表中每行的组名称。有什么简单的方法吗?
我试着做了如下的事情:
surv_pfs=ggsurvplot(data = data, fit=fit_os,xlab="Time in Months",
risk.table=T, size=0.2, censor.size=3,
legend.title="Group", tables.theme=clean_theme(),
title = "OS by group",
ylab = "Survival Probability",
break.time.by = 12,
risk.table.title="Number at Risk",risk.table.col="black", risk.table.height=0.2,
risk.table.y.text = T,
censor.shape="l", linetype = c(1,1,1,1), pval = F,
ggtheme = custom_theme(),
legend.labs=c("group1","group2", "group3", "group4"),
palette = c("black", "#8c8c8c", "#4b4b4b", "#bebebe"))
surv_pfs
surv_pfs$plot = surv_pfs$plot + theme(legend.position = c(0.5,0.7),
legend.text = element_text(size=8),
legend.title = element_text(size=8))
**surv_pfs$table=surv_pfs$table+theme(plot.title=element_text(hjust=0,size=14),
plot.margin=margin(l=0),
axis.text.y = element_text(color = "black", size=14)
)**
其中粗体部分是我试图使风险数字表中的group1、2、3和4都是黑色行,而不是默认的文本颜色。我得到一个错误,说“合并'axis.text.y'主题元素时出现问题。
如果没有这个错误,我得到的结果看起来像下面这样:
我想要的是G1、G2、G3和G4都是黑色文本。
2条答案
按热度按时间k3bvogb11#
问题是
ggsurvplot
使用ggtext::element_markdown
作为axis.text
。这就是为什么你在使用element_text
时会出错的原因。使用基于
lung
数据集的最小可重现示例:hs1rzwqc2#
这样反而有效: