我的问题是关于以色列 map ,但我会用 map 库中存在的美国数据来问问题,以使其更容易。我想应该可以。
我知道如何在基本图和 ggplot 中控制 map 的边界。我可以用或不用图来绘制它。但是,有时我想只绘制 map 的外部边界,而不是跨州的边界(如下图所示)。
library(ggplot2)
library(maps)
all_states <- map_data("state")
ggplot(all_states, aes(x=long, y=lat, group=group, fill = region)) +
geom_polygon(color = "black", size = 1) + coord_equal(ratio=1)
另一个问题有点复杂:
现在让我们假设我有一种方法将特定的州分组为“区域”。假设我们将“南方”和“北方”类别应用于每个州。 然后我想区分并能够控制 3 种不同类型的边界 - (1) 国家的外部边界; (二)各地区的外部边界; (3)各州的外部边界。
谢谢! 艾伦
最佳答案
或者,使用适当的形状文件:
library(rgdal)
library(ggplot2)
if (!file.exists("israel_geojson.tgz")) download.file("https://s3.amazonaws.com/osm-polygons.mapzen.com/israel_geojson.tgz", "israel_geojson.tgz")
(untar("israel_geojson.tgz", list = TRUE))
## [1] "./israel/" "./israel/admin_level_2.geojson"
## [3] "./israel/admin_level_other.geojson" "./israel/admin_level_95.geojson"
## [5] "./israel/admin_level_11.geojson" "./israel/admin_level_94.geojson"
## [7] "./israel/admin_level_5.geojson" "./israel/regions.geojson"
## [9] "./israel/admin_level_1.geojson" "./israel/admin_level_12.geojson"
## [11] "./israel/admin_level_3.geojson" "./israel/admin_level_7.geojson"
## [13] "./israel/admin_level_0.geojson" "./israel/admin_level_13.geojson"
## [15] "./israel/admin_level_10.geojson" "./israel/admin_level_6.geojson"
## [17] "./israel/admin_level_15.geojson" "./israel/admin_level_4.geojson"
## [19] "./israel/admin_level_9.geojson" "./israel/admin_level_8.geojson"
According to Mapzen ,他们的管理层2是大纲。
israel <- readOGR("./israel/admin_level_2.geojson")
israel_map <- fortify(israel)
ggplot() +
geom_map(data=israel_map, map=israel_map, aes(long, lat, map_id=id),
color="#2b2b2b", fill="white") +
ggalt::coord_proj("+proj=aeqd +lat_0=31.471357089512118 +lon_0=35.189208984375") +
ggthemes::theme_map()
关于r - 在 R 中绘制 map - 仅显示外部边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46070859/