1

2 つのエリア シリーズを含むグラフがあり、2 番目のシリーズの fillOpacity は 0.01 で、最初の凡例がクリックされたときにそのシリーズの fillOpacity を変更したいと考えています。どうすればそれを行うことができますか?

私の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]
        }]
    });
4

1 に答える 1

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/

于 2013-03-01T11:30:59.373 に答える