[R] gap.barplot doesn't support data arrays?
Jim Lemon
jim at bitwrit.com.au
Tue Apr 5 14:11:51 CEST 2011
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
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: gap.barp.R
URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20110405/26bd33df/attachment.pl>
More information about the R-help
mailing list