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

ggplot折线与平滑曲线颜色及形状设置问题求助

解决方案

你的代码无法按分组设置颜色和形状,核心问题是未将color、shape美学映射到分组字段,且误用了填充色相关的刻度函数,以下是修正方案:

修正后的代码

data3 |> 
  ggplot(aes(x = age, 
             group = factor(healthy), 
             color = factor(healthy), 
             shape = factor(healthy))) +
  geom_smooth(aes(y = col1)) +
  geom_point(aes(y = col21)) +
  scale_color_lancet() +
  scale_color_discrete(labels = c("Healthy", "Sick", "SCI")) +
  scale_shape_discrete(labels = c("Healthy", "Sick", "SCI")) +
  labs(color = "健康状态", shape = "健康状态") # 可选:自定义图例标题

关键修改说明

  • 在全局aes中添加color = factor(healthy)和shape = factor(healthy),让平滑曲线和点都按分组区分颜色与形状
  • 将scale_fill_lancet()替换为scale_color_lancet():geom_smooth的线条颜色、geom_point的点颜色都使用color美学,而非填充色fill
  • 用scale_color_discrete()和scale_shape_discrete()统一设置图例标签,保证两个图例的分组名称一致
  • 若需要点的填充色也区分(比如使用带填充的形状如shape=21),可在全局aes中额外添加fill = factor(healthy),并保留scale_fill_lancet()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 06:15:10