2012-02-10 84 views
19

我需要在scatterplot中的每个点上绘制两个错误条。通常情况下垂直误差线对应于点y值的误差,但我需要添加与X轴(水平线)相关的误差线。我可以用一些abline命令来做到这一点,但是认为用ggplot2可能有更聪明的方法来做到这一点?ggplot2:向scatterplot中的每个点添加两个错误条

+2

我相信有一个'geom_errorbarh'这需要'x',' xmin'和'xmax'类似于'geom_errorbar'。 – joran 2012-02-10 17:08:48

+0

http://permalink.gmane.org/gmane.comp.lang.r.ggplot2/3231 – 2012-02-10 17:09:13

回答

28

刚刚完成的缘故,在我的评论跟进,这里是一个简单的(虽然丑陋)例如:

df <- data.frame(x = 1:10, 
       y = 1:10, 
       ymin = (1:10) - runif(10), 
       ymax = (1:10) + runif(10), 
       xmin = (1:10) - runif(10), 
       xmax = (1:10) + runif(10)) 

ggplot(data = df,aes(x = x,y = y)) + 
    geom_point() + 
    geom_errorbar(aes(ymin = ymin,ymax = ymax)) + 
    geom_errorbarh(aes(xmin = xmin,xmax = xmax)) 

enter image description here

+4

非常感谢您的回复!我花了一些时间用我自己的数据重现结果,因为在我的数据中,列没有命名为“x”和“y”,这显然意味着对于geom_errorbar,您需要传递x坐标,即: geom_errorbar(aes(x = var,ymin = ...))和geom_errorbarh都是x和y,所以:geom_errorbarh(aes(x = var1,y = var2,xmin = ...))。水平geom_errorbarh的最后一个细节似乎没有记录在帮助文件中,我必须从我得到的错误消息中推断出来。 – 2012-02-13 10:46:59

+1

对不起,我看到你在第一次调用ggplot时定义了x和y,这就是我应该做的。再次感谢。 – 2012-02-13 10:50:06

相关问题