Я пытаюсь добавить второй набор данных в виде географических точек к графику ggmap. У меня уже есть батиметрические / топографические данные, примененные к карте с использованием функций geom_contour
и geom_raster
. Но каждый раз, когда я добавляю функцию geom_point
, я получаю это сообщение:
«Дискретное значение подается в непрерывную шкалу»
Вот как выглядит мой фрейм данных о географических координатах (Coords):
Long Lat Type
1 155.5910 19.93401 Not geo-referenced
2 155.4998 19.83302 Not geo-referenced
3 155.2000 19.52440 Not geo-referenced
4 155.6302 20.00934 Geo-referenced
5 155.6623 19.81197 Not geo-referenced
6 155.5619 19.88102 Geo-referenced
Как я получил батиметрические данные (НЕ относится к этому вопросу)
bathydata <- getNOAA.bathy(lon1 = -180, lon2 = -154.5, lat1 = 29.3, lat2 =7, resolution = 7, antimeridian=FALSE)
bathydata <- as.matrix(bathydata)
class(bathydata) <- "matrix"
result1<- as.data.frame(bathydata)
result2<- rownames_to_column(result1, var = "lon")
result3<- gather(result2, lat, value, -1)
finalBathy<- mutate_all(result3, list(as.numeric))
Вот как выглядит мой батиметрический фрейм данных (finalBathy):
lon lat value
1 -179.9417 7.058333 -5697
2 -179.8252 7.058333 -5582
3 -179.7088 7.058333 -5322
4 -179.5924 7.058333 -5708
5 -179.4759 7.058333 -5791
6 -179.3595 7.058333 -5781
Мой код
baseArchipelago = get_map(location = c(-180, 7, -154.5, 29.3), zoom = 6, maptype = "terrain")
mapArchipelago <- ggmap(baseArchipelago)
MapRaster <- mapArchipelago
+ geom_raster(data = finalBathy, aes(x = lon, y = lat, fill = value))
+ geom_contour(data = finalBathy, aes(x = lon, y = lat, z = value),
bins = 8, colour = "darkslategray", lwd=0.25)
+ geom_point(data=Coords, aes(x = -Long, y = Lat, fill = Type, shape = Type), color = "black",
cex = 1.2, show.legend = FALSE)
+ scale_shape_manual(values = c(23, 23), labels = c("Point 1", "Point2"), name = NULL)
MapFinal <- MapRaster + coord_cartesian()
((Примечание: без coord_cartesian()
, я получаю сообщение об ошибке: «Ошибка: geom_raster работает только с декартовыми координатами»))
Если я удаляю fill=Type
из аргумента aes в geom_point, проблема решается и точки отображаются правильно:
Но мне нужно, чтобы точки были заполнены их типом!
И если я добавлю scale_fill_manual(values=c("red", "blue"), labels=c("Point 1", "Point 2"), name=NULL)
к коду, точки исчезнут, и я снова получу то же сообщение: "Дискретное значение, представленное в непрерывной шкале"