我已经开始在Highcharts实现柱形图。(http://jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/highcharts/demo/combo/柱形图部分)
我将系列设置为:
...
series : []
...
我从服务器返回......
[ {
"name" : "4346",
"data" : [ 3010840179 ],
"type" : "column"
}, {
"name" : "20232",
"data" : [ 2135308977 ],
"type" : "column"
} ]
当我复制该值并首先设置系列时,它会渲染图形。但是我不会从服务器返回什么(有多少元素等),我尝试了:
chart.series = data; //chart is my chart variable's name, data is the returning JSON String from server.
然而,图表没有任何反应,我知道这不是一个有效的用法。我该怎么做才能一次设置图表的系列变量?
PS 1:我尝试在我的回调函数中设置数据$ .getJSON()
PS 2: chart.series [n] .setData();不适合我。我有来自服务器的每个元素的数据和名称。我想立刻设置图表的整个系列变量。
编辑1: http://jsfiddle.net/HD6CY/这就是我想要实现的目标。
编辑3:我想用系列创建一个图表:[]并且在我从服务器获取数据后(需要很长时间)我想将它设置为我的图表的seres变量。如果等待获取数据,我不想阻止我的图表被创建,我想建立空,然后我将设置它。我将在屏幕上显示加载文本,这样就会有一些东西而不是空页面,即使它没有任何东西可以在开始时显示。
答案 0 :(得分:3)
查看addSeries
。
构建空图表后,请执行以下操作。
var variable = [{
type: 'column',
name: 'Jane',
data: [3, 2, 1, 3, 4]
}, {
type: 'column',
name: 'John',
data: [2, 3, 5, 7, 6]
}, {
type: 'column',
name: 'Joe',
data: [4, 3, 3, 9, 0]
}];
for(var i in variable) {
chart.addSeries(variable[i], false); // don't redraw
}
chart.redraw(); // redraw only after add all series
参考的
答案 1 :(得分:1)
您是否尝试过在ajax呼叫成功时创建图表? :
...
success: function(data) {
var chart;
chart = new Highcharts.Chart({
...
series: data
....
});
...