Highcharts更改legendItemClick上的系列填充不透明度

时间:2013-02-27 14:42:14

标签: javascript highcharts opacity legend

我有一个包含两个区域系列的图表,第二个系列的fillOpacity为0.01,我想在点击第一个图例时更改该系列的fillOpacity。我该怎么做呢?

My jsfiddle

chart = new Highcharts.Chart({
        chart: {
            renderTo: 'container',
            marginRight: 130,
            marginBottom: 25
        },
        xAxis: {
            categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
                'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
        },
        yAxis: {
            title: {
                text: 'Temperature (°C)'
            },
            plotLines: [{
                value: 0,
                width: 1,
                color: '#808080'
            }]
        },
        tooltip: {
            formatter: function() {
                    return '<b>'+ this.series.name +'</b><br/>'+
                    this.x +': '+ this.y +'°C';
            }
        },
        legend: {
            layout: 'vertical',
            align: 'right',
            verticalAlign: 'top',
            x: -10,
            y: 100,
            borderWidth: 0
        },
        series: [{
            name: 'Tokyo',
            type: 'area',
            events: {
                legendItemClick: function() {
                                chart.series[1].fillOpacity = 0.75;
                                chart.redraw();
                }
            },
            data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]
        }, {
            name: 'New York',
            type: 'area',
            fillOpacity: '0.01',
            data: [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5]
        },
          {
            name: 'New York',
            type: 'area',
            fillOpacity: '0.01',
            data: [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5]
        }]
    });

1 个答案:

答案 0 :(得分:0)

您可以通过索引检查单击“图例中的链接”,然后修改arwa SVG对象(在系列行下)并设置您自己的背景。

if((this.index==0) {
                        //set background for second serie
                        this.chart.series[1].area.attr({
                            fill:'rgba(170,70,67,0.5)'
                        });
                    }

http://jsfiddle.net/4nd7d/5/