2015-02-06 86 views
0

我正在製作一個圖表,應該像圖表一樣在時間線上顯示狀態。我想,它最適合的是單槓圖,我說這樣的數據:Highcharts標籤分組

series: [{ 
    data: [?], 
    name: 'state1' 
}, { 
    data: [?], 
    name: 'state2' 
}, { 
    data: [?], 
    name: 'state3' 
}, { 
    data: [?], 
    name: 'state1' 
}, { 
    .... 
}, { 
    data: [?], 
    name: 'state1' 
}] 

這裏是我心中已經有: Stacked bar chart

圖表看起來像我需要什麼,但我需要以某種方式組合傳說,例如這種情況下應該只有3個傳說:state1,state2,state3。

我該如何做到這樣?

+3

[此方法](http://stackoverflow.com/q/15926516/1367313)哪裏使用了'linkedTo'? – Alexander 2015-02-06 08:04:54

回答

0

我會建議一種不同的方法,使用列範圍系列類型。

通過這種方法,您只需要三個系列,每個時間段都有一個數據點,而不是每個時間段的一個系列。這可以節省操作圖例或僞造其他系列級別的操作。

這是一個example我爲較早的問題,演示方法(與只有兩種狀態):

可以很容易地適於使用日期時間軸,以及,這似乎你可能會去。

0
var legends = {}; 
series.forEach(function(bar){ 
    legends[bar.name] = bar.data; 
}); 
0

基礎上@StAlex的答案,我會建議類似的解決方案,但沒有的ECMAScript 5特定forEach

var legend = {}; 
for (var i = 0; i < series.length; i++) { 
    var bar = series[i]; 
    if (!legend[bar.name]) { 
     legend[bar.name] = 0; 
    } 
    legend[bar.name] += bar.data; 
} 

我認爲data是一個數字。如果不是這樣,請添加評論。