我的问题在于以色列的地图,但我问问地图库中存在的美国数据这个问题是为了让它更容易。我想它应该有效。
我知道如何在基本情节和ggplot中控制地图的边框。无论是否有情节,我都可以画画。但是,我希望有时只绘制地图的外部边框,而不是跨州的边界(如下图所示)。
<?php
ini_set("display_errors", "1");
error_reporting(E_ALL);
?>
另一个问题有点复杂:
现在让我们想象一下我可以将特定的状态分组到“地区”。我们假设我们应用了一个类别的南方&#39;和&#39;北方&#39;每个州。 然后我想区分并能够控制3种不同类型的边界 - (1)国家的外部边界; (2)每个地区的外部边界; (3)各州的外部边界。
谢谢! 艾伦
答案 0 :(得分:4)
或者,使用正确的shapefile:
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()
答案 1 :(得分:0)
美国很容易
library(ggplot2)
library(maps)
border <- map_data("usa")
border是一个数据框,所以你可以操作它:
border %>% mutate(part = ifelse(region == "main", "south", "north"))
然后你可以绘制
all_states <- map_data("state")
ggplot(all_states, aes(x=long, y=lat, group=group, fill = region)) +
geom_polygon(color = "red", size = 5, data = border) + coord_equal(ratio=1) +
geom_polygon(size = 1) + coord_equal(ratio=1)
或者你可以画任何你想要的东西
但我怀疑地图包中有关于以色列地区的信息。您需要下载包含以色列边界信息的形状文件。这里有http://www.gadm.org/country(Rspatial polygon)。你会谷歌你可以用它们做什么
答案 2 :(得分:0)
根据Camille的回答,您可以使用dplyr::summarise()
合并shapefile的边框。例如:
library(dplyr)
library(ggplot2)
shp <- ... # Load your shapefile here
shp %>%
summarise() %>%
ggplot() +
geom_sf()