使用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 相关文章推荐
PNGHandler-借助JS让PNG图在IE下实现透明(包括背景图)
Aug 31 Javascript
比较简单的异步加载JS文件的代码
Jul 18 Javascript
jQeury淡入淡出需要注意的问题
Sep 08 Javascript
JavaScript高级程序设计 阅读笔记(十八) js跨平台的事件
Aug 14 Javascript
js弹出层(jQuery插件形式附带reLoad功能)
Apr 12 Javascript
jquery数组封装使用方法分享(jquery数组遍历)
Mar 25 Javascript
深入理解JavaScript系列(47):对象创建模式(上篇)
Mar 04 Javascript
vue环形进度条组件实例应用
Oct 10 Javascript
vue项目中在外部js文件中直接调用vue实例的方法比如说this
Apr 28 Javascript
微信小程序单选radio及多选checkbox按钮用法示例
Apr 30 Javascript
你或许不知道的一些npm实用技巧
Jul 04 Javascript
JavaScript中继承原理与用法实例入门
May 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
rephactor 优秀的PHP的重构工具
2011/06/09 PHP
typecho插件编写教程(四):插件挂载
2015/05/28 PHP
thinkphp自带验证码全面解析
2016/09/18 PHP
JavaScript this 深入理解
2009/07/30 Javascript
使用jquery实现简单的ajax
2013/07/08 Javascript
如何用jquery控制表格奇偶行及活动行颜色
2014/04/20 Javascript
JS根据生日算年龄的方法
2015/05/05 Javascript
纯javascript实现分页(两种方法)
2015/08/26 Javascript
深入理解Java线程编程中的阻塞队列容器
2015/12/07 Javascript
jQuery实现简单滚动动画效果
2016/04/07 Javascript
js实现淡入淡出轮播切换功能
2017/01/13 Javascript
浅谈js的解析顺序 作用域 严格模式
2017/10/23 Javascript
AngularJs中$cookies简单用法分析
2019/05/30 Javascript
Vue通过for循环随机生成不同的颜色或随机数的实例
2019/11/09 Javascript
VUE中使用HTTP库Axios方法详解
2020/02/05 Javascript
window下eclipse安装python插件教程
2017/04/24 Python
详谈pandas中agg函数和apply函数的区别
2018/04/20 Python
python 多个参数不为空校验方法
2019/02/14 Python
pytorch 模型可视化的例子
2019/08/17 Python
python实发邮件实例详解
2019/11/11 Python
Python进程池Pool应用实例分析
2019/11/27 Python
Python socket聊天脚本代码实例
2020/01/02 Python
python与pycharm有何区别
2020/07/01 Python
HTML5 Web Database 数据库的SQL语句的使用方法
2012/12/09 HTML / CSS
使用数据结构给女朋友写个Html5走迷宫游戏
2019/11/26 HTML / CSS
加拿大高尔夫超市:Golf Town
2018/01/12 全球购物
比利时的在线灯具店:Lampen24.be
2019/07/01 全球购物
高二地理教学反思
2014/01/24 职场文书
农民工创业典型事迹
2014/01/25 职场文书
中英文求职信范文
2014/01/27 职场文书
运动会方阵口号
2014/06/07 职场文书
暑期社会实践心得体会
2014/09/02 职场文书
会议邀请函
2015/01/30 职场文书
同事去世追悼词
2015/06/23 职场文书
MySQL系列之三 基础篇
2021/07/02 MySQL
微软Win11有哪些隐藏功能? windows11多个功能汇总
2021/11/21 数码科技