3

我已经开始在 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 变量。如果等待获取数据,我不想阻止创建我的图表,我想建立空,然后我将设置它。我将在屏幕上显示加载文本,因此即使在开始时没有任何内容可显示,也会有一些内容而不是空页面。

4

2 回答 2

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

演示

参考

于 2012-08-31T17:12:54.100 回答
1

您是否尝试过在 ajax 调用成功时创建图表?:

  ...
  success: function(data) { 
       var chart;  
       chart = new Highcharts.Chart({
             ...
             series: data
             ....
       });
  ...
于 2012-08-31T13:26:38.027 回答