ggplot:错误栏

时间:2012-12-19 21:36:08

标签: r ggplot2

我想绘制y1,y2相对于x的两个不同值集的误差线。换句话说,我有两个数据Y1,Y2,它们对应X值。在重新塑造数据框后,我设法将它们绘制在一起。现在我想在每个Y1,Y2点的同一图表上绘制误差线。我理解geom_errorbar()是我正在寻找的。但是,我正在努力做到这一点,我确信有一个简短的方法。我在做什么我正在为每个集合计算“se”并计算aes(ymin=y1-se, ymax=y+se)并对Y2重复相同。因为我想将此错误条应用于不同的图。我宁愿这么做。

重塑后的数据框:

M     Req      Rec      load       Un      L1
1    30.11  9.000000   3.000000  30.02000  A
2    50.31  10.030000  6.045000  39.44000  A
3    60.01  11.290000  7.366667  54.93000  A
4    66.10  12.630000  8.827500  68.44500  A
5    80.18  13.106000  9.462000  71.07600  A
6    87.10  14.421667  15.961667 82.70500  A
7    90.08  15.880000  20.644286 94.20714  A
1    4.000  1.500000    1.000000  1        B
2    8.240  6.240000    4.760000  3.00000  B
3    10.28  12.230000  9.420000  4.05000   B
4    18.570 25.570000 17.930000  6.00000   B
5    22.250 35.250000 27.850000  7.00000   B
6    35.070 55.010000 36.810000  8.06000   B
7    48.480  0.420000 47.020000  9.06000   B

我使用以下命令绘制图形:

ggplot(df_reshaped,aes(x = M, y = Req, colour = L1, shape=L1)) +  
     geom_point(size = 5)+
     geom_line() +
     scale_x_discrete(name="M") +
     scale_y_continuous(name="Y1 Y2")+
     ggtitle("A vs B")

在这种情况下,我正在绘制Y1 = Req1,Y2 = Req2,相对于x = M

计算误差线的任何简短方法或建议?

有没有快速计算“se”的方法?

1 个答案:

答案 0 :(得分:1)

通常,为ggplot准备数据有两种可能性:

  • 您可以聚合原始数据并绘制结果。如果按照这种方式进行,则必须计算标准错误,因为无法从聚合数据中检索信息。可以使用geom_errorbar绘制这些标准错误。
  • 第二个选项是使用原始数据,让ggplot为您完成所有计算。这可以通过stat_summary来完成。例如:

    stat_summary(fun.data = "mean_cl_normal", mult = 1, geom = "errorbar")
    

显然,你选择了第一种方法。因此,您只需要计算两个变量点的标准误差。