今天闲来无事,看到我国的人口屡创新创,准备使用R语言做个分析,把各省的出生率画个热力图出来,结果呢遇到很多雷,再次借CSDN的平台,把这一切记录一下,为各位看官排忧。闲话省说,先上效果图

首先一点,R语言做热力图想要最炫的效果得使用REmap这个包,不过这个包不是R语言官方CRAN上带的,一般从网上查到的资料都是说要用这种安装方法装

library(devtools)#当然如果你没有装devtools这个包,需要使用install.packages("devtools")命令先去安装包。
install_github('lchiffon/REmap')

不过这个方法装不上REmap,会报这个错误:

Error in read.dcf(path) : 
  Found continuation line starting '    interactive map  ...' at begin of record.

这个错误其实是作者在描述包的文件中多了几个空格造成的。所以遇到这个情况呢,请你去我的资源页中下载一个修复版https://download.csdn.net/download/beyondma/10886472,当然你也可以自己到github上去下载包,然后解压后自行修复description文件也行。在拿到修复包之后通过本地安装即可。具体代码如下:

devtools::install_local("D://geo_data//REmap-master.zip")#把下载的包的路径写在这里
Installing 3 packages: htmltools, rjson, XML
试开URL’https://cloud.r-project.org/bin/windows/contrib/3.5/htmltools_0.3.6.zip'
Content type 'application/zip' length 661050 bytes (645 KB)
downloaded 645 KB

试开URL’https://cloud.r-project.org/bin/windows/contrib/3.5/rjson_0.2.20.zip'
Content type 'application/zip' length 577829 bytes (564 KB)
downloaded 564 KB

试开URL’https://cloud.r-project.org/bin/windows/contrib/3.5/XML_3.98-1.16.zip'
Content type 'application/zip' length 4600112 bytes (4.4 MB)
downloaded 4.4 MB

package ‘htmltools’ successfully unpacked and MD5 sums checked
package ‘rjson’ successfully unpacked and MD5 sums checked
package ‘XML’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
        D:\QQPCmgr\Temp\Rtmp8IVdOE\downloaded_packages
* installing *source* package 'REmap' ...
** R
** data
*** moving datasets to lazyload DB
** demo
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
  converting help for package 'REmap'
    finding HTML links ... 好了
    REmapOutput                             html  
    get_city_coord                          html  
    get_geo_position                        html  
    get_theme                               html  
    knitrREmap                              html  
    mapNames                                html  
    markLineControl                         html  
    markPointControl                        html  
    plot.remap                              html  
    remap                                   html  
    remap.init                              html  
    remapB                                  html  
    remapC                                  html  
    remapH                                  html  
** building package indices
** testing if installed package can be loaded
*** arch - i386
*** arch - x64
* DONE (REmap)
In R CMD INSTALL
> library("REmap")

好的,当成功加载了REmap包之后你就可以去用他做热力图了。

下面这张表读者可以自行考到excel文件中去,这是17年全国人口出生率的数据。

山东 17.54
西藏 16
新疆 15.88
广西 15.14
福建 15
海南 14.73
青海 14.42
安徽 14.07
贵州 13.98
江西 13.79
广东 13.68
云南 13.53
宁夏 13.44
湖南 13.27
河北 13.2
河南 12.95
湖北 12.6
甘肃 12.54
浙江 11.92
四川 11.26
重庆 11.18
陕西 11.11
山西 11.06
江苏 9.71
内蒙古 9.47
北京 9.06
上海 8.1
天津 7.65
吉林 6.76
辽宁 6.49
黑龙江 6.22

生成热力图具体代码如下:

orgdata=read_excel("D://birth1.xls",col_names=F)
orgdata=data.frame(province=orgdata[[1]],birthrate=orgdata[[2]])

mydata=data.frame(get_geo_position(as.character(orgdata[[1]])),orgdata[[2]])
mydata=mydata[,-3]
names(mydata) <- c("lon","lat","cityvalue")
remapH(mydata, maptype = 'china', theme = get_theme("Dark"), blurSize = 30, color = 'red', minAlpha = 0.5, opacity = 1)

但是你看到这样的效果不好,原因很简单,以西藏为例,西藏的出生率排名第二,却比较暗淡,这是因为我们的mapdata中只有西藏首俯拉萨一个点的数据,这画出来自然没有效果。至少要把一个省的所有城市都标上相同的效果出来才好,改进如下:

orgdata=read_excel("D://birth1.xls",col_names=F)#需要填写你excel文的路径
orgdata=data.frame(province=orgdata[[1]],birthrate=orgdata[[2]])#重新定义列名mydata=data.frame(get_geo_position(as.character(orgdata[[1]])),orgdata[[2]])#通过get_geo_position函数得到每个省的坐标
mydata=mydata[,-3]#把第三列也就是省份名称去掉,绘图时不需要此列
names(mydata) <- c("lon","lat","cityvalue")#改列名,后面否则无法添加行

provnames=as.character(orgdata[[1]])#将省份名称取出来
for (j in 1:length()){
citynames=mapNames(provnames[j])#从省份中将城市名称取出来,否则将画出来的热力图效果太差
citypos=get_geo_position(citynames)#将同省内的城市标为和省同样的数据
 cityvalue=rep(c(orgdata[j,2]),length(citynames))#将同省内的城市标为和省同样的数据
orgcity=data.frame(citypos,cityvalue)#将同省内的城市标为和省同样的数据
orgcity=orgcity[,-3]#将同省内的城市标为和省同样的数据
mydata=rbind(mydata,orgcity)#将同省内的城市标为和省同样的数据
}
remapH(mydata, maptype = 'china', theme = get_theme("Dark"), blurSize = 30, color = 'red', minAlpha = 0.5, opacity = 1)#绘图

效果是这样的

这样是不是就准确多了。

当然也可以直接用REmapC做一个没那么纯一点的热力图代码如下

outdata = remapC(orgdata,maptype = "china",color = 'red',mindata=6,maxdata=17.8)
plot(outdata)

文中开头的效果图其实是最简单的代码如下:

map_out1<- remap(mapdata=map_data)

好了,到这里所有坑全排了,祝大家新年快乐!

一文排除R语言热力图所有的坑相关推荐

  1. R语言笔记1:数据类型(向量、数组、矩阵、 列表和数据框)

    宏基因组按:科研中数据分析解读占用了我们太多时间,学习R语言是生物测序领域数据(reads count表)分析及可视化的首选.举个例子,扩增子分析从fastq到OTU表至多是de novo或refer ...

  2. 在r中弄方差分析表_医学统计与R语言: qvalue

    微信公众号:医学统计与R语言如果你觉得对你有帮助,欢迎转发 (FalseDiscoveryRate(FDR)=Expected(FalsePositive/(FalsePositive+TruePos ...

  3. 多元有序logistic回归_医学统计与R语言:多分类logistic回归HosmerLemeshow拟合优度检验...

    微信公众号:医学统计与R语言如果你觉得对你有帮助,欢迎转发 输入1:multinominal logistic regression install.packages("nnet" ...

  4. 二元置信椭圆r语言_医学统计与R语言:圆形树状图(circular dendrogram)

    微信公众号:医学统计与R语言如果你觉得对你有帮助,欢迎转发 输入1: "ggraph") 结果1: name 输入2: <- graph_from_data_frame(my ...

  5. 二元置信椭圆r语言_医学统计与R语言:多分类logistic回归HosmerLemeshow拟合优度检验...

    微信公众号:医学统计与R语言如果你觉得对你有帮助,欢迎转发 输入1:multinominal logistic regression "nnet") 结果1: test (mult ...

  6. r语言library什么意思_医学统计与R语言:百分条图与雷达图

    微信公众号:医学统计与R语言如果你觉得对你有帮助,欢迎转发 百分条图-输入1: library(ggplot2) 结果1: year 输入2: percentbar <- gather(perc ...

  7. 语言nomogram校准曲线图_医学统计与R语言:Meta 回归作图(Meta regression Plot)

    微信公众号:医学统计与R语言如果你觉得对你有帮助,欢迎转发 输入1: install.packages("metafor") library(metafor) dat.bcg 结果 ...

  8. r语言代码html,R语言学习笔记-内附实例及代码

    R语言入门 R是开源的统计绘图软件,也是一种脚本语言,有大量的程序包可以利用. R中的向量.列表.数组.函数等都是对象,可以方便的查询和引用,并进行条件筛选. R具有精确控制的绘图功能,生成的图可以另 ...

  9. R语言倾向性评分:匹配

    本文目录: 准备数据 matchIt包进行PSM 使用随机森林计算PS 主要匹配方法选择 匹配后数据的平衡性检验 cobalt包 统计检验衡量均衡性 结果可视化 不平衡怎么办? 其他问题 参考资料 倾 ...

  10. 二元置信椭圆r语言_医学统计与R语言:画一个姑娘陪着我,再画个花边的被窝...

    微信公众号:医学统计与R语言如果你觉得对你有帮助,欢迎转发 输入1: "waffle") 结果1: 1] 输入2: library(ggpubr)a <- waffle(c( ...

最新文章

  1. 【ACM】杭电OJ 1076
  2. 用Vue撸一个『A-Z字母滑动检索菜单』
  3. ios计算机隐藏功能,7个iOS14隐藏功能,看完想立马更新,有你不知道的
  4. 大数模板(加减乘除幂次开方)
  5. matlab genfunction,Keras / Python相当于nn工具箱中的Matlab的genFunction
  6. 神策分析 1.10 推数据全景化,跨部门联动释放共享价值
  7. UI素材|管理系统数字可视化界面
  8. CITRIX环境下无法打印原因方法
  9. SSD 寿命- 三星 Magician 及 CrystalDiskInfo
  10. oracle alter system kill,ALTER SYSTEM KILL SESSION详解
  11. 软件测试的模式(一、)
  12. access如何求平均单价_ACCESS中计算日均值
  13. 服务器重启后samba启动不了,提示stop: Unknown instance: smbd start/running, process 76585
  14. 学习Linux驱动的一点笔记
  15. CSS前端样式美化总结
  16. 区块链学习笔记(初识区块链)
  17. JavaScript (mp3、mp4、jpg、doc、txt、rar)单个、多文件批量下载
  18. SNP/单核苷酸多态性分析
  19. linux中fq格式转fa,利用linux处理fq/fa小练习
  20. reduce()方法详解

热门文章

  1. GEE:LandTrendr时间序列曲线拟合
  2. linux双系统无u盘安装教程视频教程,window 与Linux Mint 双系统U盘安装方法
  3. 日语学习网站分类汇总
  4. Spark应用提交后一直不运行:hadoop-yarn ACCEPTED: waiting for AM container to be allocated, launched and registe
  5. 笔记本电脑硬盘不见了_笔记本检测不到硬盘怎么办_电脑突然检测不到硬盘的解决方法-系统城...
  6. 使用visdom三维可视化图像。
  7. Android使用BottomNavigationView+NavigationUI报错
  8. 电脑 清理android,怎样清除系统垃圾 手机电脑一举拿下【图文】
  9. 蚂蚁金服AntV开源地理可视化引擎 L7 2.0——聊聊AntV背后那些事
  10. 基础知识 | 什么是二进制文件?