对于每一次治疗tmt,我想用stat_summary在ggplot2中绘制不同颜色大小的方法。我发现有多个意思被绘制在当前的点之上。不知道该怎么纠正。
df <- data.frame(x = rnorm(12, 4,1), y = rnorm(12, 6,4), tmt = rep(c("A","B","C"), each = 4))
ggplot(aes(x = x, y = y, fill = tmt), data = df) +
geom_point(shape=21, size=5, alpha = 0.6) +
scale_fill_manual(values=c("pink","blue", "purple")) +
stat_summary(aes(fill = tmt), fun = 'mean', geom = 'point', size = 5) +
scale_fill_manual(values=c("pink","blue", "purple"))在没有最后两行代码的情况下绘制

用整个代码绘制

发布于 2022-07-01 23:40:44
使用stat_summary,您可以计算每对x和tmt的平均值。如果您想要x的平均值和每个tmt的平均值,我建议手动计算ggplot之外的平均值,并使用第二个geom_point来绘制平均值。在下面的代码中,我增加了大小,并使用矩形表示:
df <- data.frame(x = rnorm(12, 4,1), y = rnorm(12, 6,4), tmt = rep(c("A","B","C"), each = 4))
library(ggplot2)
library(dplyr)
df_mean <- df |>
group_by(tmt) |>
summarise(across(c(x, y), mean))
ggplot(aes(x = x, y = y, fill = tmt), data = df) +
geom_point(shape=21, size=5, alpha = 0.6) +
geom_point(data = df_mean, shape=22, size=8, alpha = 0.6) +
scale_fill_manual(values=c("pink","blue", "purple"))

https://stackoverflow.com/questions/72822503
复制相似问题