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

在R语言中不使用ggplot如何绘制多系列折线图?

R绘制多类别联系量折线图实现方法

你可以根据自己手里的长表/宽表数据选择对应实现方案:


前置注意事项

  1. 转换日期格式时务必指定格式参数,避免R识别错误:as.Date(日期列, format = "%m/%d/%Y")
  2. 你提供的宽表中2012年4月的日期和长表原始数据不一致,绘图前请核对数据准确性
  3. 多系列绘图需要提前设置Y轴范围,避免后续添加的折线超出绘图区域

方案1:基于原始长表的基础R实现

无需转换宽表,直接过滤出需要的三个类别绘图即可:

# 1. 预处理日期列
df_long$Date <- as.Date(df_long$Date, format = "%m/%d/%Y")
# 2. 拆分三个类别的数据
email_dat <- df_long[df_long$Action == "Email", ]
text_dat <- df_long[df_long$Action == "Text", ]
phone_dat <- df_long[df_long$Action == "Phone Call", ]

# 3. 绘制第一个折线(Email),同时设定好Y轴范围
plot(email_dat$Date, email_dat$Daily.Contact, 
     type = 'l', lwd = 2, col = "#E41A1C",
     xlab = "日期", ylab = "每日联系量",
     ylim = range(c(email_dat$Daily.Contact, text_dat$Daily.Contact, phone_dat$Daily.Contact)))
# 4. 添加剩余两个折线
lines(text_dat$Date, text_dat$Daily.Contact, lwd = 2, col = "#377EB8")
lines(phone_dat$Date, phone_dat$Daily.Contact, lwd = 2, col = "#4DAF4A")
# 5. 添加图例
legend("topright",
       legend = c("Email", "短信", "电话"),
       col = c("#E41A1C", "#377EB8", "#4DAF4A"),
       lwd = 2)

方案2:基于处理后宽表的基础R实现

如果已经完成长表转宽表,可以直接调用对应列绘图:

# 1. 预处理日期列
df_wide$Date <- as.Date(df_wide$Date, format = "%m/%d/%Y")

# 2. 绘制第一个折线(Email),同时设定好Y轴范围
plot(df_wide$Date, df_wide$Email, 
     type = 'l', lwd = 2, col = "#E41A1C",
     xlab = "日期", ylab = "每日联系量",
     ylim = range(c(df_wide$Email, df_wide$Text, df_wide$`Phone Call`)))
# 3. 添加剩余两个折线
lines(df_wide$Date, df_wide$Text, lwd = 2, col = "#377EB8")
lines(df_wide$Date, df_wide$`Phone Call`, lwd = 2, col = "#4DAF4A")
# 4. 添加图例
legend("topright",
       legend = c("Email", "短信", "电话"),
       col = c("#E41A1C", "#377EB8", "#4DAF4A"),
       lwd = 2)

方案3:ggplot2实现(代码更简洁)

推荐用长表输入,无需手动拆分数据,自动生成图例:

library(ggplot2)

ggplot(df_long[df_long$Action != "All", ], # 过滤不需要的All类别
       aes(x = as.Date(Date, format = "%m/%d/%Y"),
           y = Daily.Contact,
           color = Action,
           group = Action)) +
  geom_line(linewidth = 2) +
  labs(x = "日期", y = "每日联系量", color = "联系类型") +
  theme_minimal()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 20:15:00