添加新的 HighChart 系列

12

这段代码会导致JavaScript报错

$.each(JSON, function(i, array) {                        
    chart.series[i].name = array.teamName;
    chart.series[i].setData(array.teamPower, true);
});

我必须定义chart.series[i],因为它说“无法设置未定义的属性'name'”,但是我找不到方法来做到这一点。

因为它的函数是在requestData中运行的,所以它是在chart确定选项之后运行的。

function showGraph() {  
    chart = new Highcharts.Chart(option);       
}

chart: {
    renderTo: 'graphicShow',
    type: 'spline',
    events: {
        load: requestData
    }
}

...在选项中...

title: {
    text: 'Power %'
},
series: []

...

2个回答

35

你需要查看API中“方法和属性”部分。请参见http://api.highcharts.com/highcharts#Chart(文档页面上也有jsFiddle示例)。

var chart = new Highcharts.Chart(options);
chart.addSeries({                        
    name: array.teamName,
    data: array.teamPowher
});

如果您要添加多个系列,应将redraw标志设置为false,然后手动调用重绘,因为这样会更快。

var chart = new Highcharts.Chart(options);
chart.addSeries({                        
    name: array.teamName,
    data: array.teamPower
}, false);
chart.addSeries({                        
    name: array.teamName,
    data: array.teamPower
}, false);
chart.redraw();

有没有办法通过名称引用系列,还是它只是用于工具提示等? - Ethereal
现在使用 v6+ 会有不同的工作方式吗?我在 TS 中遇到了错误。 - SovietFrontier

0

您也可以在addSeries的第二个选项中指定一个布尔值,表示是否重新绘制。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接