前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言可视化——REmapC(填充地图)

R语言可视化——REmapC(填充地图)

作者头像
数据小磨坊
发布2018-04-11 14:59:14
4.7K1
发布2018-04-11 14:59:14
举报
文章被收录于专栏:数据小魔方数据小魔方

今天跟大家介绍REmap函数家族中的第三个函数——REmapC。

REmapC函数允许我们同时在一张地图上制作填充图和点图、线图。

代码语言:javascript
复制
library(REmap)
library(baidumap)
?remapC
remapC(data,
       maptype = 'china',
      markLineData = NULL,
      markPointData = NULL,
      color = c('#1e90ff','#f0ffff'),
      theme = get_theme("Bright"),
      title = "",
      subtitle = "",
      markLineTheme = markLineControl(),
      markPointTheme = markPointControl(),
      geoData = NA,
      mindata = NA,
      maxdata = NA)

四个主要参数说明:

参数一:data为需要的原始数据框格式数据,共2列,第一列为省份或者城市名称,第二列为对应的数值,数值大小将决定地图颜色深浅。

参数二:maptype为地图类型设置,可选world、china或者中国省份名称

参数三:color为热力图渐变颜色,默认为2个颜色,第一个为终止色,第二个为初始色。如果只有一个颜色,系统会自动以白色补充为初始铯色。

参数四:mindata与maxdata可以设置颜色极端点对应数据的上下限(默认是使用data中的数据最大值最小值作为两端极值)。

一、全国热力图

首先利用mapnames函数提取全国各省份名称:

代码语言:javascript
复制
province <- mapNames("china")           #全国省份
value <- rnorm(34,100,30)               #随机生成分省值
mydata <- data.frame(province,value)    #合成数据框作图数据
remapC(mydata,color=c("yellow","red"),title="全国分省热地图",subtitle="我是副标题") #制作热力图

默认的颜色标度是从最小值到最大值。以上函数中省略了markLineData,markPointData 两个参数,所以并未显示点线图。

代码语言:javascript
复制
ad_ln <- mapNames("liaoning") 
[1] "大连市"   "朝阳市"   "丹东市"   "铁岭市"   "沈阳市"   "抚顺市"   "葫芦岛市" "阜新市"   "锦州市"  
[10] "鞍山市"   "本溪市"   "营口市"   "辽阳市"   "盘锦市"
value_ln<-rnorm(14,100,30)
data_ln <-data.frame(ad_ln,value_ln) 
      ad_ln  value_ln
1    大连市  79.67630
2    朝阳市  41.93198
3    丹东市 173.31586
4    铁岭市 106.01990
5    沈阳市 119.40256
6    抚顺市  79.54820
7  葫芦岛市 155.62993
8    阜新市 122.99599
9    锦州市  94.17395
10   鞍山市  82.18944
11   本溪市  98.70972
12   营口市 115.59957
13   辽阳市 104.89199
14   盘锦市  92.92975
map_out <- remapC(data_ln,
                   maptype = "liaoning",
                   color=c("green"),
                   title="辽宁省热力地图",
                   theme = get_theme("Sky"),
                   maxdata=180
                   )                             
plot(map_out)

接下来做一个案例:

每年春运,广东省人口会大批回流原住地,形成壮观的春运人流大军,我们模拟出广东省回流各省的人口数,使用填色地图表示人流规模,使用动态流向线表示回流最大的前10个省份。

因为没有实际的数据,这里我用函数模拟数据(非真实数据):

代码语言:javascript
复制
province <- mapNames("china")            #全国省份
value <- round(rnorm(34,1000,30),0)      #随机生成分省值
mydata <- data.frame(province,value)     #合并数据
labelper<-mydata[order(mydata[,"value"],decreasing=T),][1:10,]
origin<-rep("广州",length(labelper))
destination<-labelper$province
line_data<-data.frame(origin,destination)
map_out1 <- remapC(mydata,
                  maptype = "china",
                  title="人口迁徙地图",
                  theme = get_theme("Drak"),
                  color=c("#CD0000","#FFEC8B"),   
                  markLineData=line_data,   
                  markLineTheme=markLineControl(
                  color="white", 
                  lineWidth=2, 
                  lineType="dashed"  
                  ),
                  markPointData=line_data[2],
                  markPointTheme=markPointControl(
                  symbolSize=13,  
                  effect=T,           
                  effectType="scale",    
                  color="white"
                  )
                   )                             
plot(map_out1)

因为假设广东是人口迁出地,给广东填色是没有任何意义的,所以mydata数据中需要忽略 广东的数据

代码语言:javascript
复制
mydata1 <- mydata[-12,]
map_out2 <- remapC(mydata1,
                  maptype = "china",
                  title="人口迁徙地图",
                  theme = get_theme("Drak"),
                  color=c("#CD0000","#FFEC8B"),   
                  markLineData=line_data,   
                  markLineTheme=markLineControl(
                  color="white", 
                  lineWidth=2, 
                  lineType="dashed"  
                  ),
                  markPointData=line_data[2],
                  markPointTheme=markPointControl(
                  symbolSize=13,  
                  effect=T,           
                  effectType="scale",    
                  color="white"
                  )
                   )                             
plot(map_out2)
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-10-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据小魔方 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图数据库 KonisGraph
图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档