注意
如果浏览器提示本文加载了不安全的脚本,请点允许。
今次主题比较简单。上个话题留了点冷饭,看起来还没馊,咱敲个鸡蛋炒个蛋炒饭。
炒个什么蛋炒饭呢?——动态图(dynamic charts)。这也是应留言要求额外发的番外。基本和分析关系不大,纯粹是可视化范畴。
动态图
通常我们看到的都是静态图,最常见的是.jpg、.png这类位图,逼格高一点的会用到.svg矢量图。但它们都是死图,所有图形元素都不会动。某些情况下,我们不仅要把统计结果映射到特定的视觉通道,还希望表现其历时性,或者允许用户自己进行挖掘。这就需要让图形部件动起来。
R有个名包,叫animation,可以用它压制.gif,用在社交媒体效果足够醒目。它的基本思路就是拿出一维来映射时间,基于时间点对数据切片、统计、制图,最后把静态图们合成一个动画。
- 还有一种方法是交互图(interactive charts)。
把统计数据绑定到JavaScript控件上,定义好交互方法,用户即可在网页上通过控件操作来调整视觉呈现(切片、缩放、改变类型等)。RStudio发过一个工具框架包htmlwidgets,可以很方便地把已有的JavaScript可视化库移植到R。我们今天就要用到其中的两个:ECharts2和leaflet。
如果再进一步,就是数据交互面板了。R有shiny及其系列衍生品,比如flexboard。想象一下作战室交互图仪表盘面板,几行命令就做出来了。简直酷炫。但是这需要部署在shiny服务器上。