R语言地图可视化
2018-03-16 10:58
357 查看
https://zhuanlan.zhihu.com/p/28205002?utm_source=tuicool&utm_medium=referral
之前的ggplot2入门实践篇已经更新告一段落,也已经做了归总分类分享给大家。
最近翻看突然发现少了一个知识点,就是分面中没有讲填充多边形分面的应用,虽然其理念跟其他的常用图表类型一致。
但是鉴于多边形填充本身就比较复杂,再加上分面肯定能把大部分小伙伴儿绕晕,这里还是亲自实践一篇案例详细讲解一下实际用法。
如果你还不懂如何使用ggplot2制作数据地图的话,你可以参考以下序列文件:
地图部分(ggplot2)
你想要的地图素材资源,我都帮你整理好了~一篇文章教你搞定JSON素材,从此告别SHP时代~大道至简——论如何最优雅的操纵json地图数据关于美国地图中的两个海外州坐标平移与原始投影问题~R语言可视化——关于ggplot所支持的数据地图素材类型一篇小短文助你打开数据可视化的任督二脉!数据地图多图层对象的颜色标度重叠问题解决方案ggplot2中如何自定义数据地图版面范围~关于数据地图的几个遗留问题解决方案R语言数据地图——美国地图R语言数据地图——全球填色地图数据地图系列7|R语言版(上)数据地图系列8|R语言版数据地图(下)R语言可视化——数据地图应用(东三省)R语言可视化——数据地图离散百分比填充(环渤海)R语言可视化——地图填充与散点图图层叠加R语言可视化——多图层叠加(离散颜色填充与气泡图综合运用)R语言可视化——地图与气泡图结合应用用R语言复盘美国总统大选结果~R语言可视化——ggplot绘制中心密度辐射图R语言可视化——中心放射状路径图你绝对想不到,数据地图还能这么玩~玩转数据地图系列之——地图上的迷你条形图一个小案例,教你如何从数据抓取、数据清洗到数据可视化一篇全是代码的数据可视化案例小魔方不想跟你说话,并向你扔了一堆代码~~~地图可视化之——移花接木
为了演示方便,今天这篇使用纯模拟数据:
今天的目标是,使用一个省份12年份实践序列数据分别呈现填色散点气泡图、颜色填充图、以及组合图,形成3*4排列的数据地图分面,不是使用grid逐个打印单个地图,而是直接使用ggplot2的分面参数进行绘制。
考虑到如果使用传统的数据源格式(geom_polygeon制作填充图要求将指标数据与地理分界点数据合并,因为地理分界点数据有9万个,12个年份数据表宽转长之后会暴增到120万+,肯定会拖慢内存,所以今天使用geom_map函数进行颜色填充地图的绘制)。
以下是本案例步骤:
以下是构图过程:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201803/b74f5b1524544ee5022d7c84bb18158e.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201803/ed6aa80993cf958c04b53d0555e8c6ab.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201803/d9ec7a40e4c4620a1530d0f79bd4ac22.jpg)
对你没有看错,ggplot2就是这么高端大气上档次,想不想学这种操作呀,9月12日晚八点,天善学院我们不见不散(悄悄地告诉你报名地址在阅读原文里)~_~
所需数据源请移步之本人GitHub下载,可以直接进入GitHub官网搜索ljtyduyu,也可以在后台回复任意内容,获取小魔方的GitHub主页数据获取地址。
之前的ggplot2入门实践篇已经更新告一段落,也已经做了归总分类分享给大家。
最近翻看突然发现少了一个知识点,就是分面中没有讲填充多边形分面的应用,虽然其理念跟其他的常用图表类型一致。
但是鉴于多边形填充本身就比较复杂,再加上分面肯定能把大部分小伙伴儿绕晕,这里还是亲自实践一篇案例详细讲解一下实际用法。
如果你还不懂如何使用ggplot2制作数据地图的话,你可以参考以下序列文件:
地图部分(ggplot2)
你想要的地图素材资源,我都帮你整理好了~一篇文章教你搞定JSON素材,从此告别SHP时代~大道至简——论如何最优雅的操纵json地图数据关于美国地图中的两个海外州坐标平移与原始投影问题~R语言可视化——关于ggplot所支持的数据地图素材类型一篇小短文助你打开数据可视化的任督二脉!数据地图多图层对象的颜色标度重叠问题解决方案ggplot2中如何自定义数据地图版面范围~关于数据地图的几个遗留问题解决方案R语言数据地图——美国地图R语言数据地图——全球填色地图数据地图系列7|R语言版(上)数据地图系列8|R语言版数据地图(下)R语言可视化——数据地图应用(东三省)R语言可视化——数据地图离散百分比填充(环渤海)R语言可视化——地图填充与散点图图层叠加R语言可视化——多图层叠加(离散颜色填充与气泡图综合运用)R语言可视化——地图与气泡图结合应用用R语言复盘美国总统大选结果~R语言可视化——ggplot绘制中心密度辐射图R语言可视化——中心放射状路径图你绝对想不到,数据地图还能这么玩~玩转数据地图系列之——地图上的迷你条形图一个小案例,教你如何从数据抓取、数据清洗到数据可视化一篇全是代码的数据可视化案例小魔方不想跟你说话,并向你扔了一堆代码~~~地图可视化之——移花接木
为了演示方便,今天这篇使用纯模拟数据:
加载包: library("ggplot2") library("plyr") library("ggthemes") library("rgdal") library("dplyr")导入中国省界地图:
setwd("D:/R/rstudy/CHN_adm") china_map<-readOGR("bou2_4p.shp",stringsAsFactors=FALSE) mydata<-china_map@data["NAME"] mydata$id<-0:924;mydata[mydata$id==898,"NAME"]<-"澳门特别行政区"
mymapdata<-fortify(china_map) mymapdata$id<-as.numeric(mymapdata$id) mymapdata<-merge(mymapdata,mydata,all.x=TRUE) mymapdata<- mymapdata %>%rename(region=NAME)
今天的目标是,使用一个省份12年份实践序列数据分别呈现填色散点气泡图、颜色填充图、以及组合图,形成3*4排列的数据地图分面,不是使用grid逐个打印单个地图,而是直接使用ggplot2的分面参数进行绘制。
考虑到如果使用传统的数据源格式(geom_polygeon制作填充图要求将指标数据与地理分界点数据合并,因为地理分界点数据有9万个,12个年份数据表宽转长之后会暴增到120万+,肯定会拖慢内存,所以今天使用geom_map函数进行颜色填充地图的绘制)。
以下是本案例步骤:
首先构造12个年份变量: mydata_new<-data.frame(NAME=unique(mydata$NAME)) for (i in 2:13){ mydata_new[,i]<-round(runif(34,0,250)) }
定义并切割连续型数据为因子变量 names(mydata_new)[2:length(mydata_new)]<-as.character(2001:2012) mydata_new<-mydata_new%>%tidyr::gather(year,zhibiao,-1) mydata_new$fact<-cut(mydata_new$zhibiao,breaks=c(0,50,100,150,200,250),labels=c('0~50','50~100','100~150','150~200','200~250'),order=TRUE,include.lowest = TRUE)
以下是构图过程:
分面地图一(热力填色地图): ggplot(mydata_new,aes(map_id=NAME,fill=fact))+ geom_map(map=mymapdata,colour="grey65")+ scale_fill_brewer(palette="Blues") + ###Blues&Greens facet_wrap(~year)+ expand_limits(x=mymapdata$long,y=mymapdata$lat)+ coord_map("polyconic")+ guides(fill=guide_legend(reverse=TRUE,title=NULL))+ theme_void()%+replace% theme(legend.position = c(0,0.7),legend.text.align=1)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201803/b74f5b1524544ee5022d7c84bb18158e.jpg)
导入并合并省份行政中心经纬度数据 province_city <- read.csv("D:/R/rstudy/Province/chinaprovincecity.csv") province_city<-province_city%>%select(province,jd,wd) mydata_new<-merge(mydata_new,province_city,by.x="NAME",by.y="province",all.x=TRUE)
分面地图二(填色气泡地图): ggplot(mydata_new,aes(map_id=NAME))+ geom_map(map=mymapdata,colour="grey65",fill="#EEF3FA")+ geom_point(aes(x=jd,y=wd,size=zhibiao,colour=zhibiao),shape=16)+ scale_size_area(max_size=6) + scale_colour_gradient(low="white",high="#D73434")+ facet_wrap(~year)+ expand_limits(x=mymapdata$long,y=mymapdata$lat)+ coord_map("polyconic")+ guides(fill=guide_legend(reverse=TRUE,title=NULL),size=guide_legend(reverse=TRUE,title=NULL))+ theme_void()%+replace% theme(legend.position = c(0,0.7),legend.text.align=1)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201803/ed6aa80993cf958c04b53d0555e8c6ab.jpg)
分面地图三(填色气泡+热力填充地图): ggplot(mydata_new,aes(map_id=NAME))+ geom_map(map=mymapdata,aes(fill=fact),colour="white")+ geom_point(aes(x=jd,y=wd,size=zhibiao,colour=zhibiao),shape=16)+ scale_size_area(max_size=4) + scale_fill_brewer(palette="Greens") + ###Blues&Greens scale_colour_gradient(low="white",high="#D73434")+ facet_wrap(~year)+ expand_limits(x=mymapdata$long,y=mymapdata$lat)+ coord_map("polyconic")+ guides(fill=guide_legend(reverse=TRUE,title=NULL),size=guide_legend(reverse=TRUE,title=NULL))+ theme_void()%+replace% theme(legend.position = c(0,0.7),legend.text.align=1)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201803/d9ec7a40e4c4620a1530d0f79bd4ac22.jpg)
对你没有看错,ggplot2就是这么高端大气上档次,想不想学这种操作呀,9月12日晚八点,天善学院我们不见不散(悄悄地告诉你报名地址在阅读原文里)~_~
所需数据源请移步之本人GitHub下载,可以直接进入GitHub官网搜索ljtyduyu,也可以在后台回复任意内容,获取小魔方的GitHub主页数据获取地址。
相关文章推荐
- 三、R语言可视化--ggplot2和REmap包绘制地图
- R语言可视化——REmap动态地图
- 百度可视化API地图制作地址
- vue 地图可视化 (2)
- 大数据的“可视化”案例:360的“骗子地图”
- 用R语言进行复杂网络可视化
- Echarts数据可视化series-map地图,开发全解+完美注释
- 使用R进行地图相关的可视化
- 干货|可视化设计:地图四部曲之地图散点
- 干货|可视化设计:地图四部曲之地图热力+散点
- 可视化之一——利用R实现地图数据可视化
- 小项目-数据可视化:应用dash将工作信息呈现在地图上
- R语言机器学习与大数据可视化暨Python文本挖掘与自然语言处理核心技术研修
- [置顶] 【R语言可视化ggplot2入门教程1】一个完整的绘图流程
- WPF 数据可视化 大屏展示 实现地图仿echarts模拟迁移效果 Telerik图表 仪表盘
- R语言的安装与数据的可视化
- 利用pyecharts实现地图可视化
- 大数据初体验——基于地图可视化分析新浪新闻评论地域分布特点
- R语言的常用类型、三个可视化工具使用特点
- R语言之数据可视化 - R的绘图系统3 - Lattice 绘图系统