R 如何在散点图顶部制作单独的平均值、误差条以及如何制作水平平均线?

R 如何在散点图顶部制作单独的平均值、误差条以及如何制作水平平均线?,r,ggplot2,visualization,errorbar,R,Ggplot2,Visualization,Errorbar,我想做一个位置\u减淡散点图,平均值表示为水平线(带误差条) 使用stat\u summary()并使平均值显示为水平线时,我在定位规避平均值和误差条时遇到问题 我想表明男女之间的平均值是不同的。我知道每个小组都有不同的方法,但我不知道如何将其形象化 download.file(url="https://ndownloader.figshare.com/files/2292169", destfile = "~/portal_data_joined.csv") su

我想做一个
位置\u减淡散点图
,平均值表示为水平线(带误差条)

使用
stat\u summary()
并使平均值显示为水平线时,我在
定位规避
平均值和误差条时遇到问题

我想表明男女之间的平均值是不同的。我知道每个小组都有不同的方法,但我不知道如何将其形象化

download.file(url="https://ndownloader.figshare.com/files/2292169",
              destfile = "~/portal_data_joined.csv")

surveys <- read.csv

surveys_cln <- surveys %>% filter(sex=="F"|sex=="M")

ggplot(data = surveys_cln, mapping = aes(x=species_id, y=weight, color=sex))+
  geom_jitter(alpha=.6, position = position_dodge(.5))+
  stat_summary(fun.data = mean_sdl, fun.args = list(mult=1), 
               geom="errorbar", color="red", width=.5, position=position_dodge2(width=.9))
  stat_summary(fun.y=mean, geom="errorbar", color="red", width = .75, linetype = "dashed", position=position_dodge(9))
你能帮我弄一下颜色吗?我想要F=#000000和M=#73000a

另外,是否有办法将平均值可视化为误差条之间的水平条

这是第二次尝试

再次感谢

你需要在你的
geom.*()
中添加
aes(group=sex)

您需要在
geom*()
中添加
aes(group=sex)


虽然@abichat的答案完全正确,但您也可以删除
color=“red”
参数,这会导致
ggplot
无法对数据进行分组


这样,您的绘图将显示颜色良好的错误条(可能会增加其厚度以提高可读性)。

虽然@abichat的答案完全正确,但您也可以删除
color=“red”
参数,这将导致
ggplot
不对数据分组


这样,您的绘图将显示颜色良好的错误条(可能会增加其厚度以提高可读性)。

谢谢!它工作得很好!不管怎样,你都可以把平均值想象为错误栏中间的水平条吗?你可以加上这行:<代码> Stista摘要(Foo.Y= Mead,GeOM=PoT),AES(Group =性),形状=“--”,大小=4,颜色=“蓝色”,位置= PosithyDoGe2(宽度=5))< /代码>再次感谢。你能看看我的第二次尝试吗?我想用手动颜色表示分散,用黑色表示统计。在我的回答中的代码末尾添加
scale\u color\u手动(values=c(F=“#000000”,M=“#73000a”)
(您混淆了
fill
color
)非常感谢您的帮助!我不知道填充和颜色是两种不同的东西。谢谢!它工作得很好!不管怎样,你都可以把平均值想象为错误栏中间的水平条吗?你可以加上这行:<代码> Stista摘要(Foo.Y= Mead,GeOM=PoT),AES(Group =性),形状=“--”,大小=4,颜色=“蓝色”,位置= PosithyDoGe2(宽度=5))< /代码>再次感谢。你能看看我的第二次尝试吗?我想用手动颜色表示分散,用黑色表示统计。在我的回答中的代码末尾添加
scale\u color\u手动(values=c(F=“#000000”,M=“#73000a”)
(您混淆了
fill
color
)非常感谢您的帮助!我不知道填充和颜色是两种不同的东西。谢谢!你能谈谈如何使这张图更美观吗?我已经更新了它,但我似乎无法添加任何颜色。我想把误差条+平均线变成黑色,散点图变成不同的颜色。谢谢!你能谈谈如何使这张图更美观吗?我已经更新了它,但我似乎无法添加任何颜色。我想把误差条+平均线变成黑色,散点图变成不同的颜色。
  ggplot(data = surveys_cln, mapping = aes(x=species_id, y=weight, fill=as.factor(sex), shape=as.factor(sex)))+

  geom_jitter(alpha=.6, position = position_dodge(.5))+
  stat_summary(aes(group = sex), fun.data = mean_sdl, fun.args = list(mult=1), 
  geom="errorbar", width=.5, position=position_dodge2(width=.9))+
  stat_summary(fun.y=mean, geom="errorbar", width = .75, linetype = "dotted", position=position_dodge(9))+

  scale_fill_manual(values=c("#006D2C","#DEEBF7"))+
  #scale_fill_brewer(palette="Paired")+

  theme_bw()+
  #theme(text=element_text(size=30))+
  theme(#legend.position = "none",
    plot.title = element_blank(),
    panel.grid.major.x = element_blank(),
    axis.title.x = element_text(),
    axis.text.x = element_text(),
    axis.ticks = element_blank(),
    axis.text.y = element_text(size=rel(.7)))
ggplot(data = surveys_cln,
       mapping = aes(x = species_id, y = weight, color = sex)) +
  geom_jitter(alpha = .6, position = position_dodge(.5)) +
  stat_summary(fun.data = mean_sdl, fun.args = list(mult = 1), 
               aes(group = sex), 
               geom = "errorbar", color = "red", width = .5, 
               position = position_dodge2(width = .9))