GGplot geom_map искажается при интерактивном построении с помощью ggplotly

Я пытаюсь создать интерактивную карту Германии с plotly а также ggplot. Наконец, я хотел бы наложитьgeom_points с всплывающими подсказками, но пока я борюсь с соотношением сторон.

Я создаю такой сюжет:

library(tidyverse)
library(ggplot2)
library(plotly)

p <- map_data("world") %>%
  filter(region=="Germany") %>%
  ggplot(aes(x=long, y = lat, group = group)) +
  geom_polygon(fill="grey") +
  coord_map()

Если просто построить график с помощью ggplot, соотношение сторон Германии такое, как я знаю из школы.

p

При преобразовании в сюжетный сюжет с ggplotly сюжет искажен.

ggplotly(p)

Есть идеи, как это исправить? Не знаю, актуально ли это, но раньше я запускал этот код в документе R Markdown.

Большое спасибо.

1 ответ

Я полагаю, вы не можете получить приличный уровень детализации на карте мира, которую вы использовали. Карты бывают двух типов: общие и ГИС (реальные картографические данные).

Ниже представлена ​​неискаженная карта Германии. Вот шаги и источники данных.

Скачать данные ГИС - карта Германии. Источник, https://gadm.org/download_country_v3.html Выберите уровень детализации. 0 - контур страны, 1 - страна с штатами. Эти файлы будут иметь расширения sp.rds.

Вырежьте и вставьте загруженный файл географических справочных данных в ваш рабочий каталог - это проще, чем создать путь из рабочего каталога в какое-либо другое место в папке. Поскольку эти данные являются фактическими геопространственными данными, использованными при создании этого графика Германии, эти данные / график можно использовать в качестве базовой карты или карты наложения с картами Google, картами Overstreet и т. Д.

Используйте следующие библиотеки и две строки кода, чтобы создать сюжет о Германии.

library(maptools)
library(raster)
library(rgdal)

gadm <- readRDS("gadm36_DEU_0_sp.rds")   # get the gis file from w/d.
plot(gadm)

Другие вопросы по тегам