3

由于 ggplot2 (0.9.3) 的新版本,我在绘制带有误差线的条形图时遇到了问题。所以我有一个这样的数据框:

    group N        val         sd         se         ci
1     206 3 37.2269533  7.9688645  4.6008261 19.7957568
2     207 3  2.0731505  2.2843009  1.3188417  5.6745180
3     208 3  2.2965978  1.4120606  0.8152536  3.5077531
4     209 3  3.1085132  1.1986664  0.6920504  2.9776525
5     210 3  3.3735251  1.9226134  1.1100214  4.7760365
6     211 3  4.0477951  2.9410503  1.6980162  7.3059739
7     212 3  1.2391158  1.2345554  0.7127709  3.0668055
8     213 2  1.3082374  1.1234220  0.7943793 10.0935460

我想为每个组绘制 val +- s :我在升级之前这样做了:

ggplot(dfc, aes(x=factor(group), y=factor(val)) +  geom_bar(position=position_dodge()) + geom_errorbar(aes(ymin=val-se, ymax=val+se),width=.1,position=position_dodge(.9))

它给了我:

将变量映射到 y 并使用 stat="bin"。使用 stat="bin",它将尝试将 y 值设置为每组中的案例数。这可能会导致意外行为,并且不会在未来版本的 ggplot2 中被允许。如果您希望 y 表示案例计数,请使用 stat="bin" 并且不要将变量映射到 y。如果您希望 y 表示数据中的值,请使用 stat="identity"。有关示例,请参见 ?geom_bar。(已弃用;最后在 0.9.2 版中使用)

所以有人知道如何解决这个问题吗?谢谢

N。

ggplot 条形图

4

1 回答 1

6

这就是你所追求的吗?

my.df <- read.table(text = "group N        val         sd         se         ci
206 3 37.2269533  7.9688645  4.6008261 19.7957568
207 3  2.0731505  2.2843009  1.3188417  5.6745180
208 3  2.2965978  1.4120606  0.8152536  3.5077531
209 3  3.1085132  1.1986664  0.6920504  2.9776525
210 3  3.3735251  1.9226134  1.1100214  4.7760365
211 3  4.0477951  2.9410503  1.6980162  7.3059739
212 3  1.2391158  1.2345554  0.7127709  3.0668055
213 2  1.3082374  1.1234220  0.7943793 10.0935460", header = TRUE)

ggplot(my.df, aes(x = factor(group), y = val)) +  
  geom_bar(position = position_dodge()) + 
  geom_errorbar(aes(ymin=val-se, ymax=val+se))

在此处输入图像描述

于 2013-02-25T10:12:42.733 回答