空間數(shù)據(jù)可視化之spmap命令

本文作者:王玉婷,中南財經(jīng)政法大學金融學院
文字編輯:崔趙雯
技術(shù)總編:余術(shù)玲

??各位小伙伴、大伙伴大家好刺啦,我爬蟲俱樂部“張三豐”又回來啦~

ima_2.jpg

1. 導讀

??大家應該還記得,前段時間我們揭了Sustainability的老底(《在Sustainability上發(fā)文最多的原來是這些高芯榔ⅲ》)玛瘸,整理了世界主要國家和地區(qū)的研究機構(gòu)在Sus上發(fā)文的名單和數(shù)量。為了更直觀地觀察各國的發(fā)文情況苟蹈,我發(fā)現(xiàn)了著名的空間數(shù)據(jù)可視化命令——spmap糊渊,作圖效果如下圖所示:

image

2. 語法及其簡單應用

??spmap是一個外部命令,首先我們需要安裝該命令:

ssc install spmap

??spmap的語法結(jié)構(gòu)如下:
??spmap [attribute] [if] [in] using basemap [, ///
???? basemap_options ///
???? polygon(polygon_suboptions) ///
???? line(line_suboptions) ///
???? point(point_suboptions) ///
???? diagram(diagram_suboptions) ///
???? arrow(arrow_suboptions) ///
???? label(label_suboptions) ///
???? scalebar(scalebar_suboptions) ///
???? graph_options]

??spmap的語法可以分為三層慧脱,spmap也是通過疊加這三個圖層來實現(xiàn)繪圖的渺绒。

??第一層:底層地圖(basemap)。代表由多個子區(qū)域組合而成研究區(qū)域,如在世界地圖中宗兼,各個國家和地區(qū)即為該地圖的子區(qū)域躏鱼。在Stata中,構(gòu)造底層地圖的數(shù)據(jù)集(countries_cor.dta)結(jié)構(gòu)如下圖所示:

image

??其中殷绍,_ID是標識變量染苛,_X_Y是用于橫、縱坐標主到,對于每個子區(qū)域(如茶行,中國)都擁有成百上千對(_X,_Y)來構(gòu)造該區(qū)域的形狀。我們來看一下世界地圖的輪廓镰烧。

cd D:\sus_part3\data
use countries_cor.dta,clear
scatter _Y _X,msize(vtiny)

??運行結(jié)果如下圖所示:

image

??該層還可以設置[attribute]選項拢军,該選項是在使用spmap命令時,位于master數(shù)據(jù)集中的一個數(shù)值型變量怔鳖,比如各國在Sus上的發(fā)文總量(SUM)茉唉。我們通過設置漸變色來直觀地展示世界主要國家和地區(qū)的發(fā)文情況。

use draw_dbf.dta,clear  //master數(shù)據(jù)集包含了[attribute]變量SUM
spmap SUM using countries_cor.dta, ///    
  id(_ID) clmethod(custom)  /// **設置標識變量结执,分級類型為用戶自設**/ 
  clbreaks(0 100 500 1000 2000 3000 5000 13000) fcolor(Reds2) /**設置分段度陆,設置漸變色為紅色漸變**/

??運行效果如下圖所示:

image

??第二層:根據(jù)研究需要,我們可以在底層地圖上添加各種空間對象(spatial objects)献幔。目前懂傀,spmap命令有6種空間對象可供選擇,分別是多邊形(polygon)蜡感、點(point)蹬蚁、線(line)、箭頭(arrow)和標簽(label)郑兴。比如犀斋,現(xiàn)在我們想突出顯示美國這個子區(qū)域:

**從世界地圖中將構(gòu)建美國區(qū)域的坐標對另存為USA_cor.dta**
use countries_cor.dta,clear
keep if _ID==252
save USA_cor.dta,replace

use draw_dbf.dta,clear
**第一層,底層地圖**
spmap SUM using countries_cor.dta, ///
    id(_ID) clmethod(custom)  ///
    clbreaks(0 100 500 1000 2000 3000 5000 13000) fcolor(Reds2) /// **第二層情连,突出顯示美國區(qū)域叽粹,藍色填充,輪廓線粗細適中**/
    polygon(data(USA_cor.dta) fcolor(blue) osize(medthin))

??運行結(jié)果如下圖所示:

image

??再比如却舀,我們想以發(fā)文量為比重描點虫几。

use draw_dbf.dta,clear
**第一層:底層地圖**
spmap using countries_cor.dta, id(_ID)  /// **第二層:在底層地圖上描點,world_point.dta包含了描點的坐標xcoord和ycoord變量**/
    point(data(world_point.dta) xcoord(xcoord) ycoord(ycoord) /// **第二層美化:設置比例變量為SUM挽拔,填充顏色為彩虹色**/              
        proportional(SUM) shape(o) size(large) by(_ID) fcolor(Rainbow))

??運行結(jié)果如下圖所示:

image

??第三層:根據(jù)自身的需要辆脸,我們可以在第一、第二層上添加更多元素(elements)螃诅,比如比例尺(scalebar)每强、標題(title)始腾、注釋(note)州刽、圖例(legend)等空执。

use draw_dbf.dta,clear
**第一層:底層地圖**
spmap SUM using countries_cor.dta, ///
    id(_ID) clmethod(custom)  ///
    clbreaks(0 100 500 1000 2000 3000 5000 13000) fcolor(Reds2) ///
        polygon(data(USA_cor.dta) fcolor(blue) osize(medthin))  /// **第二層:突出顯示美國子區(qū)域**/    
    title("世界主要國家和地區(qū)在Sustainability發(fā)表論文的數(shù)量",size(*1.2)) subtitle("Jan.2009-Sep.2020",size(*0.8)) /// **第三層:添加圖例、標題等其他元素**/
    graphregion(margin(medium)) ///
    note("Source:爬蟲俱樂部整理")

??運行結(jié)果如下圖所示:

image

3. 關(guān)鍵點

??綜合來看穗椅,使用spmap作圖有兩大難點辨绊。

??(1)獲取坐標數(shù)據(jù)集難

??在第二部分的簡單應用中,我們所用到的坐標數(shù)據(jù)集有:countries_cor.dta:世界國家級地圖坐標數(shù)據(jù)集匹表,是使用shp2dta命令轉(zhuǎn)換countries.shp文件而來门坷。而.shp由ESRI(Environmental Systems Research Institute)開發(fā)的shape文件,一個shape文件包括一個主文件袍镀,一個索引文件默蚌,和一個dBASE表。其中主文件的后綴就是.shp苇羡。

image

??簡單來說绸吸,shape文件是美國一家地理信息系統(tǒng)技術(shù)公司制作的坐標數(shù)據(jù)文件,我們可以使用Stata的外部命令shp2dta將該文件轉(zhuǎn)換為dta文件设江。shape文件可以在某度搜索锦茁,關(guān)鍵詞為“中國 shapefile”,或者從https://gadm.org/data.html下載叉存。轉(zhuǎn)換命令為:

ssc install shp2dta
shp2dta using countries.shp, ///    
   database("countries_dbf") coordinates("countries_cor")

??USA_cor.dta:美國地圖坐標數(shù)據(jù)集码俩。從countries_cor.dta中提取的_ID為252(代表美國)的坐標對。
??world_point.dta:描點坐標數(shù)據(jù)集歼捏。該數(shù)據(jù)集包括發(fā)文量top10的國家的坐標對(每個國家只需要一組稿存,一般是該國的首都經(jīng)緯度),因為數(shù)據(jù)量比較小瞳秽,所以本勞模手工查找了這些國家首都的經(jīng)緯度瞭空,如果數(shù)據(jù)量比較大,也可以在某度中搜索逊笆,關(guān)鍵詞為“世界各國經(jīng)緯度表”谭羔。
??(2)理解master數(shù)據(jù)集和各坐標數(shù)據(jù)集的關(guān)系難
master數(shù)據(jù)集和各坐標數(shù)據(jù)集的關(guān)系確實一時難以理解,但肯定比《紅樓夢》的人物關(guān)系簡單痰洒。

image

??圖中方框為數(shù)據(jù)集文件瓢棒,圓圈代表對應的變量。其中的難點是丘喻,如何將master(我們自己的研究數(shù)據(jù)集)與basemap建立聯(lián)結(jié)脯宿?可以看到,我們是通過countries_dbf.dta文件來建立聯(lián)結(jié)的泉粉。
??countries_dbf.dta文件是轉(zhuǎn)換countries.shp而來的文件之一连霉,其數(shù)據(jù)結(jié)構(gòu)為:

image

??我們自己的研究數(shù)據(jù)集draw_dbf的數(shù)據(jù)結(jié)構(gòu)為:

image

??對比以上兩個數(shù)據(jù)集榴芳,我們發(fā)現(xiàn)它們有相同的變量NAME,因此我們將兩者橫向合并:

use draw_dbf.dta,clear
merge 1:1 NAME using countries_dbf.dta,keepusing(_ID)

??這樣跺撼,我們就通過_ID標識變量將master數(shù)據(jù)集與basemap數(shù)據(jù)集聯(lián)結(jié)起來了窟感。這也給我們一個提示:在整理自己的數(shù)據(jù)集(master)時應盡可能使每個觀測對象的名稱(NAME,比如國家名稱歉井、省市名稱等)與countries_dbf.dta中一致柿祈。

??本文用到的所有數(shù)據(jù)集均可通過后臺回復spmap獲取,快去打開Stata試試看吧~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末哩至,一起剝皮案震驚了整個濱河市躏嚎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌菩貌,老刑警劉巖卢佣,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異箭阶,居然都是意外死亡虚茶,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進店門尾膊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來媳危,“玉大人,你說我怎么就攤上這事冈敛〈Γ” “怎么了?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵抓谴,是天一觀的道長暮蹂。 經(jīng)常有香客問我,道長癌压,這世上最難降的妖魔是什么仰泻? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮滩届,結(jié)果婚禮上集侯,老公的妹妹穿的比我還像新娘。我一直安慰自己帜消,他們只是感情好棠枉,可當我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著泡挺,像睡著了一般辈讶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上娄猫,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天贱除,我揣著相機與錄音生闲,去河邊找鬼。 笑死月幌,一個胖子當著我的面吹牛碍讯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播飞醉,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼冲茸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了缅帘?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤难衰,失蹤者是張志新(化名)和其女友劉穎钦无,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體盖袭,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡失暂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了鳄虱。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片弟塞。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖拙已,靈堂內(nèi)的尸體忽然破棺而出决记,到底是詐尸還是另有隱情,我是刑警寧澤倍踪,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布系宫,位于F島的核電站,受9級特大地震影響建车,放射性物質(zhì)發(fā)生泄漏扩借。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一缤至、第九天 我趴在偏房一處隱蔽的房頂上張望潮罪。 院中可真熱鬧,春花似錦领斥、人聲如沸嫉到。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽屯碴。三九已至,卻和暖如春膊存,著一層夾襖步出監(jiān)牢的瞬間导而,已是汗流浹背忱叭。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留今艺,地道東北人韵丑。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像虚缎,于是被迫代替她去往敵國和親撵彻。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,514評論 2 348