У меня есть 3 ggsurvplots , которые объединены и упорядочены с помощью range_ggsurvplots () в 1 столбце. Я хочу добавить ось времени под окончательным графиком. Я попробовал 2 способа:
В первом подходе я покрасил ось x первых двух таблиц рисков в белый цвет, чтобы размер графика оставался одинаковым. Результат почти хороший, недостатком является то, что между графиками есть промежутки, а также промежутки между значениями страт.
Во втором подходе я делаю ось x таблиц рисков. как element_blank () и попытайтесь добавить новый ggsurvplot с осью x внутри. Однако эта фигура имеет такой же размер, что и другие, и поэтому не является хорошим представлением.
Вот макет, который мне нужен
Вот пример моего кода:
require(survival)
km = survfit(Surv(time, status) ~ sex, data=lung)
p = ggsurvplot(
km,
########## plot #########,
size = 3,
fun="event",
xlab = "",
legend = 'none',
legend.labs = c("Control", "Intervention"),
ylab = 'Cumumative probability of',
font.tickslab = c(14, "plain", "black"),
########## sensor #########
censor.size = 0.5,
censor.shape = '|',
########## risk table #########
risk.table = TRUE,
risk.table.y.text.col = T,
risk.table.title = "",
risk.table.height = 0.19,
palette = c('#5dbcd2','#f54800')
)
########## risk table #########,
p$table = p$table + labs(x = NULL
,y = NULL
,title = NULL
,subtitle = NULL) + theme(axis.line.y = element_blank()
,axis.line.x = element_blank()
,axis.text.x.bottom = element_blank()
,axis.text.x.top = element_blank()
,axis.text.y.left = element_text(hjust = 1, size = 14, face = 'bold', family = 'serif'))
p$table = ggpar(p$table, ticks = FALSE)
########## plot #########,
p$plot = p$plot + labs(x = NULL
,y = 'Cumulative probability of'
,title = 'TITLE') + theme(axis.line.y = element_line(size = 0.5, colour = "black")
,axis.line.x = element_line(size = 0.5, colour = "black")
,axis.title.y.left = element_text(hjust = 0.5, vjust = -6, size = 16, family = 'serif')
,axis.text.x.bottom = element_blank()
,plot.title = element_text(hjust = 0.5, size = 16, family = 'serif'))
p$plot = ggpar(p$plot,
font.xtickslab = c(13, "plain", "black"),
font.ytickslab = c(13, "plain", "black"))
require(gridExtra)
jpeg("Figure.jpg",1920*1.1,1080*3*1.1,res=250)
splots <- list()
splots[[1]] <- p
splots[[2]] <- p
splots[[3]] <- p
# Arrange multiple ggsurvplots and print the output
arrange_ggsurvplots(splots, print = TRUE,
ncol = 1,
nrow = 3,
)
Спасибо за ваше время, и я с нетерпением жду вашего чтения. Это определенно полезное представление !!!
С уважением,
Хай