首页 > 开发 > AJAX > 正文

ajax读取数据后使用jqchart显示图表的方法

2024-09-01 08:33:02
字体:
来源:转载
供稿:网友

这篇文章主要介绍了ajax读取数据后使用jqchart显示图表的方法,涉及Ajax操作及图表插件的相关使用技巧,需要的朋友可以参考下

本文实例讲述了ajax读取数据后使用jqchart显示图表的方法。分享给大家供大家参考。具体分析如下:

最近项目中需要显示出图表效果,原来收集到的图表插件终于有用武之地了。

但是和jqchart对比,还是有很多不同之处的。

实现效果:

ajax读取数据后使用jqchart显示图表的方法

我就对jqchart进行了重新编写。

首先要解决的是不显示x轴和y轴:

 

 
  1. //各DIV作成  
  2. // 取消标题显示  
  3. /*  
  4. this.titleBox//Title  
  5. =this.mkBoxElement('T',  
  6. this.op.titleLeft,this.op.titleTop  
  7. ).appendTo(this.jQcanvasBox)  
  8. .css('width',this.op.width-this.op.titleLeft) 
  9. //fix for safari3 2007.12.4  
  10. .get(0);  
  11. */ 
  12. // 取消y轴数字显示  
  13. /*  
  14. this.scaleYBox//Y軸スケール  
  15. =this.mkBoxElement('Y',  
  16. this.op.scaleYLeft,this.op.scaleYTop  
  17. ).appendTo(this.jQcanvasBox).get(0);  
  18. */ 
  19. // 取消x轴分类显示  
  20. /*  
  21. this.scaleXBox//X軸スケール  
  22. =this.mkBoxElement('X',  
  23. this.op.scaleXLeft,this.op.scaleXTop  
  24. ).appendTo(this.jQcanvasBox).get(0);  
  25. */ 

其次,对于拐点的文字,原来显示是相应的data值,现在需要显示的是对应的x轴名称:

 

 
  1. if( x <= op.width){  
  2. var dx=x-op.paddingL,dy=y-op.paddingT;  
  3. var dxx = i<=0 ? (dx+op.labelDataOffsetX - 5 + 'px'):( dx+op.labelDataOffsetX - 20 + 'px'); //坐标点x轴偏移  
  4. var dyy = i%2 ? (dy+op.labelDataOffsetY - 25 + 'px'):(dy+op.labelDataOffsetY - 5 + 'px'); //坐标点y轴偏移  
  5. it.wrtText(  
  6. //dx+op.labelDataOffsetX - 20 + 'px',  
  7. dxx,  
  8. //dy+op.labelDataOffsetY - 10 + 'px',  
  9. dyy,  
  10. //op.rows[i], // pre: 坐标点data值  
  11. op.txtpointers[i], // cychai:坐标点文字  
  12. op,  
  13. "#jQchart-data-D-"+op.id  
  14. ).css('color',(op.data.length==1)?'#333':strokeStyle)  
  15. .css({"width":"100px","font-size":"12px"}); // cychai:样式控制  

使用默认的数据可以显示出来了。接下来就是和开发的协作了。

我希望可以使用ajax异步获取数据,然后在前台显示。

这里,我使用了一个示例页面chartdata.html, 即需要的数据页

[{labelX : ["外观设计","便携性","易用性","电池待机","摄像功能","变焦"],data :[[5,7,2,3,9,4]]}]

在前台,我通过ajax请求该页面,对返回的json数据进行处理,传递给chartSetting:

 

 
  1. $(function(){  
  2. $.ajax({  
  3. url: "chartdata.html",  
  4. type: "GET",  
  5. success: function(cdata){  
  6. showDDChart(cdata);  
  7. }  
  8. });  
  9. function showDDChart(cdata){  
  10. var dd_chart = eval(cdata)[0];  
  11. var chartSetting={  
  12. config : {  
  13. title : "",  
  14. titleLeft: 70,  
  15. labelX :dd_chart.labelX,  
  16. //labelX :["外观设计","便携性","易用性","电池待机","摄像功能","变焦"],  
  17. scaleY : {min: 0,max:10,gap:2},  
  18. width: 300+25,  
  19. height: 125+50,  
  20. paddingL : 10,  
  21. paddingT : 10  
  22. },  
  23. //data: [[5,3,1,8,4,9]]  
  24. data :dd_chart.data  
  25. };  
  26. $('#canvasMyID').jQchart(chartSetting);  
  27. }  
  28. });  

完整的html页面:

 

 
  1. <head>  
  2. <!--[if IE]>  
  3. <mce:script src="excanvas-compressed.js" mce_src="excanvas-compressed.js" type="text/javascript" ></mce:script>  
  4. <![endif]-->  
  5. <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>  
  6. <mce:script src="jquery.jqchart.js" mce_src="jquery.jqchart.js" type="text/javascript" charset="utf-8"></mce:script>  
  7. </head><body>  
  8. <canvas id="canvasMyID" height="200"></canvas>  
  9. <mce:script type="text/javascript"><!--  
  10. $(function(){  
  11. $.ajax({  
  12. url: "chartdata.html",  
  13. type: "GET",  
  14. success: function(cdata){  
  15. showDDChart(cdata);  
  16. }  
  17. });  
  18. function showDDChart(cdata){  
  19. var dd_chart = eval(cdata)[0];  
  20. var chartSetting={  
  21. config : {  
  22. title : "",  
  23. titleLeft: 70,  
  24. labelX :dd_chart.labelX,  
  25. //labelX :["外观设计","便携性","易用性","电池待机","摄像功能","变焦"],  
  26. scaleY : {min: 0,max:10,gap:2},  
  27. width: 300+25,  
  28. height: 125+50,  
  29. paddingL : 10,  
  30. paddingT : 10  
  31. },  
  32. //data: [[5,3,1,8,4,9]]  
  33. data :dd_chart.data  
  34. };  
  35. $('#canvasMyID').jQchart(chartSetting);  
  36. }  
  37. });  
  38. // --></mce:script>  
  39. </body>  
  40. </html> 

OK,大功告成!

希望本文所述对大家的jQuery程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表