首页 > 解决方案 > 与 ggplotly 交互绘图时,GGplot geom_map 会失真

问题描述

我正在尝试使用 和 创建德国的交互式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

Germany_with_correct_aspect_ration

将其转换为情节图时ggplotly,情节会失真。

ggplotly(p)

在此处输入图像描述

任何想法如何解决它?我不知道这是否相关,但我曾经在 R Markdown 文档中运行此代码。

非常感谢。

标签: rdictionaryggplot2plotlygeom

解决方案


我猜你无法从你使用的世界地图中获得相当程度的细节。地图基本上有两种类型:通用和 GIS(真实地图数据)。

下面是一张未变形的德国地图。以下是步骤和数据源。

下载 GIS 数据 - 德国地图。来源,https://gadm.org/download_country_v3.html 选择详细程度。0 - 国家概况,1 - 国家/州。这些文件将具有 sp.rds 扩展名。

将下载的地理参考数据文件剪切并粘贴到您的工作目录中 - 这比创建从工作目录到其他文件夹位置的路径更容易。由于该数据是用于创建该德国地块的实际地理空间数据,因此该数据/地块可用作底图或与谷歌地图、Overstreet 地图等叠加的地图。

使用以下库和两行代码来创建德国的情节。

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

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

在此处输入图像描述


推荐阅读