使用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 相关文章推荐
JavaScript 应用类库代码
Jun 02 Javascript
基于jquery实现图片广告轮换效果代码
Jul 07 Javascript
javascript针对DOM的应用分析(二)
Apr 15 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
Dec 13 Javascript
探讨跨域请求资源的几种方式(总结)
Dec 02 Javascript
socket.io学习教程之基础介绍(一)
Apr 29 Javascript
bootstrap插件treeview实现全选父节点下所有子节点和反选功能
Jul 21 Javascript
详解vue-router 路由元信息
Sep 13 Javascript
浅谈Vue内置component组件的应用场景
Mar 27 Javascript
vue-cli 默认路由再子路由选中下的选中状态问题及解决代码
Sep 06 Javascript
使用easyui从servlet传递json数据到前端页面的两种方法
Sep 05 Javascript
vue data有值,但是页面{{}} 取不到值的解决
Nov 09 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
比file_get_contents稳定的curl_get_contents分享
2012/01/11 PHP
php读取mysql中文数据出现乱码的解决方法
2013/08/16 PHP
Yii2 GridView实现列表页直接修改数据的方法
2016/05/16 PHP
php mongodb操作类 带几个简单的例子
2016/08/25 PHP
两个listbox实现选项的添加删除和搜索
2013/03/01 Javascript
只需一行代码,轻松实现一个在线编辑器
2013/11/12 Javascript
使用js实现一个可编辑的select下拉列表
2014/02/20 Javascript
js浏览器本地存储store.js介绍及应用
2014/05/13 Javascript
每天一篇javascript学习小结(Array数组)
2015/11/11 Javascript
jquery实现图片上传前本地预览功能
2016/05/10 Javascript
底部悬浮通栏可以关闭广告位的实现方法
2016/06/01 Javascript
javascript比较语义化版本号的实现代码
2016/09/09 Javascript
浅析vue数据绑定
2017/01/17 Javascript
详解vue挂载到dom上会发生什么
2019/01/20 Javascript
微信小程序登录session的使用
2019/03/17 Javascript
微信小程序 下拉刷新及上拉加载原理解析
2019/11/06 Javascript
微信小程序中插入激励视频广告并获取收益(实例代码)
2019/12/06 Javascript
python 正则式使用心得
2009/05/07 Python
Python获取远程文件大小的函数代码分享
2014/05/13 Python
python连接数据库的方法
2017/10/19 Python
浅谈使用Python变量时要避免的3个错误
2017/10/30 Python
PyTorch快速搭建神经网络及其保存提取方法详解
2018/04/28 Python
python学生管理系统
2019/01/30 Python
Python File(文件) 方法整理
2019/02/18 Python
Django框架视图函数设计示例
2019/07/29 Python
使用Django搭建web服务器的例子(最最正确的方式)
2019/08/29 Python
TensorFlow使用Graph的基本操作的实现
2020/04/22 Python
python 生成器需注意的小问题
2020/09/29 Python
《英英学古诗》教学反思
2014/04/11 职场文书
优秀少先队工作者事迹材料
2014/05/13 职场文书
企业仓管员岗位职责
2014/06/15 职场文书
公司新人试用期自我评价
2014/09/17 职场文书
2014年管理人员工作总结
2014/12/01 职场文书
交通肇事罪辩护词
2015/05/21 职场文书
Golang 空map和未初始化map的注意事项说明
2021/04/29 Golang
「Manga Time Kirara MAX」2022年5月号封面公开
2022/03/21 日漫