Skip to content

Split graph labels in 2 levels

4 messages · Andrej Kastrin, Marc Schwartz, Peter Ehlers +1 more

#
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
#
On Thu, 2005-12-29 at 14:49 +0100, Andrej Kastrin wrote:
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
#
Marc Schwartz wrote:

            
Another way is to use the padj argument to axis:

   plot(rnorm(1000), xaxt = "n")
   axis(1, at = seq(0, 1000, 100), padj = c(0, 1))

Adjust padj to suit your needs; e.g. padj = c(1, -0.2)

Peter Ehlers
1 day later
#
Andrej Kastrin wrote:
staxlab in the plotrix package.

Jim