我正在尝试使用 R 中的地图和 ggplot2 包绘制埃及境内所有省份的地图,但我在这些包的数据库中没有找到埃及的任何子区域(省)。 因此,我从谷歌(和其他网站)下载了埃及所有省份的坐标(经度和纬度),并尝试生成地图,但它给了我一张完全破碎的图片,这绝对不是埃及的省份。这让我觉得搜索引擎(例如谷歌)的坐标与 R 使用的坐标不同。我确实知道 R 正在处理 +ve 和负值中的坐标,而公共数据库则不然。我需要以某种方式将其转换为“R”格式吗? 你们中的任何人都可以建议解决这个问题的方法吗,特别是我在 R 包的数据库中没有找到埃及的省份长/纬度?
谢谢
我已经为埃及整个国家成功尝试过此代码
ggplot() +
geom_polygon(data = mapdata_Egypt, aes(x=long, y = lat, group = group), fill = NA, color = "red") +
coord_fixed(1.3)
但是我找不到埃及的省份坐标来绘制它们。
虽然您没有提供数据来源的链接,也没有提供用于生成mapdata_Egypt对象的代码,但这里有一个可以实现您目标的repex。
处理点、线或多边形地理数据时,应使用
sf
包。使用 sf
操作和绘制地理数据相对容易,并且 ggplot2
可以很好地处理 sf
对象。
此示例中使用的数据可以在这里找到。
将包和数据加载到R中
library(sf)
library(ggplot2)
# Load shapefile previously unzipped into your working directory
egypt_sf <- st_read("egy_admbnda_adm2_capmas_20170421.shp")
# View subset of columns and rows in egypt_sf, misalignment of column values
# due to mix of Arabic/English text
egypt_sf[,1:4]
# Simple feature collection with 365 features and 4 fields
# Geometry type: MULTIPOLYGON
# Dimension: XY
# Bounding box: xmin: 24.69451 ymin: 21.99913 xmax: 36.90871 ymax: 31.67028
# Geodetic CRS: WGS 84
# First 10 features:
# ADM2_EN ADM2_AR ADM2_PCODE ADM2_REF geometry
# 1 10 Ramadan 1 قسم اول مدينة العاشر من رمض EG1309 10 Ramadan 1 MULTIPOLYGON (((31.70323 30...
# 2 10 Ramadan 2 قسم ثان مدينه العاشر من رمض EG1321 10 Ramadan 2 MULTIPOLYGON (((31.72752 30...
# 3 15 Mayu قسم 15 مايو EG0103 15 Mayu MULTIPOLYGON (((31.37739 29...
# 4 6 October-1 قسم أول 6 أكتوبر EG2107 6 October-1 MULTIPOLYGON (((30.98266 30...
# 5 6 October-2 قسم ثان 6 أكتوبر EG2121 6 October-2 MULTIPOLYGON (((30.954 29.9...
# 6 A-Dakhla Oasis مركز الوحات الداخلة EG3202 A-Dakhla Oasis MULTIPOLYGON (((30.53004 27...
# 7 A L Labban قسم اللبان EG0209 A L Labban MULTIPOLYGON (((29.89994 31...
# 8 Abdin قسم عابدين EG0109 Abdin MULTIPOLYGON (((31.24768 30...
# 9 Abnub مركز أبنوب EG2504 Abnub MULTIPOLYGON (((31.20966 27...
# 10 Abour قسم العبو EG1413 Abour MULTIPOLYGON (((31.4632 30...