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

如何在ggplot2中叠加绘制两个DataFrame的折线图?

解决方法

有两种常用方式可以把df_combined1的折线添加到原有分面图中:

方法一:合并数据集后统一绘图(推荐)

这种方式更贴合ggplot的语法设计,方便后续统一控制样式:

  1. 给两个数据集分别添加标记列,区分原数据与新数据
  2. 合并两个数据集
  3. 绘图时用标记列映射颜色/线型,实现线条区分

代码示例:

# 给原数据和新数据添加区分标记
df_combined$Data <- "原数据"
df_combined1$Data <- "新数据"
# 合并两个数据集
df_all <- rbind(df_combined, df_combined1)

# 绘制分面折线图,用Data列区分线条样式
ggplot(df_all, aes(x = X1, y = X2, group = Data, color = Data, linetype = Data)) +
  geom_line() +
  theme_bw() +
  facet_grid(rows = vars(Source)) +
  labs(color = "数据来源", linetype = "数据来源") # 自定义图例标题

方法二:直接追加图层

如果不想合并数据集,可以直接在原有绘图代码后添加一层geom_line,指定使用df_combined1的数据,并设置不同样式区分:

代码示例:

# 在原有绘图基础上新增图层
ggplot(df_combined, aes(x = X1, y = X2, group = 1)) + 
  geom_line(color = "black") + # 原数据线条
  geom_line(data = df_combined1, aes(x = X1, y = X2, group = 1), color = "red", linetype = "dashed") + # 新数据线条
  theme_bw() +
  facet_grid(rows = vars(Source))

两种方法都能实现需求,方法一更便于统一管理数据和样式,方法二更适合快速临时添加图层。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 22:07:11