Skip to content

Thin bars in R hist !!??

6 messages · Peter Ehlers, Jim Lemon, Peter Dalgaard +1 more

#
Hi,

I am trying to plot a histogram with my dataset that has 68 elements, 67 of
which are zero and the last one is 18. It can be reproduced as follows:

x<-array(0, dim=(68))
x[1] = 18
I am trying to plot its histogram using:

hist(x, breaks=10, xlim=c(0, 100), axes=F)
axis(2, at=seq(0, 70, 5))      #  for the y-axis
axis(1, at=seq(0, 100, 10))  # for the x-axis

As you would also see if you reproduced the plot, the bars become really
thin. I would very much appreciate any help on fixing this issue. Thanks so
much in advance!
#
Just seting breaks=2 should fix your 'issue'.
But what could such a histogram possibly tell anyone?
Unless this is a pathological case in a more elaborate
analysis, I can't see any sense in what you're doing.

  -Peter Ehlers
Whalojazz wrote:

  
    
#
On 01/04/2010 08:25 AM, Whalojazz wrote:
Hi Whalojazz,
There is the possibility of matching the x axis limits to the range of 
the data:

hist(x, breaks=10, xlim=c(0, 18), axes=FALSE)
axis(2, at=seq(0, 70, 5))
axis(1, at=seq(0, 18, 9))

but this would not leave you all that tempting, empty space in which you 
could insert a cartoon or humorous epigram. Why don't we split the 
difference and try:

x11(width=10,height=7)
hist(x, breaks=10, xlim=c(0, 40), axes=FALSE)
axis(2, at=seq(0, 70, 5))
axis(1, at=seq(0, 40, 10))

Jim
#
Whalojazz wrote:
You are asking for a range of data from 0 to 18 to be divided into about 
10 bins, so each bin will have a width of roughly 0.2.

If this is not what you wanted, then you need to do something else, 
depending on what you wanted but didn't tell...

Were you perhaps looking for hist(x, breaks=seq(0, 100,10))? (Notice 
that if "breaks" is a single number, it will generate breaks based on 
range(x), not xlim.)
#
Peter Ehlers wrote:
Yes it did! However, this requires that I explicitly set break to the number
of nonzero entries in the x's count. I see your point about the histogram
but I believe it's important for me to show zero values as well. 

Thanks a lot!
#
Peter Dalgaard wrote:
Great! That's *exactly* what I needed. Thanks a lot!