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

如何在R的ggplot2中为同图双折线设置不同颜色与线型?

给折线图添加自定义颜色与线型的解决方案

你已经完成了自定义折线颜色的设置,想要再给两条折线加上不同线型的话,只需要做两处小修改就可以实现啦:

完整可运行代码

# 加载依赖包
library(ggplot2)
library(scales)

# 构建你的数据框
df <- data.frame(
  date = c('2015-11-23','2015-11-24','2015-11-25','2015-11-23','2015-11-24','2015-11-25'),
  variable = c('LCNB', 'LCNB','LCNB','LCDEF','LCDEF','LCDEF'),
  value = c(1,2,3,3,2,1)
)

# 绘制带自定义颜色和线型的折线图
ggplot(df, aes(x = as.Date(date), y = value, color = variable, linetype = variable)) +
  geom_line(size = 1.07) +
  # 自定义颜色映射
  scale_color_manual(labels = c("Nb", "Def"), values = c("#E69F00", "#0072B2")) +
  # 自定义线型映射
  scale_linetype_manual(labels = c("Nb", "Def"), values = c("solid", "dashed")) +
  # 可选:优化图表标签,提升可读性
  labs(
    x = "日期",
    y = "数值",
    color = "变量类型",
    linetype = "变量类型"
  )

关键修改点解释

  • 关联线型与变量:在ggplot的aes映射中加入linetype = variable,让不同的variable类别对应不同的线型
  • 手动指定线型:用scale_linetype_manual来定义每个标签对应的线型,示例里给"Nb"用实线(solid),"Def"用虚线(dashed),你还可以换成dotted(点线)、dotdash(点虚线)等其他样式
  • 优化标签(可选):通过labs函数统一修改坐标轴和图例的标签,让图表的表意更清晰,尤其是给图例设置统一的名称,避免出现两个分开的图例

这样最终生成的图表会同时用颜色和线型来区分两条折线,哪怕是黑白打印也能清楚分辨不同的系列~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:56:37