高图(JavaScript):如果满足条件,则更改列的颜色

时间:2018-10-11 09:51:13

标签: javascript html highcharts

我想创建一个动态图表,以动态方式显示所有条形,除了观察对象的人(在这种情况下:由Afrika,Amerika等人代表的人)。您知道如何做到(以一种简单的方式)?

谢谢!

来自https://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/highcharts/demo/bar-basic/

的高图代码
Highcharts.chart('container', {
    chart: {
        type: 'bar'
    },
    title: {
        text: 'Historic World Population by Region'
    },
    subtitle: {
        text: 'Source: <a href="https://en.wikipedia.org/wiki/World_population">Wikipedia.org</a>'
    },
    xAxis: {
        categories: ['Africa', 'America', 'Asia', 'Europe', 'Oceania'],
        title: {
            text: null
        }
    },
    yAxis: {
        min: 0,
        title: {
            text: 'Population (millions)',
            align: 'high'
        },
        labels: {
            overflow: 'justify'
        }
    },
    tooltip: {
        valueSuffix: ' millions'
    },
    plotOptions: {
        bar: {
            dataLabels: {
                enabled: true
            }
        }
    },
    legend: {
        layout: 'vertical',
        align: 'right',
        verticalAlign: 'top',
        x: -40,
        y: 80,
        floating: true,
        borderWidth: 1,
        backgroundColor: ((Highcharts.theme && Highcharts.theme.legendBackgroundColor) || '#FFFFFF'),
        shadow: true
    },
    credits: {
        enabled: false
    },
    series: [{
        name: 'Year 1800',
        data: [107, 31, 635, 203, 2]
    }]
});

1 个答案:

答案 0 :(得分:1)

您只需为数据中的点设置color

Highcharts.chart('container', {
    series: [{
        type: 'bar',
        data: [43934, {
            y: 52503,
            color: 'red'
        }, 57177, 69658, 97031, 119931, 137133, 154175]
    }]
});

如果要根据某些条件更改颜色,则可以使用update方法进行定位,例如在load事件中:

chart: {
    events: {
        load: function() {
            Highcharts.each(this.series[0].points, function(p) {
                if (p.y > 8) {
                    p.update({
                        color: 'red'
                    });
                }
            });
        }
    }
}

实时演示:http://jsfiddle.net/BlackLabel/4ucx3skh/

API:https://api.highcharts.com/class-reference/Highcharts.Point#update