R数据可视化第三弹---ggplot2和REmap包绘制地图
绘制地图
1.ggplot2提供了一些工具,让使用maps包绘制的地图与其他ggplot2图形的结合变得十分方便。关于中国地图的绘制可以参考:http://cos.name/2009/07/drawing-china-map-using-r/
国家 | maps地图数据名 |
法国 意大利 新西兰 美国(郡) 美国(州) 美国(边界) 全世界 |
france italy nz country state usa world |
我们使用地图数据主要有两种原因:1.为空间数据添加参考轮廓线2.通过不同的区域填充颜色以构建等值线图。
添加地图边界可以通过borders()来完成。函数的前两个参数指定了要绘制的地图名map以及其中的具体区域region,其余的参数用于控制边界的外观。填充颜色的多边形使用的是fill。
> library(maps) > data(us.cities) > big_citi <- subset(us.cities,pop > 500000) ##人口大于50万的城市 > qplot(long,lat,data=big_citi) + borders("state",size=0.5)
> tx_city <- subset(us.cities,country.etc=="TX") > ggplot(tx_city,aes(long,lat)) + borders("county","texas",colour="grey70") + geom_point(colour = "black",alpha=0.5)
德克萨斯州的城市区划:
使用map_data将地图数据转化为数据框,此数据框可以在之后通过merge() 操作与我们的数据相融合,最终绘制处等值线图。
> states <- map_data("state") > arrests <- USArrests > names(arrests) <- tolower(names(arrests)) > arrests$region <- tolower(rownames(USArrests))> choro <- merge(states,arrests,by="region") #由于绘制多边形时涉及顺序问题,且merge破坏了原始排序,故将行重新排序 > choro <- choro[order(choro$order),] > qplot(long,lat,data=choro,group=group,fill=assault,geom="polygon")
#######################华丽的分割线############################
接下来简单介绍一下中国地图的绘制。
首先要成功安装好两个包:
> install.packages("maps") > install.packages("mapdata")
然后加载:
> library(maps) > library(mapdata)
加载成功后我们可以使用map方法绘制中国地图:
> map("china")
以上的地图比较老了(重庆仍然在四川省内),获取比较新的,下载中国GIS数据(http://cos.name/wp-content/uploads/2009/07/chinaprovinceborderdata_tar_gz.zip),解压到我的文档中(默认的R工作空间),然后下载maptools包:install.packages("maptools"),加载到R的工作空间:library(maptools),然后绘制地图:
> x <- readShapePoly('bou2_4p.shp') > plot(x)
通过调节plot命令中的col(旧版为fg)参数来根据自己的需要对地图中的省份着以特定的颜色。
GIS数据包含925个多边形,col参数应该时一个长度为925的向量,第i个分量的取值就代表了地图中第i个多边形的颜色:
> plot(x,col=gray(924:0/924))
在地图中只画出部分省份所代表的区域:
x=readShapePoly('bou2_4p.shp'); getColor=function(mapdata,provname,provcol,othercol) {f=function(x,y) ifelse(x %in% y,which(y==x),0);colIndex=sapply(mapdata@data$NAME,f,provname);fg=c(othercol,provcol)[colIndex+1]; return(fg); } midchina <- c("河南省","山西省","湖北省","安徽省","湖南省","浙江省"); plot(x, col = getColor(x, midchina, rep("green", 6),"white"), border = "black", xlab = "", ylab = "")
##若不显示其他省份,只需将border设置为"white"即可。
根据人口的多少,对区域进行着色:
provname=c("北京市","天津市","河北省","山西省","内蒙古自治区","辽宁省","吉林省","黑龙江省","上海市","江苏省","浙江省","安徽省","福建省","江西省","山东省","河南省","湖北省","湖南省","广东省","广西壮族自治区","海南省","重庆市","四川省","贵州省","云南省","西藏自治区","陕西省","甘肃省","青海省","宁夏回族自治区","新疆维吾尔自治区","台湾省","香港特别行政区"); pop=c(1633,1115,6943,3393,2405,4298,2730,3824,1858,7625,5060,6118,3581,4368,9367,9360,5699,6355,9449,4768,845,2816,8127,3762,4514,284,3748,2617,552,610,2095,2296,693); provcol=rgb(red=1-pop/max(pop)/2,green=1-pop/max(pop)/2,blue=0); plot(x,col=getColor(x,provname,provcol,"white"),xlab="",ylab="");
颜色越深的地方表示人口越密集。
2.还有ERmap包,它是可交互的地图数据可视化工具,托管在github,基于echarts开发的一个包,它本身提供的参数也比较少。
2.1迁移图
> cong1 <- c("bei jing","chang sha","shang hai","hang zhou") > dao2 <- c("chang sha","shang hai","hang zhou","xia men") > dat2 <- data.frame(cong1,dao2) > out <- remap(dat2) > plot(out)
这个包有个严重的问题是,你输入中文的时候,它有时候无法辨别,幸好当你输入地名的时候可以使用拼音,也不区分大小写,比如输入西安的时候,你可以输入“xi an”也可以“xi an shi”.
2.2颜色等级图
> city <- c("上海","浙江","四川","北京") > value <- c(3734,3248,2361,3305) > cdata <- data.frame(city,value) > remapC(cdata,maptype="China",color='skyblue')
上图因为鼠标移动到浙江区域上,所以高亮黄色显示。同时标签信息在途中显示。
如果我们想在颜色等级图上添加迁移图特点,那我们就要用到marklineData和markPointData这两个参数,它们默认为NULL。
我们下面添加气泡:
> remapC(cdata,maptype = "China",color = 'skyblue',markPointData=dat)
添加箭头:
> remapC(cdata,maptype="China",color='skyblue',markLineData=dat)
如果即要有箭头,又要又气泡:
> remapC(cdata,maptype="China",color='skyblue',markLineData=dat,markPointData=dat)
2.3 热力图
现在我们来继续绘制热力图。数据是随便取的。
> city <- c("xia men","shang hai","bei jing","chong qing") > heat <- c(0.9,0.6,0.8,0.7) > temp <- get_geo_position(as.vector(city)) ##获取坐标 > heatdata <- data.frame(temp$lon,temp$lat,heat) > heatdatatemp.lon temp.lat heat 1 118.0959 24.48582 0.9 2 121.4802 31.23631 0.6 3 116.4136 39.91101 0.8 4 106.5572 29.57100 0.7 > remapH(heatdata,minAlpha=0.51,title="Heat Map from REmap")
转载于:https://www.cnblogs.com/lizhilei-123/p/6734378.html
R数据可视化第三弹---ggplot2和REmap包绘制地图相关推荐
- 三、R语言可视化--ggplot2和REmap包绘制地图
绘制地图 1.ggplot2提供了一些工具,让使用maps包绘制的地图与其他ggplot2图形的结合变得十分方便.关于中国地图的绘制可以参考:http://cos.name/2009/07/drawi ...
- 高级转录组分析和R数据可视化(2020.2,课程推迟,可先报名,时间另行告知)
封面来源:https://www.zhihu.com/question/304747766 常规转录组是我们最常接触到的一种高通量测序数据类型,其实验方法成熟,花费较低,是大部分CNS必备的技术,以后 ...
- 高级转录组分析和R数据可视化专题研讨会(2019.12)
常规转录组是我们最常接触到的一种高通量测序数据类型,其实验方法成熟,花费较低,是大部分CNS必备的技术,以后应该就如做个PCR一样常见.而且分析思路简洁清晰,是入门生信,学习生信分析思路和数据可视化的 ...
- 高级转录组分析和R数据可视化第十一期(报名线上课还可免费参加线下课)
" 福利公告:为了响应学员的学习需求,经过易生信培训团队的讨论筹备,现决定安排扩增子16S分析.宏基因组.Python课程和转录组的线上直播课.报名参加线上直播课的老师可在1年内选择参加同课 ...
- R 数据可视化 02 | 火山图
R 数据可视化 02 | 火山图 文章目录 R 数据可视化 02 | 火山图 一. 示例数据准备 二. 环境需求 三. 绘制火山图 1. 火山图 2. 标记基因的火山图 四. 保存为图片 五. 详细参 ...
- 高级转录组分析和R数据可视化
封面来源:https://www.zhihu.com/question/304747766 常规转录组是我们最常接触到的一种高通量测序数据类型,其实验方法成熟,花费较低,是大部分CNS必备的技术,以后 ...
- 高级转录组分析和R数据可视化第11期(报名线上课还可免费参加线下课2020.6)
福利公告:为了响应学员的学习需求,经过易生信培训团队的讨论筹备,现决定安排扩增子16S分析.宏基因组.Python课程和转录组的线上直播课.报名参加线上直播课的老师可在1年内选择参加同课程的一次线下课 ...
- 高级转录组分析和R数据可视化第11期(课程推迟,可先报名,时间另行告知)
封面来源:https://www.zhihu.com/question/304747766 常规转录组是我们最常接触到的一种高通量测序数据类型,其实验方法成熟,花费较低,是大部分CNS必备的技术,以后 ...
- 独家 | 盘点9个适用所有学科的R数据可视化包(附链接)
作者:Asha Hill 翻译:王雨桐 校对:蒋雨畅 本文约1900字,建议阅读8分钟. 本文将简要盘点R中常用的9个可视化包,并通过简要介绍包的特点和相关案例来帮助读者深入理解可视化包. 如果最近浏 ...
最新文章
- tcmalloc mysql 缓存_Tcmalloc优化Mysql内存管理
- 计算机应用基础课程是过程化考试吗,基于能力的计算机应用基础课程过程化考核标准构建与实施...
- python现在好找工作吗-推崇Python这么多人,为什么他们找不到工作!
- NYOJ 643 发短信 暴力求解
- 膜拜大牛!Android开发最佳实践手册全网独一份,终获offer
- MATLAB学习(4)——min
- JAVA(三)java基础知识
- CreatePipe/CreateProcess
- ftp红帽子 linux,红帽linux安装FTP服务
- wav转换mp3简单图文教程
- C 与 C++ 谁的效率高,为什么?
- 音视频基础知识|ANS 噪声抑制原理解析
- asp.net打开对话框选择文件路径
- 神威超级计算机机械知识,神威超级计算机的计算能力有多强?
- 静态网页设计课程设计-周杰伦网站包含源码以及文档,可直接使用
- 【SICP练习】118 练习3.45【待完成】
- 《Python cookbook》 “定义一个属性可由用户修改的装饰器” 笔记
- python检测端口是否被占用_怎么查看端口占用情况
- OSChina 周五乱弹 ——因为脸大就在猛禽界得不到尊重!
- web版文件管理系统_Vue.js与Lumen组合框架的大创项目管理系统架构方案
热门文章
- linux|tgz解压出错
- 计算机类期刊投稿转载
- 白领久坐腰酸屁股痛 做做小运动可缓解(转)
- 基于JAVA超市会员积分管理系统计算机毕业设计源码+系统+lw文档+部署
- Linux下安装自定义字体库
- 校园兼职网站php设计,大学生兼职网站的设计开发毕业论文.doc
- W ndows无法检索,机械革命军技能法术手册 学会后可开启隐藏职业
- 四月二日服务器维护到什么时候,4月4日服务器例行维护公告(已完成)
- 智慧物业,美丽家园中的充电桩应用
- 计算机音频和视频知识点,多媒体技术图片音视频知识点(18页)-原创力文档