以下代码有效:
var options1 = {
chart: {
renderTo: 'container1'
},
series: [{}]
};
$.getJSON('tokyo.jsn', function(data){
options1.series[0].data = data;
var chart = new Highcharts.Chart(options1);
});
我希望能够添加一些数据系列,所以我试图从getJSON中引用'new Highcharts',但我似乎没有把它弄好。以下代码不起作用:
$.getJSON('tokyo.jsn', function(data){
options1.series[0].data = data;
});
var chart = new Highcharts.Chart(options1);
我也尝试过以不同的方式处理它,但是下面的代码再次无效:
var chart1 = new Highcharts.Chart({
chart: {
renderTo: 'container1'
},
series: [{}]
});
$.getJSON('tokyo.jsn', function(data){
chart1.series[0].data = data;
});
任何人都可以指出我正确的方向。我需要通过执行第二次getJSON调用来支持多个数据系列,如下所示:
$.getJSON('sydney.jsn', function(data){
options1.series[1].data = data;
});
我正在使用的JSON代码如下:
[ 7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6 ]
由于
答案 0 :(得分:4)
您可以在该示例中使用Highcharts使用的解决方案:http://www.highcharts.com/stock/demo/compare
或首先创建空图表,没有任何系列,然后在每个回调中使用addSeries()
函数,请参阅:http://api.highcharts.com/highcharts#Chart.addSeries()
答案 1 :(得分:3)
$.getJSON
是异步请求。收到数据后,您可以将其传递给Highcharts,因此您必须在$.getJSON()
的回调函数中调用该代码。
试试这个,使用辅助函数处理数据并绘制图表,请参阅下面的drawChart()
:
var options1 = {
chart: {
renderTo: 'container1'
},
series: []
};
var drawChart = function(data, name) {
// 'series' is an array of objects with keys:
// - 'name' (string)
// - 'data' (array)
var newSeriesData = {
name: name,
data: data
};
// Add the new data to the series array
options1.series.push(newSeriesData);
// If you want to remove old series data, you can do that here too
// Render the chart
var chart = new Highcharts.Chart(options1);
};
$.getJSON('tokyo.jsn', function(data){
drawChart(data, 'Tokyo');
});
$.getJSON('sydney.jsn', function(data){
drawChart(data, 'Sydney');
});