在 R 中为 ggplot2 中的两个变量制作分箱散点图

3 plot r ggplot2

我有两列的数据帧xy每个包含0和100之间的值(数据被配对)。我想使用分箱散点图将它们相互关联。如果我要使用常规散点图,则很容易做到:

geom_point(aes(x=x, y=y))
Run Code Online (Sandbox Code Playgroud)

但我想将点从 0 到 100 分箱到 N 个分箱中,获得x每个分箱中 的平均值和y该分箱中点的平均值,并将其显示为散点图 - 因此关联分箱平均值而不是原始数据点。

有一个聪明/快捷方式GGPLOT2做到这一点,使用的某种组合geom_smooth()geom_point?还是必须手动预先计算然后绘制?

rob*_*ust 8

是的,您可以使用stat_summary_bin.

set.seed(42)
x <- runif(1e4)
y <- x^2 + x + 4 * rnorm(1e4)
df <- data.frame(x=x, y=y)

library(ggplot2)
(ggplot(df, aes(x=x,y=y)) +
  geom_point(alpha = 0.4) +
  stat_summary_bin(fun.y='mean', bins=20,
                   color='orange', size=2, geom='point'))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明