R 如何绘制条形图中单个因子的平均值

R 如何绘制条形图中单个因子的平均值,r,ggplot2,bar-chart,factorial,points,R,Ggplot2,Bar Chart,Factorial,Points,我无法使用ggplot2创建图形。 在这个图中,我使用geom_bar绘制了三个因子。我的意思是,对于每一个“时间”和“剂量”,我绘制了两个条(两种基因型) 更具体地说,我的意思是: 这是我到目前为止的代码(实际上我更改了一些设置,但我只介绍了所需的内容): < P>问题:我想用点加上每个时间< /强>的平均值,这些点刚好在某个时间< /强>的条的中间。我怎样才能继续 我尝试使用geom_dotplot和geom_point添加这些点,但没有成功 library(dplyr) time_dat

我无法使用ggplot2创建图形。 在这个图中,我使用geom_bar绘制了三个因子。我的意思是,对于每一个“时间”和“剂量”,我绘制了两个条(两种基因型)

更具体地说,我的意思是:

这是我到目前为止的代码(实际上我更改了一些设置,但我只介绍了所需的内容):

< P>问题:我想用点加上每个<强>时间< /强>的平均值,这些点刚好在某个<强>时间< /强>的条的中间。我怎样才能继续

我尝试使用geom_dotplot和geom_point添加这些点,但没有成功

library(dplyr)
time_data = data %>% group_by(time) %>% summarize(mean(b))
data <- inner_join(data,time_data,by = "time")

您可能需要在geom_text语句中处理参数hjust和vjust。可能还有aes,我没有运行程序,所以我不知道。

如果您能给出一个可复制的示例,通常会有所帮助。在这里,我自己制作了一些数据

sampleData <-
  data.frame(
    dose = 1:3
    , time = rep(1:3, each = 3)
    , genotype = rep(c("AA","aa"), each = 9)
    , b = rnorm(18, 20, 5)
  )

非常感谢你,斯蒂芬!你的代码让我意识到如何在绘图中添加点。事实上,我是用另一种方式写的,但我按照你说的组织了我的数据<代码>几何点(数据=数据,aes(y=“平均值(b)”,x=x),color=“红色”,size=1.5)我创建了一个“x”列来指示这些点的绘图位置!成功了。再次感谢大家!谢谢你,马克!您和Stephen帮助我了解了如何组织数据。我用
剂量、时间、基因型、b、平均值(b)、x创建了一个数据集。如您所见,我创建了一个“x”列,以指示这些点在x轴上的打印位置!我还写了:
geom_point(data=data,aes(y=“mean(b)”,x=x),color=“red”,size=1.5)
在正确的坐标上绘制点。成功了!再次感谢大家!
 ggplot(data=data, aes(x=interaction(dose,time), y=b,fill=factor(genotype)))+
 geom_bar(stat="identity", position="dodge")+
 scale_fill_grey(start=0.3, end=0.6, name="Genotype")+
 geom_text(aes(b),vjust = 0)
sampleData <-
  data.frame(
    dose = 1:3
    , time = rep(1:3, each = 3)
    , genotype = rep(c("AA","aa"), each = 9)
    , b = rnorm(18, 20, 5)
  )
ggplot(
  sampleData
  , aes(x = dose
        , y = b
        , fill = genotype)
  ) +
  geom_bar(position = "dodge", stat = "identity") +
  geom_hline(data = 
               sampleData %>%
               group_by(time) %>%
               summarise(meanB = mean(b)
                         , dose = NA, genotype = NA)
             , aes(yintercept = meanB)
             , col = "black"
              ) +
  facet_wrap(~time)