r-highcharter中图表元素的更改颜色

问题描述 投票:0回答:1

让我说有25条折线的折线图,但只想给其中3条涂上颜色,而其他的则涂成灰色,该怎么办?

r highcharts r-highcharter
1个回答
0
投票

您可以使用Highcharter的hc_chart函数包含chart.events.load事件,您可以在其中触发自定义JavaScript代码。使用JS("")函数将JavaScript代码注入R。在该JavaScript代码中,您可以循环浏览所有系列并使用series.update()方法更新其颜色。

我今天在这里做的完全一样:How to change the color of marker-points dynamically based on y-position但是我没有改变系列,而是改变了标记的颜色。

API参考:https://api.highcharts.com/highcharts/chart.events.loadhttps://api.highcharts.com/class-reference/Highcharts.Series#update

这里是显示它的JavaScript演示:https://jsfiddle.net/BlackLabel/cyhd5Ln2/

var series = [];

for (let i = 0; i < 15; i++) {
    series.push({
        data: [5 + i, 6 + i, 3 + i, 4 + i]
    });
}

Highcharts.chart('container', {

    chart: {
        events: {
            load: function () {
                this.series.forEach(function (series, i) {
                    if (i < 3) {
                        series.update({
                            color: 'red'
                        }, false);
                    } else {
                        series.update({
                            color: 'grey'
                        }, false);
                    }
                });
                this.redraw();
            }
        }
    },

  series: series

});

而不是更新图表15次(当您拥有更多系列时,这会导致性能下降),我更新了redraw flag: false,在for loop之后我只做了一次chart.redraw()

© www.soinside.com 2019 - 2024. All rights reserved.