在dotplot中绘制错误条线的垂直结尾

时间:2012-02-27 16:06:30

标签: r plot lattice

我使用dotplot()lattice使用Dotplot()绘制Hmisc。当我使用默认参数时,我可以绘制没有小垂直结尾的误差条

  

- O -

但我想得到

  

| -O - |

我知道我可以得到

  

| -O - |

当我使用plotrix中的centipede.plot()latticeExtra中的segplot()时,但这些解决方案并没有给我Dotplot()这么好的条件选项。我试图使用par.settings的{​​{1}},它适用于更改错误条线的颜色,宽度等,但到目前为止,我一直没有成功添加垂直结尾:

plot.line

enter image description here

请不要给我使用ggplot2的解决方案...

1 个答案:

答案 0 :(得分:6)

过去我有同样的需求,barchart()代替Dotplot()

我的解决方案是创建一个自定义面板功能:(1)首先执行原始面板功能; (2)然后使用panel.arrows()添加误差条(使用双头箭头,其中头部的边缘与轴形成90度角)。

以下是Dotplot()的内容:

# Create the customized panel function
mypanel.Dotplot <- function(x, y, ...) {
    panel.Dotplot(x,y,...)
        tips <- attr(x, "other")
        panel.arrows(x0 = tips[,1], y0 = y, 
                     x1 = tips[,2], y1 = y, 
                     length = 0.15, unit = "native",
                     angle = 90, code = 3)
}

# Use almost the same call as before, replacing the default panel function 
# with your customized function.
Dotplot(name ~ Cbind(mean,lo,up),data=d,ylab="",xlab="",col=1,cex=1,
        panel = mypanel.Dotplot,
        par.settings = list(plot.line=list(col=1),
                       layout.heights=list(bottom.padding=20,top.padding=20)))

enter image description here