使用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 相关文章推荐
innertext , insertadjacentelement , insertadjacenthtml , insertadjacenttext 等区别
Jun 29 Javascript
javascript 在firebug调试时用console.log的方法
May 10 Javascript
一款由jquery实现的整屏切换特效
Sep 15 Javascript
AngularJS 输入验证详解及实例代码
Jul 28 Javascript
vue2.0开发实践总结之入门篇
Dec 06 Javascript
Node.js对MongoDB数据库实现模糊查询的方法
May 03 Javascript
JavaScript中递归实现的方法及其区别
Sep 12 Javascript
Node中使用ES6语法的基础教程
Jan 05 Javascript
JavaScript模拟实现自由落体效果
Aug 28 Javascript
Vue自定义属性实例分析
Feb 23 Javascript
VUE引入第三方js包及调用方法讲解
Mar 01 Javascript
微信小程序自定义单项选择器样式
Jul 25 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
Linux操作系统安装LAMP环境
2015/06/26 PHP
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
2016/12/14 PHP
php无限级分类实现评论及回复功能
2019/02/18 PHP
php基于 swoole 实现的异步处理任务功能示例
2019/08/13 PHP
Jquery中删除元素的实现代码
2011/12/29 Javascript
在浏览器窗口上添加遮罩层的方法
2012/11/12 Javascript
jquery插件珍藏(图片局部放大/信息提示框)
2013/01/08 Javascript
页面使用密码保护代码
2013/04/10 Javascript
JS限制Textarea文本域字符个数的具体实现
2013/08/02 Javascript
有关json_decode乱码及NULL的问题
2015/10/13 Javascript
javascript基础知识之html5轮播图实例讲解(44)
2017/02/17 Javascript
使用bat打开多个cmd窗口执行gulp、node
2017/02/17 Javascript
vue+element-ui实现表格编辑的三种实现方式
2018/10/31 Javascript
jQuery事件委托代码实践详解
2019/06/21 jQuery
浅谈vue异步数据影响页面渲染
2019/10/29 Javascript
vue element和nuxt的使用技巧分享
2021/01/14 Vue.js
Python3之文件读写操作的实例讲解
2018/01/23 Python
python检索特定内容的文本文件实例
2018/06/05 Python
Python开发之Nginx+uWSGI+virtualenv多项目部署教程
2019/05/13 Python
使用python-opencv读取视频,计算视频总帧数及FPS的实现
2019/12/10 Python
详解PyQt5信号与槽的几种高级玩法
2020/03/24 Python
在jupyter notebook中调用.ipynb文件方式
2020/04/14 Python
Python 下载Bing壁纸的示例
2020/09/29 Python
钉钉企业内部H5微应用开发详解
2020/05/12 HTML / CSS
YSL Beauty加拿大官方商城:圣罗兰美妆加拿大
2017/05/15 全球购物
世界上最好的精品店:Shoptiques
2018/02/05 全球购物
荷兰浴室和卫浴网上商店:Badkamerxxl.nl
2020/10/06 全球购物
Prototype如何实现页面局部定时刷新
2013/08/06 面试题
网络编辑职责
2014/03/01 职场文书
机关搬迁方案
2014/05/18 职场文书
爱护公共设施标语
2014/06/24 职场文书
小区门卫的岗位职责
2014/09/26 职场文书
深入开展党的群众路线教育实践活动心得体会
2014/11/05 职场文书
大学生自我评价范文
2015/03/03 职场文书
react国际化react-intl的使用
2021/05/06 Javascript
让文件路径提取变得更简单的Python Path库
2021/05/27 Python