首页 > 解决方案 > 为什么这三个 ggsurvplots 不合并为一个?

问题描述

请在My Data p下面找到。

我通过创建 ggsurvplots 生成了三个不同的 KM 图,如下所示。我想合并所有三个,因此我使用了arrange_ggsurvplots approach但我收到一个错误

arrange_ggsurvplots(splots, print = TRUE,ncol = 2, nrow = 1)
Error in FUN(X[[i]], ...) : An object of class ggsurvplot is required.

我认为这可能与我存储的文本注释j$plot有关,但我不确定。

那么,如何合并这三个 ggsurvplots,同时仍然包含手动添加的文本j,k,n$plot?合并应如下所示:

在此处输入图像描述

KM ggsurvplot 看起来像这样:

在此处输入图像描述

如您所见,我已添加

j$plot + annotate("text", x = 14, y = 0.005, label = "14 (95% CI: 10 - 24)", cex=3.3, vjust=0, hjust = 1.1, fontface=2)

首先,我输入

library(survminer)
splots <- list()

三个 ggsurvplots

#1
fitj <- survfit(Surv(p$rfs, p$recurrence) ~ p$test, data=p)
j <- ggsurvplot(
  fitj,                     
  data = p, 
  risk.table = TRUE,
  pval = TRUE,      
  pval.coord = c(0, 0.25),
  conf.int = T,         
  legend.labs=c("Test (all)", "Test 2 (all)"),  
  size=c(0.7,0.7,0.7,0.7),                    
  xlim = c(0,50),
  #alpha=c(0.4),
  conf.int.alpha=c(0.1),
  break.x.by = 6,    
  xlab="Time in months",
  ylab="Probability of recurrence-free survival",
  risk.table.y.text.col = T,
  risk.table.y.text = TRUE, 
  surv.median.line = "v",
  ylim=c(0,1),
  surv.scale="percent")

splots[[1]] <- j$plot +
  annotate("text", x = 14, y = 0.005, label = "14 (95% CI: 10 - 24)", cex=3.3, vjust=0, hjust = 1.1, fontface=2)

#2
p$test.gr <- 2*I(p$WHO==3 & p$test==1) + 1*I(p$WHO==3 & p$test==0)

pn <- subset(p, p$test.gr %in% 1:2)

fitn <- survfit(Surv(pn$rfs, pn$recurrence) ~ pn$test, data=pn)

n <- ggsurvplot(
  fitn,                     
  data = pn, 
  risk.table = TRUE, 
  pval = TRUE,      
  pval.coord = c(0, 0.25),
  conf.int = T,         
  legend.labs=c("Test 5", "Test 6"),  
  size=c(0.7,0.7,0.7,0.7),                    
  xlim = c(0,50),
  #alpha=c(0.4),
  conf.int.alpha=c(0.1),
  break.x.by = 6,    
  xlab="Time in months",
  ylab="Probability of recurrence-free survival",
  ggtheme = theme,             
  risk.table.y.text.col = T,
  risk.table.y.text = TRUE, 
  surv.median.line = "v",
  ylim=c(0,1),
  surv.scale="percent")


splots[[2]] <- n$plot +
  annotate("text", x = 10.5, y = 0.005, label = "9 (95% CI: 9 - 28)", cex=3.3, vjust=0, hjust = 1.1, fontface=2) +
  annotate("text", x = 29, y = 0.005, label = "29 (95% CI: 23 - 60)", cex=3.3, vjust=0, hjust = 1.1, fontface=2)

最后

#3 
p$test.group <- 2*I(p$WHO %in% 1:2 & p$test==1) + 1*I(p$WHO==3 & p$test==0)

pk <- subset(p, p$test.group %in% 1:2)

fitk <- survfit(Surv(pk$rfs, pk$recurrence) ~ pk$test, data=pk)

k <- ggsurvplot(
  fitk,                     
  data = pk, 
  risk.table = TRUE,
  pval = TRUE,      
  pval.coord = c(0, 0.25),
  conf.int = T,         
  legend.labs=c("Test 3", "Test 4"),  
  size=c(0.7,0.7,0.7,0.7),                    
  xlim = c(0,50),
  conf.int.alpha=c(0.1),
  break.x.by = 6,    
  xlab="Time in months",
  ylab="Probability of recurrence-free survival",
  risk.table.y.text.col = T,
  risk.table.y.text = TRUE, 
  surv.median.line = "v",
  ylim=c(0,1),
  surv.scale="percent")

splots[[3]] <- k$plot +
  annotate("text", x = 16, y = 0.005, label = "16 (95% CI: 12; 31)", cex=3.3, vjust=0, hjust = 1.1, fontface=2) +
  annotate("text", x = 29, y = 0.005, label = "29 (95% CI: 23; 50)", cex=3.3, vjust=0, hjust = 1.1, fontface=2)

最后,为了生成 ggsurvplot-merge,我写了

arrange_ggsurvplots(splots, print = TRUE,ncol = 2, nrow = 2)

或者

arrange_ggsurvplots(splots, print = TRUE,ncol = 2, nrow = 1)

arrange_ggsurvplots(splots, print = TRUE,ncol = 2, nrow = 1)
Error in FUN(X[[i]], ...) : An object of class ggsurvplot is required.

我的资料 p

p <- structure(list(test = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 
0L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 
0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 
0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 
0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 0L, 1L, 1L, 0L, 0L, 0L, 
0L, 0L, 0L, 1L, 0L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 0L, 
0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 0L, 
1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 
0L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L), rfs = c(38, 11.08, 
49.5, 21.37, 73.5, 89, 0.72, 64.3, 78, 22.9, 50.5, 99.8, 102.48, 
114.35, 16.44, 53, 41, 96.2, 113.42, 8.5, 25.7, 169.22, 1.97, 
46.7, 71.5, 51.1, 88.5, 85.4, 23, 42.7, 90.9, 102.61, 29.2, 48.2, 
120, 69.5, 75.16, 48, 0.13, 179.34, 70.19, 75.3, 22, 126.74, 
69.8, 25.15, 42.35, 31.2, 2.04, 59.9, 106.88, 23.6, 364.73, 67, 
160.83, 22.68, 7.5, 67.4, 20, 184.34, 72, 12, 386.19, 44.8, 42.9, 
163.95, 63.4, 57.1, 0.46, 66.9, 128, 1.02, 43.5, 93, 81.3, 47.9, 
72.4, 96.2, 90.1, 99.1, 90.8, 75.9, 88.01, 57.3, 97.2, 101.33, 
136.27, 95.5, 97.1, 14, 3.3, 72, 56, 140, 12, 12, 31, 45, 2.9, 
48, 14, 32, 25, 19, 33, 9, 6, 91, 24, 11, 37, 23, 28, 32, 90, 
25, 3, 303, 28, 5.9, 24, 138, 14, 19, 58, 20, 7, 13, 15, NA, 
19, 13, 10.8, 232, 12, 26, 22, 17, 24, 7, 2, 78, 76, 44, 34, 
7, 8, 77, 16, 12, 47, 52, 9, 19, 43, 36, 47, 34, 12, 21, 14, 
31, 46, 45, 31, 15, 44, 41, 11, 31, 26, 18, 29, 3, 10, 12, 34, 
32, 15, 12, 32, 3, 46, 26, 12, 17, 2, 4, 23, 27, 2, 129, 85, 
96, 31, 131, 9, 22, 38, 107, 28, 34, 13, 45, 13, 10, 47, 68, 
113, 39, 37, 136, 1, 27, 10, 67, 3, 28, NA, 7, 2, 3, 14, 13, 
18, 14, 5, 13, 16, 55.83333333, 116.5333333, 7.2, 59.06666667, 
28, 10.5, 130.2, 88.56666667, 76.2, 143.7, 138.2, 92.63333333, 
77.23333333, 36.43333333, 19.06666667, 19.1, 15.33333333, 49.16666667, 
15.6, 57.16666667, 47.63333333, 54, 16.93333333, 6.7, 102.1, 
24.33666667, 127.7666667, 100.6333333, 25.96666667, 1.233333333, 
13.1, 72.16666667, 62, 97.23333333, 199.1, 24.73333333, 60.46666667, 
10.43333333, 31.76666667, 28.96666667, 56.43333333, 9.533333333, 
114.9333333, 114.8666667, 85.06666667, 107.6, 121.2, 69.56666667, 
70.03333333, 74.4, 75.1, 67.06666667, 84.53333333, 66.73333333, 
80.93333333, 64.43333333, 82.43333333, 73.76666667, 67.53333333, 
62.5, 214.3666667, 177.8666667, 106.9333333, 108.1333333, 112.2, 
142.5666667, 105.7, 107.0666667, 97.93333333, 99.43333333, 85.63333333, 
83.8, 83.33333333, 78.3, 77.6, 77.1, 73.16666667, 83.73333333, 
76.26666667, 82.86666667, 70.2, 67, 64.06666667, 137.9333333, 
84.3, 67.7, 63.76666667, 63.43333333, 62.9, 62.03333333, 61.16666667, 
59.86666667, 62.96666667, 148.6, 179.8666667, 26.03333333, 95.66666667, 
119, 108.7666667, 180.4, 173.6, 71.86666667, 14.39666667, 112.3, 
116.3, 101.2333333, 111.6666667, 48.83333333, 49.43333333, 103.5666667, 
103.7, 110.2, 12.86666667, 100.3666667, 96.33333333, 3.8, 79.43333333, 
14.23333333, 74.8, 3.3, 53.76666667, 39.43333333, 4.4, 89.43333333, 
39.13333333, 91.26666667, 50.56666667, 70.8, 25.23333333, 9.2, 
77.36666667, 56.73333333, 49.7, 61.63333333, 36.3, 3.733333333, 
10.13333333, 12.83333333, 5.433333333, 121, 73, 96, 117, 103, 
115, 60, 110, 78, 107, 24, 65, 63, 50, 49, 47, 40, 101, 101, 
85, 94, 10, 33, 20, 85, 56, 36, 68, 108, 92, 111, 107, 98, 77, 
76, 38, 127, 122, 121, 120, 132, 125, 99, 158, 156, 156, 149, 
146, 141, 141, 140, 140, 128, 22, 16, 21, 78, 17, 60, 101, 28, 
16, 23, 27, 32, 7, 21, 15, 24, 19, 60, 8, 11, 1, 15, 5, 7, 1, 
NA, 2, 8, 24, 12, 4, 12, 336, 127, 48, 99, 96, 78, 108, 39, 167, 
3.5, 6, 10, 60, 0.5, 29, 12, 73, 28, 12, 16, 59, 26, 30, 30, 
179, 14, 36, 3, 10, 3, 9, 64, 20, 38, 14, 24, 34, 12, 13, 26, 
16, 103, 29, 4, 80, 10, 12, 1, 144, 109, 65, 26, 115, 88, 200, 
70, 94, 46, 111, 125, 37, 113, 8, 16, 12, 24, 139, 119, 204, 
138, 33, 26, 1, 1, 27, 157, 134, 70, 57, 55, 99, 120, 66, 60, 
11, 113, 56, 59, 19, 51, 41, 71, 13.84, 1.37, 6.84, 5.45, 6.15, 
1.34, 1.3, 1.16, 2.08, 2.97, 3.16, 2.63, 1.52, 5.83, 4.97, 0.25, 
6.66, 2.02, 6.98, 5.97, 9.72, 2.5, 1.56, 2.6, 1.92, 3.24, 44.4, 
31.2, 22.8, 4.8, 117.6, 114, 8.4, 25.2, 54, 168, 67.2, 28.8, 
14.4, 9.6, 13.2, 132, 74.4, 38.4, 12, 44.4, 16.8, 21.6, 123.6, 
20.4, 15.6, 56.4, 7.2, 58.8, 14.4, 50.4, 6, 82.8, 40.8, 91.2, 
10.8, 57.6, 24, 8.4, 24, 19.2, 31.2, 27.6, 26.4, 42, 13.2, 18, 
33.6, 39.6, 9.6, 10.8, 7.2, 10.8, 76.8, 58.8, 31.2, 18, 20.4, 
NA, 8.4, 2.4, 41.6, NA, NA, 59.4, 33.3, 65.2, 56.4, 73.5, 26.7, 
20.1, 41.6, 35.7, 1.4, 21.1, 24.9, 2.9, 47, 18.7, 19.6, NA, 43.7, 
15.3, 57.9, 15.1, 39.2, 22.6, 22.5, NA, 8.4, NA, 40.7, 62.3, 
53.3, 37.7, 15.3, 72.6, 20.7, 9, NA, 63.6, 5.8, 123.6, 100.8, 
82.8, 12, 60), recurrence = c(1L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 
1L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 
0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
1L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 
0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 1L, 1L, 1L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 0L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 0L, 0L, 1L, 1L, NA, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 0L, 0L, 
1L, 1L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 
1L, 0L, 1L, 1L, 0L, 0L, 1L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 
0L, 1L, 0L, 1L, 1L, 1L, 1L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 0L, 1L, 1L, 1L, 1L, 0L, 0L, 1L, 1L, 0L, 1L, 1L, 1L, 0L, 
0L, 1L, NA, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 0L, 1L, 0L, 1L, 
1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 
0L, 1L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 
1L, 0L, 1L, 0L, 0L, 0L, 1L, 1L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
0L, 0L, 0L, 0L, 0L, 0L, NA, 0L, 1L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 1L, 
0L, 0L, 0L, 0L, 0L, 1L, 0L, 1L, 0L, 1L, 0L, 1L, 0L, 0L, 1L, 0L, 
1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 0L, 0L, 0L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 0L, 1L, 1L, 0L, 1L, 0L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 0L, 1L, 1L, 0L, 1L, 1L, 1L, 0L, 1L, 1L, 
1L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, NA, 1L, 1L, 0L, 
NA, NA, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, NA, 0L, 0L, 0L, 0L, 0L, 0L, 0L, NA, 0L, NA, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, NA, 0L, 0L, 1L, 1L, 1L, 1L, 1L), WHO = c(1L, 
3L, 3L, 3L, 2L, 1L, 2L, 3L, 2L, 3L, 2L, 3L, 3L, 3L, 3L, 3L, 2L, 
3L, 3L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 
2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 3L, 2L, 3L, 2L, 3L, 3L, 3L, 
3L, 3L, 1L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 2L, 3L, 3L, 3L, 
1L, 1L, 3L, 3L, 1L, 2L, 3L, 3L, 1L, 2L, 2L, 1L, 3L, 3L, 1L, 1L, 
3L, 3L, 2L, 3L, 1L, 3L, 2L, 2L, 3L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 2L, 1L, 3L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 3L, 
2L, 3L, 2L, 1L, 2L, 1L, 1L, 2L, 3L, 1L, 2L, 1L, 1L, 3L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 
1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 
1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 
1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 2L, 1L, 2L, 
3L, 3L, 3L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 
2L, 3L, 3L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 3L, 2L, 2L, 3L, 
2L, 3L, 3L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 3L, 2L, 2L, 2L, 2L, 1L, 
2L, 3L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 
2L, 3L, 3L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 1L, 2L, 
3L, 3L, 3L, 2L, 1L, 2L, 2L, 2L, 3L, 1L, 2L, 2L, 2L, 2L, 3L, 2L, 
2L, 2L, 2L, 3L, 2L, 2L, 2L, 3L, 2L, 2L, 2L, 3L, 2L, 3L, 3L, 2L, 
3L, 2L, 2L, 2L, 3L, 2L, 2L, 2L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 
3L, 3L, 2L, 2L, 2L, 2L, 3L, 3L, 2L, 2L, 2L, 3L, 3L, 2L, 2L, 3L, 
2L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L)), class = "data.frame", row.names = c(NA, -677L
))

标签: rggplot2

解决方案


您需要提供一个 ggsurvplot 对象列表的arrange_ggsurvplots ..

所以也许尝试以下作为解决方法?注意我必须ggtheme = theme从你的代码中删除参数来生成n,因为它抛出了一个错误。

splots <- list()

splots[[1]] <- j
splots[[1]]$plot <- splots[[1]]$plot+
annotate("text", x = 14, y = 0.005, 
label = "14 (95% CI: 10 - 24)", cex=3.3, vjust=0, 
hjust = 1.1, fontface=2)

splots[[2]] <- n
splots[[2]]$plot <- splots[[2]]$plot+
  annotate("text", x = 10.5, y = 0.005, label = "9 (95% CI: 9 - 28)", 
  cex=3.3, vjust=0, hjust = 1.1, fontface=2) +
  annotate("text", x = 29, y = 0.005, label = "29 (95% CI: 23 - 60)", 
  cex=3.3, vjust=0, hjust = 1.1, fontface=2)

splots[[3]] <- k
splots[[3]]$plot <- splots[[3]]$plot+
annotate("text", x = 16, y = 0.005, label = "16 (95% CI: 12; 31)", 
cex=3.3, vjust=0, hjust = 1.1, fontface=2) +
  annotate("text", x = 29, y = 0.005, label = "29 (95% CI: 23; 50)", 
  cex=3.3, vjust=0, hjust = 1.1, fontface=2)

arrange_ggsurvplots(splots, print = TRUE,ncol = 2, nrow = 2)

推荐阅读