使用colorByPoint时,如何为系列设置图例符号颜色?

时间:2018-10-02 08:50:46

标签: javascript charts highcharts

我有一个包含两个系列(今年,去年)的柱形图,我想在其中设置某些“组”的颜色来表示季节,例如:

enter image description here

为此,我为每个系列设置了colors,并使用了colorByPoint选项。参见this fiddle

请注意,图表图例对两个系列的符号使用相同的灰色。 (我什至不知道灰色来自哪里-这不是两个系列中“调色板”中的一个)。

如何为每个系列设置图例符号颜色?(理想情况下,我想在“今年”系列中使用较深的灰色,以反映这些颜色是该系列中所有点的颜色都较暗)。

注意:尽管还有其他方法可以为每个数据点设置颜色,例如使用对象数组作为包含颜色设置的data参数,但我不想这样做之所以这样,是因为在我的实际示例中,数据是通过data模块来自CSV文件的-因此,我无法以这种方式使用对象。

1 个答案:

答案 0 :(得分:1)

基于Code review,我更新了代码以支持最新版本。

如果包装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]
    }]
});

查看其中的this previous answer