在 ggsurvplot 中重新定位风险表标签

问题描述 投票:0回答:1

标签太长,导致“无风险”移至右侧。
此外,它们不再左对齐。
因此,它们与绘图的 x 轴不相符。
如何将分层标签重新放置在有风险的数字上方?有没有可能?

library(survminer)
library(survival)
library(dplyr)

lung <- lung %>% 
  mutate(timeyr = time / 365.25)

fit <- survfit(Surv(timeyr, status) ~ sex, data = lung)

ggsurv <- ggsurvplot(fit,  size = 1,  
                     xlab = "Follow-up time (years)",
                     ylab = "Survival probability (%)",
                     legend.labs = c("Drug 1234234", "Drug 25324"), 
                     linetype = "strata", 
                     xlim = c(0,2),
                     break.time.by = 1, 
                     palette = c("#E7B800", "#2E9FDF"), 
                     conf.int = FALSE, 
                     pval = FALSE, 
                     censor = FALSE,
                     risk.table = TRUE,
                     risk.table.title = "No. at risk",
                     risk.table.height = 0.2,
                     fontsize = 6,
                     tables.theme = theme_cleantable()
)
ggsurv

enter image description here

r ggplot2 survminer
1个回答
0
投票

如果您愿意,我会考虑使用另一个名为 ggsurvfit 的绘图包。它有一些好处,但主要的好处之一是它创建了一个真正的 ggplot 对象,并且您可以在创建生存图后添加所有 ggplot2 自定义项。这将使您能够更轻松地切换和操纵绘图。下面是我将如何做到这一点。您不必担心风险表中的长标签,因为它会将它们放在组的顶部而不是侧面。

library(survival)
library(ggsurvfit)
lung <- lung %>% 
  mutate(timeyr = time / 365.25,
         sex2 = ifelse(sex == 1 , "Drug 1234234", "Drug 25324"))

fit <- survfit2(Surv(timeyr, status) ~ sex2, data = lung)

ggsurvfit::ggsurvfit(fit) +
   add_risktable() +
  xlab("Follow-up time (years)") +
  ylab("Survival probability (%)") 
© www.soinside.com 2019 - 2024. All rights reserved.