[R] Rotated text on a regression line
Charilaos Skiadas
cskiadas at gmail.com
Tue May 27 23:52:05 CEST 2008
I think this comment for ?par, meant for both crt and srt, applies:
crt
A numerical value specifying (in degrees) how single characters
should be rotated. It is unwise to expect values other than multiples
of 90 to work. Compare with srt which does string rotation.
So I would say that even getting close to the right angle is not bad.
I would think that perhaps the graphics devices can only write in
particular directions, and that's the one closest to your graph.
Actually, further playing with it, I think all you are missing is
that this angle is not dependent on the aspect ratio, it's an
absolute angle. Try to resize the window, and see how the direction
of the string does not change at all, even though the line slope does
change.
Hence the advice about only relying on 0 and 90 degrees.
Haris Skiadas
Department of Mathematics and Computer Science
Hanover College
On May 27, 2008, at 5:25 PM, Dr. Christoph Scherber wrote:
> Dear all,
>
> I stumbled over a problem recently when trying to use srt with text
> () on a
> windows device.
>
> What I intended to do was to plot a simple regression line, and to
> rotate
> a piece of text such that the text has the same angle as the
> regression
> line.
>
> However, the text is always plotted in a slightly wrong angle:
>
> ####
>
> x=1:10 #create arbitrary x and y values
> y=x*2-rnorm(1:10)
>
> plot(x,y,pch=16,xlim=c(0,10)) #create the graph
> abline(lm(y~x))
>
> #calculate the y coordinate of the text:
> yval=predict(lm(y~x),list(x=rep(2,length(x))))[1]
>
> #calculate the slope:
> slope=as.numeric(lm(y~x)[[1]][2])
>
> text(2,yval,"Regression",srt=180/pi*atan(slope),adj=0)
>
> ####
>
> What am I doing wrong here?
>
> Many thanks in advance for any help!
>
> Best wishes
> Christoph
>
> (using R 2.6.1 on Windows XP)
>
More information about the R-help
mailing list