您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)如何使用R語言制作熱力數(shù)據(jù)地圖,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
今天跟大家分享的是使用R語言制作熱力數(shù)據(jù)地圖
也許很多小伙伴兒對(duì)于R語言還很陌生,感覺很神秘。
確實(shí),R語言的數(shù)據(jù)地圖需要使用很長的代碼來寫。但是就像我們學(xué)習(xí)高數(shù)和微積分一樣,再復(fù)雜再龐大的公式,都會(huì)有計(jì)算軟件幫你代勞,而你只需要知道怎么調(diào)整參數(shù)、控制路徑,并且明白每一句代碼的實(shí)現(xiàn)功能就可以了,無需記住每一串代碼的詳細(xì)內(nèi)涵和寫法。
而且接下來要寫的諸多代碼,大部分都并非自己寫的,而是從網(wǎng)上拼湊,經(jīng)過整理與匯總后的。坦白的說,絕大部分自己都寫不出來,語法也很費(fèi)解,只是勉強(qiáng)知道大概可以實(shí)現(xiàn)什么功能。
但是我依然能夠達(dá)到自己的目的,自定義所需的指標(biāo)數(shù)據(jù),自定義輸出的數(shù)據(jù)地圖的填充顏色、標(biāo)簽等外觀和格式。
首先介紹小魔方的R語言系統(tǒng)配置環(huán)境:
R version 3.2.3
RStudio Version 0.99.484
因?yàn)镽語言原始編輯器的操作不夠靈活,所以我將在R的第三方編譯器:R Studio中完成以下的數(shù)據(jù)地圖代碼操作。
在正式開始之前,必須確保你的R語言環(huán)境中已經(jīng)安裝以下包:
ggplot2
plyr
maptools
如果還未安裝,需要先安裝:install.packages("ggplot2","plyr","maptools")
然后下載地圖的作圖數(shù)據(jù)文件:(該文件獲取途徑比較難,所以我會(huì)直接共享在網(wǎng)盤里,點(diǎn)擊文末閱讀原文獲取。)
獲取該作圖數(shù)據(jù)文件包之后解壓放在C盤根目錄下。(這路徑比較短,易于引用,無需再修改代碼引用路徑。)
下面是正式作圖步驟:
1、加載所需要的R包:
library(ggplot2)
library(plyr)
library(maptools)
2、讀入作圖數(shù)據(jù):
china_map = readShapePoly("c:/rstudy/bou2_4p.shp")
你可以通過代碼查看該數(shù)據(jù)文件的數(shù)據(jù)結(jié)構(gòu):
summary(china_map)
3、整理與合并作圖作圖數(shù)據(jù)
x <- china_map@data #讀取行政信息
xs <- data.frame(x,id=seq(0:924)-1) #含島嶼共925個(gè)形狀
china_map1 <- fortify(china_map) #轉(zhuǎn)化為數(shù)據(jù)框
china_map_data <- join(china_map1, xs, type = "full") #合并兩個(gè)數(shù)據(jù)框
以上四句代碼是從原始地圖數(shù)據(jù)文件中提取地圖經(jīng)緯度坐標(biāo)和行政區(qū)劃名稱并合并成一個(gè)數(shù)據(jù)文件:china_map_data
通過代碼:head(china_map_data)
你可以查看到該合并文件的內(nèi)部結(jié)構(gòu):
4、讀入指標(biāo)數(shù)據(jù)
mydata <- read.csv("c:/rstudy/geshengzhibiao.csv") #讀取業(yè)務(wù)指標(biāo)數(shù)據(jù),csv格式
以上的geshengzhibiao.csv數(shù)據(jù)文件是我單獨(dú)使用excel完成數(shù)據(jù)輸入并另存為.CSV格式(與之前下載的地圖數(shù)據(jù)文件存放在一個(gè)地方,便于引用)的指標(biāo)數(shù)據(jù)文件,也就是我們以后用來輸入自己業(yè)務(wù)指標(biāo)的數(shù)據(jù)文件。(最后共享的文件里包含此.CSV文件,你只需要使用excel打開,修改為自己需要的指標(biāo)數(shù)據(jù),并繼續(xù)存為.CSV格式就可以了)
數(shù)據(jù)結(jié)構(gòu)如下:
china_data <- join(china_map_data, mydata, type="full") #合并兩個(gè)數(shù)據(jù)框
5、輸出地圖(這個(gè)代碼有點(diǎn)復(fù)雜,不過你只需要理解其中幾個(gè)重要環(huán)節(jié)參數(shù)就OK了)
ggplot(china_data, aes(x = long, y = lat, group = group,fill = zhibiao)) +
geom_polygon(colour="grey40") +
scale_fill_gradient(low="white",high="steelblue") + #指定漸變填充色,可使用RGB
coord_map("polyconic") + #指定投影方式為polyconic,獲得常見視角中國地圖
theme( #清除不需要的元素
panel.grid = element_blank(),
panel.background = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.title = element_blank(),
legend.position = c(0.2,0.3)
) #【無省名:】
以上代碼及其輸出的熱力數(shù)據(jù)地圖是使用R中的經(jīng)典數(shù)據(jù)可視化包——ggplot2包完成的。其中通過多個(gè)圖層疊加(圖層之間用“+”實(shí)現(xiàn)連接)。
其中輪廓線顏色是使用geom_polygon(colour="grey40")完成的;
填充的漸變色是通過制定漸變色范圍實(shí)現(xiàn)的:scale_fill_gradient(low="white",high="steelblue")
指標(biāo)引用是通過fill = zhibiao實(shí)現(xiàn)的,其他的語句是控制圖層元素(一些無傷大雅的元素)
以上版本地圖是無標(biāo)簽版的熱力數(shù)據(jù)地圖。
下面的代碼是給地圖添加省份標(biāo)簽和數(shù)值指標(biāo):
province_city <- read.csv("c:/rstudy/chinaprovincecity.csv") #讀取省會(huì)城市坐標(biāo)
ggplot(china_data,aes(long,lat))+
geom_polygon(aes(group=group,fill=zhibiao),colour="grey60")+
scale_fill_gradient(low="white",high="steelblue") +
coord_map("polyconic") +
geom_text(aes(x = jd,y = wd,label = province), data =province_city)+
theme(
panel.grid = element_blank(),
panel.background = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.title = element_blank()
) #【帶省標(biāo)簽:】
語法上略有不同,但大同小異,可以參照上面的理解。
看完上述內(nèi)容,你們對(duì)如何使用R語言制作熱力數(shù)據(jù)地圖有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。