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)
我想用点/点/圆创建一个图(例如,使用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)