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

如何在ggplot2中无分组无因子按日期绘制多变量并添加图例?

在ggplot2中无需分组/因子实现多变量日期绘图并添加图例

完全可行,不用把数据转换为长格式(即无需分组或因子),通过多次调用geom_line()并手动指定图例映射就能实现。下面是具体示例:

示例代码

首先构造模拟数据:

library(ggplot2)

# 创建宽格式数据(日期+多个变量)
set.seed(123)
df <- data.frame(
  date = seq(as.Date("2023-01-01"), as.Date("2023-01-31"), by = "day"),
  temp_high = rnorm(31, 20, 3),
  temp_low = rnorm(31, 10, 2)
)

然后绘图,无需分组/因子,直接为每个变量单独添加线条并指定图例标签:

ggplot(df, aes(x = date)) +
  # 第一条线,在aes中指定color作为图例标签
  geom_line(aes(y = temp_high, color = "最高气温"), linewidth = 1) +
  # 第二条线,同样在aes中指定color
  geom_line(aes(y = temp_low, color = "最低气温"), linewidth = 1, linetype = "dashed") +
  # 手动设置颜色和图例标题
  scale_color_manual(
    name = "气温类型",
    values = c("最高气温" = "red", "最低气温" = "blue")
  ) +
  labs(x = "日期", y = "气温(℃)") +
  theme_minimal()

原理说明

  • 把color参数放在aes()内部时,ggplot会将其视为一个分类变量,自动生成对应的图例项
  • 通过scale_color_manual()可以自定义图例的标题、标签对应的颜色,完全不需要依赖数据中的分组因子或长格式转换

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 14:50:45