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 相关文章推荐
cssQuery()的下载与使用方法
Jan 12 Javascript
javascript div 弹出可拖动窗口
Feb 26 Javascript
Javascript 原型和继承(Prototypes and Inheritance)
Apr 01 Javascript
前台js改变Session的值(用ajax实现)
Dec 28 Javascript
高效的获取当前元素是父元素的第几个子元素
Oct 15 Javascript
js获取当前日期前七天的方法
Feb 28 Javascript
Ionic + Angular.js实现验证码倒计时功能的方法
Jun 12 Javascript
Bootstrap table使用方法汇总
Nov 17 Javascript
clipboard.js在移动端复制失败的解决方法
Jun 13 Javascript
微信小程序template模版的使用方法
Apr 13 Javascript
Vue响应式原理Observer、Dep、Watcher理解
Jun 06 Javascript
vue.js封装switch开关组件的操作
Oct 26 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 HtmlReplace输入过滤安全函数
2010/07/03 PHP
常见PHP数据库解决方案分析介绍
2015/09/24 PHP
ThinkPHP中Common/common.php文件常用函数功能分析
2016/05/20 PHP
PHP设计模式之工厂模式与单例模式
2016/09/28 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
2018/06/13 PHP
PHP解析url并得到url参数方法总结
2018/10/11 PHP
PHP 获取客户端 IP 地址的方法实例代码
2018/11/11 PHP
仿百度联盟对联广告实现代码
2014/08/30 Javascript
js实现改进的仿蓝色论坛导航菜单效果代码
2015/09/06 Javascript
使用CoffeeScrip优美方式编写javascript代码
2015/10/28 Javascript
prototype框架中美元符号$用法分析
2016/01/22 Javascript
bootstrap3 兼容IE8浏览器!
2016/05/02 Javascript
卸载安装Node.js与npm过程详解
2016/08/15 Javascript
利用HTML5+Socket.io实现摇一摇控制PC端歌曲切换
2017/01/13 Javascript
vue自定义全局组件(自定义插件)的用法
2018/01/30 Javascript
Node.js引入UIBootstrap的方法示例
2018/05/11 Javascript
详解如何webpack使用DllPlugin
2018/09/30 Javascript
JavaScript递归函数定义与用法实例分析
2019/01/24 Javascript
JS中min函数实例讲解
2019/02/18 Javascript
使用Vant完成DatetimePicker 日期的选择器操作
2020/11/12 Javascript
Python中捕捉详细异常信息的代码示例
2014/09/18 Python
跟老齐学Python之集合(set)
2014/09/24 Python
Python3.7中安装openCV库的方法
2018/07/11 Python
Python List cmp()知识点总结
2019/02/18 Python
python opencv 二值化 计算白色像素点的实例
2019/07/03 Python
对python中的float除法和整除法的实例详解
2019/07/20 Python
使用Python实现Wake On Lan远程开机功能
2020/01/22 Python
美国顶级奢侈茶:Mighty Leaf Tea(美泰茶)
2016/11/26 全球购物
民主评议党员自我评价材料
2014/09/18 职场文书
2014年单位法制宣传日活动总结
2014/11/01 职场文书
上市公司财务总监岗位职责
2015/04/03 职场文书
神秘岛读书笔记
2015/07/01 职场文书
婚宴新娘致辞
2015/07/28 职场文书
Java tomcat手动配置servlet详解
2021/11/27 Java/Android