Javascript 将图表加载到第页
我的代码如下所示:Javascript 将图表加载到第页,javascript,jquery,amcharts,Javascript,Jquery,Amcharts,我的代码如下所示: var check = parametrTable.length -1; var data = []; $.each(parametrTable, function(i, x) { // NOTE: x = parametrTable[i] $.getJSON("myurlwithparametr", function(json) { $.each(json, function(j, d) { data[j] = data[j]
var check = parametrTable.length -1;
var data = [];
$.each(parametrTable, function(i, x) { // NOTE: x = parametrTable[i]
$.getJSON("myurlwithparametr", function(json) {
$.each(json, function(j, d) {
data[j] = data[j] || {};
data[j]["count" + i] = d.count;
if (i == 0) {
data[j].category = d.column;
}
});
if(i == check){
loadChart(data);
}
});
});
这部分从我的amchart生成数据,然后如果'i'='check'结束。我将生成数据发送到带有参数'data'的函数'loadChart'。
我的功能代码:
AmCharts.ready(function() {
chart = new AmCharts.AmSerialChart();
chart.dataProvider = data;
chart.categoryField = "category";
chart.startDuration = 1;
chart.type = "serial";
var categoryAxis = chart.categoryAxis;
categoryAxis.labelRotation = 90;
categoryAxis.axisAlpha = 1;
categoryAxis.insie = true;
categoryAxis.gridPosition = "start";
var valueAxis = new AmCharts.ValueAxis();
valueAxis.title = "title";
valueAxis.axisAlpha = 1;
chart.addValueAxis(valueAxis);
for (i=0;i<data.length;++i) {
var graph = new AmCharts.AmGraph();
graph.valueField = "count"+i+"";
graph.balloonText = "[[value]]";
graph.bullet = "round";
graph.type = "smoothedLine";
graph.lineAlpha = 1;
graph.connect = true;
graph.lineThickness = '2';
//graph.fillAlphas = 1;
chart.addGraph(graph);
}
chart.write('chartdiv');
});
将生成图表,但不是所有值。有什么建议吗 看不到您的实际数据很难判断,但问题似乎在于如何包装图形。现在,您正在为数据中的每个数据点创建一个单独的图形。这似乎不对。您应该为ParameterTable中的每个项目创建:
问题在于amchart的加载时间早于数据。有时显示单个值,有时不显示。如果查看加载到console.info数据中的表,它看起来正常。解决方案是在加载数据后创建一个图表,但如何做..传输的数据看起来不错,但图表不是。看起来图表本身并没有回答一些随机数据。有时是缺少的类别,有时是图形中的一个。它看起来好像从未准备好,因为当我添加AmCharts.ready函数时,没有显示任何内容。
AmCharts.ready(function() {
for (i=0;i<=check;++i) {
var graph = new AmCharts.AmGraph();
graph.valueField = "count"+i+"";
graph.balloonText = "[[value]]";
graph.bullet = "round";
graph.type = "smoothedLine";
graph.lineAlpha = 1;
graph.connect = true;
graph.lineThickness = '2';
//graph.fillAlphas = 1;
chart.addGraph(graph);
}
var check = parametrTable.length -1;
var loaded = 0;
var data = [];
$.each(parametrTable, function(i, x) { // NOTE: x = parametrTable[i]
$.getJSON("myurlwithparametr", function(json) {
loaded++;
$.each(json, function(j, d) {
data[j] = data[j] || {};
data[j]["count" + i] = d.count;
if (i == 0) {
data[j].category = d.column;
}
});
if(loaded == check){
loadChart(data);
}
});
});