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

使用scale_linetype_manual添加线型图例失效求助

解决ggplot图例不显示问题

问题出在你没有把linetype作为映射变量放入aes()中,而是直接在geom_line里设置参数,ggplot无法识别需要生成图例。以下是修正后的代码:

plot <- data_this_shop %>%
  ggplot(aes(x=id, y= price)) +
  geom_point(size = 1.5) +
  # 把linetype放入aes,指定对应图例标签
  geom_line(aes(y=mean(price), linetype = "Mean price")) +
  geom_line(data = data_other_shops, aes(x=id, y=lower_95, linetype = "95% CI")) +
  geom_line(data = data_other_shops, aes(x=id, y=upper_95, linetype = "95% CI")) +
  # 对应标签设置线型
  scale_linetype_manual(
    values = c("Mean price" = "dashed", "95% CI" = "solid"),
    labels = c("Mean price", "95% CI")
  )

关键说明:

  • 所有需要在图例中展示的线型,必须将linetype定义在aes()内部,绑定对应的标签文本
  • scale_linetype_manual的values参数通过键值对,把标签和具体线型绑定,确保对应关系正确
  • 两条实线使用同一个标签,图例中只会显示一个"95% CI"的条目,符合你的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 01:15:46