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

如何在R中将不同数据框的多模型预测图合并至同一画布?

解决方法:合并预测数据后重新绘图

你之前用plot_model生成的每个绘图对象都内置了预测数据,我们可以提取这些数据并添加年份标识,合并后用ggplot统一绘制,就能得到包含5条不同颜色趋势线的单图。

步骤1:提取并整理预测数据

首先加载dplyr包处理数据,然后提取每个绘图对象的底层数据,添加年份标签后合并:

library(dplyr)

# 提取各年份模型的预测数据,添加年份列
data_2015 <- plot1$data %>% mutate(Year = "2015")
data_2016 <- plot2$data %>% mutate(Year = "2016")
data_2017 <- plot3$data %>% mutate(Year = "2017")
data_2018 <- plot4$data %>% mutate(Year = "2018")
data_2019 <- plot5$data %>% mutate(Year = "2019")

# 合并所有数据
combined_data <- bind_rows(data_2015, data_2016, data_2017, data_2018, data_2019)

步骤2:绘制合并后的趋势图

用ggplot基于合并数据绘图,按年份区分颜色,统一设置坐标轴:

library(ggplot2)

ggplot(combined_data, aes(x = Level2, y = predicted, color = Year)) +
  geom_point() +
  geom_line() +
  scale_y_continuous(limits = c(0, 0.40), breaks = seq(0, 0.40, 0.05)) +
  labs(x = "Level2", y = "预测值", color = "年份") +
  theme_minimal()

可选:添加置信区间

如果需要展示预测值的置信区间,可加入geom_ribbon图层:

ggplot(combined_data, aes(x = Level2, y = predicted, color = Year, fill = Year)) +
  geom_ribbon(aes(ymin = conf.low, ymax = conf.high), alpha = 0.2, color = NA) +
  geom_point() +
  geom_line() +
  scale_y_continuous(limits = c(0, 0.40), breaks = seq(0, 0.40, 0.05)) +
  labs(x = "Level2", y = "预测值", color = "年份", fill = "年份") +
  theme_minimal()

核心逻辑

plot_model生成的ggplot对象中,data属性存储了预测值(predicted列)、自变量(Level2列)及置信区间(conf.low/conf.high列),直接提取即可复用;通过Year列区分不同年份的模型数据,ggplot会自动分配不同颜色实现分组对比。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 09:42:55