Javascript jQuery将额外的计算数据点推送到HighChart系列
我试图将数据点推送到HighCharts的数据系列数组中。我从标准饼图模板开始。然后,我添加了额外的$.get语句来计算文件中的行数。 每增加一个$.get上的alert语句都会返回正确的行数,但数据点不会推送到序列中。 有人能帮我吗,我是JQuery新手。谢谢Javascript jQuery将额外的计算数据点推送到HighChart系列,javascript,jquery,highcharts,Javascript,Jquery,Highcharts,我试图将数据点推送到HighCharts的数据系列数组中。我从标准饼图模板开始。然后,我添加了额外的$.get语句来计算文件中的行数。 每增加一个$.get上的alert语句都会返回正确的行数,但数据点不会推送到序列中。 有人能帮我吗,我是JQuery新手。谢谢 $.get('piechart.csv', function(data) { // Split the lines var
$.get('piechart.csv', function(data) {
// Split the lines
var buttons
var lines = data.split('\n');
var series = {
data: []
};
// Iterate over the lines and add categories or series
$.each(lines, function(lineNo,line) {
var items = line.split(',');
series.data.push({
name: items[0],
y:parseFloat(items[1])
});
});
$.get('button0.txt', function(data) {
// Split the lines
var lines = data.split('\n');
series.data.push({
name: 'Power off',
y: (lines.length-1)
});
alert (lines.length-1);
});
$.get('button1.txt', function(data) {
// Split the lines
var lines = data.split('\n');
series.data.push({
name: 'Power on',
y: (lines.length-1)
});
alert (lines.length-1);
});
options.series.push(series);
// Create the chart
var chart = new Highcharts.Chart(options);
});
我假设,数据点被推到了系列中,但问题在于,在创建并呈现图表实例之前,这不会发生
撇开我在代码中没有看到options
变量的声明这一事实不谈,这意味着可能还潜伏着另一个bug(但我假设这只是一个输入错误?),问题在于HighCharts没有做任何事情来跟踪您传递的初始序列,因此,修改该系列不会影响图表
您需要自己更新图表-例如,使用。因此,在Ajax调用的成功回调中,您需要按照以下步骤进行操作:
$.get('button0.txt', function(data) {
// Split the lines
var lines = data.split('\n'),
chart = $('#container').highcharts();
chart.series[0].addPoint({
name: 'Power off',
y: lines.length-1
});
});
AJAX调用是异步的,因此不会逐个执行行。阅读
jQuery.done
或瀑布式ajax调用。谢谢Ben,这就成功了。“options”声明在代码中的位置更高了一点,似乎很有效,所以我没有包含它。非常感谢你的帮助。