ggplot не отображает объект ggmap

Когда я запускаю код из принятого ответа (Координаты графика на карте), я получаю следующее сообщение об ошибке при первом запуске после установки ggmap:

# loading the required packages
library(ggplot2)
library(ggmap)

# creating a sample data.frame with your lat/lon points
lon <- c(-38.31,-35.5)
lat <- c(40.96, 37.5)
df <- as.data.frame(cbind(lon,lat))

# getting the map
mapgilbert <- get_map(location = c(lon = mean(df$lon), lat = mean(df$lat)), zoom = 4,
                      maptype = "satellite", scale = 2)

# plotting the map with some points on it
ggmap(mapgilbert) +
  geom_point(data = df, aes(x = lon, y = lat, fill = "red", alpha = 0.8), size = 5, shape = 21) +
  guides(fill=FALSE, alpha=FALSE, size=FALSE)

что дает ошибку:

Ошибка: GeomRasterAnn был построен с несовместимой версией ggproto. Пожалуйста, переустановите пакет, который предоставляет это расширение.

Я попытался установить ggproto, но ошибка:

> Warning in install.packages :
  package ‘ggproto’ is not available (for R version 3.3.2)

При последующих попытках ошибка:

Ошибка: ggplot2 не знает, как работать с данными класса ggmap / raster.

Я могу построить изображение, используя:

plot(mapgilbert)

Я пытался:

map2 <- get_map("Rotorua", zoom = 16)
ggmap(data = map2)

который вернул следующее сообщение об ошибке:

Ошибка: ggplot2 не знает, как работать с данными класса ggmap / raster.

Я просто недостаточно хорошо знаю R, чтобы знать, где искать решение дальше - все пакеты обновлены.


person Time Lord    schedule 17.01.2017    source источник
comment
1-я карта: ggmap(mapgilbert) + ... 2-я карта: ggmap(map2)   -  person Sandy Muspratt    schedule 17.01.2017
comment
Что такое mapgilbert? ggmap не принимает аргумент данных   -  person Richard Telford    schedule 17.01.2017
comment
@RichardTelford, mapgilbert - это участок в районе островов Гилберта. Я добавил полный блок кода для полноты. Я также попробовал тот же код с нуля на другой машине, добавив ошибки, связанные с несовместимостью версий. Надеюсь, это внесет больше ясности. Мне было интересно, связана ли какая-то ошибка с ключами API, но, похоже, это не влияет на простой вызов plot (mapgilbert), поэтому, возможно, нет.   -  person Time Lord    schedule 17.01.2017
comment
Код mapgilbert работает на моем компьютере (R версии 3.3.2).   -  person Richard Telford    schedule 17.01.2017
comment
@SandyMuspratt, я перешел по указанной вами ссылке. Я переустановил все пакеты (ggplot2, ggforce, ggmap ggrepel), используя версии devtools. Перезапустил R-Studio и перезапустил код. Спасибо за ваши комментарии по этому поводу - я предполагаю, что советы по переустановке и использованию инструментов разработки были решением. Если вы хотите опубликовать ответ, я с радостью его приму. Спасибо еще раз.   -  person Time Lord    schedule 18.01.2017
comment
Приятно слышать, что это сработало. Но я не думаю, что вам нужно устанавливать версии github. Этот совет был актуален еще в ноябре 2016 года. В январе 2017 года версий CRAN должно было хватить.   -  person Sandy Muspratt    schedule 18.01.2017
comment
@SandyMuspratt. На другом компьютере я переустановил четыре вышеуказанных пакета, перезапустил R и получил ту же ошибку. Затем я установил инструменты разработки ggplot2 и ggmap, перезапустил, и код заработал. За что стоит в ответ на ваш комментарий. Спасибо.   -  person Time Lord    schedule 18.01.2017


Ответы (1)


Вероятно, это ошибка версии, потому что ваш код отлично работает на моей машине (R 3.3.2). devtools::install_github("dkahle/ggmap") devtools::install_github("hadley/ggplot2")

Вы можете скачать пакеты "devtools" и снова установить ggmap и ggplot2 из github.

person Frankie    schedule 18.01.2017