[R] Plot problems: xlim

Jim Lemon bitwrit at ozemail.com.au
Sat Dec 24 04:12:10 CET 2005


Ronnie Babigumira wrote:
> Hi,
> Still fresh in R, tried to figure this out, now on my second day running with no luck (and a pile of hair on my desk) so 
> I have thrown in the towel and would like to ask for some help.
> 
> Here is what I am trying to do. I am trying to plot a distribution, I have 99 points, bound in the range
> 
> xlim.min: -0.0173
> xlim.max: 0.02103
> 
> However, I have a value outside this range (0.2454959) which I would like to add to the plot as a line and to do this I 
> use abline(v=0.2454959)
> 
> This is what I write
> 
>  >xlim = c(-0.02, 0.3)
>  >denz <- density(morp)
>  >plot.density(denz, xlim = xlim, ylim = c(0,70))
>  >hist(morp, freq=F, add= T)
>  >abline(v=0.2454959)
> 
> Without any options, plot.density spreads out nicely, however, naturally, the line I want to add is not plotted since it 
> is well outside the range automatically determined by plot.density hence the need to add xlim however this produces 
> something I dont find aesthetically appealing. The plot is squeezed out into a very lean "bell" shape.
> 
> So (finally) my question, how can i widen the spread of my plot and yet also be able to add my xline.
> 
Hi Ronnie,

For only one line, it is probably easiest to stick in an axis break and 
label the line on the x axis. Notice that the position of the line is 
arbitrarily set to be far enough beyond the end of the density curve to 
allow room for the axis break.

testdata<-rnorm(50,sd=0.01)
denz<-density(testdata)
plot(denz,xlim=c(-0.02,0.04),axes=FALSE)
box()
axis(1,at=c(-0.02,0,0.02,0.039),labels=c(-0.02,0,0.02,0.2454959))
abline(v=0.039)
axis.break(1,breakpos=0.037)

This is probably a common enough problem for inclusion in the axis.break 
example.

Jim




More information about the R-help mailing list