如何为单个图表中的所有系列设置相同的颜色?我的图表中有大量系列,单独设置每个系列的颜色可能很不方便。
比方说,我希望所有的系列我的图表进行red着色,我怎么去这样做,而无需显式地设置series.color到red每个时间?
您可以按照 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)