Верхние диаграммы изменяют или добавляют цвет для имени в массиве point.names и y

#javascript #highcharts #colors #prototype #series

#javascript #верхние диаграммы #Цвет #прототип #Серии

Вопрос:

Мне нужно установить цвет для массива 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 /

Комментарии:

1. Привет @metamagikum, какой тип серии вы используете? Вы хотите сгенерировать некоторый цвет для каждой точки на основе имени точки?

2. Спасибо. Первая структура имеет доступное имя. Работа с большинством типов данных. Я хочу получить доступ к имени и задать цвет для массива point / y рядов данных. Только что добавлен JSfiddle.

Ответ №1:

Вам нужно обернуть 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

Комментарии:

1. Спасибо! Работает идеально. Я так люблю таких людей, как вы 🙂 Знаете ли вы, как я могу переносить точки и ряды, чтобы обрабатывался каждый тип диаграммы?

2. Точка соответствует четному ряду. Еще раз спасибо.