R语言教程之利用R快速绘制热力地图and连线迁徙地图
本文简单介绍如何利用R绘制热力地图和连线(迁徙)地图,具体代码如下:
热力地图:
l
ibrary(REmap) setwd("F:\\Dropbox\\R\\公众号\\map") data<- read.csv(file="cityvaluetop10.csv",header=T) options(remap.js.web=T) ##设定工作环境,导入程序包并读取数据 ##options(remap.js.web=T)是将结果保存在工作目录下 theme1 <- get_theme(theme = "none", lineColor = "white", backgroundColor = "white", titleColor = "#fff", borderColor = "blue", regionColor = "grey", labelShow = T, pointShow = F, pointColor = "gold" ) ##theme为主题,设置该参数后无需设置get_theme里其他参数,可选有”Dark”、”Sky”、”blue”和”none”四种 ##lineColoe为线条颜色 ##backgroundColor为图片的背景色,支持16进制颜色输入,也支持rgb()函数和rgba() ##titleColor为标题的颜色,设置同上 ##borderColor为地图中各省、市边界颜色 ##regionColor为地图中各区域颜色,各省份和市 ##labelShow为是否展示各省、市名字,设置为True时展示 ##pointShow为是否展示各省会,城市所在点,设置为True时展示 ##pointColor设置上述点的颜色 remapH(data, maptype = 'china', theme = theme1, blurSize = 30, color = "blue", minAlpha = 10, opacity = 1, ) ##data为要传入的数据,数据为三列,第一列为lon(经度),第二列为lat(维度),第三列为prob(密度/概率) ##maptype为要绘制的地图类型,可选有:”china”,”world”或中国各省份名字 ##theme为绘制的地图主题类型 ##blurSize为热力效果的泛化范围,可调整热力点中心的扩散程度 ##color为热力的渐变颜色 ##minAlpha为热力点的展示阈值,对应data中的prob列,作图时各点密度会对比minAlpha,以凸显不同密度所展示的不同热力分布 ##opacity为透明度,调整热力图的透明度
图示如下:
迁徙(连线)图:
library(REmap) setwd("F:\\Dropbox\\R\\公众号\\map") cityvalue <- read.csv(file="cityvalue.csv",header=T,encoding="gb2312") options(remap.js.web=T) ##设定工作环境,导入程序包并读取数据 ##options(remap.js.web=T)是将结果保存在工作目录下 theme1 <- get_theme(theme = "none", lineColor = "red", backgroundColor = "white", titleColor = "#fff", borderColor = "white", regionColor = "grey", labelShow = F, pointShow = F, pointColor = "gold" ) ##theme为主题,设置该参数后无需设置get_theme里其他参数,可选有”Dark”、”Sky”、”blue”和”none”四种 ##lineColoe为线条颜色 ##backgroundColor为图片的背景色,支持16进制颜色输入,也支持rgb()函数和rgba() ##titleColor为标题的颜色,设置同上 ##borderColor为地图中各省、市边界颜色 ##regionColor为地图中各区域颜色,各省份和市 ##labelShow为是否展示各省、市名字,设置为True时展示 ##pointShow为是否展示各省会,城市所在点,设置为True时展示 ##pointColor设置上述点的颜色 markline_data <- data.frame(origin=rep("广州",10), destination=c("广西","湖南","湖北","贵州", "河南","江西","福建","北京", "浙江","四川"), color=rep("red",10) ) ##手动填入前10城市数据,作线条用,并设置颜色为red markpoint_data <- data.frame(point=c("广西","湖南","湖北","贵州","河南","江西","福建","北京","浙江","四川"),color=rep("white",10)) markline_control <- markLineControl(symbolSize=c(0,0), smooth=F, smoothness=0, effect=T, lineWidth=1, lineType="solid", ) ##此处设置前10城市数据,绘制点图用,并设置颜色为grey ##symbolSize 控制上述参数形状大小,同样有两个值 ##smooth 控制线条是否平滑,为T时,smoothness参数才有效 ##smoothness 控制线条的平滑度,为0时是直线 ##effect 控制线条是否呈现动态效果,为T时显示动态效果,需要注意的是当线条过多时effect参数无效,不会显示动效 ##linewidth 控制线条的粗细 ##lineType 控制线条的形状,可选样式有:'solid', 'dotted','dashed'等 markpoint_control <- markPointControl(symbol = 'Circle', symbolSize = 10, effect = T, effectType = 'scale', ) ##symbol 控制点的形状,可选样式有:'pin''circle','rectangle','triangle','diamond','emptyCircle','emptyRectangle','emptyTriangle'等 ##symbolSize 控制上述参数形状大小 ##effect 控制点是否呈现动态效果,为T时显示动态效果,需要注意的是当点数目过多时effect参数无效,不会显示动效 ##effectType 控制点的动效呈现形式,可选样式有:'scale' ,'bounce' remapC(cityvalue, maptype = 'china', markLineData = markline_data, markPointData = markpoint_data, color = c('#888888','#CDCDCD'), theme = theme1, title = "", subtitle = "", markLineTheme = markline_control, markPointTheme = markpoint_control, ) ##cityvalue为要传入的数据,该数据为2列,第一列为city(各城市,省份名字),第二列为value(对应第一列城市拥有的数值) ##maptype 为要绘制的地图类型,可选有:”china”,”world”或中国各省份名字 ##markLineData 为要绘制的线条的数据,该数据前两列为必须,第一列为origin(出发地),第二列为destination(目的地),此外建议在第三列指定线条颜色,因 ##markPointData 为要绘制的点的数据,该数据前一列,该列为要绘制的点名字 ##color 为热力颜色的渐变,第一个为起始颜色,第二给为终止颜色 ##theme为主题,设置该参数后无需设置get_theme里其他参数,可选有”Dark”、”Sky”、”blue”和”none”四种 ##title 为标题 ##subtitle 为副标题 ##markLineTheme 为控制线条的样式参数,该参数由markLineControl函数传入 ##markPointTheme 为控制点的样式参数,该参数由markPointControl函数传入
图示如下: