使用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中的关键字和保留字整理
Oct 16 Javascript
JavaScript获取按钮所在form表单id的方法
Apr 02 Javascript
JavaScript获取页面中表单(form)数量的方法
Apr 03 Javascript
jquery编写Tab选项卡滚动导航切换特效
Jul 17 Javascript
基于JS实现翻书效果的页面切换样式
Feb 16 Javascript
node thread.sleep实现示例
Jun 20 Javascript
js form表单input框限制20个字符,10个汉字代码实例
Apr 12 Javascript
React精髓!一篇全概括小结(急速)
May 23 Javascript
微信小程序如何刷新当前界面的实现方法
Jun 07 Javascript
layui实现下拉复选功能的例子(包括数据的回显与上传)
Sep 24 Javascript
ant design 日期格式化的实现
Oct 27 Javascript
如何通过简单的代码描述Angular父组件、子组件传值
Apr 07 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中实现进程间通讯
2006/10/09 PHP
PHP 读取文件内容代码(txt,js等)
2009/12/06 PHP
PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
2014/11/18 PHP
PHP微信公众号开发之微信红包实现方法分析
2017/07/14 PHP
JXTree对象,读取外部xml文件数据,生成树的函数
2007/04/02 Javascript
jquery的ajax异步请求接收返回json数据实例
2014/06/16 Javascript
详解Bootstrap的aria-label和aria-labelledby应用
2016/01/04 Javascript
js实现精确到秒的倒计时效果
2016/05/29 Javascript
JavaScript数值千分位格式化的两种简单实现方法
2016/08/01 Javascript
利用AngularJs实现京东首页轮播图效果
2016/09/08 Javascript
微信小程序  action-sheet详解及实例代码
2016/11/09 Javascript
JS实现焦点图轮播效果的方法详解
2016/12/19 Javascript
JS使用cookie实现只出现一次的广告代码效果
2017/04/22 Javascript
xmlplus组件设计系列之图标(ICON)(1)
2017/05/05 Javascript
微信小程序获取地理位置及经纬度授权代码实例
2019/09/18 Javascript
VuePress 中如何增加用户登录功能
2019/11/29 Javascript
JS实现简易图片自动轮播
2020/10/16 Javascript
[36:33]完美世界DOTA2联赛循环赛 Matador vs Forest 第一场 11.06
2020/11/06 DOTA
itchat接口使用示例
2017/10/23 Python
Pandas标记删除重复记录的方法
2018/04/08 Python
Python实现的删除重复文件或图片功能示例【去重】
2019/04/23 Python
css3中less实现文字长阴影(long shadow)
2020/04/24 HTML / CSS
英国最大的线上保健品零售商之一:Vitamin Planet
2016/12/01 全球购物
Hunkemöller瑞士网上商店:欧洲最大的内衣品牌之一
2018/12/03 全球购物
行政前台岗位职责
2013/12/04 职场文书
大学生实习感言
2014/01/16 职场文书
趣味运动会活动方案
2014/02/12 职场文书
法人代表委托书
2014/04/04 职场文书
《第一次抱母亲》教学反思
2014/04/16 职场文书
优秀少先队大队辅导员事迹材料
2014/05/04 职场文书
幼儿教师师德承诺书
2014/05/23 职场文书
质监局领导班子践行群众路线整改方案
2014/10/26 职场文书
反邪教教育心得体会
2016/01/15 职场文书
python 模拟在天空中放风筝的示例代码
2021/04/21 Python
浅谈由position属性引申的css进阶讨论
2021/05/25 HTML / CSS
python使用opencv对图像添加噪声(高斯/椒盐/泊松/斑点)
2022/04/06 Python