datav-charts
文件大小: unknow
源码售价: 5 个金币 积分规则     积分充值
资源说明:the charts and diagram based on raphaeljs and jquery
DataV-Charts 0.0.1
==========

摘要
----------
本项目是一个基于[Raphaeljs](http://raphaeljs.com/)和JQuery的可视化组件库。
目前主要提供了长周期的多维度时间轴,以及按省区分的中国地图两个组件。
本项目不使用Flash,并且可以在IE >= 6.0, Chrome, Safari (Mobile Safari), Firefox等现代浏览器上很好的运行。
本组件库是[DataV](https://github.com/TBEDP/datavjs)的一个子项目。
本组件库目前在[淘宝指数](http://shu.taobao.com)中得到了广泛的应用。
本项目由[阿里巴巴集团数据平台](http://www.alidata.org)开发维护。

依赖
----------
本项目公共依赖有:
* [Raphaeljs](http://raphaeljs.com/) >= 1.5.6
* [JQuery](http://jquery.com/) >= 1.6.0
* jquery.tooltip by zolunX10

除此之外,TimeLine组件还依赖:
* [g.Raphael](http://g.raphaeljs.com) >= 0.5.0
* [datejs](http://www.datejs.com/) 1.0 Alpha-1
* [underscore](http://underscorejs.org/) >= 1.3.3

组件说明
----------

### TimeLine

本组件是带长周期小时间轴的TimeLine组件,最多支持三条曲线同时显示,具有非常丰富的功能和配置。

#### 数据格式
```js
    {
      "trends": [
        [41701, 41398, 42516, .......,  30307, 31078, 32483, 33962, 34363, 33021, 32563, 30821, 30711],
        [556, 525, 653, ......, 580, 549, 541, 602, 646, 610, 728, 674, 533]
      ],
      "dates": ["2012-01-01", "2012-01-02", "2012-01-03", ......, "2012-05-23", "2012-05-24", "2012-05-25", "2012-05-26",
        "2012-05-27", "2012-05-28", "2012-05-29", "2012-05-30", "2012-05-31"],
      "lastDate": 1338422400000,
      "tags": [
        [
          {"name": "春节", "global": true, "keyword": null, "date": "2012-01-23"},
          {"name": "3.8妇女节", "global": true, "keyword": null, "date": "2012-03-08"}
        ],
        [
          {"name": "春节", "global": true, "keyword": null, "date": "2012-01-23"},
          {"name": "3.8妇女节", "global": true, "keyword": null, "date": "2012-03-08"}
        ]
      ],
      "queries": ["ipad"],
      "types": ["A指数", "B指数"]
    };
```
其中:
* trends为实际的数据,是一个二维数组,其中第一维表示不同种类的数据,最多为三项。第二维是实际的数据值,时间间隔为天;
* dates为横坐标中的日期项,格式为yyyy-MM-dd,从逻辑上,trends的每一维度的数据长度和dates的数据长度应该都是相同的;
* lastDate为数据中的最后一天的绝对时间,目前必须传入,一般可直接传入 new Date(dates[dates.length - 1]);
* tags为可选参数,传入后会在所设置的上用一个原点来提示该日有需要注意的事项,鼠标hover上去之后的tip中会表明其name;
* queries和types均为用于标志数据类型的两个参数,其中的一个参数的长度必须为1,另外一个应该与trends的第一维长度相等。
  如果传入query多个(<=3),types为1个,则纵坐标的数据轴只会有一个;如果传入query为1个,types有多个(<=2),则会显示两个纵坐标
  的数据轴分别表示不同type的数据的大小。这两个参数的含义为:queries为同一个指标下的不同项的数据,types为不同类指标,因此
  后者存在两个时会使用不同的时间轴。

#### 配置项及其默认值
```js
    lineColors = ["#3391d4", "#fe8f00", "#4d4d4d"] // 三条曲线的颜色
    gridColor = '#cccccc'                          // 坐标线的颜色
    backgroundColor = '#f2f2f2'                    // 图表背景色
    start = 1                                      // 短周期数据起始月数 (到长周期数据最后一个月的月数差)
    end = 0                                        // 短周期数据终止月数 (到长周期数据最后一个月的月数差)
    gridDash = '--'                                // 网格线的类型,为null时是直线,'.' '--'等为不同的虚线
```
#### 使用方法
```js
      $(function () {
        var map = new window.shuCharts.Timeline($('.timelinebox')[0]); // 组件的大小会根据容器大小自适应,但TimeLine组件不应小于400*250px
        // 数据
        var data =
        {"trends": [
          [......],
          [......]
        ],
          "dates": [......],
          "lastDate": 1338422400000,
          "tags": [
            [
              {"name": "春节", "global": true, "keyword": null, "date": "2012-01-23"},
              ......
            ],
            [
              {"name": "淘宝双12大促", "global": true, "keyword": null, "date": "2011-12-12"},
              ......
            ]
          ],
          "queries": ["ipad"],
          "types": ["搜索指数", "成交指数"]};
        // 配置项
        var opt = {start: 3, end: 0};
        map.render(data, opt);
      });
```
详见examples/timeline.html

#### 效果图

![TimeLine](http://img02.taobaocdn.com/tps/i2/T1Dd6LXcxoXXa03TE4-766-392.png)

### Map

本组件是利用不用省份的颜色深浅不同来表述各个省区的数据大小。

#### 数据格式
```js
    [{"name": "广东", "value": 152166, "rate": 11.46825740760978, "rank": 1},
    .........
    {"name": "内蒙古", "value": 23, "rate": 0.00000002342, "rank": 35}]
```

其中:
* name为省份名称,为了在项目中的统一,请均使用中文名,并不要加上‘省’或‘市’的字样;
* value为省份的值的绝对数;
* rate为占比;
* rank为排名;

#### 配置项及其默认值
```js
   hoverColor = "#cabee9"  // 鼠标移到省份上时的显示
   maxColor = '#007aff'    // 省份颜色的最大值
   minColor = '#cfebf7'    // 省份颜色的最小值
   colorNum = 7            // 省份颜色的分级
```
#### 使用方法
```js
    $(function () {
        var map = new window.shuCharts.Map($('.mapbox')[0]); // 组件的大小会根据容器大小自适应,但Map组件不应小于350*350px
        // 数据
        var data = [
          {"name": "广东", "value": 152166, "rate": 11.46825740760978, "rank": 1},
          {"name": "浙江", "value": 133696, "rate": 10.076233471128882, "rank": 2},
          {"name": "江苏", "value": 131292, "rate": 9.895051795801319, "rank": 3},
          ...... // 本处省略各省份,若不传入某省份,则该省份颜色按照最小值显示,并且鼠标hover时无效果
          {"name": "西藏", "value": 1118, "rate": 0.08426003037280165, "rank": 33},
          {"name": "澳门", "value": 506, "rate": 0.03813557725280647, "rank": 34},
          {"name": "内蒙古", "value": 0, "rate": 0, "rank": 35}
        ];
        // 配置
        var opts = {colorNum: 8};
        map.render(data, opts);
    });
```
详见examples/map.html

#### 效果图

![Map](http://img03.taobaocdn.com/tps/i3/T1m22LXc0nXXbNj_3g-388-345.png)



样式定制
----------

鼠标hover时的Tooltip样式在css/tooltip.css中定义。


本源码包内暂不包含可直接显示的源代码文件,请下载源码包。