# [R] probability histogram question

Joseph LeBouton lebouton at msu.edu
Fri Aug 20 02:28:47 CEST 2004

```Alec,

Thanks for your reply.  I guess what I'm getting at is that I to plot
the histogram such that the HEIGHT of each bar represents the proportion
of that class in the sample.  From your reply I gather that the AREA of
each bar is currently representing the proportion.

My current work-around is to not plot the histogram immediately; I set
it up (with plot=F), divide h\$density by 10, then plot h;

x <- runif(100,0,1)
h <- hist(x, freq=F, plot=F)
h\$density <- h\$density/10
plot(h, freq=F)

while this is up to my normal hacking modus operandi, it's not terribly
efficient.  Is there another way to do that?  Or is what I'm trying to
do a perceptually and/or statistically incorrect way to think about
histograms?

Thanks again,

jlb

Alec Stephenson wrote:

>
> Alec Stephenson
> Department of Statistics
> Macquarie University
> NSW 2109, Australia
>
>
>>>>Joseph LeBouton <lebouton at msu.edu> 08/20/04 09:56am >>>
>
> Hello, all;
>
> I get an unexpected result when trying to plot a probability histogram
> with R1.9.1 on windows xp:
>
> #with the following code:
>
>
>>x <- runif(100,0,1)
>>hist(x)
>>hist(x, freq=F)
>>h <- hist(x, freq=F)
>>summary(h)
>
>
> #            Length Class  Mode
> #breaks      11     -none- numeric
> #counts      10     -none- numeric
> #intensities 10     -none- numeric
> #density     10     -none- numeric
> #mids        10     -none- numeric
> #xname        1     -none- character
> #equidist     1     -none- logical
>
> # The help file says that <h\$density>  holds the values
> #	plotted in the probability histogram.  If that's the
> #	case, I'd expect that the sum of h\$density for a histogram
> 	where freq=F would equal 1.0 ...  However:
>
>
>>sum(h\$density)
>
>
> #returns the value :
> #[1] 10
>
> I would really like to plot values in the probablility histogram that
> sum to 1, not 10.  Is there a switch in the hist(x) command that I'm
> missing?  Or, is there another function that can do this?
>
> The width of each bar is 0.1, so you need
> sum(h\$density) * 0.1
> or in general
> sum(h\$density * diff(h\$breaks))
>
> Thanks,
> Alec
>
>
>
>

--
************************************
Joseph P. LeBouton
Forest Ecology PhD Candidate
Department of Forestry
Michigan State University
East Lansing, Michigan 48824

Office phone: 517-355-7744
email: lebouton at msu.edu

```