[R] change confidence interval line length in barplot2 (plotrix package)

Marc Schwartz marc_schwartz at me.com
Tue Jan 22 22:59:17 CET 2013


On Jan 22, 2013, at 2:41 PM, Martin Batholdy <batholdy at googlemail.com> wrote:

> Ok, I have to apologize,
> I confused the packages.
> 
> It's the function barplot2 from the gplots package!
> 
> 
>> It calls itself an extenstion of barplot2 and has a ci.lwd argument. Might save you the time of doing what I thought might be needed, hacking te code.
> 
> Unfortunately ci.lwd controls the thickness of the line but not the horizontal width.


barplot2() in gplots uses a hard coded width for the CI's, which is 50% of the bar width, so it is a consistent proportion.

You could hack the code or simply use base graphics barplot() along with either ?segments or perhaps more easily, ?arrows, which would give you more flexibility.

Compare:

mp <- barplot(1:5)
arrows(mp, 1:5 + 0.5, mp, 1:5 - 0.5, code = 3, angle = 90, length = 0.1)

with:

mp <- barplot(1:5)
arrows(mp, 1:5 + 0.5, mp, 1:5 - 0.5, code = 3, angle = 90, length = 0.25)

where the 'length' argument to arrows() defines the width of the upper and lower boundary lines.

There are a fair number of other functions around that can add CI's to plots as well and a search of the archives should bear fruit.

Regards,

Marc Schwartz


> 
> On Jan 22, 2013, at 21:24 , David Winsemius <dwinsemius at comcast.net> wrote:
> 
>> 
>> On Jan 22, 2013, at 10:28 AM, Martin Batholdy wrote:
>> 
>>> Hi,
>>> 
>>> is there any way to change the width of the horizontal line of confidence intervals
>>> in the barplot2 function in the plotrix package (independent of the width of the bars)?
>>> 
>>> 
>>> example code:
>>> 
>>> library(plotrix)
>>> # Example with confidence intervals and grid
>>> hh <- t(VADeaths)[, 1]
>>> mybarcol <- "gray20"
>>> ci.l <- hh * 0.85
>>> ci.u <- hh * 1.15
>>> mp <- barplot2(hh, beside = TRUE,
>>>      col = c("lightblue", "mistyrose",
>>>              "lightcyan", "lavender"),
>>>      legend = colnames(VADeaths), ylim = c(0, 20),
>>>      main = "Death Rates in Virginia", font.main = 4,
>>>      sub = "Faked 95 percent error bars", col.sub = mybarcol,
>>>      cex.names = 1.5, plot.ci = TRUE, ci.l = ci.l, ci.u = ci.u)
>> 
>> When I did an sos::findFn("barplot2") search to locate the "real" `barplot2` O alos noted in the same package (gplots) a function named `ooplot`. It calls itself an extenstion of barplot2 and has a ci.lwd argument. Might save you the time of doing what I thought might be needed, hacking te code.
>> 
>> -- 
>> David Winsemius
>> Alameda, CA, USA
>>



More information about the R-help mailing list