[R] gap.barplot doesn't support data arrays?

Andrew D. Steen andrew.decker.steen at gmail.com
Tue Apr 5 13:34:49 CEST 2011


Jim,
That works great.  Thanks much for the quick help.

Cheers,
Drew

> -----Original Message-----
> From: Jim Lemon [mailto:jim at bitwrit.com.au]
> Sent: Tuesday, April 05, 2011 2:12 PM
> To: Andrew D. Steen
> Cc: r-help at r-project.org
> Subject: Re: [R] gap.barplot doesn't support data arrays?
> 
> On 04/04/2011 11:39 PM, Andrew D. Steen wrote:
> > I am trying to make a barplot with a broken axis using gap.barplot
> (in
> > the indispensable plotrix package).
> 
> Aww, gee, you've won me.
> 
> > This works well when the data is a vector:
> >
> >> twogrp<-c(rnorm(10)+4,rnorm(10)+20)
> >>
> gap.barplot(twogrp,gap=c(8,16),xlab="Index",ytics=c(3,6,17,20),ylab="
> >> Group
> > values",main="Barplot with gap")
> >
> > But when the data is an array (for a bar plot with multiple series) I
> > get an error and a strange plot with no y-tics and bars stretching
> > downwards, as if all the values were negative:
> >
> >> twogrp2<-array(twogrp, dim=c(2,5))
> >>
> >
> gap.barplot(twogrp2,gap=c(8,16),xlab="Index",ytics=c(3,6,17,20),ylab="
> > Group
> > values",main="Barplot with gap")
> >
> > Error in rect(xtics[bigones] - halfwidth, botgap, xtics[bigones] +
> > halfwidth,  :
> >    cannot mix zero-length and non-zero-length coordinates
> >
> > However, the main title and axis labels do appear correctly.
> >
> > Are data arrays unsupported for gap.barplot, or am I missing
> something?
> >
> Hi Drew,
> You are right, as is Peter, gap.barplot doesn't support arrays, only
> vectors (I'll fix the docs). However, it wasn't too hard to whip up a
> rough but perhaps serviceable fix in the attached function. You may
> need to do some mods to the function to get exactly what you want. Try
> this:
> 
> # your twogrp2 left out the high values
> twogrp2<-array(twogrp,dim=c(2,10))
> source("gap.barp.R")
> gap.barp(twogrp2,gap=c(8,16),xlab="Index",ytics=c(3,6,17,20),
>   xtics=1:10,ylab="Groupvalues",main="Barplot with gap",col=2:3)
> 
> gap.barp returns the modified y values so that you can include the
> error bars.
> 
> To paraphrase the immortal P.J. O'Rourke,
> 
> "Perhaps R users shouldn't do some things in plots, but they certainly
> can do them"
> 
> Jim



More information about the R-help mailing list