溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

R語(yǔ)言可視化中g(shù)gplot繪制中心密度輻射圖是怎樣的

發(fā)布時(shí)間:2021-11-22 10:20:51 來(lái)源:億速云 閱讀:160 作者:柒染 欄目:大數(shù)據(jù)

R語(yǔ)言可視化中g(shù)gplot繪制中心密度輻射圖是怎樣的,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

因?yàn)樵趃gplot2中一直沒(méi)有看到好的關(guān)于密度輻射圖(或者稱它為熱力輻射圖,就是那種PowerMap中可以通過(guò)顏色色度探查區(qū)域指標(biāo)分布密度的圖表類型)的合適解決方案,最近在看github官網(wǎng)上ggmap的介紹帖,看到作者在ggmap函數(shù)中嵌套了geom_polygon圖層并并使用fill=..level..參數(shù)和stat="density_2d"來(lái)來(lái)制作類似的熱度輻射圖。

我就突發(fā)奇想,如果不是通過(guò)ggmap而是通過(guò)ggplot函數(shù)是否也可以呢,果然也是可以出效果的,先將方法介紹如下:

首先需要加載如下包:

library(ggplot2)      

library(plyr)         

library(maptools) 

library(ggmap) 

接下來(lái)導(dǎo)入兩個(gè)數(shù)據(jù)集:

其中一個(gè)是中國(guó)省級(jí)邊界輪廓圖,早期關(guān)注過(guò)數(shù)據(jù)小魔方的用戶大概都知道,我曾經(jīng)共享過(guò)一個(gè)名為rstudy的文件包(我在劉萬(wàn)祥老師的公眾號(hào)里發(fā)現(xiàn)的,現(xiàn)在應(yīng)該也還可以獲?。绻稚蠜](méi)有數(shù)據(jù)可以添加魔方學(xué)院的QQ群,在群共享里查找R語(yǔ)言資料。(共享文件比較多,可能需要找一陣子)

另一個(gè)是之前在講解REmap熱度輻射圖時(shí)用過(guò)的城市價(jià)值指標(biāo)數(shù)據(jù)集,推送后會(huì)共享在魔方學(xué)院的QQ群里。

導(dǎo)入數(shù)據(jù)集:

china_map<-readShapePoly("c:/rstudy/bou2_4p.shp")  #地圖數(shù)據(jù) 

china_map1 <- fortify(china_map)                   #轉(zhuǎn)換為數(shù)據(jù)框

data<- read.csv(file="D:\\R\\map\\MoveChart\\cityvaluetop10.csv",header=T)  #城市指標(biāo)數(shù)據(jù)

R語(yǔ)言可視化中g(shù)gplot繪制中心密度輻射圖是怎樣的

因?yàn)檫@里使用地圖僅僅是作為底圖用作定位信息,可以說(shuō)是陪襯,所以無(wú)需對(duì)地圖和城市指標(biāo)進(jìn)行合并。

以下是圖表的正式生成過(guò)程:

1、畫(huà)底圖:

p<-ggplot()+

geom_polygon(data=china_map1,aes(x=long,y=lat,group=group),fill="#005A32",col="white")

R語(yǔ)言可視化中g(shù)gplot繪制中心密度輻射圖是怎樣的

2、添加熱度圖層

p<-p+geom_polygon(data=data,aes(x=lon,y=lat,fill = ..level..), stat="density_2d", alpha = .3, color = NA)+coord_map("polyconic") 

R語(yǔ)言可視化中g(shù)gplot繪制中心密度輻射圖是怎樣的

3、調(diào)整熱度圖層

p<-p+scale_fill_gradient2( low = "white",mid="yellow", high = "red")

R語(yǔ)言可視化中g(shù)gplot繪制中心密度輻射圖是怎樣的

4、清楚冗余元素

p<-p+theme_nothing()

R語(yǔ)言可視化中g(shù)gplot繪制中心密度輻射圖是怎樣的

5、可以給以上熱圖添加散點(diǎn)輔助觀測(cè)

p<-p+geom_point(data=data,aes(x=lon,y=lat),col="white")

R語(yǔ)言可視化中g(shù)gplot繪制中心密度輻射圖是怎樣的

6、當(dāng)然,你也可以給三點(diǎn)指定城市的指標(biāo)數(shù)據(jù)使其變成氣泡圖

p<-p+geom_point(data=data,aes(x=lon,y=lat,size=prob),col="white")+scale_size_area(max_size=6)

#記得清除掉第5步,即從第四步開(kāi)始

R語(yǔ)言可視化中g(shù)gplot繪制中心密度輻射圖是怎樣的

至于實(shí)際的數(shù)據(jù)標(biāo)簽,指標(biāo)名稱和區(qū)域名稱,酌情添加,但是針對(duì)地圖類圖表,數(shù)據(jù)展示到位即可,不建議添加太多標(biāo)簽,影響美觀性。

針對(duì)本圖表類型,核心參數(shù)是第二個(gè)geom_polygon()中的fill = ..level..和stat="density_2d"統(tǒng)計(jì)變換,使得多邊形圖轉(zhuǎn)換成為二維水平密度圖,但是至今我還沒(méi)有搞懂里面的算法是什么樣的,只能大概模仿出來(lái),至于怎么用,看大家自由發(fā)揮了,效果跟真正的熱力輻射圖還是有些差別,但是勉強(qiáng)能用。

總結(jié)下,用到的所有代碼如下:

ggplot()+

geom_polygon(data=china_map1,aes(x=long,y=lat,group=group),fill="#005A32",col="white")+

geom_polygon(data=data,aes(x=lon,y=lat,fill = ..level..), stat="density_2d", alpha = .3, color = NA)+

coord_map("polyconic") +

geom_point(data=data,aes(x=lon,y=lat,size=prob),col="white")+

scale_size_area(max_size=6)+

scale_fill_gradient2( low = "white",mid="yellow", high = "red")+

theme_nothing()  #這一句清空主題的代碼是ggmap包中的,必須加載才能用

感興趣的小伙伴兒可以移步去github官網(wǎng)上搜索ggmap官方介紹,里面使用ggmap調(diào)用谷歌地圖做的熱度圖,效果很棒。

看完上述內(nèi)容,你們掌握R語(yǔ)言可視化中g(shù)gplot繪制中心密度輻射圖是怎樣的的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI