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! -- View this message in context: http://n4.nabble.com/Thin-bars-in-R-hist-tp997908p997908.html Sent from the R help mailing list archive at Nabble.com.
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:> 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!-- Peter Ehlers University of Calgary 403.202.3921
On 01/04/2010 08:25 AM, Whalojazz wrote:> 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! >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:> 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!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.) -- O__ ---- Peter Dalgaard ?ster Farimagsgade 5, Entr.B c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907