[R] Own classes in "histogram"

Deepayan Sarkar deepayan.sarkar at gmail.com
Wed Jan 16 18:20:18 CET 2008


On 1/16/08, Denis Aydin <Denis.Aydin at stud.unibas.ch> wrote:
> Hi,
>
> I try to make a histogram from a variable that contains the number of
> shoots from about 1000 individuals from a specific plant species (the range is 1-110).
> Those numbers are highly skewed to the right.

I would suggest you consider transforming the values first (log or
square root would be typical); that might address the problems caused
by skewness.

> My question is: how can I make my own classes with the lattice
> "histogram"?
>
> I tried it with "breaks=c(0,5,10,15,20,25,110)" but my "25-110"-class is presented
> as one huge bin ranging from 25 to 110.

Yes, that's how it's supposed to be in a ``histogram''.

> Is there a way to plot this bin in equal size as the others?

Yes, but the result is no longer a histogram but a bar plot. You can
discretize your data into a factor with appropriate levels using the
'cut' function; e.g. something like

xdisc <- cut(x, breaks=c(0,5,10,15,20,25,110))

and then plot it using

barchart(table(xdisc))
## or perhaps
barchart(table(xdisc), horizontal=FALSE)

> And how is it possible to change the annotation of the x-axis, let's
> say the last tick named ">25"?

The easiest way is to change the relevant label, e.g.

levels(xdisc)[6] <- "> 25"

-Deepayan




More information about the R-help mailing list