You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为list对象生成的check_model绘图添加模型标题?

解决方案

先修正原代码里的两处小问题:

  • library(ggplot) 应为 library(ggplot2)
  • head("mtcars") 应为 head(mtcars)(加引号会把数据框名当成字符串处理,无法查看数据内容)

要给每个模型的诊断图组添加标题,核心是利用带名称映射的函数获取每个模型对应的分组标签,再通过patchwork专属的注释函数给组合图加标题(直接用labs对check_model() |> plot()返回的组合图不生效,因为这是多个ggplot拼接成的patchwork对象)。

修改后的完整代码:

library(patchwork)
library(performance)
library(ggplot2)

data("mtcars")
head(mtcars)

# 按cyl分组生成模型,保留分组名称
the_models <- 
  split(mtcars, mtcars$cyl) |>
  purrr::imap(.f = ~ lm(mpg ~ hp + wt, data = .x))

# 生成带标题的诊断图组
the_plots <- 
  the_models |>
  purrr::imap(.f = ~ check_model(.x) |>
               plot() +
               plot_layout(ncol = 6, nrow = 1) +
               # 添加对应模型的标题
               plot_annotation(title = paste("Diagnostic Plots: Model for", .y, "Cylinders"))
      )

# 纵向拼接所有图组
the_plots |> Reduce(f = `/`)

关键说明

  • 用imap替代Map:imap会同时传递模型对象(.x)和对应的分组名称(.y,即3、4、6),直接拿到每个模型的标题标识。
  • plot_annotation():这是patchwork专为组合图设计的注释工具,能给整组诊断图添加统一标题,完美适配check_model生成的多图组合结构。
  • 标题文本可按需自定义,比如改成paste("Cylinder Type:", .y)这类更简洁的表述。

内容的提问来源于stack exchange,提问作者bison2178

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 14:40:01