Как создать карту Дании с помощью ggmap


14

Я установил следующие два пакета:

library(ggmap)
library(maps)

Я нашел код в Интернете, чтобы создать карту мира (см. Ниже). Как мне увеличить сюжет на уровне страны? Например, Дания .

ggplot()+
  borders("world", colour="gray50", fill="gray50")

Введите описание изображения здесь

Ответы:


18

Если мы посмотрим ?bordersи, более подробно ?map, мы увидим, что мы можем использовать regionsаргумент:

ggplot() + borders(regions = "Denmark", colour = "gray50", fill = "gray50") 

введите описание изображения здесь


1
Кроме того, очень красивый пакет для карт - листовка: то естьl <- leaflet() %>% setView(lat = 50.85045, lng = 4.34878, zoom=5) %>% addTiles(group="OSM")

@Julius Vainora: Спасибо. Могу ли я добавить слои на этот график? Например, если я найду набор данных с «государственными границами»?

2
@ Давид, да, слои могут быть добавлены, например, + geom_point(data = data.frame(x = 12, y = 56), aes(x = x, y = y))добавляет точку.

1
При использовании карт вы можете добавить coord_cartesian(), чтобы масштаб осей x и y совпадал.
JAD

10

Получите границы Дании в лат-лонг и используйте coord_fixed:

ggplot() + borders("world", colour="gray50", fill="gray50") + coord_fixed(xlim=c(7, 12), ylim=c(52, 58))

Введите описание изображения здесь

Вы можете получить оценки из mapпакета:

> map("world", "Denmark", plot=FALSE)$range
[1]  8.121484 15.137110 54.628857 57.736916

И вы, возможно, захотите немного расширить их для лучшего расстояния и большего контекста.


@ когда я бегу, map("world","Denmark",plot=FALSE)$rangeя получаю NULL?

Странный. Есть ли map("world","Denmark")производить карту Дании? Что насчет "Франции" или "Бельгии"? Используются ли местные названия стран («Danmark»)? Рисует map("world")карту? Есть ли map("world",plot=FALSE)$namesвозвращать вектор имен страны / региона? Если они не работают, то это очень странно, и вы должны задать новый вопрос или сообщить об ошибке ...
Spacedman

@ Spacedan: Ни один из них не работает либо NULLошибка. Но я могу создавать сюжеты в ответах ...

1
Начните новый чистый сеанс R, сделайте library(maps), затем попробуйте? Может быть, у вас есть что-то маскирующее maps::mapфункцию. Наверное purrr::map? Не используйте library(tidyverse).
Spacedman

4
@ Spacedman: Я думаю, что все в порядке, если я использую карты :: карта. Может быть, он думал, что функция карты из пакета purrr ...
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.