remapC--分级统计图

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 = 5*sample(178)+200)
head(data)
remapC(data,maptype = "world",color = 'skyblue')

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

mapNames('西藏')
[1] "那曲地区"   "阿里地区"   "日喀则地区" "林芝地区"  
[5] "昌都地区"   "山南地区"   "拉萨市" 
data = data.frame(country = mapNames('西藏'),
                   value = 50*sample(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])