如何用survminer的arrange_ggsurvplots组合ggsurvplot与ggadjustedcurves?
解决arrange_ggsurvplots组合ggsurvplot与ggadjustedcurves的报错问题
问题原因
arrange_ggsurvplots()函数仅接受ggsurvplot类对象作为输入,但ggadjustedcurves()返回的是标准ggplot对象,不属于ggsurvplot类,因此触发An object of class ggsurvplot is required.错误。
解决方案
提供两种可行的解决方式:
方法1:将ggplot对象包装为ggsurvplot结构
ggsurvplot本质是包含plot元素的列表,手动给ggplot对象套上该结构即可:
# 把ggadjustedcurves的结果包装成ggsurvplot格式 p2_wrap <- list(plot = p2) class(p2_wrap) <- "ggsurvplot" # 执行组合 arrange_ggsurvplots(x = list(p1, p2_wrap))
这种方法可以保留arrange_ggsurvplots()的布局参数(比如调整间距、标题等),适合需要保留ggsurvplot额外元素(如风险表)的场景。
方法2:用gridExtra包直接组合ggplot对象
如果只需要展示绘图区域,直接提取ggsurvplot中的ggplot元素,结合grid.arrange()组合更简单:
library(gridExtra) # 提取p1的ggplot对象,和p2一起排列 grid.arrange(p1$plot, p2, ncol = 2)
内容的提问来源于stack exchange,提问作者Sle R.
相关产品推荐
相关产品推荐

