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

如何在ggplot的加权最小二乘趋势线图上按Y分组添加指定圆点

操作方法

你需要先对原始数据按y值分组汇总,得到每个y对应的组内x平均值和组样本量,再在ggplot中新增单独的点图层调用汇总后的数据即可,完整代码示例如下:

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

# 原始测试数据
df <- data.frame(
  y = c(1, 1, 2, 2, 2, 3, 4, 4, 4, 4, 5, 5, 6, 6, 7, 8),
  x = c(48, 78, 72, 70, 66, 92, 93, 75, 75, 80, 95, 97, 90, 96, 99, 99)
)

# 按y分组汇总得到点的坐标、大小映射数据
df_point <- df %>%
  group_by(y) %>%
  summarise(
    x_avg = mean(x), # 点横坐标:对应分组x的平均值
    group_n = n() # 点大小:对应分组的样本量
  )

# 绘图
ggplot(df, aes(x = x, y = y)) +
  # 此处可替换为你自己的加权最小二乘趋势线代码
  geom_smooth(method = "lm", aes(weight = group_n), se = F, data = df_point, color = "blue") +
  # 添加需求的圆点
  geom_point(data = df_point, aes(x = x_avg, y = y, size = group_n), 
             shape = 21, fill = "white", color = "black") +
  # 可自定义圆点的大小范围,按需调整
  scale_size_continuous(range = c(2, 8))

参数说明

  • shape=21指定绘制带边框的圆点,和参考图样式一致,你可以根据需求修改填充色fill、边框色color参数
  • scale_size_continuous的range参数控制最小和最大圆点的尺寸,可根据你的出图需求调整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 23:36:00