对同一图表中的所有系列使用单一颜色

tic*_*tic 4 colors highcharts

如何为单个图表中的所有系列设置相同的颜色?我的图表中有大量系列,单独设置每个系列的颜色可能很不方便。

比方说,我希望所有的系列我的图表进行red着色,我怎么去这样做,而无需显式地设置series.colorred每个时间?

Jug*_*kar 5

您可以按照 Jeremy 提到的方式进行操作,方法是为每个图表设置颜色选项。或者您可以按如下方式覆盖默认颜色数组

Highcharts.setOptions({
    colors:['red','green','blue']
});
Run Code Online (Sandbox Code Playgroud)

这种方法的好处是您只需在创建任何图表之前调用一次。此后的所有图表都将使用这些颜色,而无需在每个图表上设置此选项。大多数网站都有一个 common.js 或类似的 javascript 文件,通常在任何其他自定义脚本之前加载,您只需将此代码添加到该文件中,然后忘记颜色

更新
由于您希望同一图表中的所有系列都具有单一颜色,因此您可以完全覆盖颜色数组并使其只有一种颜色

Highcharts.getOptions().colors = ['red'];
Run Code Online (Sandbox Code Playgroud)

此方法将使导航器(Highstock 底部的蓝色迷你图)保持默认蓝色,这必须以与选项不同的方式覆盖。

PS 上面的方法不是覆盖默认选项的推荐方法,正确的方法是 do setOptions(),但这会导致与现有默认值合并,因此数组大小将大于 1。

或者,您可以按如下方式覆盖 getColor 方法,以始终返回您选择的颜色。同样,您需要在调用图表的构造函数之前执行此操作

Highcharts.Series.prototype.getColor=function(){
    this.color= '#f00';
}
Run Code Online (Sandbox Code Playgroud)

设置默认颜色@jsFiddle