#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. Точка соответствует четному ряду. Еще раз спасибо.