自己动手写web统计图-flot扩展

  1. Flot简介

flot是纯Javascript实现的基于jQuery的图表插件,主要支持线状图和柱状图的绘制(通过插件也可以支持饼状图)。它的特点是使用简单、图形美观,支持鼠标跟踪,可扩展性及缩放功能,最重要的一点它是免费的。

关于flot使用方法这里就不多说了,园子中有许多的好文章,个人推荐 囧月

2.Flot不足

flot是2007年就发起的项目,而且在2009年还算火了一阵子,但此后就杳无音讯,所以 Flot的有些功能在实际开发过程中还不算完善,这些就需要我们来扩展。好在flot有很好的扩展机制,我们可以根据自己的需求来实现我们想要的功能。ps:直到2011初才有发布了新的版本。

3.扩展Flot

首先我要说的是扩展Flot的语法,很简单,代码如下:

1 (function ($) {
2  $.plot.plugins.push({
3     init: //初始化方法,
4     options://插件参数,
5     name: //插件名,
6     version: //版本号
7  });
8 })(jQuery);

 

然后Flot插件给我们提供了方便我们扩展的钩子函数(Hook Function),详细内容请看 API  这里给大家介绍几个常用的hook。

processOptions—处理flot参数时

processDatapoints-处理数据时

draw-画完统计图时

使用方法:

plot.hooks.processOptions.push(初始化方法);

plot.hooks.processDatapoints.push(初始化方法);

plot.hooks.draw.push(初始化方法);

6.一个简单示例

 1 (functioin($){
 2     var options={};//flot选项
 3    //初始化方法
 4     function init(plot){
 5       function temp(){
 6       //Do something
 7       }
 8       plot.hooks.processDatapoints.push(temp); 
 9     } 
10     $.plot.plugins.push({
11         init: init,
12         options: options,
13         name: 'temp',
14         version: '1.0'
15      });
16  })(jQuery);

 

5.自己的Flot插件分享

jquery-flot-valueLabel插件-用于给柱状图的每根柱子显示相应的y轴值的标签。ps:折线图当然也可以,不过我觉的没有必要。download:jquery-flot-valueLabel

jquery-flot-scrollbar插件是一个可以使柱状图的柱子滚动的插件。同时感谢园友 豪情 的文章对我的帮助。download:jquery-flot-scrollbar

【更新】

1、原先jquery-flot-label插件改名为jquery-flot-valueLabel并修复了一些bug

2、jquery-flot现在已经迁到了GitHub上了 https://github.com/flot/flot ,版本也升级到了0.8.3

 

以上是本人在工作中的一些心得,希望对大家有所帮助。欢迎大家给出宝贵意见和吐槽。

  

posted @ 2013-01-04 10:34  Khadron  阅读(922)  评论(2)    收藏  举报