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

R ggplot2保留分组着色时如何添加全量数据拟合平滑线

实现方法

你当前代码会生成多条分组平滑线,是因为colour = cyl和group = cyl被定义在了ggplot()的全局美学映射中,所有图层默认都会继承该规则按气缸数分组渲染。可以通过以下两种方案实现需求:

方案1:拆分美学映射

把分组着色的规则仅作用于散点图层,平滑线默认使用全局无分组的映射:

df <- mtcars
df$cyl <- factor(df$cyl)

ggplot(df, aes(x = mpg, y = disp)) + 
  geom_point(aes(colour = cyl, group = cyl), size = 5) + 
  geom_smooth()

方案2:平滑线图层强制覆盖分组规则

如果不想修改原有全局映射,可在平滑线图层单独指定group = 1,强制使用全量数据集拟合,还可自定义线的颜色避免和分组点颜色混淆:

df <- mtcars
df$cyl <- factor(df$cyl)

ggplot(df, aes(x = mpg, y = disp, colour = cyl, group = cyl)) + 
  geom_point(size = 5) + 
  geom_smooth(aes(group = 1), colour = "black")

最终效果如下图:
按分组着色的散点加全局平滑线

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 05:12:03