在一个图表中添加2个图例

时间:2014-03-03 03:08:03

标签: highcharts legend

如何在一个图表中添加2个图例?基本上,我只需要在堆栈图表中显示2个图例副本。http://jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/highcharts/legend/labelformatter/

$(function () {
$('#container').highcharts({

    chart: {
    },

    legend: {
        layout: 'vertical',
        backgroundColor: '#FFFFFF',
        floating: true,
        align: 'left',
        verticalAlign: 'top',
        x: 90,
        y: 45,
        labelFormatter: function() {
            return this.name +' (click to hide)';
        }
    },

    xAxis: {
        categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    },

    series: [{
        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]        
    }, {
        data: [95.6, 54.4, 29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1]     
    }]
});

});

1 个答案:

答案 0 :(得分:1)

highcharts仅支持单个图例。如果你需要额外的,你应该把它创建为html对象,它将在系列中调用show / hide函数,如下例所示:

 $legend = $('#customLegend');

    $.each(chart.series[0].data, function (j, data) {

        $legend.append('<div class="item"><div class="symbol" style="background-color:'+data.color+'"></div><div class="serieName" id="">' + data.name + '</div></div>');

    });

    $('#customLegend .item').click(function(){
        var inx = $(this).index(),
            point = chart.series[0].data[inx];

        if(point.visible)
            point.setVisible(false);
        else
            point.setVisible(true);
    });       

http://jsfiddle.net/N3KAC/1/