Добавление прямой вертикальной линии к ggsurvplot в R - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь создать симпатичный график выживания в 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, ...)

Можно ли как-нибудь добавить такую ​​линию на график выживания? Почему это не признается сюжетом?

1 Ответ

0 голосов
/ 13 февраля 2019

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-летнего времени выживания для двух групп рака, которые я сравнивал.

...