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 相关文章推荐
如何实现浏览器上的右键菜单
Jul 10 Javascript
五个jQuery图片画廊插件 推荐
May 12 Javascript
JavaScript建立一个语法高亮输入框实现思路
Feb 26 Javascript
js时间戳转为日期格式的方法
Dec 28 Javascript
全面解析node 表单的图片上传
Nov 21 Javascript
smartupload实现文件上传时获取表单数据(推荐)
Dec 12 Javascript
vue实现一个移动端屏蔽滑动的遮罩层实例
Jun 08 Javascript
jquery ajax异步提交表单数据的方法
Oct 27 jQuery
node使用promise替代回调函数
May 07 Javascript
ES6模板字符串和标签模板的应用实例分析
Jun 25 Javascript
vue iview的菜单组件Mune 点击不高亮的解决方案
Nov 01 Javascript
Jquery 获取相同NAME 或者id删除行操作
Aug 24 jQuery
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
探讨:使用XMLSerialize 序列化与反序列化
2013/06/08 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
2016/04/22 PHP
深入理解PHP之源码目录结构与功能说明
2016/06/01 PHP
PHP7如何开启Opcode打造强悍性能详解
2018/05/11 PHP
thinkphp5框架实现数据库读取的数据转换成json格式示例
2019/10/10 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
2020/10/30 PHP
二级域名或跨域共享Cookies的实现方法
2008/08/07 Javascript
IE和firefox浏览器的event事件兼容性汇总
2009/12/06 Javascript
IE JS无提示关闭窗口不提示的方法
2010/04/29 Javascript
利用jq让你的div居中的好方法分享
2013/11/21 Javascript
PageSwitch插件实现100种不同图片切换效果
2015/07/28 Javascript
angular+ionic返回上一页并刷新页面
2017/08/08 Javascript
vue单页应用加百度统计代码(亲测有效)
2018/01/31 Javascript
用Object.prototype.toString.call(obj)检测对象类型原因分析
2018/10/11 Javascript
scrapyd schedule.json setting 传入多个值问题
2019/08/07 Javascript
vue与iframe之间的信息交互的实现
2020/04/08 Javascript
react使用antd表单赋值,用于修改弹框的操作
2020/10/29 Javascript
关于Vue中$refs的探索浅析
2020/11/05 Javascript
在vue中给后台接口传的值为数组的格式代码
2020/11/12 Javascript
[02:32]DOTA2英雄基础教程 美杜莎
2014/01/07 DOTA
[06:07]辉夜杯现场观众互动 “比谁远送显示器”
2015/12/26 DOTA
[10:53]2018DOTA2国际邀请赛寻真——EG
2018/08/11 DOTA
Python标准库urllib2的一些使用细节总结
2015/03/16 Python
简单介绍Python下自己编写web框架的一些要点
2015/04/29 Python
Anaconda下配置python+opencv+contribx的实例讲解
2018/08/06 Python
使用Python的datetime库处理时间(RPA流程)
2019/11/24 Python
使用css3实现的tab选项卡代码分享
2014/12/09 HTML / CSS
送给他或她的礼物:FUN.com
2018/08/17 全球购物
类和结构的区别
2012/08/15 面试题
一名毕业生的自我鉴定
2013/12/04 职场文书
财务部总监岗位职责
2014/03/12 职场文书
借条格式范本
2015/05/25 职场文书
人间正道是沧桑观后感
2015/06/15 职场文书
初三数学教学反思
2016/02/17 职场文书
Vue监视数据的原理详解
2022/02/24 Vue.js