[R] Split graph labels in 2 levels
P Ehlers
ehlers at math.ucalgary.ca
Thu Dec 29 16:54:32 CET 2005
Marc Schwartz wrote:
> 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.
>
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
> You might also want to look at R FAQ 7.27 on rotating axis labels,
> depending upon your requirements.
>
> HTH,
>
> Marc Schwartz
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
More information about the R-help
mailing list