玩转R:Shiny仪表板和谷歌分析数据

发布时间: 2015-08-21 阅读数: 2896

在这个文章中,我想分享一些数据可视化的例子。跟其他场合中一样,我的应用领域是数字分析的数据。更精确地说是来自谷歌分析的数据。

之前,我做了一个假设dashboard using R, Shiny and Google Charts。最终的结果还算不错,然而当我使用命令“merge”来融合图表,建立最终的仪表盘时,发现最终布局太过死板。

因此,我花了一些时间来优化我之前的仪表盘,并加入一些新的可视化结果,这些结果也许可以给你一些灵感。当然,我依然在使用R,Shiny,尤其是shinydashboard:附加一个hoc包来用R建立仪表盘。

这个仪表盘中我会使用以下的可视化工具:

  • 值框
  • 交互时间序列(dygraphs)
  • 气泡图
  • 流线图
  • 树图

你可以在shinyapps.io上看到最终的仪表板(也许会因为基础计划的限制,暂时看不到),但是最好能直接检验github上的代码。下面是一个屏幕截图:
image

让我们来通过各个可视化图像快速了解谷歌分析中的维度。

值框

当你建立一个仪表盘时,框图可能主模块,来组织你想展示的信息。当我建立一个仪表盘,我一般会从设计布局开始,这代表着对主模块的替换。

Shiny Dashboard包中的一个特殊框类型是值框,它可以供你展示数字和文本值,同时增加一个图标。值框是仪表盘顶部的一个重要部分,用来描述主要的KPI值,变化百分比或者添加一个对仪表盘其余部分的描述。

在我的仪表盘中,我替换了顶端的三个框,展示我的三个主要KPI值:会话量,业务量,汇率。用来建立值框的代码很简单,如果你想跟我一样有一个动态的数值,你需要在你的Shiny应用中建立server.R和ui.R:

image

交互时间序列(dygraphs)

如果填入太多的数据和序列,时间序列图可能是混乱的,且不能提供清晰的观点(可能会出现所谓的“意大利面条碗”现象)。

但是如果时间序列是交互的,用户可以对复杂数据集做简单而有意义的解释。

比如说,用户可以标注特殊数据点、加入或排除时间序列、放大特定的时间间隔、用阴影和注释来丰富图表,等等。所有这些特征都由dygraphs Javascript charting library提供。

我使用R dygraph package(提供一个Javascript dygraph charting library的接口)来建立时间序列和谷歌分析数据集的交互。这个简单的图表展示了3个维度:用户所选时期的会话量,业务量和汇率。会话量和业务量使用左边轴,而汇率使用右边轴。我在表格的底部放置一个dyRangeSelector来限制时间域。
image

气泡图

你可以通过气泡图展示三个维度的数据。我使用气泡图来表示业务信道:x轴表示会话量的值,y轴表示每次会话的平均页数,最终业务量(这是许多网页中的最终目标)由气泡的大小来表征。气泡越大,由该业务信道产生的业务量值越大。

我使用GoogleVis package来画这个图。
image

在这个仪表盘中,我也通过bubbles library添加了一个维度的气泡图。这一类型的图表与柱形图相似,后者可以使人更精确地理解你展示的图。

但是另一方面,这一气泡图看起来比柱形图更有吸引力,且它允许一个小区域内展示更多的数值。我使用这一图表来展示谷歌分析的移动产品报告中的屏幕分辨率数据。
image

流线图

流线图是一种固定均匀区域的图,被一个中心水平的轴围绕。流线图对在不同时间的数据序列,尤其是当你需要展示很多类时有非常有效的可视化效果。

介于其结果平滑而其有组织,有很强的审美吸引力,流线图越来越受欢迎
在仪表盘中,我用了一个流线图来可视化在过去几年中,不同设备上的期数的演变。在R中实现时,我需要使用streamgraph package

下面是最终的数据可视化(我不是非常满意这个图,因为当我的鼠标放在序列上是,显示的值并不是这一时间的,而是所有时期的。有没有其他方法能改变呢?)
image

另一个有趣的应用是在网络分析数据上,用流线图来分析不同业务间的信道共享。

树图

树图可视化在分层数据的简洁展示中非常有效。它可以在限制区域内显示很多信息,并且允许使用者透视代表这一结果的数据片段。

下面是一个谷歌分析报告中分层数据的例子,将设备用作主要分割,浏览器作为次要分割。每一个矩形区域均与对应分割点的会话量成比例。

在R中实现时,我使用treemap library(不幸的是可视化结果不是交互的,但是你可以尝试用d3treeR library来实现这一效果)。
image

我希望你可以从这些可视化中得到一些灵感,并且使用到你的数据分析仪表板或者报告中。

我的计划是持续添加一些有趣的可视化(那些现在并没有在谷歌分析报告中提供的)给这个仪表板,来更好地展示数据。

 

本文由雪晴数据网的李垠序编译自Playing with R, Shiny Dashboard and Google Analytics Data,转载请注明本文链接http://www.xueqing.tv/cms/article/view/id/18
分享到:
热门文章

REmap发布,用R绘制百度迁徙图

2015年07月23日更新 19674次阅读

学习R语言,一篇文章让你从懵圈到入

2016年05月09日更新 13611次阅读

清华大学教授:大数据时代 统计学依

2015年08月07日更新 10975次阅读

在R中填充缺失数据—mice包

2015年12月31日更新 9348次阅读

精通 R plot—第一部分:颜色

2016年01月20日更新 7821次阅读

非统计学专业的人该如何学习 R 语

2015年07月24日更新 7757次阅读
热门课程

R语言初级课程

2015年02月20日发布 3102名学员

R语言高效数据清理工具包dplyr

2015年08月30日发布 1626名学员

R语言数据分析入门

2016年05月10日发布 1469名学员

如何用R做数据预处理

2016年06月03日发布 1125名学员

全栈数据工程师养成攻略

2016年11月08日发布 977名学员

R语言大规模数据分析实战

2015年12月17日发布 933名学员
登录 注册