ajax讀取數(shù)據(jù)后使用jqchart顯示圖表的方法
本文實(shí)例講述了ajax讀取數(shù)據(jù)后使用jqchart顯示圖表的方法。分享給大家供大家參考。具體分析如下:
最近項(xiàng)目中需要顯示出圖表效果,原來(lái)收集到的圖表插件終于有用武之地了。
但是和jqchart對(duì)比,還是有很多不同之處的。
實(shí)現(xiàn)效果:

我就對(duì)jqchart進(jìn)行了重新編寫(xiě)。
首先要解決的是不顯示x軸和y軸:
//各DIV作成
// 取消標(biāo)題顯示
/*
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軸數(shù)字顯示
/*
this.scaleYBox//Y軸スケール
=this.mkBoxElement('Y',
this.op.scaleYLeft,this.op.scaleYTop
).appendTo(this.jQcanvasBox).get(0);
*/
// 取消x軸分類(lèi)顯示
/*
this.scaleXBox//X軸スケール
=this.mkBoxElement('X',
this.op.scaleXLeft,this.op.scaleXTop
).appendTo(this.jQcanvasBox).get(0);
*/
其次,對(duì)于拐點(diǎn)的文字,原來(lái)顯示是相應(yīng)的data值,現(xiàn)在需要顯示的是對(duì)應(yīng)的x軸名稱(chēng):
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'); //坐標(biāo)點(diǎn)x軸偏移
var dyy = i%2 ? (dy+op.labelDataOffsetY - 25 + 'px'):(dy+op.labelDataOffsetY - 5 + 'px'); //坐標(biāo)點(diǎn)y軸偏移
it.wrtText(
//dx+op.labelDataOffsetX - 20 + 'px',
dxx,
//dy+op.labelDataOffsetY - 10 + 'px',
dyy,
//op.rows[i], // pre: 坐標(biāo)點(diǎn)data值
op.txtpointers[i], // cychai:坐標(biāo)點(diǎn)文字
op,
"#jQchart-data-D-"+op.id
).css('color',(op.data.length==1)?'#333':strokeStyle)
.css({"width":"100px","font-size":"12px"}); // cychai:樣式控制
使用默認(rèn)的數(shù)據(jù)可以顯示出來(lái)了。接下來(lái)就是和開(kāi)發(fā)的協(xié)作了。
我希望可以使用ajax異步獲取數(shù)據(jù),然后在前臺(tái)顯示。
這里,我使用了一個(gè)示例頁(yè)面chartdata.html, 即需要的數(shù)據(jù)頁(yè)
[{labelX : ["外觀設(shè)計(jì)","便攜性","易用性","電池待機(jī)","攝像功能","變焦"],data :[[5,7,2,3,9,4]]}]
在前臺(tái),我通過(guò)ajax請(qǐng)求該頁(yè)面,對(duì)返回的json數(shù)據(jù)進(jìn)行處理,傳遞給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 :["外觀設(shè)計(jì)","便攜性","易用性","電池待機(jī)","攝像功能","變焦"],
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頁(yè)面:
<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 :["外觀設(shè)計(jì)","便攜性","易用性","電池待機(jī)","攝像功能","變焦"],
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,大功告成!
希望本文所述對(duì)大家的jQuery程序設(shè)計(jì)有所幫助。
相關(guān)文章
JavaScript設(shè)計(jì)模式策略模式案例分享
這篇文章主要介紹了JavaScript設(shè)計(jì)模式策略模式案例分享,策略設(shè)計(jì)模式就是指一個(gè)問(wèn)題匹配多個(gè)解決方法,不一定要用到哪一個(gè),而且有可能隨時(shí)增加多個(gè)方案2022-06-06
基于Bootstrap的Metronic框架實(shí)現(xiàn)條碼和二維碼的生成及打印處理操作
這篇文章主要介紹了基于Bootstrap的Metronic框架實(shí)現(xiàn)條碼和二維碼的生成及打印處理操作的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-08-08
javascript鼠標(biāo)滑動(dòng)評(píng)分控件完整實(shí)例
這篇文章主要介紹了javascript鼠標(biāo)滑動(dòng)評(píng)分控件實(shí)現(xiàn)方法,以完整實(shí)例形式詳細(xì)分析了javascript操作鼠標(biāo)事件及頁(yè)面元素樣式實(shí)現(xiàn)評(píng)分效果的方法,需要的朋友可以參考下2015-05-05
Layui表格行內(nèi)動(dòng)態(tài)編輯數(shù)據(jù)
本文主要介紹經(jīng)典前端框架 layui 中的動(dòng)態(tài)表格數(shù)據(jù)操作,結(jié)合 JQuery 動(dòng)態(tài)編輯單元格中的數(shù)據(jù),具有一定的參考價(jià)值,感興趣的可以了解一下2021-08-08
前端js實(shí)現(xiàn)文件的斷點(diǎn)續(xù)傳 后端PHP文件接收
這篇文章主要為大家詳細(xì)介紹了斷點(diǎn)續(xù)傳的簡(jiǎn)單例子,前端文件提交,后端PHP文件接收,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10
淺談Javascript中的函數(shù)、this以及原型
下面小編就為大家?guī)?lái)一篇淺談Javascript中的函數(shù)、this以及原型。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-10
SWFUpload多文件上傳及文件個(gè)數(shù)限制的方法
這篇文章主要介紹了SWFUpload多文件上傳及文件個(gè)數(shù)限制的方法,較為詳細(xì)的分析了SWFUpload組件實(shí)現(xiàn)多文件上傳的原理、使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2016-05-05

