您好,登錄后才能下訂單哦!
本篇內容介紹了“R語言可視化REmap包的用法”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
今天開始,要跟著大家學習一個新的可視化R包——REmap包。
說起來,這個包要歸功于百度的可視化開源項目——echarts,它是國內為數不多的高水平開源可視化js庫,在業界地位首屈一指。
經過大神的努力,我們終于可以在R語言中以簡潔的REmap函數形式,來調用Echarts核心功能,而不用親自去學js代碼,就可以創建動態地圖可視化作品。
如果有小伙伴兒熟悉百度的大數據可視化項目——百度遷徙地圖,以及交通通勤圖,以及后來的一帶一路可視化路線圖,肯定對那些動態地圖上流動的線條和路徑有很深的印象。
下面我們開始簡單介紹REmap的主要功能:
REmap包中涵蓋有一組函數,我所知道并用過的有REmap、REmapB、REmapC、REmapH。
每一個函數都對應著幾種炫酷的動態效果類型:
今天我們先介紹REmap函數并利用該函數制作簡單的流向圖:
安裝及加載:
install.packages("devtools")
devtools::install_github("lchiffon/REmap") #開發者/包名
library(REmap) #加載
REmap函數的作圖理念與ggplot其實還是有雷同的,它也是將數據信息和美學信息分開表達,數據信息包含在數據表中,而美化修飾參數都包含在theme內。
remap(mapdata, title = " ",
subtitle = "",
theme = get_theme("Dark"))
這是一個典型的REmap函數的結構,mapdata是我們所要展示的數據框格式數據集,里面包含了兩列數據:起點位置、終點信息。
title用于設置主標題、subtitle用于設置副標題。而theme用于設定整個圖形的主題風格,該主題是一個封裝的函數變量,里面包含諸多參數信息(各種點線面的顏色、度量等信息)。
下面是一個典型的REmap主題內的參數示例:
get_theme(theme = "Dark",
lineColor = "Random",
backgroundColor = "#1b1b1b",
titleColor = "fff",
borderColor = "rgba(100,149,237,1)",
regionColor = "#1b1b1b",
labelShow = T,
pointShow = F,
pointColor = "gold")
參數說明:
參數一:theme為總體配色,默認選項有“Dark”、“Bright”、“Sky”、“none”
參數二:lineColor為線條顏色,默認是隨機, 也可自行設置,如’red’
參數三:backgroundColor為地圖外背景顏色
參數四:titleColor為標題顏色
參數五:borderColor為地圖中地域邊緣顏色,不同省份、城市的邊緣
參數六:regionColor為地域顏色,即地圖顯示的顏色
參數七:labelShow為邏輯參數,是否顯示地域名稱,默認為T,即顯示,只用于remapC函數
參數八:pointShow為邏輯參數,是否顯示地域所在點,默認為F,不顯示,只用于remapC函數
參數九:pointColor為pointShow中點的顏色,只用于remapC函數
REmap可以非常輕松的獲取城市地點的經緯度數據:
以大連為例:
get_city_coord("大連")
[1] 121.62139 38.91934
如果想要獲取一組城市的經緯度信息,可以直接賦值給城市向量:
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
而且據說這兩個函數大部分時候對拼音與漢字,甚至拼音的大小寫都不敏感,所以避免了很多麻煩。
創建起始點:
destination<- c("beijing","tianjin","shenyang","dalian","zhengzhou") #終點
origin<- rep("dalian",length(destination)) #起點
#合成數據框格式的起終點數據
map_data<- data.frame(origin,destination)
數據預覽:
head(map_data)
origin destination
1 dalian beijing
2 dalian tianjin
3 dalian shenyang
4 dalian dalian
5 dalian zhengzhou
作圖函數:
map_out<-remap(mapdata=map_data, #流向地圖的數據源(依次為起點、重點兩列)
title="我是標題", #設置主標題
subtitle="我是副標題", #設置副標題
theme =get_theme(theme="Bright")) #設置主題(默認主題一共有三套:“Dark”,“Bright,”Sky“)
運行以上代碼之后,動態圖表已經生成名為map_out的對象,只需使用plot函數調用一下map_out圖表對象就可以看到該動態圖表效果。
::提示下,這里的map_out的對象是一個js代碼生成的html對象,運行完plot之后,動態圖表效果不是呈現在R的圖表窗口而是調用了桌面瀏覽器的Web窗口。
plot(map_out)
Save img as: C:\Users\ADMINI~1\AppData\Local\Temp\RtmpAxQndv/ID_20161015191055_242761.html
運行完成之后,瀏覽器窗口會自動呈現動態圖表效果:
其實仔細看以上代碼,與ggplot的地圖代碼相比,要簡單很多,數據集也很簡單(最重要的直接支持地點名稱而不需要經緯度數據),當然這些便利性主要歸功于它的底層代碼是調用Echarts項目,地理位置信息有百度地圖的強大系統支持。
另外兩個主題:
Dark主題:
map_out1<-remap(mapdata=map_data,title="我是標題",subtitle="我是副標題",theme =get_theme(theme="Dark"))
plot(map_out1)
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)
以上是該函數內置的三款主題,當然如果你要想自定義主題的話,也是可以的,但是需要將theme="Sky"設置為none,否則系統主題會覆蓋掉你自定義的主題。
map_out3<-remap(mapdata=map_data, #設計流向地圖
title="我是標題", #設置標題
subtitle="我是副標題", #設置副標題
theme=get_theme(theme="none", #設置主題
lineColor="blue", #設置線條顏色
backgroundColor="white", #設置背景顏色
titleColor="black", #設置標題顏色
borderColor="grey", #設置地區邊界顏色
regionColor="SandyBrown") #設置地區顏色
)
plot(map_out3)
但是個人習慣,還是比較喜歡先將主題定義好并命名,然后在運行圖表代碼的時候直接飲用,這樣比較利于后期主題的微調:
mytheme<-get_theme(theme="none", #設置主題
lineColor="blue", #設置線條顏色
backgroundColor="white", #設置背景顏色
titleColor="black", #設置標題顏色
borderColor="grey", #設置地區邊界顏色
regionColor="Bisque")
map_out4<-remap(mapdata=map_data,
title="我是標題",
subtitle="我是副標題",
theme=get_theme(theme="none"))
plot(map_out4)
當然如果將數據框中的數據兩列調換,那么地圖就可以做成流入圖。
origin<- c("beijing","tianjin","shenyang","dalian","zhengzhou") #終點
destination<- rep("dalian",length(destination)) #起點
#合成數據框格式的起終點數據
map_data<- data.frame(origin,destination)
map_out5<-remap(mapdata=map_data,
title="我是標題",
subtitle="我是副標題",
theme=get_theme(theme="Bright"))
plot(map_out5)
如果想要存儲該HTML對象,需要設定臨時目錄:
setwd("D:/R/Rscript") #保存圖片的位置,不做修改默認為R的工作路徑
options(remap.js.web=T) #動態網頁圖保存命令
plot(map_out5) #保存的同時自動調用瀏覽器窗口
“R語言可視化REmap包的用法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。