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

如何用R的ggplot2将三个CSV文件的数据绘制成单图多折线?

如何将多组CSV数据的折线合并到同一张ggplot图表中?

嘿,我明白你想要啥——把三个CSV里的折线都放到同一张图里,每条线还得有不同颜色对吧?原来的代码是分开画三个图再拼在一起,其实有更简洁高效的办法:先把数据整合到一块儿,再用ggplot一次性绘制,这样不仅能实现同图展示,还能自动生成清晰的图例,对比数据趋势也更直观。

核心思路:先整合数据,再统一绘图

ggplot最适合处理长格式数据,所以我们先给每个数据集加一个分组标识,然后把它们合并成一个数据框,最后用分组字段来区分折线颜色。

完整代码示例(推荐用dplyr简化操作)

# 先安装需要的包(如果没装过的话)
# install.packages(c("ggplot2", "dplyr"))

library(ggplot2)
library(dplyr)

# 读取数据,并为每个数据集添加专属分组标签
A <- read.csv(file='m-r1-g.csv', header=TRUE, sep=";") %>% mutate(group = "数据集A")
B <- read.csv(file='m-r1-w.csv', header=TRUE, sep=";") %>% mutate(group = "数据集B")
C <- read.csv(file='m-r1-h.csv', header=TRUE, sep=";") %>% mutate(group = "数据集C")

# 合并三个数据框(bind_rows会自动对齐列,比基础R的rbind更灵活)
combined_data <- bind_rows(A, B, C)

# 绘制合并后的折线图
ggplot(combined_data, aes(x = tiempo, y = costo)) +
  geom_line(aes(colour = group), linewidth = 1) +  # 用group字段区分每条线的颜色
  labs(
    title = "Costo随Tiempo变化趋势对比",
    x = "Tiempo",
    y = "Costo",
    colour = "数据分组"  # 自定义图例标题
  ) +
  scale_colour_manual(values = c("数据集A" = "#E63946", "数据集B" = "#457B9D", "数据集C" = "#1D3557"))  # 自定义颜色(可选)

代码细节解释

  1. 添加分组标识:用dplyr::mutate()给每个数据框加一个group列,这样合并后能清楚知道每条数据属于哪一组,这是实现同图多折线的关键。
  2. 合并数据:bind_rows()比基础R的rbind()更友好,就算三个数据框的列顺序不一样也能自动对齐,避免出错。
  3. 绘图设置:把colour参数映射到group字段,ggplot会自动为每个分组分配不同颜色;如果不满意默认配色,用scale_colour_manual()可以自定义你喜欢的颜色值。
  4. 优化可读性:通过labs()添加标题、坐标轴标签和图例标题,让图表更易理解。

不用dplyr的基础R版本

要是你不想额外安装dplyr,用基础R也能实现同样效果:

library(ggplot2)

# 读取数据并手动添加分组
A <- read.csv(file='m-r1-g.csv', header=TRUE, sep=";")
A$group <- "数据集A"
B <- read.csv(file='m-r1-w.csv', header=TRUE, sep=";")
B$group <- "数据集B"
C <- read.csv(file='m-r1-h.csv', header=TRUE, sep=";")
C$group <- "数据集C"

# 合并数据
combined_data <- rbind(A, B, C)

# 绘制折线图
ggplot(combined_data, aes(x = tiempo, y = costo, colour = group)) +
  geom_line(linewidth = 1) +
  labs(title = "三组数据趋势对比", x = "Tiempo", y = "Costo", colour = "数据分组")

这样就能把三条折线完美放到同一张图里,每条线颜色不同,还自带清晰的图例,比原来的多图排列更适合展示数据的对比趋势~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 10:09:13