标签太长,导致“无风险”移至右侧。
此外,它们不再左对齐。
因此,它们与绘图的 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
如果您愿意,我会考虑使用另一个名为 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 (%)")