Я пытаюсь использовать GGmap для создания графика аварий с участием автомобилей.Карта будет иметь точки, размер которых зависит от количества автомобильных аварий в штате.
В частности, я пытаюсь воссоздать график США, показанный в разделе визуализирующих кластеров этого сообщения в блоге .
Однако всякий раз, когда я пытаюсь создать карту, я получаю эту ошибку.
Error in aperm.default(map, c(2, 1, 3)) :
invalid first argument, must be an array
Я настраиваю Google API и вижу, что он получает хиты.Я также включил его и у меня есть ключ.
Кроме того, я установил GGmap из учетной записи github с помощью этой команды:
devtools::install_github("dkahle/ggmap", ref = "tidyup", force=TRUE)
, поскольку CRAN не обновляется.
Я также перезагружался и выходил из R несколько раз, но ошибка сохраняется.
Даже если я просто запускаю:
get_map()
, это все равно приводит к ошибке:
Error in aperm.default(map, c(2, 1, 3)) :
invalid first argument, must be an array
Ниже мой код, он похож на код всообщение в блоге:
mydata$State <- as.character(mydata$State)
mydata$MV.Number = as.numeric(mydata$MV.Number)
mydata = mydata[mydata$State != "Alaska", ]
mydata = mydata[mydata$State != "Hawaii", ]
devtools::install_github("dkahle/ggmap", ref = "tidyup", force=TRUE)
library(ggmap)
ggmap::register_google(key = "...") #my key is here
for (i in 1:nrow(mydata)) {
latlon = geocode(mydata[i,1])
mydata$lon[i] = as.numeric(latlon[1])
mydata$lat[i] = as.numeric(latlon[2])
}
mv_num_collisions = data.frame(mydata$MV.Number, mydata$lon, mydata$lat)
colnames(mv_num_collisions) = c('collisions','lon','lat')
usa_center = as.numeric(geocode("United States"))
USAMap = ggmap(get_googlemap(center=usa_center, scale=2, zoom=4),
extent="normal")
USAMap +
geom_point(aes(x=lon, y=lat), data=mv_num_collisions, col="orange",
alpha=0.4, size=mv_num_collisions$collisions*circle_scale_amt) +
scale_size_continuous(range=range(mv_num_collisions$collisions))
Я ожидаю, что карта будет отображаться как this
Но я не могу передать эту ошибку.
Еслилюбой может помочь, это было бы здорово.
Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.
Спасибо.