首页 > 解决方案 > 如何在ggplot的回归线图上添加某些圆圈

问题描述

在此处输入图像描述

  1. 图片上的线是加权最小二乘趋势线,我打算用ggplot来画。

  2. 圆心的纵坐标是Y轴值(“CHD的HR……”);

我们可以在图中看到十个不同的圆圈,因为有十个不同的“HR”值,并且每组数据点都有相同的 Y 值(总共 10 组数据点)。

【对不起,我刚才犯了一个错误!也许圆心的横坐标是一组数据点的X值的平均值?】</p>

3.圆的大小取决于样本的大小。

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))

只需使用这些数据进行测试。我已经知道如何在 ggplot 中绘制加权最小二乘趋势线,但是如何添加 8 个圆圈(测试数据中有 8 个不同的“y”值)。

标签: rggplot2linear-regression

解决方案


您可以在原始图上添加第二个图。

假设您有第三个变量名为samp. 您将使用geom_point并将size美学设置为等于样本大小。

我不确定您将如何输入 WLS 预测的数据,但要添加您要添加​​的圆圈:

library(ggplot2)
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)
)

df <- df %>%
    group_by(y) %>%
    add_count() %>%
    summarise(across(everything(), mean))

ggplot(df, aes(x = x, y = y, size = n)) +
    geom_point(shape = 21) +
    geom_smooth(method = "lm", mapping = aes(weight = n),
                color = "red")

推荐阅读