добро пожаловать в StackOverflow!Чтобы помочь людям помочь вам, вы должны приложить воспроизводимый пример .Вот, например, небольшой фрагмент кода для ваших данных:
library(tidyverse)
Anatomy <- tribble(~Species, ~Lat, ~Long, ~Station,
"A", 50, 60, "I",
"A", 50, 60, "I",
"A", 40, 30, "II",
"B", 50, 60, "I",
"B", 40, 30, "II")
Есть несколько проблем с вашими данными / кодом:
- проекция: вам, скорее всего, придется перепроектироватьданные.Просто глядя на координаты, ваши точки 50, 60, в то время как карта показывает -50, -60.Найдите проекцию и используйте, например,
st_transform
из пакета sf
- цитирование переменных: вам не нужно снова вызывать фрейм данных, как в
Anatomy$Latitude
.Просто используйте Latitude
.Плюс latitude
на самом деле lat
в ваших данных!? - агрегация: я бы предложил просто использовать функцию
count()
, чтобы увидеть количество наблюдений на станцию.
Вот кусок кода.Заметьте, я просто повернул (60, 50) к (-60, -50), что явно неверно!
library(ggmap)
#> Loading required package: ggplot2
#> Google's Terms of Service: https://cloud.google.com/maps-platform/terms/.
#> Please cite ggmap if you use it! See citation("ggmap") for details.
library(tidyverse)
B<-get_map(location = c(lon = -56.731405, lat =-61.4831206),
zoom = 6,
scale = "auto",
maptype = c("terrain"),
source = c("google"))
library(tidyverse)
Anatomy <- tribble(~Species, ~Lat, ~Long, ~Station,
"A", 50, 60, "I",
"A", 50, 60, "I",
"A", 40, 30, "II",
"B", 50, 60, "I",
"B", 40, 30, "II")
Anatomy_clean <- Anatomy %>%
mutate_at(c("Lat", "Long"), funs(-1*.)) %>%
count(Species, Lat, Long, Station)
#> Warning: funs() is soft deprecated as of dplyr 0.8.0
#> please use list() instead
#>
#> # Before:
#> funs(name = f(.)
#>
#> # After:
#> list(name = ~f(.))
#> This warning is displayed once per session.
ggmap(B) +
geom_point(data=Anatomy_clean,
aes(x= Lat,y=Long, color=Species, size= n)) +
scale_size_continuous(range=c(1,12))
#> Warning: Removed 2 rows containing missing values (geom_point).