使用jQuery jqPlot插件绘制柱状图


Posted in Javascript onDecember 18, 2014

在一个项目研发过程中,需要显示账户的资金情况,为了给客户良好的体验我们采用了柱状图形展现,绘图的过程如果使用原生态脚本绘制这样比较麻烦,时间也会比较长,所以我们选择了jqPlot插件进行绘制,这样可以节省大量的时间,也能很快就能展示给用户。

插件官方地址:http://www.jqplot.com/

具体实现如下:

引用JS文件:

 <link href="~/Scripts/asset/jqplot/jquery.jqplot.min.css" rel="stylesheet" />

 <link href="~/Scripts/asset/jqplot/syntaxhighlighter/styles/shCoreDefault.min.css" rel="stylesheet" />

 <link href="~/Scripts/asset/jqplot/syntaxhighlighter/styles/shThemejqPlot.min.css" rel="stylesheet" />

 <script src="~/Scripts/asset/jquery-1.10.2.min.js"></script>

 <script type="text/javascript" src="~/Scripts/asset/jqplot/jquery.jqplot.min.js" class="include"></script>

 <script type="text/javascript" src="~/Scripts/asset/jqplot/syntaxhighlighter/scripts/shCore.js"></script>

 <script type="text/javascript" src="~/Scripts/asset/jqplot/syntaxhighlighter/scripts/shBrushJScript.js"></script>

 <script type="text/javascript" src="~/Scripts/asset/jqplot/syntaxhighlighter/scripts/shBrushXml.js"></script>

 <script type="text/javascript" src="~/Scripts/asset/jqplot/excanvas.min.js"></script>

 <script type="text/javascript" src="~/Scripts/asset/jqplot/plugins/jqplot.barRenderer.min.js"></script>

 <script type="text/javascript" src="~/Scripts/asset/jqplot/plugins/jqplot.categoryAxisRenderer.min.js"></script>

 <script type="text/javascript" src="~/Scripts/asset/jqplot/plugins/jqplot.pointLabels.min.js"></script>

Html代码

<div id="chart1" class="box"></div>

Javascript脚本:

 var chartBar = function () {

         var data={param1:param1,param2:param2};//传递参数

         $("#chart1").html("");//绘图DIV

         var s1;

         $.ajax({

             type: "POST",

             url: '../Home/AccountSum',

             data: data,

             datatype: "json",

             async: false,

             success: function (d) {

                 if (d.flag) {

                     s1 = [parseFloat(d.data.Total1), parseFloat(d.data.Total2), parseFloat(d.data.Total3), parseFloat(d.data.Total4), parseFloat(d.data.Total5), parseFloat(d.data.Total6)];

                 } else {

                     s1 = [0.00, 0.00, 0.00, 0.00, 0.00, 0.00];

                 }

                 $.jqplot.config.enablePlugins = true;

                 var ticks = ['充值', '提款', '应收', '销售', '退票', '验证'];

                 var plot1 = $.jqplot('chart1', [s1], {

                     // Only animate if we're not using excanvas (not in IE 7 or IE 8)..

                     //animate: !$.jqplot.use_excanvas,

                     seriesDefaults: {

                         pointLabels: { show: true },

                         shadow: false,

                         showMarker: true, // 是否强调显示图中的数据节点

                         renderer: $.jqplot.BarRenderer,

                         rendererOptions: {

                             barWidth: 50,

                             barMargin: 50

                         }

                     },

                     axes: {

                         xaxis: {

                             show: true,    //是否自动显示坐标轴

                             renderer: $.jqplot.CategoryAxisRenderer,

                             ticks: ticks,

                             showTicks: true,        // 是否显示刻度线以及坐标轴上的刻度值  

                             showTickMarks: true,    //设置是否显示刻度

                             tickOptions: {

                                 show: true,

                                 fontSize: '14px',

                                 fontFamily: 'tahoma,arial,"Hiragino Sans GB",宋体b8b体,sans-serif',

                                 showLabel: true, //是否显示刻度线以及坐标轴上的刻度值

                                 showMark: false,//设置是否显示刻度

                                 showGridline: false // 是否在图表区域显示刻度值方向的网格

                             }

                         },

                         yaxis: {

                             show: true,

                             showTicks: false,        // 是否显示刻度线以及坐标轴上的刻度值  

                             showTickMarks: false,     //设置是否显示刻度

                             autoscale: true,

                             borderWidth: 1,

                             tickOptions: {

                                 show: true,

                                 showLabel: false,

                                 showMark: false,

                                 showGridline: true,

                                 formatString: '¥%.2f'

                             }

                         },

                     },

                     grid: {

                         drawGridLines: true,

                         drawBorder: false,

                         shadow: false,

                         borderColor: '#000000',     // 设置图表的(最外侧)边框的颜色

                         borderWidth: 1           //设置图表的(最外侧)边框宽度  

                     },

                     highlighter: { show: false }

                 });

             },

             error: function () {

                 alert("获取图形统计数据失败!");

             }

         });

     };

效果图:

使用jQuery jqPlot插件绘制柱状图

今天就写到这里吧,初步看了一下官方上的事例,功能还是蛮强大的,使用也很方便、容易,根据本项目的需求,后续可能还会增加一些。不过在使用过程中也发现了一些问题,部分实现不一定可以满足。

Javascript 相关文章推荐
图解Sublime Text3使用技巧
Dec 21 Javascript
Bootstrap源码解读模态弹出框(11)
Dec 28 Javascript
前端分页功能的实现以及原理(jQuery)
Jan 22 Javascript
使用jQuery的load方法设计动态加载及解决被加载页面js失效问题
Mar 01 Javascript
angular2+node.js express打包部署的实战
Jul 27 Javascript
基于JQuery的Ajax方法使用详解
Aug 16 jQuery
jQuery实现的form转json经典示例
Oct 10 jQuery
JS实现的简单表单验证功能完整实例
Oct 14 Javascript
jQuery实现的3D版图片轮播示例【滑动轮播】
Jan 18 jQuery
vue使用websocket的方法实例分析
Jun 22 Javascript
vue 使用鼠标滚动加载数据的例子
Oct 31 Javascript
基于JS实现table导出Excel并保留样式
May 19 Javascript
什么是MEAN?JavaScript编程中的MEAN是什么意思?
Dec 18 #Javascript
使用JS获取当前地理位置方法汇总
Dec 18 #Javascript
node.js中的fs.chmodSync方法使用说明
Dec 18 #Javascript
node.js中的fs.chmod方法使用说明
Dec 18 #Javascript
原生Ajax 和jQuery Ajax的区别示例分析
Dec 17 #Javascript
jQuery中;function($,undefined) 前面的分号的用处
Dec 17 #Javascript
完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码
Dec 17 #Javascript
You might like
PHP多个版本的分析解释
2011/07/21 PHP
ThinkPHP查询中的魔术方法简述
2014/06/25 PHP
微信公众平台消息接口校验与消息接口响应实例
2014/12/23 PHP
php 问卷调查结果统计
2015/10/08 PHP
PHP会话操作之cookie用法分析
2016/09/28 PHP
理解Javascript_09_Function与Object
2010/10/16 Javascript
用Jquery实现多级下拉框无刷新的联动
2010/12/22 Javascript
Jquery 选中表格一列并对表格排序实现原理
2012/12/15 Javascript
jQuery表单获取和失去焦点输入框提示效果的实例代码
2013/08/01 Javascript
jquery改变tr背景色的示例代码
2013/12/28 Javascript
JQuery打造省市下拉框联动效果
2014/05/18 Javascript
href下载文件根据id取url并下载
2014/05/28 Javascript
js单独获取一个checkbox看其是否被选中
2014/09/22 Javascript
js实现绿白相间竖向网页百叶窗动画切换效果
2015/03/02 Javascript
jquery+ajax实现注册实时验证实例详解
2015/12/08 Javascript
JS中input表单隐藏域及其使用方法
2017/02/13 Javascript
js date 格式化
2017/02/15 Javascript
JS中定位 position 的使用实例代码
2017/08/06 Javascript
vue封装第三方插件并发布到npm的方法
2017/09/25 Javascript
jQuery实现的别踩白块小游戏完整示例
2019/01/07 jQuery
layer.js open 隐藏滚动条的例子
2019/09/05 Javascript
iSlider手机端图片滑动切换插件使用详解
2019/12/24 Javascript
vue props 单项数据流实例分享
2020/02/16 Javascript
python3使用tkinter实现ui界面简单实例
2014/01/10 Python
Django中的Model操作表的实现
2018/07/24 Python
python实现复制大量文件功能
2019/08/31 Python
numpy中三维数组中加入元素后的位置详解
2019/11/28 Python
python使用pandas抽样训练数据中某个类别实例
2020/02/28 Python
html5+css3实现一款注册表单实例
2013/04/17 HTML / CSS
楼面部长岗位职责范本
2014/02/14 职场文书
学校三节实施方案
2014/06/09 职场文书
2014年教师节演讲稿
2014/09/03 职场文书
晋江市人民政府党组群众路线教育实践活动整改方案
2014/10/25 职场文书
学校禁毒宣传活动总结
2015/05/08 职场文书
基督教追悼会答谢词
2015/09/29 职场文书
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
2021/05/31 Python