闲来无事,在微信推文中看到一个炫酷的具有动态特效的中国地图,是用R语言做的,于是尝试了一下

最终的效果图如下:


1、环境准备

既然是用R语言作图,那么这几个软件是一定需要安装的:

  • R语言的编译器:https://mirrors.tuna.tsinghua.edu.cn/CRAN/index.html (这里就提前给大家避坑一下:R尽量不要安装最新的4.0.4,安装完4.0.4后期你会发现总会出现一些莫名其妙的问题,比如安装各种包的时候出现混乱,又或者是命令窗口的结果都变成了Unicode编码。。等等,所以推荐大家安装之前的4.0.3版本,至少没有那么多的bug)
    官网找了一圈没找到之前版本的链接,就推荐一位知乎网友分享的下载链接:https://www.zhihu.com/question/445662950
  • Rstudio开发软件:https://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的包:https://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

原文地址:https://www.cnblogs.com/ys-01/p/14597542.html