Dear R users
 
 I need to  auto scale the left y axis in the code below, so that when
 I scroll left or right the left y-axis scale changes to accumulate the
 range of the displayed data with in the max hight of the y-axis. 
 
 also how can I make the crosshair horizontal since it is only
 vertical in this code. this code with a kind help from 
 "Gregory (Greg) L. Snow Ph.D."
 
 just stated with tcl/tk and waiting for the book to arrive. 
 
 thank you
 
 #**************** code starts ****************
 library(tkrplot)
 
 L <- length(myData); 
 
 tt <- tktoplevel()#cursor='crosshair')
 left <- tclVar(1)
 oldleft <- tclVar(1)
 right <- tclVar(L)
 cury <- tclVar(' ')
 curx <- NA
 tmpusr <- numeric(4)
 tmpplt <- numeric(4)
 
 f1 <- function(){
   lleft <- as.numeric(tclvalue(left))
   rright <- as.numeric(tclvalue(right))
   x <- seq(lleft,rright,by=1)
   par(bg='black', fg='green', col='white', col.axis='white',
       col.lab='magenta', col.main='blue', col.sub='cyan')
   plot(x,myData[x], type='s', ylim=range(myData))
 
 ##   par(new=TRUE)
 ##   plot(x,myData2[x], type='s', col='yellow',axes=F)
   
   par(new=TRUE)
   plot(x,myData3[x], type='s', col='cyan',axes=F)
 
   axis(4)    
   tmpusr <<- par('usr')
   tmpplt <<- par('plt')
   if(!is.na(curx)){
     abline(v=curx, col='red', lty=2)
     points(curx,myData[curx],pch=16,col='red')
   }
 }
 
 img <- tkrplot(tt, f1,hscale=2,vscale=1.2)
 tkconfigure(img, cursor='crosshair')
 
 f2 <- function(...){
     ol <- as.numeric(tclvalue(oldleft))
     tclvalue(oldleft) <- tclvalue(left)
     r <- as.numeric(tclvalue(right))
     tclvalue(right) <- as.character(r + as.numeric(...) - ol)
     tkrreplot(img)
 }
 
 f3 <- function(...){
     tkrreplot(img)
 }
 
 f4 <- function(...){
     ol <- as.numeric(tclvalue(oldleft))
     tclvalue(left) <- as.character(ol+10)
     tclvalue(oldleft) <- as.character(ol+10)
     r <- as.numeric(tclvalue(right))
     tclvalue(right) <- as.character(r+10)
     tkrreplot(img)
 }
 
 iw <- as.numeric(tcl('image','width', tkcget(img,'-image')))
 ih <- as.numeric(tcl('image','height',tkcget(img,'-image')))
 
 mm <- function(x,Y){
   tx <- (as.numeric(x)-1)/iw
   ty <- 1-(as.numeric(Y)-1)/ih
   
   if( tx > tmpplt[1] & tx < tmpplt[2] &
      ty > tmpplt[3] & ty < tmpplt[4] ){
     
     newx <- (tx-tmpplt[1])/(tmpplt[2]-tmpplt[1])*(tmpusr[2]-tmpusr[1])+tmpusr[1]
     curx <<- round(newx)
     tkrreplot(img)
 
     newy <- myData[curx]
     newy <- floor(newy) + (newy-floor(newy))*32/100
 
 #    newy2 <- myData2[curx]
     newy3 <- myData3[curx]
 
     tclvalue(cury) <- paste('x =',curx,'  myData=',round(newy,2)
                             ,'  myData3=',round(newy3,4))
   }
 } 
 
 tkbind(img, '<Motion>', mm)
 
 l1 <- tklabel(tt, textvariable=cury)
 
 s1 <- tkscale(tt, command=f2, from=1, to=length(myData),
     variable=left, orient="horiz",label='left',length=700)
 s2  <- tkscale(tt, command=f3, from=1, to=length(myData),
     variable=right, orient="horiz",label='right',length=700)
 b1 <- tkbutton(tt, text='->', command=f4)
 
 tkpack(l1,img,s1,s2,b1)
 #**************** code ends ****************
		
---------------------------------

	[[alternative HTML version deleted]]

