3

I'm using ggmap to work on a map of madagascar

myMap <- get_map(location=k, source="stamen", maptype="toner", crop=FALSE, 
                 zoom=16)

and to plot points on that map from an x y lat/lon grid

ggmap(myMap) + geom_point(data=GPS, aes(x = 'Lon', y ='Lat'))
ggplot(data=GPS, aes(x=Lon,y=Lat)) + geom_point()

from data that look like this

 Tree.ID       Type       Species       Lat      Lon Foraged Plot
       7   deadwood      Dracaena -21.37413 47.86700       N    1
       8   deadwood       Bivinia -21.37408 47.86696       N    1
       9   deadwood Beilschmiedia -21.37396 47.86691       N    1
      10 live trunk        Ocotea -21.37410 47.86690       N    1
      12   deadwood   Tambourissa -21.37418 47.86696       N    1
      13 live trunk      Canarium -21.37422 47.86691       N    1

But I get this error:

Error: Discrete value supplied to continuous scale

What should I do?

UseR10085
  • 7,120
  • 3
  • 24
  • 54
user3720904
  • 119
  • 1
  • 2
  • 4
  • Please make your example [reproducible](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) by adding minimal complete data sets you're operating on. – tonytonov Jun 11 '14 at 06:40

1 Answers1

4

You're passing the character strings "Lon" and "Lat" to x and y rather than passing Lon and Lat themselves. Take out the quotes and you should be fine.

d <- read.table(header=T, text='
 Tree.ID      Type       Species       Lat      Lon Foraged Plot
       7  deadwood      Dracaena -21.37413 47.86700       N    1
       8  deadwood       Bivinia -21.37408 47.86696       N    1
       9  deadwood Beilschmiedia -21.37396 47.86691       N    1
      10 livetrunk        Ocotea -21.37410 47.86690       N    1
      12  deadwood   Tambourissa -21.37418 47.86696       N    1
      13 livetrunk      Canarium -21.37422 47.86691       N    1')

library(ggmap)

myMap <- get_map(location=colMeans(d[, c('Lon', 'Lat')]), source="stamen", 
                 maptype="toner", crop=FALSE, zoom=16)
ggmap(myMap) + geom_point(aes(x = Lon, y = Lat), data=d)

enter image description here

jbaums
  • 27,115
  • 5
  • 79
  • 119