Message-ID: <00a601c314be$b0282ab0$0201a8c0@MARC>
Date: 2003-05-07T17:32:51Z
From: Marc Schwartz
Subject: plot vertical labels along x axis
In-Reply-To: <3EB937FD.8010500@pdf.com>
>-----Original Message-----
>From: r-help-bounces at stat.math.ethz.ch
>[mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Spencer Graves
>Sent: Wednesday, May 07, 2003 11:45 AM
>To: mschwartz at medanalytics.com
>Cc: 'R-help mailing list'
>Subject: Re: [R] plot vertical labels along x axis
>
>
>If you want an angle other than vertical, the problem is harder. The
>argument "srt" works with "axis" in S-Plus 6.1 but not in R.
>
>Consider the following:
>
>plot(1:2)
>text(1:2, rep(2, 2), c("adsf", "qwer"), srt=45)
>
>If all you want is vertical, then you don't want this. However, this
>provides another range of options.
>
>Spencer Graves
>SNIPPED
Actually, there is a trick for using text() with 'srt' to achieve 45
degree rotated x-axis labels. This involves using par("xpd") and
par("usr").
To wit, using Anna's initial example:
plot(1:10, xlab = "My label", axes = FALSE)
axis(1, at=seq(1, 10, by=2), labels = FALSE)
text(seq(1, 10, by=2), par("usr")[3] - 0.2, labels = c("first",
"second", "third", "fourth", "fifth"), srt = 45, pos = 1, xpd = TRUE)
By adjusting the negative offset of 'par("usr")[3] - 0.2', you can
move the labels vertically to account for the length of the text
components. A larger value moves the text down further below
par("usr")[3], which is the value of y at the intersection of the
x-axis.
HTH,
Marc Schwartz