如何使用ggmap创建丹麦地图


14

我已经安装了以下两个软件包:

library(ggmap)
library(maps)

我在网上找到了创建世界地图的代码(请参见下文)。如何在国家/地区级别上放大图?例如,丹麦

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

在此处输入图片说明

Answers:


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

在lat-long中获得丹麦的边界,并使用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
开始一个新的clean R会话,执行library(maps),然后尝试?也许您有一些掩盖该maps::map功能的东西。大概purrr::map吧 不要使用library(tidyverse)
Spacedman '19

4
// @ Spacedman:我认为如果使用maps :: map可以。也许它以为来自purrr包的地图功能...
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.