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

REmap使用手册(5)

    R

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


markPoint


markPoint是Echarts中进行标点的工具.通过不同形状的点(箭头,星,圆或者自定义的图片)来完成点的标注




与markLine类似,markPoint相关的参数,可以在remapC或者remapB中调用:



  • markPointData 标点使用的数据,可以是一个向量,如果是数据框就仅使用第一列.

  • markPointTheme 控制标点颜色,形状等,由markPointControl来控制

  • geoData 标中各个点的经纬度坐标,如果没有,会使用BaiduAPI自动查找


一个简单的示例:


remapB(title = "Remap:  百度迁徙模拟",
color = "Blue",
markPointData = demoC[,2])




markPointTheme


markPointTheme控制了标线的风格,使用markPointControl来调用,这里列出主要的参数:


markPointControl(symbol = ‘emptyCircle’,
symbolSize = "Random",
effect = T,
effectType = ‘scale’,
color = "Random")


  • symbol:

    • ‘circle’,‘emptyCircle’,圆,空心圆

    • ‘rectangle’,‘emptyRectangle’,方块,空心方块

    • ‘triangle’,‘emptyTriangle’,三角,空心三角

    • ‘diamond’,‘emptyDiamond’,钻石,空心钻石

    • ‘heart’心形,’droplet’,水滴

    • ‘pin’,POI标注,’arrow’箭头, ’star’五角星

    • 或者使用’image://http://….’来引用一个图片

    • 此外对markLineData下设置symbol变量会覆盖该颜色


  • symbolSize:

    • 标点的大小


  • effect:

    • 炫光特效,标线较多的时候建议关闭


  • effectType:

    • 炫光特效的方式,’scale’放大,或者’bounce’跳动


  • color:

    • 颜色,默认为随机颜色,设置一个颜色会取为固定颜色

    • 此外对markLineData下设置color变量会覆盖该颜色



remapB(title = "Remap:  markPoint示例",
color = "Blue",
markPointData = demoC[,2],
markPointTheme = markPointControl(symbol =
"image://http://lchiffon.github.io/assets/images/df_logo.jpg",
symbolSize = 15,
effect = F))





geoData


mapC和mapB中,都会有geoData这个变量,用以储存markLine和markPoint的地理位置信息.具体的格式与get_city_coord返回相同:



  • 第一列lon

  • 第二列lat

  • 第三列地理名称


get_geo_position(c("Beijing","Shanghai","Guangzhou"))

       lon      lat      city
1 116.4232 39.91528 Beijing
2 121.5221 31.30477 Shanghai
3 113.2684 23.12980 Guangzhou

下面的例子,结合了上一节的地铁信息,增加了一些POI的店铺信息




Example:地铁线路可视化


这里,我们使用REmap中自带的geoData来进行演示,数据是是上海自助餐与火锅的POI位置信息,一共30条(数据来源于百度API)


数据是如下的样子:


121.4802 31.24210 鑫海汇自助烤肉
121.4447 31.19689 五月罗马海鲜自助餐厅(徐家汇店)
121.3307 31.24701 多伦多风情自助餐厅(万达广场店)
121.4622 31.23414 金钱豹自助餐 中信泰富店
121.5249 31.23544 五月罗马海鲜自助餐厅



绘制点图


#前20个标注为天蓝色,后10个标注为红色
pointData = data.frame(geoData$name,
color = c(rep("skyblue",20),
rep("red",10)))



remapB(get_city_coord("上海"),
zoom = 13,
color = "Blue",
title = "上海美食",
markPointData = pointData,
markPointTheme = markPointControl(symbol = ‘pin’,
symbolSize = 5,
effect = F),
geoData = geoData)



当然在一个地图中可以混合标点与标线的信息


names(geoData) = names(subway[[1]])
remapB(get_city_coord("上海"),
zoom = 13,
color = "Blue",
title = "Remap: MarkPoint&MarkLine",
markPointData = pointData,
markPointTheme = markPointControl(symbol = ‘pin’,
symbolSize = 5,
effect = F),
markLineData = subway[[2]],
markLineTheme = markLineControl(symbolSize = c(0,0),
smoothness = 0),
geoData = rbind(geoData,subway[[1]]))




page PV:  ・  site PV:  ・  site UV: