首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在R ggplot2中绘制散射点的stat_mean?

如何在R ggplot2中绘制散射点的stat_mean?
EN

Stack Overflow用户
提问于 2022-06-30 22:03:39
回答 1查看 61关注 0票数 1

对于每一次治疗tmt,我想用stat_summary在ggplot2中绘制不同颜色大小的方法。我发现有多个意思被绘制在当前的点之上。不知道该怎么纠正。

代码语言:javascript
复制
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"))

在没有最后两行代码的情况下绘制

用整个代码绘制

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-01 23:40:44

使用stat_summary,您可以计算每对xtmt的平均值。如果您想要x的平均值和每个tmt的平均值,我建议手动计算ggplot之外的平均值,并使用第二个geom_point来绘制平均值。在下面的代码中,我增加了大小,并使用矩形表示:

代码语言:javascript
复制
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"))

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72822503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档