使用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 相关文章推荐
Prototype使用指南之base.js
Jan 10 Javascript
jquery 简单图片导航插件jquery.imgNav.js
Mar 17 Javascript
Javascript Throttle &amp; Debounce应用介绍
Mar 19 Javascript
鼠标经过tr时,改变tr当前背景颜色
Jan 13 Javascript
JQuery radio(单选按钮)操作方法汇总
Apr 15 Javascript
JavaScript创建闭包的两种方式的优劣与区别分析
Jun 22 Javascript
百度地图api如何使用
Aug 03 Javascript
Express的路由详解
Dec 10 Javascript
原生js的数组除重复简单实例
May 24 Javascript
easyui 中的datagrid跨页勾选问题的实现方法
Jan 18 Javascript
详解Vue中一种简易路由传参办法
Sep 15 Javascript
初学node.js中实现删除用户路由
May 27 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中强制下载文件的代码(解决了IE下中文文件名乱码问题)
2011/05/09 PHP
php动态绑定变量的用法
2015/06/16 PHP
php源码分析之DZX1.5字符串截断函数cutstr用法
2015/06/17 PHP
mac系统下安装多个php并自由切换的方法详解
2017/04/21 PHP
PHP CURL实现模拟登陆并上传文件操作示例
2020/01/02 PHP
EasyUI的treegrid组件动态加载数据问题的解决办法
2011/12/11 Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
2013/04/07 Javascript
js 阻止子元素响应父元素的onmouseout事件具体实现
2013/12/23 Javascript
js的flv视频播放器插件使用方法
2015/06/23 Javascript
响应式表格之固定表头的简单实现
2016/08/26 Javascript
ASP.NET jquery ajax传递参数的实例
2016/11/02 Javascript
AngularJS+Bootstrap实现多文件上传与管理
2016/11/08 Javascript
JS实现点击循环切换显示内容的方法
2017/10/19 Javascript
echarts整合多个类似option的方法实例
2018/07/10 Javascript
js+css实现扇形导航效果
2020/08/18 Javascript
Vue-cli打包后部署到子目录下的路径问题说明
2020/09/02 Javascript
vue v-for 点击当前行,获取当前行数据及event当前事件对象的操作
2020/09/10 Javascript
vue实现简易的双向数据绑定
2020/12/29 Vue.js
[54:25]Ti4 循环赛第三日LGD vs MOUZ
2014/07/12 DOTA
Python解决鸡兔同笼问题的方法
2014/12/20 Python
利用Python获取操作系统信息实例
2016/09/02 Python
Python基于递归实现电话号码映射功能示例
2018/04/13 Python
python实现Dijkstra算法的最短路径问题
2019/06/21 Python
Python队列、进程间通信、线程案例
2019/10/25 Python
Python通过2种方法输出带颜色字体
2020/03/02 Python
django实现将后台model对象转换成json对象并传递给前端jquery
2020/03/16 Python
python 日志模块 日志等级设置失效的解决方案
2020/05/26 Python
简历中个人自我评价范文
2013/12/26 职场文书
五年级音乐教学反思
2014/02/06 职场文书
节能标语大全
2014/06/21 职场文书
安全环保演讲稿
2014/08/28 职场文书
2014年政务公开工作总结
2014/12/09 职场文书
护士长2015年终工作总结
2015/04/24 职场文书
教师“一帮一”结对子活动总结
2015/05/07 职场文书
小学数学国培研修日志
2015/11/13 职场文书
Python中22个万用公式的小结
2021/07/21 Python