使用geom_errorbar

时间:2017-11-22 10:45:28

标签: r ggplot2

我在绘制数据集的误差线方面遇到问题。

下面是一些代码,我希望你能帮助我,因为我已经彻底研究了这个问题,但我还没有弄清楚它为什么不起作用。我不是一个非常有经验的程序员或R用户,但我想这也不是初学者。

> fruit_params
Fruits variable N     value        sd         se        ci
Apple  January 3  319.4667 289.32861 167.043950 718.73211
Apple  Febuary 3  373.8000 251.00398 144.917218 623.52846
Apple    March 3  217.8000  13.03994   7.528612  32.39300
Apple    April 3  424.6333  39.11948  22.585639  97.17816
Apple      May 3 1160.6667  40.27820  23.254629 100.05659
Apple     June 3 1510.3333 269.31828 155.490979 669.02368
Orange  January 3  241.1667  65.83877  38.012030 163.55257
Orange  Febuary 3  317.4667 204.09195 117.832541 506.99251
Orange    March 3  224.4667  23.13144  13.354941  57.46167
Orange    April 3  329.3333  18.11307  10.457586  44.99536
Orange      May 3 1279.6667 129.46943  74.749210 321.61989
Orange     June 3 1167.6667  66.16142  38.198313 164.35408

这是我的数据框架。我想绘制条形图,并根据均值的标准误差添加误差条( se列)。

library(ggplot2)
ggplot(data = fruit_params, aes(x = variable, y = value, fill = Fruits)) +
geom_bar(position = "dodge", stat="identity") +
geom_errorbar(aes(ymin = value, ymax=value+se, width=.2, position = position_dodge(0.9)))

运行此脚本会产生以下错误消息:

  

Advarsel:忽略未知的美学:位置   不知道如何自动选择PositionDodge / Position / ggproto类型的对象的比例。违约持续。   Fejl:美学必须是长度1或与数据(12)相同:ymin,ymax,width,position,x,y,fill

如果您从geom_errorbar的aes()中注释掉 position = position_dodge(0.9),则可以绘制图形,但误差条将被偏移。

有什么问题?谢谢你的时间: - )

1 个答案:

答案 0 :(得分:1)

width内有positionaes(...) 。将这两个陈述放在aes(...)之外并且它有效:

ggplot(data = fruit_params, aes(x = variable, y = value, fill = Fruits)) +
    geom_bar(position = "dodge", stat = "identity") +
    geom_errorbar(aes(ymin = value - se, ymax=value + se), width = .2, position = position_dodge(0.9))

enter image description here