更改 ggsurvplot

问题描述

library(survival)
library(survminer)

我正在使用 survminer 包绘制未经调整的 Kaplan Meier 图。我正在计算比较不同暴露的死亡率,我有一个非常具体的问题: 有没有办法改变 ggsurvplot 的 x 轴标签 在我的例子中,我想用 30 替换时间点 0,用 50 替换时间点 20,用 70 替换时间点 40,用 90 替换时间点 60。 >

我使用以下代码创建了我的 ggsurvplot:

fit31to90_Mortality <- survfit(msurv31to90dayMortality~Bacteria_Category,data = 

Mortality_31to90_Days_Plot <- 
ggsurvplot(fit31to90_Mortality,xlim = c(0,60),break.x.by = 20,xlab = "Day",ylab = c("Survival probability"),risk.table = "abs_pct",font.x = c(26,face = "bold"),font.y = c(26,font.tickslab = c(24),font.legend = c(24),risk.table.fontsize = 7,risk.table.col = "black",size = 1) 
Mortality_31to90_Days_Plot$plot

解决方法

您可以通过为绘图对象添加对 scale_x_continuous 的调用来更改 x 标签。

由于您没有提供可重复的数据,让我们使用 package documentation 中的示例图:

tdata <- data.frame(time  =c(1,1,2,3,4,4),status=rep(c(1,2),n=c(12,6,5))
fit  <- survfit(Surv(time,time,status,type='interval') ~1,data=tdata,weight=n)
myplot <- ggsurvplot(fit,xlim = c(0,60),break.x.by = 20,xlab = "Day",ylab = c("Survival probability"),risk.table = "abs_pct",font.x = c(26,face = "bold"),font.y = c(26,font.tickslab = c(24),font.legend = c(24),risk.table.fontsize = 7,risk.table.col = "black",size = 1) 

enter image description here

现在您可以使用具有新的连续 x 轴的副本重新分配 $plot

myplot$plot <- myplot$plot + 
                  scale_x_continuous(breaks = c(0,20,40,labels = c(30,50,70,90))
myplot$plot

enter image description here