创建一个具有均值和均值标准误差的散点图

create a scatterplot with mean and standard error of the mean

我正在尝试使用 ggplot2 创建散点图。除了单个值外,我还想显示每个组的平均值和平均值的标准误差。您可以在下面找到我使用 GraphPad Prism 创建的所需结果的示例。

非常感谢您抽出宝贵的时间! BR

看看 ggplot2 中的 geom_errorbar() 函数。您应该能够使用 geom_errorbar()geom_dotplot().

重现类似于图中的情节

以下代码很好地复制了您的情节:

library(ggplot2)

ggplot(df, aes(x = group, y = y, group = group)) + 
  geom_point(aes(shape = group), size = 3,
             position = position_jitter(width = 0.1)) +
  stat_summary(fun = mean, 
               fun.min = function(x) mean(x) - sd(x)/sqrt(length(x)), 
               fun.max = function(x) mean(x) + sd(x)/sqrt(length(x)),
               geom = 'errorbar',  width = 0.25) +
  stat_summary(fun = mean, fun.min = mean, fun.max = mean,
               geom = 'errorbar',  width = 0.5) +
  scale_y_continuous(limits = c(0, 30)) +
  scale_shape_manual(values = c(16, 15)) +
  labs(x = '', y = '') +
  theme_classic() +
  theme(axis.text.x = element_blank(),
        legend.position = 'none')

您的数据需要采用以下格式:

df <- data.frame(group = rep(c("A", "B"), times = c(8, 4)),
                 y = c(1.8, 2.5, 2.4, 4, 5.5, 13, 14, 26,
                       2.3, 2.8, 5.5, 10))

df
#>    group    y
#> 1      A  1.8
#> 2      A  2.5
#> 3      A  2.4
#> 4      A  4.0
#> 5      A  5.5
#> 6      A 13.0
#> 7      A 14.0
#> 8      A 26.0
#> 9      B  2.3
#> 10     B  2.8
#> 11     B  5.5
#> 12     B 10.0