r-每个点(而非单个数据点)的散点图汇总统计(例如总和或平均值)

r-每个点(而非单个数据点)的散点图汇总统计(例如总和或平均值),r,ggplot2,dplyr,R,Ggplot2,Dplyr,我正在寻找一种在ggplot调用中汇总数据的方法,而不是以前。我可以预先聚合数据,然后进行绘图,但我知道有一种方法可以在ggplot调用中完成。我只是不知道怎么做 在本例中,我希望获得每个(x,y)组合的平均值,并将其映射到颜色aes library(tidyverse) df <- tibble(x = rep(c(1,2,4,1,5),10), y = rep(c(1,2,3,1,5),10), col = sample(c(1

我正在寻找一种在
ggplot
调用中汇总数据的方法,而不是以前。我可以预先聚合数据,然后进行绘图,但我知道有一种方法可以在
ggplot
调用中完成。我只是不知道怎么做


在本例中,我希望获得每个(x,y)组合的平均值,并将其映射到
颜色
aes

library(tidyverse)

df <- tibble(x = rep(c(1,2,4,1,5),10), 
             y = rep(c(1,2,3,1,5),10),
             col = sample(c(1:100), 50))

df_summar <- df %>% 
  group_by(x,y) %>% 
  summarise(col_mean = mean(col))

ggplot(df_summar, aes(x=x, y=y, col=col_mean)) +
  geom_point(size = 5)
我想要相同的,但是
mean
而不是
count
,并且
col
而不是
size



我猜我需要
stat\u summary()
stat()
调用(替换..xxx..notation),但我无法得到它来满足我的需要。

您需要
stat\u summary\u 2d

ggplot(df, aes(x, y, z = col)) +
  stat_summary_2d(aes(col = ..value..), fun = 'mean', geom = 'point', size = 5)
(或
calc(value)
,如果您使用的是ggplot开发版本,或以后阅读。)

您可以将任意函数传递给
fun

虽然
stat\u summary
似乎很有用,但在本例中并非如此。它专门用于绘图的通用转换,将一系列按x分组的
y
值汇总到一组汇总统计数据中,这些统计数据以
y
(,
ymin
ymax
)的形式绘制。您希望同时按x和y进行分组,因此它是二维的

请注意,这使用了装箱,但是,为了使点准确对齐,您需要增加装箱尺寸(例如,增加到
1e3
)。不幸的是,没有非装箱2d摘要统计


有趣!它是有效的,但我有问题:我们只是随机地组成变量
z
?它在任何地方都没有定义。看起来向前看可以用
stat(value)
notation
z
替换
.value..
符号
stat\u summary\u 2d
是公认的美学。所有公认的美学都列在帮助页面上。@Taraas,确实如此,但目前的CRAN版本中还没有。
ggplot(df, aes(x, y, z = col)) +
  stat_summary_2d(aes(col = ..value..), fun = 'mean', geom = 'point', size = 5)