Turn long list of items in chart legend into dropdown - Javascript highcharts

Javascript examples for highcharts:Chart Legend

Description

Turn long list of items in chart legend into dropdown

Demo Code

ResultView the demo in separate window

<html>
   <head> 
      <meta name="viewport" content="width=device-width, initial-scale=1"> 
      <script type="text/javascript" src="https://code.jquery.com/jquery-1.9.1.js"></script> 
      <script type="text/javascript">
$(function () {//w w  w  .  j  a  v  a2s .co m
    $('#container').highcharts({
        legend: {
            enabled:false
        },
        series: [{
            name: 'Tokyo',
            id: 'Tokyo',
            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',
            id: 'New York',
            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: 'Berlin',
            id: 'Berlin',
            data: [-0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0]
        }, {
            name: 'London',
            id: 'London',
            data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]
        }]
    },function(chart){
        var $customLegend = $('#customLegend').append('<select id="customSelect"></select>').find('select'),
            $option,
            serie;
        $customLegend.append('<option>Select serie</option>');
        $.each(chart.series, function(i, serie){
            $customLegend.append('<option>' + serie.name + '</option>');
        });
        $customLegend.change(function(){
            $option = $(this).val();
            serie = chart.get($option);
            if(serie.visible) {
                serie.hide();
            } else {
                serie.show();
            }
        });
    });
});

      </script> 
   </head> 
   <body> 
      <script src="https://code.highcharts.com/highcharts.js"></script> 
      <script src="https://code.highcharts.com/modules/exporting.js"></script> 
      <div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div> 
      <div id="customLegend"></div>  
   </body>
</html>

Related Tutorials