Як створити карту Данії за допомогою 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
@David, так, шари можна додавати, наприклад + 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")виготовляє карту Данії? А як щодо "Франції" чи "Бельгії"? Він використовує назви місцевих країн ("Датчик")? Малює map("world")карта? Чи map("world",plot=FALSE)$namesповертає вектор назв країн / регіонів? Якщо це не працює, то це дуже дивно, і вам слід запитати новий Q або повідомити про помилку ...
Spacedman

@ Spacedan: Жоден з них не працює ні NULLпомилкою. Але я можу створити сюжети у відповідях ...

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

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