如何在R语言中基于数据框绘制带颜色与图例的多折线图
用ggplot绘制多指标时间序列折线图(带图例和月份缩写x轴)
步骤1:数据预处理
首先需要把宽格式数据转换为长格式(ggplot对长数据支持更好,方便用颜色区分不同测试指标),同时确保Date列是标准日期格式:
# 加载所需工具包 library(ggplot2) library(dplyr) library(tidyr) # 转换Date列为日期格式(若未转换) DatProv$Date <- as.Date(DatProv$Date, format = "%Y-%m-%d") # 宽格式转长格式 DatProv_long <- DatProv %>% pivot_longer(cols = starts_with("Test"), names_to = "Test_Indicator", values_to = "Value")
步骤2:绘制折线图
用ggplot构建折线图,通过颜色区分测试指标,同时设置x轴显示月份缩写:
ggplot(DatProv_long, aes(x = Date, y = Value, color = Test_Indicator)) + geom_line(linewidth = 1) + # 设置折线粗细 scale_x_date(date_labels = "%b", # 显示Feb、Mar这类月份缩写 date_breaks = "1 month") + # 按月份分隔x轴刻度 scale_color_manual(values = c("Test1" = "#1f77b4", "Test2" = "#ff7f0e", "Test3" = "#2ca02c")) + # 自定义各指标颜色 labs(title = "测试指标随日期变化趋势", x = "日期", y = "指标值", color = "测试指标") + # 设置标题、坐标轴及图例标签 theme_minimal() # 使用简洁风格主题
关键说明
- 宽转长:
pivot_longer将Test1/Test2/Test3合并为Test_Indicator(标识指标类型)和Value(对应数值)两列,让ggplot能通过color映射自动生成图例。 - x轴格式:
scale_x_date的date_labels = "%b"控制月份缩写显示,date_breaks保证每个月显示一个刻度。 - 颜色自定义:
scale_color_manual可替换为你偏好的颜色代码。
内容的提问来源于stack exchange,提问作者doloresafwat
相关产品推荐
相关产品推荐

