ajax读取数据后使用jqchart显示图表的方法


Posted in Javascript onJune 10, 2015

本文实例讲述了ajax读取数据后使用jqchart显示图表的方法。分享给大家供大家参考。具体分析如下:

最近项目中需要显示出图表效果,原来收集到的图表插件终于有用武之地了。

但是和jqchart对比,还是有很多不同之处的。

实现效果:

ajax读取数据后使用jqchart显示图表的方法

我就对jqchart进行了重新编写。

首先要解决的是不显示x轴和y轴:

//各DIV作成 
// 取消标题显示 
/* 
this.titleBox//Title 
  =this.mkBoxElement('T', 
   this.op.titleLeft,this.op.titleTop 
  ).appendTo(this.jQcanvasBox) 
  .css('width',this.op.width-this.op.titleLeft)
  //fix for safari3 2007.12.4 
  .get(0); 
*/ 
// 取消y轴数字显示 
/* 
this.scaleYBox//Y?スケ?ル 
  =this.mkBoxElement('Y', 
   this.op.scaleYLeft,this.op.scaleYTop 
  ).appendTo(this.jQcanvasBox).get(0); 
*/ 
// 取消x轴分类显示 
/* 
this.scaleXBox//X?スケ?ル 
  =this.mkBoxElement('X', 
   this.op.scaleXLeft,this.op.scaleXTop 
).appendTo(this.jQcanvasBox).get(0); 
*/

其次,对于拐点的文字,原来显示是相应的data值,现在需要显示的是对应的x轴名称:

if( x <= op.width){ 
 var dx=x-op.paddingL,dy=y-op.paddingT; 
 var dxx = i<=0 ? (dx+op.labelDataOffsetX - 5 + 'px'):( dx+op.labelDataOffsetX - 20 + 'px'); //坐标点x轴偏移 
 var dyy = i%2 ? (dy+op.labelDataOffsetY - 25 + 'px'):(dy+op.labelDataOffsetY - 5 + 'px'); //坐标点y轴偏移 
 it.wrtText( 
  //dx+op.labelDataOffsetX - 20 + 'px', 
  dxx, 
  //dy+op.labelDataOffsetY - 10 + 'px', 
  dyy, 
  //op.rows[i],  // pre: 坐标点data值 
  op.txtpointers[i], // cychai:坐标点文字 
  op, 
  "#jQchart-data-D-"+op.id 
 ).css('color',(op.data.length==1)?'#333':strokeStyle) 
 .css({"width":"100px","font-size":"12px"}); // cychai:样式控制

使用默认的数据可以显示出来了。接下来就是和开发的协作了。

我希望可以使用ajax异步获取数据,然后在前台显示。

这里,我使用了一个示例页面chartdata.html, 即需要的数据页

[{labelX : ["外观设计","便携性","易用性","电池待机","摄像功能","变焦"],data :[[5,7,2,3,9,4]]}]

在前台,我通过ajax请求该页面,对返回的json数据进行处理,传递给chartSetting:

$(function(){ 
 $.ajax({ 
  url: "chartdata.html", 
  type: "GET", 
  success: function(cdata){ 
   showDDChart(cdata); 
  } 
 }); 
 function showDDChart(cdata){ 
  var dd_chart = eval(cdata)[0]; 
  var chartSetting={ 
   config : {  
    title : "",  
    titleLeft: 70,  
    labelX :dd_chart.labelX,  
    //labelX :["外观设计","便携性","易用性","电池待机","摄像功能","变焦"], 
    scaleY : {min: 0,max:10,gap:2}, 
    width: 300+25,  
    height: 125+50,  
    paddingL : 10,  
    paddingT : 10  
   },  
   //data: [[5,3,1,8,4,9]] 
   data :dd_chart.data 
  };  
  $('#canvasMyID').jQchart(chartSetting); 
 } 
});

完整的html页面:

<head> 
<!--[if IE]> 
<mce:script src="excanvas-compressed.js" mce_src="excanvas-compressed.js" type="text/javascript" ></mce:script> 
<![endif]--> 
<mce:script src="http://jsgt.org/lib/jquery/plugin/jqchart/sample/v003/lib/jquery-1.2.3.min.js" mce_src="http://jsgt.org/lib/jquery/plugin/jqchart/sample/v003/lib/jquery-1.2.3.min.js" type="text/javascript"></mce:script> 
<mce:script src="jquery.jqchart.js" mce_src="jquery.jqchart.js" type="text/javascript" charset="utf-8"></mce:script> 
</head><body> 
<canvas id="canvasMyID" height="200"></canvas> 
<mce:script type="text/javascript"><!-- 
$(function(){ 
 $.ajax({ 
  url: "chartdata.html", 
  type: "GET", 
  success: function(cdata){ 
   showDDChart(cdata); 
  } 
 }); 
 function showDDChart(cdata){ 
  var dd_chart = eval(cdata)[0]; 
  var chartSetting={ 
   config : {  
    title : "",  
    titleLeft: 70,  
    labelX :dd_chart.labelX,  
    //labelX :["外观设计","便携性","易用性","电池待机","摄像功能","变焦"], 
    scaleY : {min: 0,max:10,gap:2}, 
    width: 300+25,  
    height: 125+50,  
    paddingL : 10,  
    paddingT : 10  
   },  
   //data: [[5,3,1,8,4,9]] 
   data :dd_chart.data 
  };  
  $('#canvasMyID').jQchart(chartSetting); 
 } 
}); 
// --></mce:script> 
</body> 
</html>

OK,大功告成!

希望本文所述对大家的jQuery程序设计有所帮助。

Javascript 相关文章推荐
基于node.js的快速开发透明代理
Dec 25 Javascript
JavaScript的常见兼容问题及相关解决方法(chrome/IE/firefox)
Dec 31 Javascript
详解vue.js组件化开发实践
Dec 14 Javascript
简单实现jQuery级联菜单
Jan 09 Javascript
ionic 3.0+ 项目搭建运行环境的教程
Aug 09 Javascript
使用JavaScript生成罗马字符的实例代码
Jun 08 Javascript
微信小程序自定义键盘 内部虚拟支付
Dec 20 Javascript
vue实现条件叠加搜索的解决方法
May 28 Javascript
js实现简单分页导航栏效果
Jun 28 Javascript
jquery实现聊天机器人
Feb 08 jQuery
实现一个简单得数据响应系统
Nov 11 Javascript
关于JS中的作用域中的问题思考分享
Apr 06 Javascript
jquery获取当前元素索引值用法实例
Jun 10 #Javascript
jQuery实现checkbox全选的方法
Jun 10 #Javascript
JavaScript中的getTime()方法使用详解
Jun 10 #Javascript
简介JavaScript中的getSeconds()方法的使用
Jun 10 #Javascript
在JavaScript中操作时间之getMonth()方法的使用
Jun 10 #Javascript
在JavaScript中用getMinutes()方法返回指定的分时刻
Jun 10 #Javascript
JavaScript中的getMilliseconds()方法使用详解
Jun 10 #Javascript
You might like
yii2-GridView在开发中常用的功能及技巧总结
2017/01/07 PHP
Jquery显示、隐藏元素以及添加删除样式
2013/08/09 Javascript
jquery获取颜色在ie和ff下的区别示例介绍
2014/03/28 Javascript
IE6 hack for js 集锦
2014/09/23 Javascript
让html页面不缓存js的实现方法
2014/10/31 Javascript
基于jQuery实现最基本的淡入淡出效果实例
2015/02/02 Javascript
提高jQuery性能优化的技巧
2015/08/03 Javascript
jQuery结合CSS制作动态的下拉菜单
2015/10/27 Javascript
JS实现超精简的链接列表在固定区域内滚动效果代码
2015/11/04 Javascript
jQuery操作cookie
2016/08/08 Javascript
Javascript 制作图形验证码实例详解
2016/12/22 Javascript
JS实现新建文件夹功能
2017/06/17 Javascript
解决vue router使用 history 模式刷新后404问题
2017/07/19 Javascript
Angular HMR(热模块替换)功能实现方法
2018/04/04 Javascript
vue嵌套路由与404重定向实现方法分析
2018/05/04 Javascript
vue-cli脚手架build目录下utils.js工具配置文件详解
2018/09/14 Javascript
[02:42]决战东方!DOTA2亚洲邀请赛重启荣耀之争
2017/03/17 DOTA
python多线程抓取天涯帖子内容示例
2014/04/03 Python
python中的函数用法入门教程
2014/09/02 Python
Linux 发邮件磁盘空间监控(python)
2016/04/23 Python
对Python中DataFrame按照行遍历的方法
2018/04/08 Python
Pandas 数据处理,数据清洗详解
2018/07/10 Python
python+opencv像素的加减和加权操作的实现
2019/07/14 Python
pytorch实现保证每次运行使用的随机数都相同
2020/02/20 Python
Python实现自动打开电脑应用的示例代码
2020/04/17 Python
澳大利亚领先的在线美容商城:Adore Beauty
2017/04/14 全球购物
DVF官方网站:美国时装界尊尚品牌
2017/08/29 全球购物
用友笔试题目
2016/10/25 面试题
Java的类与C++的类有什么不同
2014/01/18 面试题
房地产开盘策划方案
2014/02/10 职场文书
中秋手机店促销方案
2014/06/16 职场文书
党课培训心得体会
2014/09/02 职场文书
小学科学教学计划
2015/01/21 职场文书
试用期工作表现自我评价
2015/03/06 职场文书
2016年基层党组织创先争优承诺书
2016/03/25 职场文书
MySQL系列之十 MySQL事务隔离实现并发控制
2021/07/02 MySQL