分享

jquery 图表

 Jlinhai 2012-04-30

教你开发一款极为简单实用的jQuery图表插件(1)

2011-06-17 11:22 贺臣 贺臣的博客 我要评论(3) 字号:T | T
一键收藏,随时查看,分享好友!

这里介绍一款简单实用的图表插件,该图表插件是基于jQuery和jQuery的插件 gchart很容易实现的,而gchart插件是封装了Google的图表api。

AD:

这里介绍一款简单实用的图表插件,该图表插件是基于jQuery和jQuery的插件 gchart很容易实现的,而gchart插件是封装了Google的图表api 。

一 柱状图

(1) 竖状单行条形直方图效果图:

以上数据取自某个网站六个月份的用户注册量 。从以上数据可以看出,一二月份注册用户数为0,图表能够清晰对比每个月份用户注册量的变化。

  1. //月度报表  
  2.         function MonthReport() {  
  3.             $.ajax({  
  4.                 url: "/Home/About",  
  5.                 success: function (data) {  
  6.                     var json = eval(data);  
  7.                     var opt = {  
  8.                         data: json,  
  9.                         axis_labels: ["一月""二月""三月""四月""五月""六月"],  
  10.                         legend: ["serie1""serie2""serie3""serie4""serie5""serie6"],  
  11.                         title: "情缘图表",  
  12.                         size: "400x200" 
  13.                     };  
  14.                     var api = new jGCharts.Api();  
  15.                     jQuery('<img>').attr('src', api.make(opt)).appendTo("#myDIV");  
  16.                 }  
  17.             });  
  18.         }  

(2) 竖状多行条形直方图效果图:

以上数据和第一种情况差不多,这是这里是做的季度统计,这里做了第一季度和第二季度的相关数据统计。显示结果如图

  1. //季度报表  
  2.         function QuarterReport() {  
  3.             $.ajax({  
  4.                 url: "/Home/GetTotalCount",  
  5.                 success: function (data) {  
  6.                     var json = eval(data);  
  7.                     var opt = {  
  8.                         data: json,  
  9.                         axis_labels: ["一季度""二季度"],  
  10.                         legend: ["serie1""serie2""serie3"],  
  11.                         title: "情缘图表",  
  12.                         size: "400x200" 
  13.                     };  
  14.                     var api = new jGCharts.Api();  
  15.                     jQuery('<img>').attr('src', api.make(opt)).appendTo("#myQuarter");  
  16.                 }  
  17.             });  
  18.         }  

(3) 横条多行条形直方图效果图:

这种情况是上面一种情况的变相显示,只不过横纵坐标修改了。

  1. //季度报表  
  2.         function QuarterReportBhg() {  
  3.             $.ajax({  
  4.                 url: "/Home/GetTotalCount",  
  5.                 success: function (data) {  
  6.                     var json = eval(data);  
  7.                     var opt = {  
  8.                         data: json,  
  9.                         axis_labels: ["一季度""二季度"],  
  10.                         legend: ["serie1""serie2""serie3"],  
  11.                         title: "情缘图表",  
  12.                         size: "400x200",  
  13.                         type: "bhg" 
  14.                     };  
  15.                     var api = new jGCharts.Api();  
  16.                     jQuery('<img>').attr('src', api.make(opt)).appendTo("#myQuarterbhg");  
  17.                 }  
  18.             });  
  19.         }  

二 堆栈图

堆栈图多用于显示数据变化程度,此处显示了各科分数的情况,似乎不是太直观。但是这里能够显示此种效果就够了

  1. //分数统计  
  2.         function ScoreReport(){  
  3.             $.ajax({  
  4.                 url: "/Home/GetScore",  
  5.                 success: function (data) {  
  6.                     var json = eval(data);  
  7.                     var opt = {  
  8.                         data: json,  
  9.                         axis_labels: ["贺臣""情缘""木木"],  
  10.                         legend: ["语文""数学""英语","综合"],  
  11.                         title: "情缘图表",  
  12.                         size: "400x200",  
  13.                         type: "bhs" 
  14.                     };  
  15.                     var api = new jGCharts.Api();  
  16.                     jQuery('<img>').attr('src', api.make(opt)).appendTo("#myScoreReport");  
  17.                 }  
  18.             });  
  19.         }  

三 折线图

折线图很适合地域分布,温度分布图。

  1. //温度走势图  
  2.         function TemperatureReport(){  
  3.             $.ajax({  
  4.                 url: "/Home/GetTemperature",  
  5.                 success: function (data) {  
  6.                     var json = eval(data);  
  7.                     var opt = {  
  8.                         data: json,  
  9.                         title: "情缘图表",  
  10.                         axis_labels: ["一月""二月""三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],  
  11.                         size: "400x200",  
  12.                         type: "lc",  
  13.                         bar_width:"5",  
  14.                         bar_spacing:"5",  
  15.                         fillarea:true 
  16.                     };  
  17.                     var api = new jGCharts.Api();  
  18.                     jQuery('<img>').attr('src', api.make(opt)).appendTo("#myTemperature");  
  19.                 }  
  20.             });  
  21.         }  

    四 饼图

    一般情况下我最细的是饼图,给人的感觉就是很不错。 以上两个图其实就这是类型不同而已

    1. //饼图  
    2.         function QuarterPie(){  
    3.             $.ajax({  
    4.                 url: "/Home/GetQuarterPie",  
    5.                 success: function (data) {  
    6.                     var json = eval(data);  
    7.                     var opt = {  
    8.                         data: json,  
    9.                         title: "情缘图表",  
    10.                         axis_labels: ["一月""二月""三月","四月"],  
    11.                         size: "400x200",  
    12.                         type: "p" 
    13.                     };  
    14.                     var api = new jGCharts.Api();  
    15.                     jQuery('<img>').attr('src', api.make(opt)).appendTo("#myQuarterPie");  
    16.                 }  
    17.             });  
    18.         }  
    19.  
    20.  
    21. //3D饼图  
    22.         function Quarter3DPie(){  
    23.             $.ajax({  
    24.                 url: "/Home/GetQuarterPie",  
    25.                 success: function (data) {  
    26.                     var json = eval(data);  
    27.                     var opt = {  
    28.                         data: json,  
    29.                         title: "情缘图表",  
    30.                         axis_labels: ["一月""二月""三月","四月"],  
    31.                         size: "400x200",  
    32.                         type: "p3" 
    33.                     };  
    34.                     var api = new jGCharts.Api();  
    35.                     jQuery('<img>').attr('src', api.make(opt)).appendTo("#myQuarter3DPie");  
    36.                 }  
    37.             });  
    38.         }  

    五 代码分析

    从上面的代码可以看出,其实使用这个插件制作图表就类型的不同而已。需要修改的是 type 这个值

    这里介绍type支持的类型:

    折线图 lc

    点线图 lxy

    Sparkline 图 ls

    叠加型水平条形图 bhs

    叠加型垂直条形图 bvs

    水平条形图 bhg

    垂直条形图 bvg

    饼图 p

    三维饼图 p3

    维恩图 v (目前没有看到效果,各位可以尝试)

    散点图 s (目前没有看到效果,各位可以尝试)

    雷达图 r (目前没有看到效果,各位可以尝试)

    地图 t (目前没有看到效果,各位可以尝试)

    仪表 gom

    六 插件相关参数说明

    data: 一个二维数组,参数类型如下:[[153, 60, 52], [113, 70, 60], [120, 80, 40]]

    size: 图片显示的大小 ( width x height ) 300x200

    type: 前面已经说过了 这里不再累述

    xis_labels : 横轴文字

    legend :图例

    bar_width : 20 默认 20 条形宽度

    bar_spacing : 1 默认1 条形间距

    colors : ['4b9b41','81419b','41599b'] 图例显示颜色

    bg : 'e0e0e0' 背景颜色

    bg_trasparency : 50 背景透明度

    bg_offset : '000000' 渐变终结色

    bg_angle : '45', 默认 90 渐变角度

    bg_type : 'gradient' 默认 solid 渐变方式

    bg_width : '10' 默认 10 渐变步伐

    chbg : 'FFFFFF', 图表区颜色

    chbg_offset : '4b9b41' 图表区渐变终结色

    chbg_angle : '45' 默认90 渐变角度

    chbg_type : 'gradient' 默认 solid 渐变方式

    title : 'Bar Chart', 图表标题

    title_color : 'a98147',

    title_size : 20 默认10

    grid : true, 默认 false 网格

    grid_x : 5, 默认 10 X轴网格宽度

    grid_y : 5, 默认格宽度

    grid_line : 5, 默认

    grid_blank : 0 默认度

    fillarea : true 默认图表区

    fillbottom : true 默认下端

    filltop : true 默认充上端

    lines: [[4,2,2],[6,3,3]] 点线图,[线宽,点宽,空白宽]

    七 代码示例下载

    点击下载, 代码有一部分是使用的的数据库数据,因此运行的时候可能会有问题,这里需要做相应的修改!

    这里就简单介绍到这里,如果各位有兴趣可以尝试修改其中的效果来看看运行效果

    【责任编辑:陈贻新 TEL:(010)68476606】

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约