[R] Rotated text on a regression line
Charles C. Berry
cberry at tajo.ucsd.edu
Wed May 28 00:03:50 CEST 2008
On Tue, 27 May 2008, Xiaohui Chen wrote:
> Note that the scale of x-axis and y-axis is different in your plot. One
> simple way to avoid this is to keep the data unit in the x direction is equal
> that in the y direction, by setting asp=1 in calling plot function.
Or when that is not possible or not desirable translate the slope to
the device scales:
usr2dev <- function(x) 180/pi*atan(x * diff( par("usr")[1:2])/ diff(par("usr")[3:4]))
text(2,yval,"Regression", srt=usr2dev( slope ), adj=0)
HTH,
Chuck
>
> X
>
> Dr. Christoph Scherber åé:
>> 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)
>>
>> ______________________________________________
>> R-help at 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.
>>
>>
>
> ______________________________________________
> R-help at 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.
>
>
Charles C. Berry (858) 534-2098
Dept of Family/Preventive Medicine
E mailto:cberry at tajo.ucsd.edu UC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/ La Jolla, San Diego 92093-0901
More information about the R-help
mailing list