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 相关文章推荐
IE6与IE7中,innerHTML获取param的区别
Mar 15 Javascript
利用javascript移动div层-javascript 拖动层
Mar 22 Javascript
jQuery图片滚动图片的效果(另类实现)
Jun 02 Javascript
JavaScript运行时库属性一览表
Mar 14 Javascript
jQuery插件开发精品教程(让你的jQuery更上一个台阶)
Nov 07 Javascript
AngularJS单选框及多选框实现双向动态绑定
Jan 13 Javascript
原生js实现tab选项卡切换
Mar 23 Javascript
基于Bootstrap框架菜鸟入门教程(推荐)
Sep 17 Javascript
JS实现网站吸顶条
Jan 08 Javascript
Vue 解决父组件跳转子路由后当前导航active样式消失问题
Jul 21 Javascript
探索node之事件循环的实现
Oct 30 Javascript
国庆节到了,利用JS实现一个生成国庆风头像的小工具 详解实现过程
Oct 05 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
提问的智慧
2006/10/09 PHP
PHP中动态HTML的输出技术
2006/10/09 PHP
PHP通过COM使用ADODB的简单例子
2006/12/31 PHP
php Notice: Undefined index 错误提示解决方法
2010/08/29 PHP
php生成随机密码的三种方法小结
2010/09/04 PHP
php实现无限级分类实现代码(递归方法)
2011/01/01 PHP
PHP版网站缓存加快打开速度的方法分享
2012/06/03 PHP
php+mysqli使用预处理技术进行数据库查询的方法
2015/01/28 PHP
PHP手机号中间四位用星号*代替显示的实例
2017/06/02 PHP
php面向对象程序设计入门教程
2019/06/22 PHP
DIY jquery plugin - tabs标签切换实现代码
2010/12/11 Javascript
js中的异常处理try...catch使用介绍
2013/09/21 Javascript
JavaScript执行顺序详细介绍
2013/12/04 Javascript
jQuery移除tr无效的解决方法(tr是动态添加)
2014/09/22 Javascript
基于jQuery实现的图片切换焦点图整理
2014/12/07 Javascript
JS实现图片放大镜效果的方法
2015/02/27 Javascript
jQuery实现当前页面标签高亮显示的方法
2015/03/10 Javascript
js实现当前输入框高亮显示的方法
2015/08/19 Javascript
基于javascript html5实现3D翻书特效
2016/03/14 Javascript
JavaScript实现时钟滴答声效果
2017/01/29 Javascript
前端自动化开发之Node.js的环境搭建教程
2017/04/01 Javascript
vue2.0 keep-alive最佳实践
2017/07/06 Javascript
JavaScript原型式继承实现方法
2019/11/06 Javascript
JavaScript冒泡算法原理与实现方法深入理解
2020/06/04 Javascript
[01:16]2014DOTA2 TI专访C9战队EE:中国五强中会占三席
2014/07/10 DOTA
简单理解Python中基于生成器的状态机
2015/04/13 Python
Python判断文件和文件夹是否存在的方法
2015/05/21 Python
Python import用法以及与from...import的区别
2015/05/28 Python
python高级特性和高阶函数及使用详解
2018/10/17 Python
Python3.5基础之NumPy模块的使用图文与实例详解
2019/04/24 Python
使用Pyhton集合set()实现成果查漏的例子
2019/11/24 Python
Opencv+Python识别PCB板图片的步骤
2021/01/07 Python
工程力学专业毕业生求职信
2013/10/06 职场文书
售后专员岗位职责
2013/12/08 职场文书
护理人员的自我评价分享
2014/03/15 职场文书
小学四年级学生评语
2014/12/26 职场文书