2013-02-25 82 views
6

我使用HighCharts渲染堆疊百分比水平條形圖,除HighCharts默認情況下反轉我的系列數據順序外,它工作得很好。HighCharts爲什麼會顛倒我係列的順序?

http://jsfiddle.net/U8nZ6/

如您在演示中,看到儘管$ 20K是數據1 /數據2陣列的第一行,它的每一個欄(右一路)的最後一塊。我想這是爲了,所以我嘗試了兩件事情:

1)渲染與陣列.reverse() d圖表。你可以在上面的演示中啓用這些行,看看結果是顏色不對齊,因爲每個圖表中有不同數量的記錄,所以這不起作用(並且不應該是唯一的辦法做到這一點,我敢肯定)

2)使用xAxis.reversed = true。這使得它與顏色匹配的順序正確,但是圖例顛倒了(100%到0%),並且它從右到左進行動畫處理。

有沒有解決這個另一種方式?

回答

3

好吧,假設有沒有其他選擇,這是我用的情況下,任何人通過谷歌在此絆倒去:

使用上述(扭轉軸)描述的選項2,我簡單地通過格式化修改的標籤是反過來。

在我的情況,因爲它的百分比(0-100),我簡單地說:

labels: { formatter: function() { return Math.abs(this.value - 100) } }

1

我也有類似的問題。嘗試不同的選項後,我最終在渲染圖表之前設置了系列索引。通用代碼:

if (options.chart.type === 'bar') { 

    for (var i = 0; i < options.series.length; i++) { 
     options.series[i].index = options.series.length - 1 - i; 
     options.series[i].legendIndex = i; 
    } 
} 

更新的jsfiddle您例如:http://jsfiddle.net/U8nZ6/23/

1

在任何人的情況下仍然在尋找這一點。我使用了反轉:在我的傳奇中使用了

legend: { 
      align: 'right', 
      x: -30, 
      verticalAlign: 'top', 
      y: 25, 
      floating: true, 
      backgroundColor: (Highcharts.theme && Highcharts.theme.background2) || 'white', 
      borderColor: '#CCC', 
      borderWidth: 1, 
      shadow: false, 
      reversed: true // right here! 
     }