【问题标题】:Change x-axis labels for ggsurvplot更改 ggsurvplot 的 x 轴标签
【发布时间】:2021-04-08 10:22:07
【问题描述】:
library(survival)
library(survminer)

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

我使用下面的代码创建了我的 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

【问题讨论】:

    标签: r survival-analysis survival survminer


    【解决方案1】:

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

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

    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) 
    

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

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

    【讨论】:

    • 这很好,很抱歉没有包括可重现的示例,使用机密数据,但可能应该开始使用示例数据集来解决我的问题!
    • 如果你想改变xlims,下面的代码会起作用吗?我在自己的地块上尝试过,但它一直重置为默认值。 myplot$plot &lt;- myplot$plot + scale_x_continuous(breaks = c(0,20,40,60), labels = c(30,50,70,90), limits = c(0,60))
    • @IanCampell 我收到以下错误:Error in FUN(X[[i]], ...) : object 'time' not found 代码:kmcurvep2 &lt;- ggsurvplot(km_fitp2, xlim(0,96)); km_fitp2 由以下公式计算得出:km_fitp2 &lt;- survfit(Surv(time, event) ~ 1, data = kmdata_P2) 我假设我缺少一个参数(例如 theme = xlim(0,96))。
    • @Adam 听起来您还有另一个问题。您可以通过单击任何 StackOverflow 页面顶部的“”按钮来询问它。如果有帮助,您可以链接到此问题以获取更多上下文。
    • 发现错误:xlim = c(0,96) 而不是xlim(0,96)。与ggplot类似的语法。
    猜你喜欢
    • 2019-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-01
    • 2020-12-14
    • 2015-02-10
    • 2019-04-03
    • 1970-01-01
    相关资源
    最近更新 更多