使用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 相关文章推荐
jQuery实现form表单reset按钮重置清空表单功能
Dec 18 Javascript
JS+ACTIVEX实现网页选择本地目录路径对话框
Mar 18 Javascript
控制文字内容的显示与隐藏示例
Jun 11 Javascript
JavaScript中String.match()方法的使用详解
Jun 06 Javascript
简介JavaScript中substring()方法的使用
Jun 06 Javascript
JavaScript中的Repaint和Reflow用法详解
Jul 27 Javascript
JS组件Bootstrap Table使用方法详解
Feb 02 Javascript
Vue 框架之键盘事件、健值修饰符、双向数据绑定
Nov 14 Javascript
JavaScript自定义超时API代码实例
Apr 30 Javascript
利用Vue的v-for和v-bind实现列表颜色切换
Jul 17 Javascript
vscode 使用Prettier插件格式化配置使用代码详解
Aug 10 Javascript
Vue router安装及使用方法解析
Dec 02 Vue.js
什么是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
一台收音机,让一家人都笑逐颜开!
2020/08/21 无线电
使用 eAccelerator加速PHP代码的目的
2007/03/16 PHP
程序员编程十条戒律
2009/07/09 PHP
学习php分页代码实例
2013/10/24 PHP
php实现判断访问来路是否为搜索引擎机器人的方法
2015/04/15 PHP
PHP加密技术的简单实现
2016/09/04 PHP
thinkphp5.1框架容器与依赖注入实例分析
2019/07/23 PHP
php生成微信红包数组的方法
2019/09/05 PHP
setTimeout与setInterval在不同浏览器下的差异
2010/01/24 Javascript
jquery实现带单选按钮的表格行选中时高亮显示
2013/08/01 Javascript
js中function()使用方法
2013/12/24 Javascript
Google 地图API Map()构造器详解
2016/08/06 Javascript
javascript内存分配原理实例分析
2017/04/10 Javascript
Angular之toDoList的实现代码示例
2017/12/02 Javascript
微信小程序使用canvas的画图操作示例
2019/01/18 Javascript
详解简单易懂的 ES6 Iterators 指南和示例
2019/09/24 Javascript
jquery ajax 请求小技巧实例分析
2019/11/11 jQuery
[00:32]2018DOTA2亚洲邀请赛VGJ.T出场
2018/04/03 DOTA
python设置windows桌面壁纸的实现代码
2013/01/28 Python
使用Mixin设计模式进行Python编程的方法讲解
2016/06/21 Python
Python使用回溯法子集树模板解决迷宫问题示例
2017/09/01 Python
python爬虫之遍历单个域名
2019/11/20 Python
Python类反射机制使用实例解析
2019/12/30 Python
移动端html5 meta标签的神奇功效
2016/01/06 HTML / CSS
锐步美国官方网站:Reebok美国
2018/01/10 全球购物
Vilebrequin美国官方网上商店:法国豪华泳装品牌
2020/02/22 全球购物
营销主管自我评价怎么写
2013/09/19 职场文书
入党自我鉴定范文
2013/10/04 职场文书
我未来的职业规划范文
2014/01/11 职场文书
给同事的道歉信
2014/01/11 职场文书
金融事务专业求职信
2014/04/25 职场文书
灰雀教学反思
2014/04/28 职场文书
出纳年终工作总结2014
2014/12/05 职场文书
大学生村官工作总结2015
2015/04/09 职场文书
感恩父母主题班会
2015/08/12 职场文书
源码分析Redis中 set 和 sorted set 的使用方法
2022/03/22 Redis