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

REmap使用手册(4)

    R

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


markLine


markLine是Echarts中进行标线的工具.通过标线(直线,曲线),可以完成很多有意思的可视化



先说一下markLine相关的参数,这些参数可以在remapC或者remapB中调用:



  • markLineData 标线使用的数据,第一列为出发地,第二列为目的地

  • markLineTheme 控制标线颜色,形状等,由markLineControl来控制

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


一个简单的示例:


remapB(title = "Remap:  百度迁徙模拟",
color = "Blue",
markLineData = demoC)




markLineTheme


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


markLineControl(symbolSize = c(2,4),
smoothness = 0.2,
effect = T,
lineWidth = 1,
lineType = ‘solid’,
color = "Random")


  • SymbolSize:

    • 形状的大小,标线默认是一段无形状,一段箭头,如果不想要箭头可以使用symbolSize = c(0,0)


  • smoothness:

    • 曲线的弯曲度,取0标线会退化为直线


  • effect:

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


  • lineWidth:

    • 标线的宽度


  • lineType:

    • 标线的样式: ’solid’实线’dotted’点线或者 ’dashed’虚线


  • color:

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

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



remapB(title = "Remap:  百度迁徙模拟",
color = "Blue",
markLineData = demoC,
markLineTheme = markLineControl(symbolSize = c(0,0),
lineWidth = 10,
lineType = ‘dashed’))




设置额外的颜色:


demoC$color = sample(c("red","blue"),10,replace = T)

remapB(title = "Remap: 百度迁徙模拟",
color = "Blue",
markLineData = demoC,
markLineTheme = markLineControl(symbolSize = c(0,0),
lineWidth = 10,
effect = F,
lineType = ‘dashed’))






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

下面是一个例子,通过这个例子可以看到markLine的使用方式




Example:地铁线路可视化


这里,我们使用REmap中自带的subway来进行演示,是上海地铁一号线的线路信息,其中subway[[1]]为各个点的经纬度坐标,subway[[2]]为各个点的连线方式.(数据来源于百度API)


各个点的经纬度坐标


head(subway[[1]])

               V1              V2              name
1 121.43102542826 31.398676380258 yihaoxian Point 1
2 121.43132186908 31.397705460498 yihaoxian Point 2
3 121.43154644546 31.396665178073 yihaoxian Point 3
4 121.43339695481 31.391602304084 yihaoxian Point 4
5 121.43433119254 31.387733681833 yihaoxian Point 5
6 121.43766390598 31.374986126392 yihaoxian Point 6

各个点的连线方式


head(subway[[2]])

             origin       destination
1 yihaoxian Point 1 yihaoxian Point 2
2 yihaoxian Point 2 yihaoxian Point 3
3 yihaoxian Point 3 yihaoxian Point 4
4 yihaoxian Point 4 yihaoxian Point 5
5 yihaoxian Point 5 yihaoxian Point 6
6 yihaoxian Point 6 yihaoxian Point 7

remapB(center = get_city_coord("上海"),
zoom = 13,
title = "Remap: 上海地铁一号线",
color = "Blue",
markLineData = subway[[2]],
markLineTheme = markLineControl(smoothness = 0,
effect = T,
symbolSize = c(0,0)),
geoData = subway[[1]])



page PV:  ・  site PV:  ・  site UV: