(标题图片来源:HighCharts)
这两天关注了一下数据可视化的JS库,选择真是太多了:国外有ChartJS, D3, Plotly, RawGraphs, Flot, HighCharts,国内有百度开发的Echarts。D3的名气就不用说了,这两年火得不行,尝试了一下感觉语法结构对我这个javascript新手还是太复杂;又试了下Echarts,效果还是挺绚丽的,不过我使用上也感觉怪怪的。Plotly基于D3,覆盖全面,R/Python/JavaScript等等都可以直接调用,语法上应该和D3类似,准备以后再试。看过了HighCharts,语法结构上符合对于图表的理解:title, xAxis, yAxis, data series等等,配置起来也相对简单。
至于为什么想到用html作幻灯演示,我想有以下几点优势:
- 格式编辑(相对)容易:不用考虑格式,对齐,字体大小等等问题;reveal.js还支持直接用markdown;
- 便携性和格式兼容性:基本上现代浏览器都可以播放,甚至可以用手机或平板
- 交互性强:数据甚至可以用实时的;
- 效果(相对)绚丽
JS工具选择也不少:revealjs, impressjs/jmpressjs, presenteerjs, webslides等等,初试了下RevealJS,上手还是比较快的。
RevealJS HTML基本框架
|
|
加入HighCharts图表
在head中加入jQuery, HighCharts库
|
|
在幻灯片section中加入作图框架
|
|
数据结构(以带误差线的柱状图为例)
|
|
效果如下:
如果看不到图表,请右键下载Frame为html/page source,用浏览器本地打开即可。
目前发现的一个问题就是应用了RevealJS后叠加的tooltip (tooltip shared: true) 显示位置就会出错。。