riodementa
2012-Nov-20  11:15 UTC
[R] Is it possible to draw with function "image.asc " and show a legend strip in the same window?
I want to represent a Raster map of class "asc", and in the same
window a
list of points with the funcion points(x,y)..
I considered two options:
1. With image.plot(map) and then use points(x,y).
    It works, and the points are in the correct place, but when I maximize
the plot the points are moved to a wrong place.
My second option was using image.asc(map) and then use points(x,y) and all
works! I can minimize, maximize....
But with this option, for me is not possible to show a legend strip in the
right side of the window.
Any suggestion?
Yo can understand my problem using this:
CASE 1
 file1 <-  paste(system.file(package
"adehabitat"),"ascfiles/elevation.asc", sep = "/")
 map<-import.asc(file1)
 image.plot(map,col=terrain.colors(100))
 points(700440,3160561)
CASE2
 image.asc(map,col=terrain.colors(100))
points(700440,3160561)
Lot of thanks, 
Jorge
--
View this message in context:
http://r.789695.n4.nabble.com/Is-it-possible-to-draw-with-function-image-asc-and-show-a-legend-strip-in-the-same-window-tp4650150.html
Sent from the R help mailing list archive at Nabble.com.
David Winsemius
2012-Nov-20  18:47 UTC
[R] Is it possible to draw with function "image.asc " and show a legend strip in the same window?
On Nov 20, 2012, at 3:15 AM, riodementa wrote:> I want to represent a Raster map of class "asc", and in the same window a > list of points with the funcion points(x,y).. > > I considered two options: > 1. With image.plot(map) and then use points(x,y). > It works, and the points are in the correct place, but when I maximize > the plot the points are moved to a wrong place. > > My second option was using image.asc(map) and then use points(x,y) and all > works! I can minimize, maximize.... > But with this option, for me is not possible to show a legend strip in the > right side of the window. > > Any suggestion? > > Yo can understand my problem using this: > CASE 1 > file1 <- paste(system.file(package > "adehabitat"),"ascfiles/elevation.asc", sep = "/") > map<-import.asc(file1) > image.plot(map,col=terrain.colors(100)) > points(700440,3160561) > > CASE2 > image.asc(map,col=terrain.colors(100)) > points(700440,3160561)You will notice that the image function in base r graphics uses a [0,1] x [0,1] coordinate system. x <- y <- seq(-4*pi, 4*pi, len=27) r <- sqrt(outer(x^2, y^2, "+")) image(z = z <- cos(r^2)*exp(-r/6), col=gray((0:32)/32)) # NOT the same plotted range as input. points(0,0) # appears in lower-most, left-most cell points(0.5,0.5, col= "red") # appears in center If the image.asc function ( in whatever unnamed package it resides in) uses the same transformation strategy, then you will need to transform your point values, using the values of the x and y ranges of your input data. -- David Winsemius, MD Alameda, CA, USA