Search code examples
rhistogramarea

Why does the hist() function not have area one


When using hist() in R and setting freq=FALSE I should get a densities. However, I do not. I get other numbers than when it just shows the count. I still need to normalize.

For example:

> h = hist(c(1,2,1,3,1,4,5,4,5,8,2,4,1,7,6,10,7,4,3,7,3,5), freq=FALSE)
> h$density
  0.13636364 0.15909091 0.09090909 0.09090909 0.02272727
> sum(h$density)
  [1] 0.5
> h$density/sum(h$density)
  [1] 0.27272727 0.31818182 0.18181818 0.18181818 0.0454545

Solution

  • If you examine the rest of the histogram output, you will notice that the bars have length 2:

    $breaks
    [1]  0  2  4  6  8 10
    

    Hence you should multiple the sum(h$density) by 2 to get the area equal to one. You can see this clearly if you look at the histogram.

    enter image description here