2016-08-24 72 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() 
}]