ggplot2:在散点图中为每个点添加两个误差条

36

我需要在散点图中的每个点上绘制两个误差条。通常是垂直误差条,对应于点的y值上的误差,但我还需要添加与X轴(水平)相关的误差条。我可能可以通过一些abline命令来实现这一点,但想知道是否有更聪明的方式使用ggplot2完成?


2
我相信有一个 geom_errorbarh 函数,它与 geom_errorbar 类似地接受 xxminxmax 参数。 - joran
http://permalink.gmane.org/gmane.comp.lang.r.ggplot2/3231 - Ben Bolker
1个回答

46

仅为了完整性而言,跟进我的评论,这里是一个简单的例子(尽管很丑陋):

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))

在此输入图片描述


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的这个细节在帮助文件中似乎没有被记录,我不得不从收到的错误消息中推断出来。 - Jens Nielsen
1
抱歉,我看到你在第一个ggplot调用中定义了x和y,那就是我应该做的。再次感谢。 - Jens Nielsen
对于那些感兴趣的人:您可以使用以下代码更改误差线条末端的宽度和颜色:geom_errorbar(aes(ymin = ymin,ymax = ymax),color="red",width=0.1 )。 - horseshoe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接