我有两列的数据帧x和y每个包含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?还是必须手动预先计算然后绘制?
是的,您可以使用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)