[R] histogram first bar wrong position
Martin Maechler
maechler at stat.math.ethz.ch
Thu Dec 22 17:19:14 CET 2016
>>>>> itpro <itpro1 at yandex.ru>
>>>>> on Thu, 22 Dec 2016 16:17:28 +0300 writes:
> Hi, everyone.
> I stumbled upon weird histogram behaviour.
> Consider this "dice emulator":
> Step 1: Generate uniform random array x of size N.
> Step 2: Multiply each item by six and round to next bigger integer to get numbers 1 to 6.
> Step 3: Plot histogram.
>> x<-runif(N)
>> y<-ceiling(x*6)
>> hist(y,freq=TRUE, col='orange')
> Now what I get with N=100000
>> x<-runif(100000)
>> y<-ceiling(x*6)
>> hist(y,freq=TRUE, col='green')
> At first glance looks OK.
> Now try N=100
>> x<-runif(100)
>> y<-ceiling(x*6)
>> hist(y,freq=TRUE, col='red')
> Now first bar is not where it should be.
> Hmm. Look again to 100000 histogram... First bar is not where I want it, it's only less striking due to narrow bars.
> So, first bar is always in wrong position. How do I fix it to make perfectly spaced bars?
Don't use histograms *at all* for such discrete integer data.
N <- rpois(100, 5)
plot(table(N), lwd = 4)
Histograms should be only be used for continuous data (or discrete data
with "many" possible values).
It's a pain to see them so often "misused" for data like the 'N' above.
Martin Maechler,
ETH Zurich
More information about the R-help
mailing list