Map--R绘制中国地图(一)

作者: 杨博士聊生信 | 来源:发表于2021-10-01 12:26 被阅读0次

    今天是国庆节,是祖国母亲72华诞,忍不住心潮澎湃,画一幅中国地图,以表拳拳之心。

    今天我们使用R语言来绘制中国地图。

    Step1:准备工作

    这里我们需要提前下载几个R包。

    #下载绘制中国地图所需的各种R包
    BiocManager::install("maps")
    BiocManager::install("mapdata")
    BiocManager::install("maptools")
    BiocManager::install("sf")
    

    自己提前准备用于画中国地图的GIS数据(http://cos.name/wp-content/uploads/2009/07/chinaprovinceborderdata_tar_gz.zip),包括国界和省界,共三个文件,(bou2_4p.dbf, bou2_4p.shp, bou2_4p.shx),有需要的也可以联系我,我发送给大家。

    Step2:准备画图

    #设置目录
    setwd("/app/R_packages/china/")
    #加载R包
    library(maps)
    library(mapdata)
    library(maptools)
    library(sf)
    
    #读取中国行政区地图数据
    china_map<-sf::st_read('bou2_4p.shp')
    plot(china_map$geometry)
    
    图1.jpg
    #给地图加点中国红
    plot(china_map$geometry,col="red")
    
    图2.jpg
    #china_map数据中包含了925条记录,每条记录中都含有,面积(AREA),周长(PERIMETER),BOU2_4M、BOU2_4M_ID、ADCODE93、ADCODE99、中文名(NAME),几何形状(geometry)等字段,其中中文名(NAME)字段是以GBK编码的,需要iconv函数转化一下才能正常显示。
    length(china_map$geometry)
    [1] 925
    names(china_map)
    [1] "AREA"       "PERIMETER"  "BOU2_4M_"   "BOU2_4M_ID" "ADCODE93"   "ADCODE99"  
    [7] "NAME"       "geometry"
    #利用iconv 格式转换函数来转换各省名称
    table(iconv(china_map$NAME, from = "GBK"))
    
    图3.jpg
    iconv(china_map$NAME, from = "GBK")
    
    图4.jpg

    我们还可以绘制不同省份地图

    #河北行政区化图
    plot(china_map[7,]$geometry,col="red")
    
    图5.jpg

    地图绘制就是这么简单,今后自己也会结合其他信息丰富地图绘制,希望大家多提宝贵意见。最后祝福祖国母亲生日快乐,愿祖国繁荣昌盛。

    如果小伙伴有发现本文中地图哪有有错误的,敬请批评指正。中国领土一寸都不能少。

    相关文章

      网友评论

        本文标题:Map--R绘制中国地图(一)

        本文链接:https://www.haomeiwen.com/subject/wscunltx.html