2016-08-24 68 views
0

我有一個頁面顯示多個圖表。我設置要被用於根據下面的代碼所有圖表的主題:顏色不會改變使用Highcharts.setOptions

Highcharts.theme = { 
    colors: ["#E37B25", "F5BF36", "#7C1C1D", "#458744", "#3E7FA3", "#0C9BD7", "#265667"], 
    ... 
} 

Highcharts.setOptions(Highcharts.theme); 

我然後有一堆爲每個圖表特定選項,並在設定的時間間隔創建圖表。

var chart; 
chart = new Highcharts.Chart(chartOptions); 

的問題是,每一個圖表創建時間它具有陣列中的第一顏色,而不是通過它們旋轉。我認爲setOptions()會爲每個圖表管理這個,但顯然它不。這怎麼能這樣做,所以每次我使用new Highcharts.Chart(chartOptions)創建一個新的圖表,它會選擇數組中的下一個顏色?

+2

圖表'colors'是圖表中每個系列使用的顏色數組 - 不是頁面上的每個圖表。在構建圖表以指定顏色時(假定每個圖表都有一個系列),您需要遍歷該「顏色」數組。 – wergeld

回答

0

作爲@wegeld評論,colors在陣列中被給定爲其中使用由圖表系列元素,而不是在連續的方式圖表列表選項。

但是,如果這是要求,您可以創建一個colorIterator並執行以下操作。我爲你創建一個codepen例子在這裏:https://codepen.io/mikhilraj/pen/KrjzxN/

var colorIterator = 0; 

function getColor() { 
    var color = Highcharts.getOptions().colors[colorIterator%Highcharts.getOptions().colors.length]; 
    colorIterator++; 
    return color; 
}; 

並添加以下作爲選擇,同時創建圖表。

series: [{ 
    name: 'John', 
    data: [0, 1, 4, 4, 5, 2, 3, 7], 
    fillColor: getColor() 
}]