0

我可以在 ggplot 和 survminer::ggsurvplot 中设置不同的 x 轴中断。我目前正在使用break.time.by = 365.25 / 12(每月)进行设置。但是,我需要每 12 个月为表格设置一次轴标签(以满足我无法更改的格式要求)。我尝试仅格式化整个绘图的表格组件并使用 scale_x_continuous(breaks = c(values here)) 但这不起作用。我收到一条消息说Scale for 'x' is already present. Adding another scale for 'x', which will replace the existing scale.

4

1 回答 1

0

您可以在由 创建的对象中替换比例ggsurvplot,这是一个包含两个ggplot对象(除其他外)的类似列表的对象。这些ggplot对象之一称为table。您可以添加第二个scale_x_continuous(并收到有关添加第二个比例的警告),或者只是覆盖原件。

例如,我们将使用包中的一个内置数据集survival

library(survival)
library(survminer)

fit3 <- survfit( Surv(time, status) ~ sex, data = colon)

ggsurv <- ggsurvplot(fit3, data = colon,
  fun = "cumhaz", conf.int = TRUE,
  risk.table = TRUE, risk.table.col="strata",
  ggtheme = theme_bw())

ggsurv

我们可以通过执行以下操作找出哪个比例对象是 x 比例:

x <- which(ggsurv$table$scales$find("x"))

并用我们自己的规模覆盖它。例如,我们可以每 200 个而不是每 1000 个单位休息:

ggsurv$table$scales$scales[[x]] <- scale_x_continuous(breaks = 0:15 * 200)

现在我们的绘图如我们所愿,在表格的 x 轴上有新的比例:

ggsurv

reprex 包(v2.0.1)于 2022-01-26 创建

于 2022-01-26T23:07:51.053 回答