首页 > 解决方案 > Highcharts 在 point.names 和 y 数组中更改或添加名称的颜色

问题描述

我需要分别为 point.name 和 y 数组设置颜色。

到目前为止我所拥有的:

(function(H) {
  H.wrap(H.Series.prototype, 'getColor', function(proceed) {
    this.color = generateColorForString(this.name);
  });
}(Highcharts));

这适用于以下数据结构:

{
  "data": [
    [
      [
        "2018",
        "02",
        "16",
        "00",
        "00"
      ],
      4.9
    ],
    ...
 ],
  "name": "MySeriesName"
}

但不适用于饼图的这种数据结构:

{
  "type": "pie",
  "name": "MySeriesName",
  "data": [
    [
      "foo",
      27
    ],
    [
      "foox",
      112
    ],
    [
      "fooy",
      4
    ]
    ...
  ]
}

是否可以按名称为每个点设置颜色?

这是我的小提琴:http: //jsfiddle.net/2nd8561k/2/

标签: javascripthighchartscolorsprototypeseries

解决方案


您需要resolveColor从以下包装方法Highcharts.Point.prototype

(function(H) {
    H.wrap(H.Point.prototype, 'resolveColor', function(proceed) {
        this.color = generateColorForString(this.name);
    });
}(Highcharts));

现场演示:http: //jsfiddle.net/BlackLabel/y4ro69dq/

文档:https ://www.highcharts.com/docs/extending-highcharts


推荐阅读