我正在尝试使用amchart 库使用HTML在网站上显示图表。我已经阅读了here找到的教程。我的代码主要是从教程中复制粘贴的,如果我使用他们的对象列表,它会显示,但是如果我使用我的,它就不会显示出来。我通过以下方式构建对象列表:
var coordList = [];
function coord(x,y) {
this.x_coord = x;
this.y_coord = y;
}
var newCoord = new coord(line[0],y_value);
coordList.push(newCoord);
我有一些" for"创建要在列表中推送的新对象的循环。如果直接以这种方式写入coordList,它将显示图表:
coordList = [{"x_coord":"Monday","y_coord":4}];
有人可以帮我理解通过构造函数创建的对象列表有什么问题吗?
编辑:好的,经过测试,似乎我根本不明白JS是如何工作的。
var coordList = []; // list of coordinates {x,y}
$(document).ready(function() {
$.ajax({
type: "POST",
url: "./test.csv",
dataType: "text",
success: function(data) {
processData(data);
console.log(coordList);
displayChart();
console.log("hello");
}
});
});
以上是代码的主要部分。以前,displayChart()在doc ready部分之外,这意味着它会立即显示没有数据的图表,因为数据尚未处理(如果我错了,请纠正我?)。我已经把它放在doc ready部分里面了。希望在文档准备好后,处理数据,并显示图表。但它仍然没有。
这就是displayChart()的样子:
function displayChart() {
//coordList = [{"x_coord":"Monday","y_coord":4}];
console.log(coordList);
var chart = new AmCharts.AmSerialChart();
chart.dataProvider = coordList;
chart.categoryField = "x_coord";
console.log("hello2");
var graph = new AmCharts.AmGraph();
graph.valueField = "y_coord";
graph.type = "column";
chart.addGraph(graph);
chart.write('chartdiv');
}
编辑#2:我把它弄清楚了,整篇文章已经准备好了AMCHART!这可以关闭,我不知道我是否可以自己做?