Есть ли способ вложить график выживания с увеличенной шкалой y в исходный масштабный график? - PullRequest
1 голос
/ 09 мая 2020

Я хочу повторить c стиль сюжета выживания в NEW ENGLAND JOURNAL OF MEDICINE. Он часто содержит график выживания с увеличенной шкалой y в исходном масштабе. Вот так:

enter image description here

Я могу использовать пакет Survival and Survminer R, чтобы нарисовать график выживания без номера. легко подвергаться риску. Однако у меня нет идеи вложить график выживания с увеличенной шкалой y.

Вот код, который я пробовал.

library("survival")
library("survminer")
library("ggplot2")
fit <- survfit(Surv(time,status) ~ sex, data = lung)

p1 <- ggsurvplot(fit, data = lung, pval = TRUE, fun = "pct",
                 risk.table = TRUE, size = 1,
                 tables.theme = theme_cleantable())
p2 <- ggsurvplot(fit, data = lung, pval = TRUE, fun = "pct", ylim=c(50, 100))

library(grid)
vp <- viewport(width =0.6, height = 0.6, x = 1,y = 1)
p1
print(p2,vp = vp)

Однако кажется, что функция области просмотра не работает.

1 Ответ

2 голосов
/ 09 мая 2020

Этот случай не является подходящим примером, потому что ваши данные охватывают от 100 до 0%. Однако здесь рабочий код:

library("survival")
library("survminer")
library("ggplot2")
library("grid")

fit <- survfit(Surv(time,status) ~ sex, data = lung)

p1 <- ggsurvplot(fit, data = lung, pval = TRUE, fun = "pct",
                 risk.table = TRUE, size = 1,
                 legend = "none",
                 palette = c("#377eb8", "#e41a1c"),
                 tables.theme = theme_cleantable())

p2 <- p1$plot + coord_cartesian(ylim = c(50, 100)) + theme(legend.position = "none") + labs(x="", y="")

vp <- viewport(width = 0.3, height = 0.3, x = 1, y = 0.7, just = c("right","bottom"))

full <- function() {
  print(p1)
  theme_set(theme_classic())
  print(p2, vp = vp)
}

full()

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...