[R] plot vertical labels along x axis

Marc Schwartz mschwartz at medanalytics.com
Wed May 7 19:32:51 CEST 2003

>-----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:
>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


Actually, there is a trick for using text() with 'srt' to achieve 45
degree rotated x-axis labels.  This involves using par("xpd") and

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


Marc Schwartz

More information about the R-help mailing list