使用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 相关文章推荐
JS简单实现文件上传实例代码(无需插件)
Nov 15 Javascript
JS中Json数据的处理和解析JSON数据的方法详解
Jun 29 Javascript
AngularJS基础 ng-dblclick 指令用法
Aug 01 Javascript
用JS写的一个Ajax库(实例代码)
Aug 06 Javascript
提升页面加载速度的插件InstantClick
Sep 12 Javascript
Vue实现带进度条的文件拖动上传功能
Feb 23 Javascript
JavaScript函数、闭包、原型、面向对象学习笔记
Sep 06 Javascript
vue如何进行动画的封装
Sep 26 Javascript
ES6 对象的新功能与解构赋值介绍
Feb 05 Javascript
vue v-for出来的列表,点击某个li使得当前被点击的li字体变红操作
Jul 17 Javascript
微信小程序通过websocket实时语音识别的实现代码
Aug 19 Javascript
vue图片裁剪插件vue-cropper使用方法详解
Dec 16 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
用phpmyadmin更改mysql5.0登录密码
2008/03/25 PHP
初次接触php抽象工厂模式(Elgg)
2010/03/21 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
jquery animate 动画效果使用说明
2009/11/04 Javascript
基于jquery的放大镜效果
2012/05/30 Javascript
javascript使用百度地图api和html5特性获取浏览器位置
2014/01/10 Javascript
jQuery实现的一个tab切换效果内部还嵌有切换
2014/08/10 Javascript
JavaScript调用浏览器打印功能实例分析
2015/07/17 Javascript
Jquery简单分页实现方法
2015/07/24 Javascript
angularjs学习笔记之双向数据绑定
2015/09/26 Javascript
AngularJS使用ngOption实现下拉列表的实例代码
2016/01/23 Javascript
Vue.js实现拖放效果的实例
2016/09/30 Javascript
jquery动态添加文本并获取值的方法
2016/10/12 Javascript
JSON 必知必会 观后记
2016/10/27 Javascript
js中的DOM模拟购物车功能
2017/03/22 Javascript
JS字符串按逗号和回车分隔的方法
2017/04/25 Javascript
Angular 2父子组件数据传递之@Input和@Output详解 (上)
2017/07/05 Javascript
深入理解vue.js中$watch的oldvalue与newValue
2017/08/07 Javascript
JS散列表碰撞处理、开链法、HashTable散列示例
2019/02/08 Javascript
了解javascript中let和var及const关键字的区别
2019/05/24 Javascript
layer.js之回调销毁对话框的例子
2019/09/11 Javascript
Python输出汉字字库及将文字转换为图片的方法
2016/06/04 Python
Python tkinter事件高级用法实例
2018/01/31 Python
uwsgi+nginx部署Django项目操作示例
2018/12/04 Python
Python 移动光标位置的方法
2019/01/20 Python
python取均匀不重复的随机数方式
2019/11/27 Python
Django框架请求生命周期实现原理
2020/11/13 Python
canvas实现手机的手势解锁的步骤详细
2020/03/16 HTML / CSS
布鲁明戴尔百货店:Bloomingdale’s
2016/12/21 全球购物
JSF的标签库有哪些
2012/04/27 面试题
营销与策划应届生求职信
2013/11/04 职场文书
超市开业庆典活动策划方案
2014/09/15 职场文书
2019新学期家长会工作计划
2019/08/21 职场文书
《中华上下五千年》读后感3篇
2019/11/29 职场文书
Android开发之WECHAT微信小程序路由跳转的两种形式
2022/04/12 Java/Android
mysql sock文件存储了什么信息
2022/07/15 MySQL