
今天给大家推荐一个地图可视化的R包
REmap是一个基于Echarts http://echarts.baidu.com 的R包.主要的功能是为广大数据玩家提供一个简便的,可交互的地图数据可视化工具. https://github.com/lchiffon/REmap
REmap包中主要的几个函数有REmap、REmapB、REmapC、REmapH
主要功能:
1. REmap : 最基础的一个函数,可绘制路径迁徙图;
2. REmapB:通过调用百度地图API画出一个可通过鼠标进行伸缩的地图;
3. REmapC:用于创建分级统计图(Choropleth map).即根据子区域数值的多少进行深浅不同的颜色填充的地图形式.目前支持的地图为:‘china’ 中国省份地图;‘world’ 世界地图;各省市地图,如’北京’,’上海’等
4. REmapH:可以做中心辐射的热力图,这种热力图多用于跟地理信息相关的数据的呈现;
首先最重要的是安装R语言(https://www.r-project.org/)以及REmap包,在R语言界面输入:
install.packages("devtools")
library(devtools)
install_github('lchiffon/REmap')
library(REmap)
接下来将详细介绍各个函数的参数以及实战演练:
1. REmap
参数搭配说明:
remap(mapdata, title = "", subtitle = "", theme =get_theme("Dark"))
mapdata 数据框,第一列为出发地点,第二列为到达终点;
title 标题 ;subtitle 副标题
theme控制生成地图的各元素特征,以下具体说明参数
get_theme(theme = "",
lineColor = "",
backgroundColor = "",
titleColor = "",
borderColor = "",
regionColor = "")
theme为总体配色,默认有“Dark”、“Bright”、“Sky”、“none”
lineColor为线条颜色,默认是随机的,也可自行设置 'blue'
backgroundColor为地图外背景配色
titleColor为标题颜色
borderColor为地图中地域边缘颜色,不同省份、城市的边缘
regionColor为地域颜色,即地图显示的颜色
实例:
(1)options(remap.js.web=T)
destination=c("济南","北京","郑州","西安","哈尔滨","乌鲁木齐","兰州","成都","长沙")
origin=c("北京","哈尔滨","乌鲁木齐","兰州","成都","长沙","北京","郑州","西安")
map_data=data.frame(origin,destination)
map_out=remap(mapdata=map_data,,theme=get_theme(theme='Dark'))
plot(map_out)
注意第一行的options(remap.js.web=T),网页打开图片并保存为网页。动图效果推荐ScreenToGif软件截取

(2)map_out=remap(mapdata=map_data,,theme=get_theme(theme='none',lineColor="orange"))
plot(map_out)

(3)map_out=remap(mapdata=map_data,,theme=get_theme(theme='none',backgroundColor="white",lineColor="orange"))
plot(map_out)

2. REmapB
参数搭配说明:
remapB(center = c(),
zoom = ,
color = "",
title = "",
subtitle = "",
markLineData = NA,
markPointData = NA,
markLineTheme = markLineControl(),
markPointTheme = markPointControl(),
geoData = NA)
center为地图打开时所处位置
zoom为地图大小
markLineData为绘制迁移图时的数据
markPointData为绘制方位图时的数据
markLineTheme=markLineControl()为迁移图交互
markPointTheme = markPointControl()为方位图交互
实例:
(1)足记迁移图
destination=c("上海","广州","济南","大连","成都","长春","太原","西宁","乌鲁木齐","拉萨")
origin=rep("西安",length(destination))
map_data=data.frame(origin,destination)
map_out1=remapB(zoom=5,color="dark",,sub, markLineData=map_data,markPointData=destination,markLineTheme=markLineControl(symbol=NA,symbolSize=c(0,4),smooth=T, smoothness=0.2,effect = T,lineWidth = 2,lineType="dotted",color="white"),markPointTheme=markPointControl(symbol="heart",symbolSize = "Random",effect = T, effectType = "scale", ))
plot(map_out1)

(2)西安大学分布图
dl_college = getPlace("大学","西安")
newdata1=dl_college[,c(3,4,1)]
newdata2=newdata1[,c(2,1,3)]
map_out3=remapB(center=c(109,34),zoom=10,color="dark",markPointData=newdata2[3],markPointTheme=markPointControl(symbol="pin",symbolSize=3,effect=T,color = "yellow"),geoData =newdata2 )
plot(map_out3)

3. REmapC
参数搭配说明:
remapC(data,
maptype = 'china',
markLineData = NULL,
markPointData = NULL,
color = c(''),
theme = get_theme("Bright"),
title = "",
subtitle = "",
markLineTheme = markLineControl(),
markPointTheme = markPointControl(),
geoData = NA,
mindata = NA,
maxdata = NA)
data为两列数据,第一列为国家或城市名,第二列为数据(比如植物密度)
实例:
(1)世界地图
data=data.frame(country=mapNames("world"),value=5*sample(178)+200)
out = remapC(data,maptype = "world",color = 'orange')
plot(out)

(2)山东地图
data=data.frame(country=mapNames("shandong"),value=5*sample(17)+200)
out=remapC(data,maptype="shandong",color = 'skyblue')
plot(out)

4. REmapH
参数搭配说明:
remapH(data,
maptype = 'china',
theme = get_theme("Dark"),
blurSize = 30,
color = c('blue', 'cyan', 'lime', 'yellow', 'red'),
minAlpha = 0.05,
opacity = 1)
data为数据框数据包含经度,维度,密度
maptype为地图类型,比如“China”,“world”以及省名。
theme为绘制的地图类型,通过get_theme设置
blurSize为热图的扩散程度
minAlpha为热点的阖值
opacity为地图透明度,默认为1
这里windows系统在获取经纬度的时候报错,网上查了很多,包括API设定,都没有用。据说MAC是正常的,有条件的可以试试。
通过不同函数和不同参数的结合,可以画出多种多样的地图,大家可以结合自己数据的实际情况,进行展示,欢迎交流。


