更改绘图上的 x 轴中断,而不影响风险表?

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

我正在使用

ggsurvfit
包生成带有相邻风险表的累积风险图。

但是,我正在努力让绘图显示带有标签的 x 轴中断,这些标签不需要显示在绘图的风险表部分中。

在下面的

reprex
示例中,我定义了我对以下x轴中断/时间点感兴趣
breaks = c(1, 3, 5)

library(ggplot2)
library(ggsurvfit)
library(gtsummary)

plot <-
  survfit2(Surv(time, status) ~ surg, data = df_colon) %>%
  ggsurvfit(type = "risk", linewidth = 0.8) +
  add_confidence_interval() +
  scale_ggsurvfit(
    x_scales = list(
      breaks = c(1, 3, 5)
    )
  ) +
  add_risktable(
    risktable_stats = "{style_number(cum.event, big.mark = ',')} ({sprintf('%.1f', estimate*100)}%; {sprintf('%.1f', conf.low*100)}-{sprintf('%.1f', conf.high*100)}%)",
    stats_label = c("Time [n] (%; 95% Confidence Interval)"),
    )

plot

但是,我希望实际累积风险图的 x 轴将所有数字的 x 轴刻度标签保持在 1:10 之间,我已尝试添加

scale_x_continuous(breaks = seq(1, 10, 1))

plot2 <-
  plot +
  scale_x_continuous(breaks = seq(1, 10, 1))

plot2

上面添加了所有指定的中断。 然而,它也将这些添加到风险表中。 从这两个情节中可以明显看出,特别是第二个情节。没有足够的空间来包含所有 x 轴刻度的这些数据。

如何更改绘图上的 x 轴中断而不影响风险表?

r ggplot2 ggsurvfit
1个回答
2
投票

您可以使用

breaks=
参数单独设置风险表的
times=

library(ggplot2)
library(ggsurvfit)
library(gtsummary)

survfit2(Surv(time, status) ~ surg, data = df_colon) %>%
  ggsurvfit(type = "risk", linewidth = 0.8) +
  add_confidence_interval() +
  scale_x_continuous(breaks = seq(1, 10, 1)) +
  add_risktable(
    times = c(1, 3, 5),
    risktable_stats = "{style_number(cum.event, big.mark = ',')} ({sprintf('%.1f', estimate*100)}%; {sprintf('%.1f', conf.low*100)}-{sprintf('%.1f', conf.high*100)}%)",
    stats_label = c("Time [n] (%; 95% Confidence Interval)"),
  )

© www.soinside.com 2019 - 2024. All rights reserved.