On Aug 24, 2010, at 11:37 PM, Tim Elwell-Sutton wrote:

Hi Jim
Thanks for this. The staxlab function seems very useful. Unfortunately, the rotation option doesn't seem to work for me when the y-axis is on a log
scale.

What part of:

"If srt is not NA, the labels will be rotated srt degrees and placed below the plot. This method will only place labels at the bottom."

... is unclear? You did say you wanted the rotation to be on the x- axis, did you not?

You could, of course, look at Lemon's code and hack it to do the y-axis:

else {
        xylim <- par("usr")
        ypos <- xylim[3] - ticklen * (xylim[4] - xylim[3])
        par(xpd = TRUE)
        text(at, ypos, labels, srt = srt, adj = 1, ...)
        par(xpd = FALSE)
    }


--
david.


"It will stagger the labels but not rotate them. There's no error
message. On a linear axis the rotation works nicely. Any ideas?
The example below works if you omit log='y' or srt=45

Thanks very much
Tim

#Create plot with log-scale on the y-axis
par(mar = c(7, 4, 4, 2) + 0.1)
plot(1, type='n', bty='n',
       xlab="",
       ylab='Odds Ratio',
       xlim= c(0.5,4.5),
       ylim= c(0.75, 2),
       cex=2, xaxt='n', yaxt='n', cex.lab=1.3,
       log='y')

#Estimates and confidence intervals
points(c(1:4),c(1.1,1.32,1.14,1.36), pch=17, cex=1.5, col='blue')
segments (c(1:4),c(0.93,1.11,0.94,1.15),c(1:4),c(1.3,1.58,1.37,1.61),
         col='blue', lwd=2)

#Add x- and y-axes
axis(1,c(1:4), labels= F)
axis(2, at=seq(0.75,2, by=0.25), labels=seq(0.75,2, by=0.25), las=1)

# Add x-axis labels
labels <- paste("Label", 1:4, sep = " ")
staxlab(side=1, at=1:4, labels, srt=45)

-----Original Message-----
From: Jim Lemon [mailto:j...@bitwrit.com.au]
Sent: Tuesday, August 24, 2010 7:48 PM
To: tesutton
Cc: r-help@r-project.org
Subject: Re: [R] Rotate x-axis label on log scale

On 08/24/2010 11:44 AM, Tim Elwell-Sutton wrote:
Hi

I'd appreciate some help with plotting odds ratios. I want to rotate the
labels on the x-axis by 45 degrees.

The usual way of doing this, using text - e.g. text(1,
par('usr')[3]-2.25..)
-  gives no result when the y-axis is a log scale.

I guess this is because, as the par help says, for a logarithmic y- axis:
y-limits will be 10 ^ par("usr")[3:4]

Hi Tim,
If you know where to put the labels, try:

library(plotrix)
staxlab(1,at=...,labels=...,srt=45)

Jim
--
David Winsemius, MD
West Hartford, CT

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to