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 相关文章推荐
javascript日期转换 时间戳转日期格式
Nov 05 Javascript
javascript同页面多次调用弹出层具体实例代码
Aug 16 Javascript
javaScript中的this示例学习详解及工作原理
Jan 13 Javascript
JavaScript字符串常用类使用方法汇总
Apr 14 Javascript
jQuery+formdata实现上传进度特效遇到的问题
Feb 24 Javascript
JavaScript字符串常用的方法
Mar 10 Javascript
JavaScript实现弹出DIV层同时页面背景渐变成半透明效果
Mar 25 Javascript
详解js前端代码异常监控
Jan 11 Javascript
原生JS实现小小的音乐播放器
Oct 16 Javascript
发布一款npm包帮助理解npm的使用
Jan 03 Javascript
解决vuex数据异步造成初始化的时候没值报错问题
Nov 13 Javascript
easyUI使用分页过滤器对数据进行分页操作实例分析
Jun 01 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
php实现文件编码批量转换
2014/03/10 PHP
Codeigniter生成Excel文档的简单方法
2014/06/12 PHP
PHP中的事务使用实例
2015/05/26 PHP
thinkPHP自动验证机制详解
2016/12/05 PHP
PHP http请求超时问题解决方案
2020/11/13 PHP
网页禁用右键实现代码(JavaScript代码)
2009/10/29 Javascript
js几个验证函数代码
2010/03/25 Javascript
屏蔽网页右键复制和ctrl+c复制的js代码
2013/01/04 Javascript
js实现ArrayList功能附实例代码
2014/10/29 Javascript
JS组件Bootstrap Select2使用方法详解
2020/04/17 Javascript
JS区分浏览器页面是刷新还是关闭
2016/04/17 Javascript
JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法【附demo源码】
2016/08/19 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
2016/11/07 Javascript
jQuery插件HighCharts实现2D柱状图、折线图的组合多轴图效果示例【附demo源码下载】
2017/03/09 Javascript
Bootstrap Table 双击、单击行获取该行及全表内容
2018/08/31 Javascript
解决IOS端微信H5页面软键盘弹起后页面下方留白的问题
2019/06/05 Javascript
Vue设置长时间未操作登录自动到期返回登录页
2020/01/22 Javascript
Vue2.4+新增属性.sync、$attrs、$listeners的具体使用
2020/03/08 Javascript
[02:09]2018DOTA2亚洲邀请赛TNC赛前采访
2018/04/04 DOTA
用Python制作简单的钢琴程序的教程
2015/04/01 Python
python批量读取txt文件为DataFrame的方法
2018/04/03 Python
Django代码性能优化与Pycharm Profile使用详解
2018/08/26 Python
pyhanlp安装介绍和简单应用
2019/02/22 Python
Python3.4学习笔记之列表、数组操作示例
2019/03/01 Python
djano一对一、多对多、分页实例代码
2019/08/16 Python
如何一键升级Python所有包
2020/11/05 Python
用纯css3和html制作泡沫对话框实现代码
2013/03/21 HTML / CSS
Bandier官网:奢侈、时尚前卫的健身服装首选目的地
2020/07/05 全球购物
介绍一下代理模式(Proxy)
2014/10/17 面试题
实习生自荐信范文分享
2013/11/27 职场文书
高中综合实践活动总结
2014/07/07 职场文书
2014年房地产个人工作总结
2014/12/20 职场文书
先进党支部事迹材料
2014/12/24 职场文书
Windows11性能真的上涨35%? 桌面酷睿i9实测结果公开
2021/11/21 数码科技
Python如何使用循环结构和分支结构
2022/04/13 Python
php解析非标准json、非规范json的方式实例
2022/05/10 PHP