[R] lattice plot axis scaling

Deepayan Sarkar deepayan.sarkar at gmail.com
Wed Jul 18 21:53:26 CEST 2007


On 7/18/07, Alan S Barnett <asb at mail.nih.gov> wrote:
> I want to generate a lattice plot of a multiple linear regression.  I'm
> using the code:
>
> xyplot(y ~ x1 + x2 | status, data=datam,
>         xlab="Peak separation",ylab="G/W",main="G/W vs Fuzzy peak
> separation: Threshold=1.8",
>         groups=Fuzzy.gw.t.score>1.8,
>         subset=(status %in%  c("control","patient","sibling")),
>         panel=function(x,y,groups,subscripts,...){
>           panel.xyplot(x,y,groups=groups,subscripts=subscripts,...)
>           panel.abline(tmp<<-lm(y~x),col = "light blue",lwd=2)
>           panel.abline(tmp<<-rlm(y~x),col = "blue",lwd=2)
>           good.id<-groups[subscripts]
>           fm <- rlm(y[good.id] ~ x[good.id])
>           sm <- summary(fm)
>           panel.abline(reg = fm)
>           panel.abline(tmp1<<-lm(y[good.id]~x[good.id]),col =
> "pink",lwd=2)
>           panel.abline(tmp1<<-rlm(y[good.id]~x[good.id]),col =
> "red",lwd=2)
>           slope <- round(coef(fm)[2], 3)
>           err <- round(sm$coefficients[4], 3)
>           message("Click on desired location")
>           panel.text(pos<<-grid.locator("native"), lab = paste("slope
> =",slope,"+-",err),col="red")
>           })
> _______________________________________________________________
> The problem is that x1 varies from 1-3, while x2 varies from 20-60.  The
> output scales both independent variables the same, so all the data in
> the y vs x1 plot are up against the left edge of the plot.  How do I
> scale the x-axes separately?

Add

scales = list(x = "free")

to your call.

-Deepayan



More information about the R-help mailing list