please consider the following 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 many possible 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')
# the plot of the map is fine
mymap%>%
ggmap()
# the overlay of the contour 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 Inf
#3: In max(x) : no non-missing arguments to max; returning -Inf
now the problem is the overlay of the contour made with ggplot to the base
map made with ggmap
any help fo that?
thanks
overlay ggplot contour to base ggmap
1 message · Massimo Bressan