溫馨提示×

溫馨提示×

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

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

R語言可視化REmap包的用法

發(fā)布時間:2021-07-23 09:00:33 來源:億速云 閱讀:445 作者:chen 欄目:大數(shù)據(jù)

本篇內(nèi)容介紹了“R語言可視化REmap包的用法”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

今天開始,要跟著大家學(xué)習(xí)一個新的可視化R包——REmap包。

說起來,這個包要歸功于百度的可視化開源項目——echarts,它是國內(nèi)為數(shù)不多的高水平開源可視化js庫,在業(yè)界地位首屈一指。

經(jīng)過大神的努力,我們終于可以在R語言中以簡潔的REmap函數(shù)形式,來調(diào)用Echarts核心功能,而不用親自去學(xué)js代碼,就可以創(chuàng)建動態(tài)地圖可視化作品。

如果有小伙伴兒熟悉百度的大數(shù)據(jù)可視化項目——百度遷徙地圖,以及交通通勤圖,以及后來的一帶一路可視化路線圖,肯定對那些動態(tài)地圖上流動的線條和路徑有很深的印象。

下面我們開始簡單介紹REmap的主要功能:

REmap包中涵蓋有一組函數(shù),我所知道并用過的有REmap、REmapB、REmapC、REmapH。

每一個函數(shù)都對應(yīng)著幾種炫酷的動態(tài)效果類型:

今天我們先介紹REmap函數(shù)并利用該函數(shù)制作簡單的流向圖:

安裝及加載:

install.packages("devtools")

devtools::install_github("lchiffon/REmap")   #開發(fā)者/包名

library(REmap)    #加載

REmap函數(shù)的作圖理念與ggplot其實還是有雷同的,它也是將數(shù)據(jù)信息和美學(xué)信息分開表達,數(shù)據(jù)信息包含在數(shù)據(jù)表中,而美化修飾參數(shù)都包含在theme內(nèi)。

remap(mapdata, title = " ", 

subtitle = "", 

theme = get_theme("Dark"))

這是一個典型的REmap函數(shù)的結(jié)構(gòu),mapdata是我們所要展示的數(shù)據(jù)框格式數(shù)據(jù)集,里面包含了兩列數(shù)據(jù):起點位置、終點信息。

title用于設(shè)置主標題、subtitle用于設(shè)置副標題。而theme用于設(shè)定整個圖形的主題風格,該主題是一個封裝的函數(shù)變量,里面包含諸多參數(shù)信息(各種點線面的顏色、度量等信息)。

下面是一個典型的REmap主題內(nèi)的參數(shù)示例:

get_theme(theme = "Dark",

                  lineColor = "Random",

                  backgroundColor = "#1b1b1b",

                  titleColor = "fff",

                  borderColor = "rgba(100,149,237,1)",

                  regionColor = "#1b1b1b",

                  labelShow = T,

                  pointShow = F,

                  pointColor = "gold")

參數(shù)說明:

參數(shù)一:theme為總體配色,默認選項有“Dark”、“Bright”、“Sky”、“none”

參數(shù)二:lineColor為線條顏色,默認是隨機, 也可自行設(shè)置,如’red’

參數(shù)三:backgroundColor為地圖外背景顏色

參數(shù)四:titleColor為標題顏色

參數(shù)五:borderColor為地圖中地域邊緣顏色,不同省份、城市的邊緣

參數(shù)六:regionColor為地域顏色,即地圖顯示的顏色

參數(shù)七:labelShow為邏輯參數(shù),是否顯示地域名稱,默認為T,即顯示,只用于remapC函數(shù)

參數(shù)八:pointShow為邏輯參數(shù),是否顯示地域所在點,默認為F,不顯示,只用于remapC函數(shù)

參數(shù)九:pointColor為pointShow中點的顏色,只用于remapC函數(shù)

REmap可以非常輕松的獲取城市地點的經(jīng)緯度數(shù)據(jù):

以大連為例:

get_city_coord("大連")

[1] 121.62139  38.91934

如果想要獲取一組城市的經(jīng)緯度信息,可以直接賦值給城市向量:

city_list <- c("beijing","tianjin","shenyang","dalian","zhengzhou")

get_geo_position(city_list)

       lon      lat      city

1 116.4136 39.91101   beijing

2 117.2059 39.09091   tianjin

3 123.4390 41.81134  shenyang

4 121.6214 38.91934    dalian

5 113.6313 34.75349 zhengzhou

而且據(jù)說這兩個函數(shù)大部分時候?qū)ζ匆襞c漢字,甚至拼音的大小寫都不敏感,所以避免了很多麻煩。

創(chuàng)建起始點:

destination<- c("beijing","tianjin","shenyang","dalian","zhengzhou")    #終點

origin<- rep("dalian",length(destination))        #起點

#合成數(shù)據(jù)框格式的起終點數(shù)據(jù)

map_data<- data.frame(origin,destination)     

數(shù)據(jù)預(yù)覽:

head(map_data)

  origin destination

1 dalian     beijing

2 dalian     tianjin

3 dalian    shenyang

4 dalian      dalian

5 dalian   zhengzhou

作圖函數(shù):

map_out<-remap(mapdata=map_data,   #流向地圖的數(shù)據(jù)源(依次為起點、重點兩列)

                title="我是標題",         #設(shè)置主標題

                subtitle="我是副標題",    #設(shè)置副標題

                theme =get_theme(theme="Bright")) #設(shè)置主題(默認主題一共有三套:“Dark”,“Bright,”Sky“)

運行以上代碼之后,動態(tài)圖表已經(jīng)生成名為map_out的對象,只需使用plot函數(shù)調(diào)用一下map_out圖表對象就可以看到該動態(tài)圖表效果。

::提示下,這里的map_out的對象是一個js代碼生成的html對象,運行完plot之后,動態(tài)圖表效果不是呈現(xiàn)在R的圖表窗口而是調(diào)用了桌面瀏覽器的Web窗口。

plot(map_out)

Save img as: C:\Users\ADMINI~1\AppData\Local\Temp\RtmpAxQndv/ID_20161015191055_242761.html

運行完成之后,瀏覽器窗口會自動呈現(xiàn)動態(tài)圖表效果:

R語言可視化REmap包的用法

其實仔細看以上代碼,與ggplot的地圖代碼相比,要簡單很多,數(shù)據(jù)集也很簡單(最重要的直接支持地點名稱而不需要經(jīng)緯度數(shù)據(jù)),當然這些便利性主要歸功于它的底層代碼是調(diào)用Echarts項目,地理位置信息有百度地圖的強大系統(tǒng)支持。

另外兩個主題:

Dark主題:

map_out1<-remap(mapdata=map_data,title="我是標題",subtitle="我是副標題",theme =get_theme(theme="Dark"))

plot(map_out1)

R語言可視化REmap包的用法

Sky主題:

map_out2<-remap(mapdata=map_data,title="我是標題",subtitle="我是副標題",theme =get_theme(theme="Sky"))

map_out<-remap(mapdata=map_data,        

                title="我是標題",        

                subtitle="我是副標題", 

                theme =get_theme(theme="Bright"))

plot(map_out2)

R語言可視化REmap包的用法

以上是該函數(shù)內(nèi)置的三款主題,當然如果你要想自定義主題的話,也是可以的,但是需要將theme="Sky"設(shè)置為none,否則系統(tǒng)主題會覆蓋掉你自定義的主題。

map_out3<-remap(mapdata=map_data,     #設(shè)計流向地圖

title="我是標題",                    #設(shè)置標題

subtitle="我是副標題",               #設(shè)置副標題

theme=get_theme(theme="none",        #設(shè)置主題     

lineColor="blue",                    #設(shè)置線條顏色

backgroundColor="white",             #設(shè)置背景顏色

titleColor="black",                  #設(shè)置標題顏色

borderColor="grey",                  #設(shè)置地區(qū)邊界顏色

regionColor="SandyBrown")            #設(shè)置地區(qū)顏色

)

plot(map_out3)

R語言可視化REmap包的用法

但是個人習(xí)慣,還是比較喜歡先將主題定義好并命名,然后在運行圖表代碼的時候直接飲用,這樣比較利于后期主題的微調(diào):

mytheme<-get_theme(theme="none",     #設(shè)置主題     

lineColor="blue",                    #設(shè)置線條顏色

backgroundColor="white",             #設(shè)置背景顏色

titleColor="black",                  #設(shè)置標題顏色

borderColor="grey",                  #設(shè)置地區(qū)邊界顏色

regionColor="Bisque") 

map_out4<-remap(mapdata=map_data,    

title="我是標題",                   

subtitle="我是副標題",             

theme=get_theme(theme="none"))

plot(map_out4)

當然如果將數(shù)據(jù)框中的數(shù)據(jù)兩列調(diào)換,那么地圖就可以做成流入圖。

origin<- c("beijing","tianjin","shenyang","dalian","zhengzhou")    #終點

destination<- rep("dalian",length(destination))        #起點

#合成數(shù)據(jù)框格式的起終點數(shù)據(jù)

map_data<- data.frame(origin,destination) 

map_out5<-remap(mapdata=map_data,    

title="我是標題",                   

subtitle="我是副標題",             

theme=get_theme(theme="Bright"))

plot(map_out5)

R語言可視化REmap包的用法

如果想要存儲該HTML對象,需要設(shè)定臨時目錄:

setwd("D:/R/Rscript")      #保存圖片的位置,不做修改默認為R的工作路徑

options(remap.js.web=T)    #動態(tài)網(wǎng)頁圖保存命令

plot(map_out5)             #保存的同時自動調(diào)用瀏覽器窗口

R語言可視化REmap包的用法

“R語言可視化REmap包的用法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細節(jié)

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

AI