代码改变世界

教你一款极为简单实用的图表插件

2011-06-17 10:49  贺臣  阅读(6301)  评论(35编辑  收藏  举报
这里介绍一款简单实用的图表插件,该图表插件是基于jqueryjquery的插件 gchart很容易实现的,而gchart插件是封装了google的图表api

一  柱状图

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

 

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

//月度报表
        function MonthReport() {
            $.ajax({
                url: 
"/Home/About",
                success: function (data) {
                    var json 
= eval(data);
                    var opt 
= {
                        data: json,
                        axis_labels: [
"一月""二月""三月""四月""五月""六月"],
                        legend: [
"serie1""serie2""serie3""serie4""serie5""serie6"],
                        title: 
"情缘图表",
                        size: 
"400x200"
                    };
                    var api 
= new jGCharts.Api();
                    jQuery(
'<img>').attr('src', api.make(opt)).appendTo("#myDIV");
                }
            });

        } 

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

 

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

//季度报表
        function QuarterReport() {
            $.ajax({
                url: 
"/Home/GetTotalCount",
                success: function (data) {
                    var json 
= eval(data);
                    var opt 
= {
                        data: json,
                        axis_labels: [
"一季度""二季度"],
                        legend: [
"serie1""serie2""serie3"],
                        title: 
"情缘图表",
                        size: 
"400x200"
                    };
                    var api 
= new jGCharts.Api();
                    jQuery(
'<img>').attr('src', api.make(opt)).appendTo("#myQuarter");
                }
            });

        } 

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

 

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

//季度报表
        function QuarterReportBhg() {
            $.ajax({
                url: 
"/Home/GetTotalCount",
                success: function (data) {
                    var json 
= eval(data);
                    var opt 
= {
                        data: json,
                        axis_labels: [
"一季度""二季度"],
                        legend: [
"serie1""serie2""serie3"],
                        title: 
"情缘图表",
                        size: 
"400x200",
                        type: 
"bhg"
                    };
                    var api 
= new jGCharts.Api();
                    jQuery(
'<img>').attr('src', api.make(opt)).appendTo("#myQuarterbhg");
                }
            });

        } 

 

二  堆栈图

 

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

//分数统计
        function ScoreReport(){
            $.ajax({
                url: 
"/Home/GetScore",
                success: function (data) {
                    var json 
= eval(data);
                    var opt 
= {
                        data: json,
                        axis_labels: [
"贺臣""情缘""木木"],
                        legend: [
"语文""数学""英语","综合"],
                        title: 
"情缘图表",
                        size: 
"400x200",
                        type: 
"bhs"
                    };
                    var api 
= new jGCharts.Api();
                    jQuery(
'<img>').attr('src', api.make(opt)).appendTo("#myScoreReport");
                }
            });

        } 

 

三  折线图

 

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

//温度走势图
        function TemperatureReport(){
            $.ajax({
                url: 
"/Home/GetTemperature",
                success: function (data) {
                    var json 
= eval(data);
                    var opt 
= {
                        data: json,
                        title: 
"情缘图表",
                        axis_labels: [
"一月""二月""三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],
                        size: 
"400x200",
                        type: 
"lc",
                        bar_width:
"5",
                        bar_spacing:
"5",
                        fillarea:
true
                    };
                    var api 
= new jGCharts.Api();
                    jQuery(
'<img>').attr('src', api.make(opt)).appendTo("#myTemperature");
                }
            });

        } 

 

四  饼图 

    

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

//饼图
        function QuarterPie(){
            $.ajax({
                url: 
"/Home/GetQuarterPie",
                success: function (data) {
                    var json 
= eval(data);
                    var opt 
= {
                        data: json,
                        title: 
"情缘图表",
                        axis_labels: [
"一月""二月""三月","四月"],
                        size: 
"400x200",
                        type: 
"p"
                    };
                    var api 
= new jGCharts.Api();
                    jQuery(
'<img>').attr('src', api.make(opt)).appendTo("#myQuarterPie");
                }
            });
        }


//3D饼图
        function Quarter3DPie(){
            $.ajax({
                url: 
"/Home/GetQuarterPie",
                success: function (data) {
                    var json 
= eval(data);
                    var opt 
= {
                        data: json,
                        title: 
"情缘图表",
                        axis_labels: [
"一月""二月""三月","四月"],
                        size: 
"400x200",
                        type: 
"p3"
                    };
                    var api 
= new jGCharts.Api();
                    jQuery(
'<img>').attr('src', api.make(opt)).appendTo("#myQuarter3DPie");
                }
            });

        } 

 

 五  代码分析

从上面的代码可以看出,其实使用这个插件制作图表就类型的不同而已。需要修改的是 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]] 点线图,[线宽,点宽,空白宽]

 

七  代码示例下载 

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

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


作者:情缘
出处:http://www.cnblogs.com/qingyuan/
关于作者:从事仓库,生产软件方面的开发,在项目管理以及企业经营方面寻求发展之路
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
联系方式: 个人QQ  821865130 ; 仓储技术QQ群 88718955,142050808 ;
吉特仓储管理系统 开源地址: https://github.com/hechenqingyuan/gitwms