今天是國慶節(jié)肺素,是祖國母親72華誕,忍不住心潮澎湃型奥,畫一幅中國地圖瞳收,以表拳拳之心。
今天我們使用R語言來繪制中國地圖桩引。
Step1:準(zhǔn)備工作
這里我們需要提前下載幾個R包缎讼。
#下載繪制中國地圖所需的各種R包
BiocManager::install("maps")
BiocManager::install("mapdata")
BiocManager::install("maptools")
BiocManager::install("sf")
自己提前準(zhǔn)備用于畫中國地圖的GIS數(shù)據(jù)(http://cos.name/wp-content/uploads/2009/07/chinaprovinceborderdata_tar_gz.zip),包括國界和省界坑匠,共三個文件血崭,(bou2_4p.dbf, bou2_4p.shp, bou2_4p.shx),有需要的也可以聯(lián)系我厘灼,我發(fā)送給大家夹纫。
Step2:準(zhǔn)備畫圖
#設(shè)置目錄
setwd("/app/R_packages/china/")
#加載R包
library(maps)
library(mapdata)
library(maptools)
library(sf)
#讀取中國行政區(qū)地圖數(shù)據(jù)
china_map<-sf::st_read('bou2_4p.shp')
plot(china_map$geometry)
#給地圖加點中國紅
plot(china_map$geometry,col="red")
#china_map數(shù)據(jù)中包含了925條記錄,每條記錄中都含有设凹,面積(AREA)舰讹,周長(PERIMETER),BOU2_4M闪朱、BOU2_4M_ID月匣、ADCODE93、ADCODE99奋姿、中文名(NAME),幾何形狀(geometry)等字段锄开,其中中文名(NAME)字段是以GBK編碼的,需要iconv函數(shù)轉(zhuǎn)化一下才能正常顯示称诗。
length(china_map$geometry)
[1] 925
names(china_map)
[1] "AREA" "PERIMETER" "BOU2_4M_" "BOU2_4M_ID" "ADCODE93" "ADCODE99"
[7] "NAME" "geometry"
#利用iconv 格式轉(zhuǎn)換函數(shù)來轉(zhuǎn)換各省名稱
table(iconv(china_map$NAME, from = "GBK"))
iconv(china_map$NAME, from = "GBK")
我們還可以繪制不同省份地圖
#河北行政區(qū)化圖
plot(china_map[7,]$geometry,col="red")
地圖繪制就是這么簡單萍悴,今后自己也會結(jié)合其他信息豐富地圖繪制,希望大家多提寶貴意見。最后祝福祖國母親生日快樂癣诱,愿祖國繁榮昌盛计维。
如果小伙伴有發(fā)現(xiàn)本文中地圖哪有有錯誤的,敬請批評指正撕予。中國領(lǐng)土一寸都不能少鲫惶。