geom_point 的美学论据摘要统计

Summary statistics as aesthetics argument for geom_point

我想用点/点/圆创建一个图(例如,使用geom_point()

虚拟数据:

tp = c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L)
value = c(-0.602414496676874, -0.602414496676874, -0.602414496676874, -0.602414496676874, 
          -1.43908106523151, -1.43908106523151, -1.43908106523151, -1.43908106523151, 
          -2.19530757454171, -2.19530757454171, -1.90848346932521, -2.19530757454171, 
          -1.01688680882049, -0.26861160987711, -2.26401214039278, -2.26401214039278, 
          -2.40645987252632, -1.89777729784596, -2.40645987252632, -2.40645987252632)
x = c(0, 0, 0, 0, 1, 1, 1, 1, 0.866025403784439, 0.866025403784439, 0.866025403784439,
      0.866025403784439, 0.5, 0.5, 0.5, 0.5, 0, 0, 0, 0)
y = c(0, 0, 0, 0, 0, 0, 0, 0, 0.5, 0.5, 0.5, 0.5, 0.866025403784439, 0.866025403784439, 
      0.866025403784439, 0.866025403784439, 1, 1, 1, 1)

dat = data.frame (tp, x, y, value)

关于数据:它包含地图上特定位置 (tp) 的测量值,具有离散坐标 x / y。数据固有的是那些测试点 (tp) 上的许多测量值的重叠。 我现在想做的是将平均值/中位数/标准差等汇总统计数据映射到这些坐标。

解决方案 A(给出所需结果): 我当然可以创建一个摘要数据框并通过管道传输到我的绘图中。

require(dplyr)
require(ggplot2)
dat %>% group_by(x, y) %>% summarise(mean = mean(value)) %>%
  ggplot(aes(x, y, color = mean)) + geom_point() 

但我很好奇 ggplot 中是否有任何 geom_... 允许更直接的 'stats mapping'.

例如 stat_summary_2d(不是我想要的):这可能是朝着这个方向发展的,但我没有找到修改形状的方法生成的矩形/六边形。

ggplot(dat, aes(x,y, z = value)) + stat_summary_2d(fun = 'mean') #or stat_summary_hex()

我的问题 有没有什么方法可以直接用 stat 函数汇总变量并将其用作美学调用中的参数?我愿意接受任何允许创建点/点的几何图形。干杯

P.S。我知道这个问题可能是重复的。如果你找到它,请告诉我。我没有。谢谢。

只需将几何图形指定为点,并将其形状更改为 21-24 范围内的填充图形。

ggplot(dat, aes(x, y, z = value))+
stat_summary_2d(fun = 'mean', geom='point', size=5, shape=21)