我正在使用
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 轴中断而不影响风险表?
您可以使用
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)"),
)