r - 与 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
将其转换为情节图时ggplotly
,情节会失真。
ggplotly(p)
任何想法如何解决它?我不知道这是否相关,但我曾经在 R Markdown 文档中运行此代码。
非常感谢。
解决方案
我猜你无法从你使用的世界地图中获得相当程度的细节。地图基本上有两种类型:通用和 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)
推荐阅读
- java - 读取文本文件并删除所有重复项
- reactjs - 如何让我的启动画面保持在 React 组件上
- xml - XSLT 从元数据创建子标签
- php - 从 CodeIgniter 中的数组中删除对象
- html - 如何使用 CSS 在跨度中选择一个类?
- python - 有没有办法使用数据框元组索引作为“x”输入来绘制条形图?
- office-js - 使用 Office 加载项将文本插入新会议的撰写正文
- c# - 如何根据数据的单位格式化 DataGrid 行
- reactjs - 如何在其他组件发送 this.state 并在父组件中渲染
- angular - catchError 之后的 switchMap 不发出值