【问题标题】:How to replicate plot with two panels?如何用两个面板复制情节?
【发布时间】:2021-07-20 00:53:56
【问题描述】:

我正在尝试复制这个情节,在这里:

这是这个情节的来源,幻灯片 89:

http://www.drizopoulos.com/courses/Int/JMwithR_CEN-ISBS_2017.pdf

图的顶部是随时间变化的风险函数,而底部绿色曲线是随时间变化的拟合线性混合效应模型。

我已经能够分别绘制这两个,但是,似乎无法使用 par(mfrow=c(2,1)) 或 gridExtra 包将它们组合起来(因为只有一个是 ggplot 对象)。

我在 R 中使用 aids 和 aids.id 数据集(作为 JM 包的一部分)。


# Load packages JM and lattice
library("JM")
library("lattice")
library("ggplot2")

#Fit models
lmeFit.aids <- lme(CD4 ~ obstime + obstime:drug,
    random = ~ obstime | patient, data = aids)

coxFit.aids <- coxph(Surv(Time, death) ~ drug, data = aids.id, x = TRUE)

#Plot longitudinal process
p1<-ggplot(data=aids,aes(x=obstime,y=fitted(lmeFit.aids)))
p1<-p1+geom_smooth(se=FALSE)
p1

#Plot survival process 
library(rms)
p2<-psm(Surv(Time,death)~1,data=aids.id)
survplot(p2,what='hazard')


谢谢!

【问题讨论】:

  • 如果没有您的data,如果我们自己的数据不能充分代表您的结构,我们就没有什么可以提出的建议。以下链接有几个很好的建议可以使问题可重现,即使用dput(x) 提供明确的样本数据。谢谢! stackoverflow.com/q/5963269minimal reproducible examplestackoverflow.com/tags/r/info
  • @r2evans,感谢您的评论。我已经相应地更新了我的问题。我正在使用“aids”和“aids.id”数据作为 JM 包的一部分。
  • (我有点惊讶JM 通过了 CRAN 的测试:它没有在DESCRIPTION 中列出任何导入的包,我认为这是一个严格的要求。)
  • 我分别加载了nlmesurvival 包以获取lmecoxph,但我无法生成p1 情节,抱怨:x has insufficient unique values to support 10 knots: reduce k。我可以用jitter (stackoverflow.com/questions/30208670/…) 来解决它,但这与你所拥有的任何一个情节都相去甚远。
  • 但是,您问到有关将 ggplot 和基本图形结合起来的问题,也许我的回答有帮助?

标签: r ggplot2 plot mixed-models survival-analysis


【解决方案1】:

在前面,patchwork 允许您将ggplot2 和基本图形组合到一个绘图中。改编自?wrap_elements

library(ggplot2)
library(patchwork)
gg <- ggplot(mtcars, aes(mpg, disp)) + geom_point()
gg / wrap_elements(full = ~ plot(mtcars$mpg, mtcars$disp))

【讨论】:

  • 成功了,谢谢!我还想出了另一个解决方案,我在下面发布了。
【解决方案2】:

我能够使用survest() 函数在不同时间点提取危害值。然后,我可以使用ggplot 进行绘制,这意味着我可以使用grid.arrange()

est<-survest(p2,,what='hazard')
hazard<-data.frame(time=est$time, hazard=est$surv)

【讨论】:

  • grid.arrange 有效。我发现 patchwork 提供所有相同的选项以及更多选项,以防您正在寻找更多选项。
猜你喜欢
  • 2014-10-11
  • 2023-02-16
  • 2016-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-18
  • 1970-01-01
相关资源
最近更新 更多