[R] Split graph labels in 2 levels

Marc Schwartz MSchwartz at mn.rr.com
Thu Dec 29 15:12:36 CET 2005


On Thu, 2005-12-29 at 14:49 +0100, Andrej Kastrin wrote:
> Dear R users,
> 
> is there any simple low-level function that split "single-line" graph 
> labels and produce something like (e.g. for x axis):
> 
> 100    300    500   700...
>      200    400   600
> 
> Cheers, Andrej

You could do something like this:

 # Draw some points
 # Do not plot the x axis
 plot(rnorm(1000), xaxt = "n")

 # Now create the x axis labels, using "\n" for the odd values
 # This puts the following even values one line below
 x.lab <- paste(seq(0, 1000, 100), c("", "\n"), sep = "")

 # Now do the axis, but tickmarks only
 axis(1, at = seq(0, 1000, 100), labels = NA)

 # Now do the labels
 mtext(1, at = seq(0, 1000, 100), text = x.lab, line = 2)


See ?axis, ?paste and ?mtext for more information.

You might also want to look at R FAQ 7.27 on rotating axis labels,
depending upon your requirements.

HTH,

Marc Schwartz




More information about the R-help mailing list