В качестве альтернативы, упаковка Legend.colorizeItem
, которая обрабатывает элементы легенды legendLine
и legendSymbol
для «отмены» установки скрытого цвета:
(function (H) {
H.wrap(H.Legend.prototype, 'colorizeItem', function (proceed, item, visible) {
proceed.apply(this, Array.prototype.slice.call(arguments, 1));
if(item.legendLine) {
item.legendLine.attr({ stroke: item.color });
}
if(item.legendSymbol) {
if ((item.options && item.options.marker) && item.legendSymbol.isMarker)
item.legendSymbol.attr(item.pointAttribs());
else
item.legendSymbol.attr({ fill: item.color });
}
});
}(Highcharts));
Сложный код для item.LegendSymbol
предназначен для сохранения любых параметров маркера, которые могут быть установлены. Он имитирует поведение по умолчанию colorizeItem
без учета правдивости visible
.
См. эту демонстрацию JSFiddle ее использования.