角高图表颜色。除了Highcharts.getOptions()。colors [index]之外,还有什么方法可以获取颜色?

时间:2018-09-10 23:35:15

标签: javascript angular highcharts

已经解决,但是只是想知道,除了Highcharts.getOptions()之外,还有什么方法可以访问highcharts颜色?

这里是情况:

series: [{
  name: 'Some Name',
  data: [{
    name: 'Something 1',
     ...
    color: Highcharts.getOptions().colors[3]
}, {
    name: 'Something 2',
    ...
    color: Highcharts.getOptions().colors[4]
  }]
}]

我使用角度高图表(https://www.npmjs.com/package/angular-highcharts)。

如果我使用常规的Highcharts,这将起作用。

在Angular-highcharts中也可以,但仅当设置主题后渲染图表时才有效。 但是在我的情况下,图表是使用* ngFor在模板中生成的,因此Highcharts.getOptions()。colors [3]返回默认配色方案的颜色。

我还使用'colors'属性为每个图表提供了颜色。 我的问题是:如何获取特定图表的颜色?

new Chart({
  chart: {
      ...
    },
    colors: this.chartColorPalette,
    series: [{
    ...
  }]
}),

当然,我已经通过直接访问this.chartColorPalette数组解决了此问题,但是还有其他方法可以完成同样的事情吗?

我的意思是,像Highcharts.getOptions()。colors [index]一样? 还是可以在渲染视图模板之前设置调色板(主题)?

1 个答案:

答案 0 :(得分:1)

首先,您需要直接在图表配置对象中而不是在chart.colors中设置特定图表的颜色,因为这种设置很可能无法自动运行。

关于获取特定图表(不是全局Highcharts对象)颜色的问题,您应该能够访问options.colors对象上的Chart,例如:

chart: {
  events: {
    load() {
      console.log(this.options.colors)  
    }
  }
}

我必须注意,这取决于您尝试访问图表对象的范围。

实时示例: https://jsfiddle.net/dexkhb97/