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 相关文章推荐
用js实现控制内容的向上向下滚动效果
Jun 26 Javascript
常见浏览器多长时间会提示“脚本运行时间过长”总结
Apr 29 Javascript
使用jQuery实现验证上传图片的格式与大小
Dec 03 Javascript
javascript数据结构之双链表插入排序实例详解
Nov 25 Javascript
vue.js指令v-for使用及索引获取
Nov 03 Javascript
jQuery电话号码验证实例
Jan 05 Javascript
用纯Node.JS弹出Windows系统消息提示框实例(MessageBox)
May 17 Javascript
ES6下子组件调用父组件的方法(推荐)
Feb 23 Javascript
Vue-router的使用和出现空白页,路由对象属性详解
Sep 03 Javascript
jQuery实现高级检索功能
May 28 jQuery
vue 解决data中定义图片相对路径页面不显示的问题
Aug 13 Javascript
微信小程序实现底部弹出模态框
Nov 18 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
《心理测量者3》剧场版动画预告
2020/03/02 日漫
具有时效性的php加密解密函数代码
2013/06/19 PHP
php数组随机排序实现方法
2015/06/13 PHP
使用URL传输SESSION信息
2015/07/14 PHP
Javascript的一种模块模式
2010/09/08 Javascript
window.name代替cookie的实现代码
2010/11/28 Javascript
纯js实现瀑布流展现照片(自动适应窗口大小)
2013/04/08 Javascript
javascript 获取模态窗口的滚动位置代码
2013/08/06 Javascript
jquery等宽输出文字插件使用介绍
2013/09/18 Javascript
js控制容器隐藏出现防止样式变化的两种方法
2014/04/25 Javascript
深入理解JavaScript系列(22):S.O.L.I.D五大原则之依赖倒置原则DIP详解
2015/03/05 Javascript
jquery制作图片时钟特效
2020/03/30 Javascript
jquery模拟实现鼠标指针停止运动事件
2016/01/12 Javascript
通过JS和PHP两种方法判断用户请求时使用的浏览器类型
2016/09/01 Javascript
TypeScript入门-基本数据类型
2017/03/28 Javascript
nodejs对express中next函数的一些理解
2017/09/08 NodeJs
Bootstrap Table快速完美搭建后台管理系统
2017/09/20 Javascript
Angular设置别名alias的方法
2018/11/08 Javascript
nodeJS进程管理器pm2的使用
2019/01/09 NodeJs
Python循环语句中else的用法总结
2016/09/11 Python
Python3.x爬虫下载网页图片的实例讲解
2018/05/22 Python
python re模块的高级用法详解
2018/06/06 Python
Python实现的统计文章单词次数功能示例
2019/07/08 Python
Pytorch之finetune使用详解
2020/01/18 Python
CSS3 按钮边框动画的实现
2020/11/12 HTML / CSS
HTML5上传文件显示进度的实现代码
2012/08/30 HTML / CSS
婚庆司仪主持词
2014/03/15 职场文书
幼儿园端午节活动方案
2014/08/25 职场文书
团队执行力培训心得体会
2015/08/15 职场文书
《蚂蚁和蝈蝈》教学反思
2016/02/22 职场文书
2019新员工试用期转正工作总结范文
2019/08/21 职场文书
Java elasticsearch安装以及部署教程
2021/06/28 Java/Android
Python OpenCV形态学运算示例详解
2022/04/07 Python
零基础学java之带参数以及返回值的方法
2022/04/10 Java/Android
Python如何将list中的string转换为int
2022/07/15 Ruby