3
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, face = "bold"), font.tickslab = c(24), 
font.legend = c(24), risk.table.fontsize = 7, risk.table.col = "black", size = 1) 
Mortality_31to90_Days_Plot$plot
4

1 回答 1

4

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

由于您没有提供可重现的数据,让我们使用包文档中的示例图:

tdata <- data.frame(time  =c(1,1,1,2,2,2,3,3,3,4,4,4),
                    status=rep(c(1,0,2),4),
                    n=c(12,3,2,6,2,4,2,0,2,3,3,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, face = "bold"), font.tickslab = c(24), 
                     font.legend = c(24), risk.table.fontsize = 7, risk.table.col = "black", size = 1) 

在此处输入图像描述

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

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

在此处输入图像描述

于 2021-01-01T17:55:48.353 回答