向 R 中的 ggsurvplot 添加垂直直线

Adding a straight vertical line to ggsurvplot in R

我想在 R 中创建一个漂亮的生存图。是否可以在使用 ggsurvplot() 函数创建的生存图中添加一条垂直线?我想以这种方式显示时间阈值。

我已经在下面的代码中尝试使用 abline() 函数。

surv_object <- Surv(time = data1$survive_time)
fit1 <- survfit(surv_object~sex,data = data1)
ggsurvplot(fit1, data = data1, pval = TRUE, xlab="Time [days]", risk.table="percentage",surv.median.line="hv")
abline(v=200)

但是它给了我以下错误:

Error in int_abline(a = a, b = b, h = h, v = v, untf = untf, ...):   plot.new has not been called yet
Traceback:

1. abline(v = 120)
2. int_abline(a = a, b = b, h = h, v = v, untf = untf, ...)

有什么办法可以在生存情节中添加这样一条线吗?为什么不识别为剧情?

ggsurvplot 是 ggplot2 的扩展,因此如果要向绘图添加任何内容,您将希望使用 ggplot 函数以获得最佳结果。唯一烦人的问题是 ggsurvplots 被存储为一个对象,其中包含多个项目(包括 ggplot,称为 plot)。一旦你知道这一点,将垂直线添加到 ggsurvplot 就很容易了:

yoursurvplot<-ggsurvplot(fit1, data = data1, pval = TRUE, xlab="Time [days]", risk.table="percentage",surv.median.line="hv")

yoursurvplot$plot + geom_vline(xintercept = 200)

当我为正在比较的两个癌症队列的 5 年生存时间添加一条垂直线时,这对我有用。