#导入数据
#处理标记线的数据
#标记点的数据
#使用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 V21 湖南 115802 广西 112073 湖北 92354 贵州 96895 河南 93786 江西 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 color1 深圳 湖南 #fff2 深圳 广西 #fff3 深圳 湖北 #fff4 深圳 贵州 #fff5 深圳 河南 #fff6 深圳 江西 #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 类型+ )+ + + )
- 效果图