不写R包的分析师不是好全栈

REmap使用手册(2)

    R

REmap是一个基于Echarts http://echarts.baidu.com 的一个R包.主要的目的是为广大数据玩家提供一个简便的,可交互的地图数据可视化工具.目前托管在github, https://github.com/lchiffon/REmap


remapC


remapC是用于创建分级统计图(Choropleth map).即根据子区域数值的多少进行深浅不同的颜色填充的地图形式.目前支持的地图为:



  1. ‘china’ 中国省份地图

  2. ‘world’ 世界地图

  3. 各省市地图,如’广东’,’西藏’等…




熟悉R中绘制Choropleth map的同学可能清楚,基本的绘图包maps支持基本的地图绘制,但是缺点是绘制中国地图中是没有重庆的(版本较旧),所以有使用shp文件来绘制的方式



remapC的使用


函数的调用形式为:


remapC(data,
maptype = ‘china’,
color = c(‘#1e90ff’,’#f0ffff’),
theme = get_theme("Bright"),
title = "",
subtitle = "",
mindata = NA,
maxdata = NA,
# mark Line & point
markLineData = NA,
markPointData = NA,
markLineTheme = markLineControl(),
markPointTheme = markPointControl(),
geoData = NA)

参数看起来很多,这里仅描述前几个参数,后面的markLine与markPoint是用于在绘制好的地图上添加标线和标点的,会在remapB中详细介绍,remapC中重要的参数有:



  • data: 数据框,第一列为子区域名(比如全国地图的省名,省级地图的市名)

  • color: 传入单个颜色就使用从白色到该色的填充,多个颜色根据值大小计算填充颜色

  • maptype: 地图的格式,’china’代表中地图,’world’代表世界地图


用示例数据chinaIphone来做演示:


head(chinaIphone)

    V1  V2
1 北京 629
2 天津 516
3 上海 280
4 重庆 933
5 河北 296
6 河南 172

remapC(chinaIphone)



更改color参数来调整颜色:


remapC(chinaIphone,
color = ‘orange’)
## 颜色改为白色到橘红色
remapC(chinaIphone,
color = c(‘orange’,’red’))
## 颜色改为红色到橘红色

此外,使用mapType参数可以改变地图的类型,绘制子地图或者世界地图:


data = data.frame(country = mapNames("world"),
value = 5sample(178)+200)
head(data)
remapC(data,maptype = "world",color = ‘skyblue’)



其中mapNames()函数可以得到某个地图下的子图信息:


mapNames(‘西藏’)

[1] "那曲地区"   "阿里地区"   "日喀则地区" "林芝地区"
[5] "昌都地区" "山南地区" "拉萨市"

data = data.frame(country = mapNames(‘西藏’),
value = 50sample(7)+200)
head(data)
remapC(data,maptype = ‘西藏’,color = ‘skyblue’)



其他的参数: - theme: 地图的主题,里面可以设置背景颜色,标题颜色,边界颜色等 - title,subtitle: 标题与附标题 - max,min: dataRange的最大最小值


比如,精细的调整一下最初的地图:


remapC(chinaIphone,
title = "remapC实例地图",
theme = get_theme(‘none’,backgroundColor = ‘#fff’,
titleColor = "#1b1b1b",
pointShow = T),
max = 2000)



最后,再演示下remapC中使用markLine和markPoint的效果:


remapC(chinaIphone,
title = "remapC实例地图",
theme = get_theme(‘none’,backgroundColor = ‘#fff’,
titleColor = "#1b1b1b",
pointShow = T),
max = 2000,
markLineData = demoC,
markPointData = demoC[,2])




page PV:  ・  site PV:  ・  site UV: