最近有培訓(xùn)班的小伙伴需要使用 Stata 繪制粵港澳灣區(qū)的地圖,所以今天就介紹下如何使用 Stata 繪制。
為了方便大家使用,我給大家準(zhǔn)備了下面的數(shù)據(jù):
-
城市級(jí)別:
- yga_db.dta:粵港澳行政區(qū)劃數(shù)據(jù)庫(kù)(多邊形)文件
- yga_coord.dta:粵港澳行政區(qū)劃坐標(biāo)系(多邊形)文件
- yga_line_db.dta:粵港澳行政區(qū)劃數(shù)據(jù)庫(kù)(線條)文件
- yga_line_coord.dta:粵港澳行政區(qū)劃坐標(biāo)系(線條)文件
-
區(qū)縣級(jí)別:
- yga_county_db.dta:粵港澳行政區(qū)劃數(shù)據(jù)庫(kù)(多邊形)文件
- yga_county_coord.dta:粵港澳行政區(qū)劃坐標(biāo)系(多邊形)文件
- yga_county_line_db.dta:粵港澳行政區(qū)劃數(shù)據(jù)庫(kù)(線條)文件
- yga_county_line_coord.dta:粵港澳行政區(qū)劃坐標(biāo)系(線條)文件
城市地圖
展示粵港澳大灣區(qū)的區(qū)位我們通常使用廣東地圖 + 港澳地圖:

繪圖代碼為:
use yga_db.dta, clear
gen wq = inlist(substr(市, 1, 6), "香港", "澳門", "廣州", "深圳", "珠海") | inlist(substr(市, 1, 6), "佛山", "惠州", "東莞", "中山", "江門", "肇慶")
gen group = 1 if wq
replace group = 2 if inlist(substr(市, 1, 6), "湛江", "茂名", "陽江")
replace group = 3 if inlist(substr(市, 1, 6), "汕尾", "揭陽", "汕頭", "潮州")
replace group = 4 if inlist(substr(市, 1, 6), "云浮", "清遠(yuǎn)", "河源", "梅州", "韶關(guān)")
label def group 1 "粵港澳灣區(qū)" 2 "粵西地區(qū)" 3 "粵東地區(qū)" 4 "北部地區(qū)"
label val group group
save yga_db2.dta, replace
spmap group using yga_coord.dta, id(ID) ///
clmethod(custom) clbreaks(0 1 2 3 4) ///
fcolor("112 154 225" "254 212 57" "213 228 162" "138 145 151") ///
leg(order(2 "粵港澳灣區(qū)" 3 "粵西地區(qū)" 4 "粵東地區(qū)" 5 "北部地區(qū)") pos(4) size(*1.5)) ///
ocolor("white" ...) osize(vthin ...) ///
point(data(yga_db2.dta) x(x) y(y) ///
shape(Oh Dh Th Sh) by(group) ///
size(*0.5 ...) osize(*1.2 ...)) ///
label(data(yga_db2.dta) x(x) y(y) ///
label(市) gap(*1.8) pos(6) length(6)) ///
graphr(margin(medium)) ///
ti("粵港澳大灣區(qū)區(qū)位圖", size(*1.1) pos(11)) ///
subti("粵港澳大灣區(qū)地處我國(guó)沿海開放前沿,以泛珠三角區(qū)域?yàn)閺V闊發(fā)展腹地,在“一帶一路”建設(shè)中具有重要地" "位。交通條件便利,擁有香港國(guó)際航運(yùn)中心和吞吐量位居世界前列的廣州、深圳等重要港口,以及香港、廣" "州、深圳等具有國(guó)際影響力的航空樞紐,便捷高效的現(xiàn)代綜合交通運(yùn)輸體系正在加速形成。", size(*0.8) pos(11)) ///
caption("繪制:微信公眾號(hào) RStata", size(*0.8))
如果只繪制粵港澳灣區(qū)地圖可以使用 if 進(jìn)行篩選繪制:

繪圖代碼為:
* 只繪制粵港澳大灣區(qū)
encode 市, gen(city)
tab city if wq, nolabel
spmap city using yga_coord.dta if wq, id(ID) ///
clmethod(custom) clbreaks(0 1 2 4 5 6 11 13 17 18 19 23) ///
fcolor("254 212 57" "112 154 225" "138 145 151" "210 175 129" "253 116 70" "213 228 162" "25 126 192" "240 92 59" "70 115 46" "113 208 245" "55 3 53") ///
leg(off) ///
ocolor("white" ...) osize(vthin ...) ///
point(data(yga_db2.dta) x(x) y(y) ///
size(*0.5 ...) osize(*1.2 ...) ///
select(keep if wq) shape(Oh)) ///
label(data(yga_db2.dta) x(x) y(y) ///
label(市) gap(*1.8) pos(6) length(6) ///
select(keep if wq)) ///
graphr(margin(medium)) ///
ti("粵港澳大灣區(qū)包含的城市", size(*1.1) pos(11)) ///
subti("粵港澳大灣區(qū)包括香港特別行政區(qū)、澳門特別行政區(qū)和廣東省廣州市、深圳市、珠海市、佛山市、惠" "州市、東莞市、中山市、江門市、肇慶市(以下稱珠三角九市),總面積 5.6 萬平方公里,2017年末" "總?cè)丝诩s7000萬人,是我國(guó)開放程度最高、經(jīng)濟(jì)活力最強(qiáng)的區(qū)域之一,在國(guó)家發(fā)展大局中具有重要戰(zhàn)" "略地位。", size(*0.8) pos(11)) ///
caption("繪制:微信公眾號(hào) RStata", size(*0.8))
上面繪制的都是填充地圖,如果想繪制描點(diǎn)地圖可以使用 point() 選項(xiàng),這里使用 2013 年工企業(yè)數(shù)據(jù)的分布為例展示:

繪圖代碼為:
* 合并工企業(yè)的點(diǎn)和城市的質(zhì)心
use yga_db2.dta, clear
keep x_centroid y_centroid 市 wq
keep if wq
gen centroid = 1
ren x_centroid 經(jīng)度
ren y_centroid 緯度
append using "2013年粵港澳大灣區(qū)工企業(yè)數(shù)據(jù).dta"
replace centroid = 0 if missing(centroid)
save 2013年粵港澳大灣區(qū)工企業(yè)數(shù)據(jù)2.dta, replace
use yga_db2.dta, clear
encode 市, gen(city)
tab city if wq, nolabel
tab city if wq
spmap city using yga_coord.dta if wq, id(ID) ///
clmethod(custom) clbreaks(0 1 2 4 5 6 11 13 17 18 19 23) ///
fcolor("254 212 57" "112 154 225" "138 145 151" "210 175 129" "253 116 70" "213 228 162" "25 126 192" "240 92 59" "70 115 46" "113 208 245" "55 3 53") ///
leg(order(2 "東莞" 3 "中山" 4 "佛山" 5 "廣州" 6 "惠州" 7 "江門" 8 "深圳" 9 "澳門" 10 "珠海" 11 "肇慶" 12 "香港") size(*1.2) pos(4) col(2)) ///
ocolor("white" ...) osize(vthin ...) ///
point(data(2013年粵港澳大灣區(qū)工企業(yè)數(shù)據(jù)2.dta) ///
x(經(jīng)度) y(緯度) by(centroid) ///
size(*0.5 ...) osize(*1.2 ...) ///
shape(p Oh) fcolor(gray%80 white)) ///
label(data(yga_db2.dta) x(x) y(y) ///
label(市) gap(*1.8) pos(6) length(6) ///
select(keep if wq)) ///
graphr(margin(medium)) ///
ti("粵港澳大灣區(qū)工企業(yè)分布", size(*1.1) pos(11)) ///
subti("數(shù)據(jù)來源:2013 年中國(guó)工業(yè)企業(yè)數(shù)據(jù)庫(kù)", size(*0.8) pos(11)) ///
caption("繪制:微信公眾號(hào) RStata", size(*0.8))
區(qū)縣地圖
如果大家需要繪制區(qū)縣級(jí)地圖可以使用區(qū)縣的那幾個(gè)文件,比不過還得結(jié)合著城市的數(shù)據(jù)來使用:

use yga_county_db.dta, clear
gen wq = inlist(substr(市, 1, 6), "香港", "澳門", "廣州", "深圳", "珠海") | inlist(substr(市, 1, 6), "佛山", "惠州", "東莞", "中山", "江門", "肇慶")
gen group = 1 if wq
replace group = 2 if inlist(substr(市, 1, 6), "湛江", "茂名", "陽江")
replace group = 3 if inlist(substr(市, 1, 6), "汕尾", "揭陽", "汕頭", "潮州")
replace group = 4 if inlist(substr(市, 1, 6), "云浮", "清遠(yuǎn)", "河源", "梅州", "韶關(guān)")
label def group 1 "粵港澳灣區(qū)" 2 "粵西地區(qū)" 3 "粵東地區(qū)" 4 "北部地區(qū)"
label val group group
save yga_county_db2.dta, replace
spmap group using yga_county_coord.dta, id(ID) ///
clmethod(custom) clbreaks(0 1 2 3 4) ///
fcolor("112 154 225" "254 212 57" "213 228 162" "138 145 151") ///
leg(order(2 "粵港澳灣區(qū)" 3 "粵西地區(qū)" 4 "粵東地區(qū)" 5 "北部地區(qū)") pos(4) size(*1.5)) ///
ocolor("white" ...) osize(vvthin ...) ///
point(data(yga_db2.dta) x(x) y(y) ///
shape(Oh Dh Th Sh) by(group) ///
size(*0.5 ...) osize(*1.2 ...)) ///
label(data(yga_db2.dta) x(x) y(y) ///
label(市) gap(*1.8) pos(6) length(6)) ///
line(data(yga_line_coord.dta) by(_ID) ///
color(black ...) size(vthin)) ///
graphr(margin(medium)) ///
ti("粵港澳大灣區(qū)區(qū)位圖", size(*1.1) pos(11)) ///
subti("粵港澳大灣區(qū)地處我國(guó)沿海開放前沿,以泛珠三角區(qū)域?yàn)閺V闊發(fā)展腹地,在“一帶一路”建設(shè)中具有重要地" "位。交通條件便利,擁有香港國(guó)際航運(yùn)中心和吞吐量位居世界前列的廣州、深圳等重要港口,以及香港、廣" "州、深圳等具有國(guó)際影響力的航空樞紐,便捷高效的現(xiàn)代綜合交通運(yùn)輸體系正在加速形成。", size(*0.8) pos(11)) ///
caption("繪制:微信公眾號(hào) RStata", size(*0.8))
單獨(dú)繪制粵港澳大灣區(qū)的 11 個(gè)城市也是使用 if 進(jìn)行篩選:

use yga_county_db2.dta, clear
encode 市, gen(city)
tab city if wq, nolabel
spmap city using yga_county_coord.dta if wq, id(ID) ///
clmethod(custom) clbreaks(0 1 2 4 5 6 11 13 17 18 19 23) ///
fcolor("254 212 57" "112 154 225" "138 145 151" "210 175 129" "253 116 70" "213 228 162" "25 126 192" "240 92 59" "70 115 46" "113 208 245" "55 3 53") ///
leg(off) ///
ocolor("white" ...) osize(vthin ...) ///
point(data(yga_db2.dta) x(x) y(y) ///
size(*0.5 ...) osize(*1.2 ...) ///
select(keep if wq) shape(Oh)) ///
label(data(yga_db2.dta) x(x) y(y) ///
label(市) gap(*1.8) pos(6) length(6) ///
select(keep if wq)) ///
graphr(margin(medium)) xsize(9) ysize(6) ///
ti("粵港澳大灣區(qū)包含的城市", size(*1.1) pos(11)) ///
subti("粵港澳大灣區(qū)包括香港特別行政區(qū)、澳門特別行政區(qū)和廣東省廣州市、深圳市、珠海市、佛山市、惠州市" "、東莞市、中山市、江門市、肇慶市(以下稱珠三角九市),總面積 5.6 萬平方公里,2017年末總?cè)丝诩s" "7000萬人,是我國(guó)開放程度最高、經(jīng)濟(jì)活力最強(qiáng)的區(qū)域之一,在國(guó)家發(fā)展大局中具有重要戰(zhàn)略地位。", size(*0.8) pos(11)) ///
caption("繪制:微信公眾號(hào) RStata", size(*0.8))