consider this reproducible example # set the origin of the grid # in cartesian coordinates (epsg 32632) xmin<-742966 ymin<-5037923 # set x and y axis x<-seq(xmin, xmin+25*39, by=25) y<-seq(ymin, ymin+25*39, by =25) # define a 40 x 40 grid mygrid<-expand.grid(x = x, y = y) # set the z value to be interpolated by the contour set.seed(123) mygrid$z<- rnorm(nrow(mygrid)) library(tidyverse) # plot of contour is fine ggplot(data=mygrid, aes(x=x,y=y,z=z))+ geom_contour() library(ggspatial) # transform coordinates to wgs84 4326# (one of the possible many other ways to do it) mygrid_4326<-xy_transform(mygrid$x, mygrid$y, from = 32632, to = 4326) # create new grid with lon and lat # (geographical coordinates espg 4326) mygrid_4326<-mygrid_4326%>% mutate(z=mygrid$z) # define the bounding box my_bb<-c(min(mygrid_4326$x), min(mygrid_4326$y), max(mygrid_4326$x), max(mygrid_4326$y))names(my_bb)<-c('left', 'bottom', 'right', 'top') library(ggmap) # get the background map (by a free provider) mymap<-get_stamenmap(bbox = c(left = my_bb[['left']], bottom = my_bb[['bottom']], right = my_bb[['right']], top = my_bb[['top']]), zoom = 15, maptype = 'toner-lite') # plot of the map is fine mymap%>% ggmap() # overlay the contour of z is failing mymap%>% ggmap()+ #geom_contour(data=mygrid_4326, mapping=aes(x = x, y = y, z = z)) stat_contour(data=mygrid_4326, mapping=aes(x = x, y = y, z = z)) Warning messages:1: stat_contour(): Zero contours were generated 2: In min(x) : no non-missing arguments to min; returning Inf3: In max(x) : no non-missing arguments to max; returning -Inf the problem here is the overlay of the contour plot made with ggplot to a base map made with ggmap any help? thanks [[alternative HTML version deleted]]