如何用r创建世界街道地图?

问题描述 投票:1回答:1

我想用Rstudio创建一个世界街道地图。我有这个代码:

countries_map <-map_data("world")
world_map<-ggplot() + 
  geom_map(data = countries_map, 
           map = countries_map,aes(x = long, y = lat, map_id = region, group = group),
           fill = "light blue", color = "black", size = 0.1)

问题:我想看到这些国家的名称,并看到这样的地图:

enter image description here

谢谢你的帮助!

r ggplot2 maps spatial
1个回答
2
投票

我们可以使用leaflet包。请参阅此链接以了解基本地图(https://leaflet-extras.github.io/leaflet-providers/preview/)的选择。在这里,我使用了“Esri.WorldStreetMap”,它与您的示例图像显示相同。

library(leaflet)
leaflet() %>%
  addProviderTiles(provider = "Esri.WorldStreetMap") %>%
  setView(0, 0, zoom = 1)

enter image description here

除了leaflet之外,我还在这里介绍了另外两个用于创建交互式地图的包,它们是tmapmapview

library(sf)
library(leaflet)
library(mapview)
library(tmap)

# Gett the World sf data
data("World")

# Turn on the view mode in tmap
tmap_mode("view")

# Plot World using tmap
tm_basemap("Esri.WorldStreetMap") +
tm_shape(World) +
  tm_polygons(col = "continent")

enter image description here

# Plot world using mapview
mapview(World, map.types = "Esri.WorldStreetMap")

enter image description here

更新

这是一种使用qazxsw poi包为每个多边形添加文本的方法。

tmap

library(sf) library(leaflet) library(mapview) library(tmap) # Gett the World sf data data("World") # Turn on the view mode in tmap tmap_mode("plot") # Plot World using tmap tm_basemap("Esri.WorldStreetMap") + tm_shape(World) + tm_polygons() + tm_text(text = "iso_a3")

如果你必须使用enter image description here,你可以准备你的数据作为ggplot2对象,并使用sfgeom_sf如下。

geom_sf_text

library(sf) library(tmap) library(ggplot2) # Gett the World sf data data("World") ggplot(World) + geom_sf() + geom_sf_text(aes(label = iso_a3))

© www.soinside.com 2019 - 2024. All rights reserved.