今天再來談談REmap包

作者:王亨 公眾號:跟著菜鳥一起學R語言 (微信ID:learn_R)

配套教程:初級入門篇:R語言快速入門免費視頻教程 edu.hellobi.com/course/

之前我寫過一篇關於REmap的文章,但有許多網友都存在不同的問題,在微信公眾號後台或博客留言,向我請教一些問題。於是我就覺得很有必要再寫一篇文章,好好的把REmap這個包好好的給大家介紹一下。

我們都應該知道這個包的主要目的可交互的地圖數據可視化的工具,託管在github,現在. 這個包是基於Echarts開發的一個包,它本身提供的參數也比較少,也就是說你想繪製更有個性更有特點跟符合自己需求的圖像的話,那你就很有必要去學習了解Echarts方面的知識。

1、遷移圖

比如說放假了我準備出去玩玩。我先從西安出發,到上海看看東方明珠,再到重慶嘗一嘗火鍋,在成都逛逛寬窄巷子,最後再返回西安吃碗羊肉泡饃。這個行程圖就可以用這個包來做。

origin<-c("xi an","shang hai","chong qing","cheng du")ndestination<-c("shang hai","chong qing","cheng du","xi an")n#將上面這兩列數據存儲在一個數據框裡面ndat = data.frame(origin,destination)nout = remap(dat,title = "REmap",subtitle = "theme:Dark")nplot(out)n

結果如下:

我們查看一下dat的數據類型如下:

不過這個包有一個很嚴重的問題,就是你輸入中文的時候,它有時候無法識別,不過幸好當你輸入地名的時候可以使用拼音,也不區分大小寫,比如輸入西安的時候,你可以輸入」xi an」也可以寫成」xi an shi』。

如果你出現下面這些錯誤提示,那就要檢查你的地方名寫的是不是漢字了。

Warning message:nIn get_geo_position(city_vec) :n 北京 not found.上海 not found.重慶 not found.n成都 not foundnWarning message:nIn get_geo_position(city_vec) : ±±?? not found.n

2、顏色等級圖

我還用這幾個地方來舉個例子吧。

city<-c("上海","重慶","四川","陝西")nvalue<-c(3734,3248,2361,2105)nCdata<-data.frame(city,value)nremapC(Cdata,maptype = "China",color = skyblue)n

結果如下圖:

數據格式如下:(聲明數據是隨便寫的)

如果說我們既想在顏色等級圖上面添加遷移圖特點的話,那我們就要用到markLineData和markPointData這兩個參數,它們默認為NULL。如下例所示:

添加氣泡:

remapC(Cdata,maptype = "China",color = skyblue,n markPointData=dat)n

添加箭頭:

remapC(Cdata,maptype = "China",color = skyblue,n markLineData=dat)n

如果說既要 有箭頭,又要 氣泡,那就把這兩個參數都加進來。

remapC(Cdata,maptype = "China",color = skyblue,n markLineData=dat,markPointData=dat)n

動圖

3、熱力圖

現在我們還是來繼續繪製這四個地方的熱力圖,當然熱度數據還是自己隨便寫的。

city<-c("xi an","shang hai","chong qing","cheng du")nheat<-c(0.9,0.6,0.8,0.7)ntemp <- get_geo_position(as.vector(city)) #獲取坐標nheatdata<-data.frame(temp$lon,temp$lat,heat)n

這部分通過get_geo_position()函數獲取了坐標,再轉化為一個有三列的數據框,分別為經緯度和熱度。數據格式如下:

現在就來繪製一張熱力圖!

remapH(heatdata,minAlpha = 0.51,n title = "Heat Map from REmap")n


推薦閱讀:

關於地圖的清單
如何下載 50 年前自己家鄉的高清衛星照片
中國村莊名稱尾字圖
【No.04】鮮為人知的中國境內飛地(中篇:華東華中華南)
廈門地圖·原來你在這裡

TAG:数据可视化 | 地图 | R编程语言 |