0

我的日记需要用面板标记组合图表。执行以下操作只会给我“A”标签。

library(ggResidpanel); library(patchwork)


penguin_model <- lme4::lmer(heartrate ~ depth + duration + (1|bird), data = penguins)
penguin_model_log2 <- lme4::lmer(log(heartrate) ~ depth + duration + I(duration^2) +
(1|bird), data = penguins)

resid_compare(list(penguin_model, penguin_model_log2)) + labs(tag = list("A" , "B" )) 

切换到labs(tag = c("A" , "B" ))并不能解决问题。

在此处输入图像描述

绘制每个诊断图并将它们组合起来返回我需要的东西。我可以做2 个诊断面板,但如果我有 6 个面板要显示,那么patchwork能够在其中使用单行命令会很好。resid_compare

A <- resid_panel(penguin_model, nrow = 4) + labs(tag = "A")
 
B <- resid_panel(penguin_model_log2, nrow = 4) + labs(tag = "B")

A | B

在此处输入图像描述

注意:图像在这里看起来很混乱,但在针织 pdf 中看起来还不错。

任何帮助深表感谢。

4

1 回答 1

1

不是单行,而是一种选择是将您的模型放在一个列表中,用于lapply为每个模型制作图,用于patchwork::wrap_plots将它们粘合在一起并用于patchwork::plot_annotation添加标签:

library(ggResidpanel)
library(patchwork)
library(magrittr)

penguin_model <- lme4::lmer(heartrate ~ depth + duration + (1|bird), data = penguins)
penguin_model_log2 <- lme4::lmer(log(heartrate) ~ depth + duration + I(duration^2) +
                                   (1|bird), data = penguins)

list(penguin_model, penguin_model_log2) %>% 
  lapply(resid_panel, nrow = 4) %>% 
  wrap_plots() +
  plot_annotation(tag_levels = "A")

于 2021-08-10T06:16:55.847 回答