r - 在 R 中绘制 map - 仅显示外部边界

标签 r ggplot2 maps border shapefile

我的问题是关于以色列 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()

enter image description here

关于r - 在 R 中绘制 map - 仅显示外部边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46070859/

相关文章:

r - str_detect 还在过滤器中找到 NA

r - 在 R 中的 ggplot2 geom_dotplot 中使用填充美学时的重叠点

R ggplot : geom_tile lines in pdf output

r - ggplot2 情节在情节中的完美拟合

android - 灰色瓷砖 Android 谷歌地图模拟器

python - 在 Plotly 中的图形顶部添加饼图

r - 将工作代码包装在函数中,它会停止工作

r - dplyr: case_when 涉及很多案例

r - 如何导入.ods?

ios - 手机离线时是否可以缓存iOS map 以供使用?