Как установить цвет символа легенды для серии при использовании colorByPoint? - PullRequest
0 голосов
/ 02 октября 2018

У меня есть столбчатая диаграмма с двумя сериями (в этом году, в прошлом году), где я хочу установить цвет для определенных «групп» столбцов для представления сезонов, например:

enter image description here

Для этого я установил colors для каждой серии и использовал параметр colorByPoint.См. эту скрипку .

Обратите внимание, что легенда диаграммы использует одинаковый серый цвет для символа для обеих серий.(Я даже не уверен, откуда взялся этот серый цвет - он не входит в «палитру» цветов в обеих сериях).

Как установить цвет символа легенды для каждой серии? (В идеале я хотел бы использовать более темный серый цвет для серии «В этом году», чтобы отразить тот факт, чтоцвета темнее для всех точек этой серии).

ПРИМЕЧАНИЕ: хотя существуют другие способы задания цветов для каждой точки данных, например использование массива объектов в качестве параметра dataэто включает в себя настройку цвета, я не хочу этого делать, потому что в моем реальном примере данные поступают из файла CSV через модуль data - и поэтому у меня нет возможности использовать объекты в этомспособ.

1 Ответ

0 голосов
/ 02 октября 2018

На основании этого предыдущего ответа Я обновил код для поддержки самой новой версии.

Если вы оберните colorizeItem функцию класса Legend, вы можете использовать legendColorатрибут:

(function(H) {
    H.wrap(H.Legend.prototype, 'colorizeItem', function(proceed, item, visible) {
        var color = item.color;
        item.color = item.options.legendColor;
        proceed.apply(this, Array.prototype.slice.call(arguments, 1));
        item.color = color;
    });
}(Highcharts));

И все же вы применяете legendColor:

$('#container').highcharts({
    series: [{
        legendColor: 'black',
        data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
    }]
});

См. эту обновленную демонстрацию JSFiddle ее использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...