­

閑來無事,在微信推文中看到一個炫酷的具有動態特效的中國地圖,是用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中的命令進行安裝,這裡是有兩個方法安裝這個包的,
  1. 在GitHub上將安裝包的.zip文件下載到自己的電腦上,然後使用devtools::install.local(".zip文件的路徑")命令進行安裝
  2. 直接使用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語言的學習資源非常有限,主要是依賴於微信搜索和谷歌搜索,中間走過很多彎路,不過總算結果還不錯,歡迎大家多多交流

end