2019独角兽企业重金招聘Python工程师标准>>>
#导入数据
#处理标记线的数据
#标记点的数据
#使用remapC()绘制
#效果图
绘制以深圳为地点,到各个省为终点的动态迁徙图,各函数介绍可以参考本博客的 REmap包介绍及使用,均有详细介绍,这篇为实际应用
数据在附件
- 导入数据
> library(REmap)
> options(remap.js.web = T) #将结果保存在工作目录下,避免R关掉后图片被删除,可以通过getwd()函数的得到工作目录,取出图片
#读取数据
> MigrateData <- read.csv('C:\\Users\\Xu\\Desktop\\MigrateDemo.csv',encoding='gb2312',header = F)
> head(MigrateData)
V1 V2
1 湖南 11580
2 广西 11207
3 湖北 9235
4 贵州 9689
5 河南 9378
6 江西 12484
> names(MigrateData) <- c('province','values') #命名列
- 处理标记线的数据
MarkLie_Data表示要传入绘制标记线(此项目就是迁徙路径线)的数据
包含三列,第一列 origin:起点,我们设置为深圳,第二列 destination 终点,第三列指定线条颜色color(因为在markLineControl里设置线条颜色容易出错)
> markLine_data <- data.frame(origin = rep("深圳",nrow(MigrateData)),
+ destination = MigrateData[1:nrow(MigrateData),1],#MigrateData[c('province')] 或者MigrateData[,1]
+
+ color = rep("#fff",nrow(MigrateData))
+ )
> head(markLine_data) #看下前几个效果
origin destination color
1 深圳 湖南 #fff
2 深圳 广西 #fff
3 深圳 湖北 #fff
4 深圳 贵州 #fff
5 深圳 河南 #fff
6 深圳 江西 #fff
- 标记点的数据
标记点的设置(此项目就是迁徙的终点),注意,因为是以深圳为起点,所以我们做下处理,这样能突出深圳的位置
> markPoint_data <- markLine_data[markLine_data!=""]
> markPoint_data1 <- markPoint_data[which(markPoint_data!="深圳"&markPoint_data!="#fff")] #作图时除去深圳这个点及对应的#fff字符串
- 使用remapC()绘制
该函数主要用于绘制分块区域热力,如在地图上显示不同省份热力效果
> remapC(MigrateData,
+ title = "深圳人口返乡模拟图", #标题设置
+ subtitle ='2018年春节', #副标题
+
+ #主题进行设置
+ theme = get_theme(
+ theme = 'Dark',#背景色
+ lineColor = '#FFFFFF' ,#对应为map图里面迁徙线条的颜色
+ titleColor = "#fff",
+ borderColor = "#999999", #边界颜色
+ regionColor = "#000000", #区域颜色
+ pointShow = F, #是否展示各省会,城市所在点,设置为True时展示
+ pointColor = "gold" #设置上述点的颜色
+ ),
+ color=c('#CD0000','#FFEC8B'), #颜色渐变方案,对应每个地区不同的value
+
+ #迁徙路径的数据传进来
+ markLineData = markLine_data,
+ #设置线的样式
+ markLineTheme = markLineControl(
+ color = 'white',
+ lineWidth =2,
+ lineType = 'dashed',
+ effect = T #不写默认也为T,不过当线条过多时不会动效
+ ),
+
+ #标记点的数据传进来
+ markPointData=markPoint_data1,
+ #设置点样式
+ markPointTheme=markPointControl( #通过markPointControl来设置样式
+ symbolSize=13, #样式大小
+ effect=T, #effctt =T 表示开启动效
+ effectType="scale",
+ color="white" #没有设置smybol 类型
+ )
+
+
+ )
- 效果图