閑來無事,在微信推文中看到一個炫酷的具有動態特效的中國地圖,是用R語言做的,於是嘗試了一下
最終的效果圖如下:
1、環境準備
既然是用R語言作圖,那麼這幾個軟件是一定需要安裝的:
- R語言的編譯器://mirrors.tuna.tsinghua.edu.cn/CRAN/index.html (這裡就提前給大家避坑一下:R盡量不要安裝最新的4.0.4,安裝完4.0.4後期你會發現總會出現一些莫名其妙的問題,比如安裝各種包的時候出現混亂,又或者是命令窗口的結果都變成了Unicode編碼。。等等,所以推薦大家安裝之前的4.0.3版本,至少沒有那麼多的bug)
官網找了一圈沒找到之前版本的鏈接,就推薦一位知乎網友分享的下載鏈接://www.zhihu.com/question/445662950 - Rstudio開發軟件://www.rstudio.com/
- 和Rtools(為了後面的包的install方便,這個工具是有必要安裝的):不然你在RStudio中每下載安裝一個包,都會出現一些前置的包沒有安裝的情況,有了它以後,就會自動地將一些前置包都安裝上;
2、需要安裝的包:
第一步中的R語言的環境配置完畢,但只是安裝完這些軟件,是不可能出現上圖片中的效果:
- devtools :只需要普通的安裝命令
install.package("devtools")
即可完成;
(如果你前面沒有安裝Rtools,可能又讓你安裝callr包,裝callr包的時候,又要讓你安裝processx包,或者出現一些包的版本不兼容的問題,反正這些問題我是都遇到了,叫人頭大。。) - REmap :這個包必需要用到devtools中的命令進行安裝,這裡是有兩個方法安裝這個包的,
- 在GitHub上將安裝包的.zip文件下載到自己的電腦上,然後使用
devtools::install.local(".zip文件的路徑")
命令進行安裝 - 直接使用
devtools::install.github("lchiffon/REmap")
命令進行安裝,(這裡注意的就是鏡像設置成一個合理的鏡像,不然挺慢的)
3、進一步配置:
網上所瀏覽的步驟前篇一律都是在上述步驟完成之後,就直接使用代碼:
library(REmap)
生成一個data.frame變量;
remap(data.frame變量)
就出來了圖片中的效果,
但是我這邊出現了報錯,意思是說我沒有個人百度地圖的AK。
所以在這之前應該還有一步就是要能成功連接上百度地圖的API,因此你還需要在百度地圖的開發者平台上申請一個百度地圖的SK,在申請這個SK之前你還得成功認證百度地圖的個人開發者,否則申請的SK也是無效的。
為了測試我的AK是否有效,我又安裝了一個叫baidumap的包://blog.csdn.net/lpwmm/article/details/79202592 和REmap的安裝過程類似;
在這一步完成之後,理論上的代碼應該是:
library(REmap)
options(remap.ak="balabalabala")
生成一個data.frame變量;
remap(data.frame變量)
(這裡的AK就不展示了,因為涉及到個人隱私,大家最好都自己動手試試,個人開發者認證的環節很快,幾分鐘就行了)
運行代碼之後是在我C盤的temp文件夾生成了一個html文件,打開這個文件就可以看到動態的效果見最開始。
以上是我的路徑,有需要改進的地方請大家指出,百度上所能搜索到的關於R語言的學習資源非常有限,主要是依賴於微信搜索和谷歌搜索,中間走過很多彎路,不過總算結果還不錯,歡迎大家多多交流