在 R 中绘制具有标准差的折线图

Plot a line graph with standard deviation in R

我有一个与此类似的数据框:

myTable <- "ID Data Group
        1     -50     5.0
        2     -44     5.0
        3     -48     5.0
        4     -50     4.9
        5     -44     4.9
        6     -48     4.9
        7     -48     4.9
        8     -44     4.8
        9     -49     4.8
       10     -48     4.8
       11     -60     4.8
       10     -50     4.8
       11     -80     4.7"
Data <- read.table(text=myTable, header = TRUE)

数据按ID和Group排序。这些组的大小不尽相同,但至少有一名成员。数据总是负面的。 我打算做的是制作一个以 "Group" 为 x 轴和 "Data" 为 y 轴的折线图,它还应该显示每个组的标准差。

我是R初学者。所以我的知识非常有限,我对 ggplot2 库只有一点经验。我尝试使用函数 geom_errorbar 但没有成功。 我试过的看起来像这样:

require("ggplot2")
pplot <- ggplot(data=data, aes(x=group, y=data))
pplot + geom_errorbar(aes(ymax = <Max of each group>, ymin= <Min of each group> ), width= 0.1)
pplot + geom_line();

所以结果应该是这样的图形形式:

df <- data.frame(
  ID=1:7,
  Data=c(-50,-44,-48,-50,-44,-48,-48),
  Group=c(5,5,5,4.9,4.9,4.9,4.9)
)

library("ggplot2")

( pplot <- ggplot(data=df, aes(x=df$Group, y=df$Data)) + 
    stat_summary(fun.data = mean_sdl, fun.args = list(mult = 1), geom = "errorbar") +
    stat_summary(fun.y = mean, geom = "line") +
    geom_point() )

输出以下图:

我添加了 geom_point() 以显示单个观察结果。您可以使用参数 aes(width=0.4) 修改错误栏宽度。