zawarudo
zawarudo

Reputation: 2496

Ability to show labels of checked serie after rendering highcharts

I managed to have highcharts where through checkbox I can display value of series, if checkbox is checked or not, but now I am trying to for example right after rendering to select ( check ) first serie while rest of them are unchecked by default right after

this.chart =  new Highcharts.Chart(chartConf);
this.chart.series[0].selected = true;

But even if value is true checkbox remains unchecked, is there any way to by default have only first serie checked to true while rest of them remain unchecked ?

$(function () {
    var chart;

    $(document).ready(function() {

        chart = new Highcharts.Chart({

            chart: {

                renderTo: 'container',

                type: 'line',

                marginRight: 130,

                marginBottom: 25

            },
            plotOptions: {
                    series: {
             						 dataLabels: {
               								 enabled: false
              					}
           					 },
        		line: {
            
                events: {
                    checkboxClick: function (event){
                    
                     if(event.checked)
		                        	{
		                        	 var enabled = !this.options.dataLabels.enabled;
                        this.update({
                            dataLabels:{
                                enabled: true
                            }
                        });
                        
                   return true; 
		                        	}
		                        else{
		                        	 var a = !this.options.dataLabels.enabled;
                        this.update({
                            dataLabels:{
                                enabled: false
                            }
                        });
                        
                   return false; 
		                        	}
                     
                		},
         
                   
           		},
            	showInLegend: true,
               showCheckbox: true
       		 }
    		},                
            title: {

                text: 'Monthly Average Temperature',

                x: -20 //center

            },

            subtitle: {

                text: 'Source: WorldClimate.com',

                x: -20

            },

            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',

                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',

                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',

                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',

                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]

            }]

        });

    });

    
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="http://code.highcharts.com/modules/exporting.js"></script>



<div id="container" style="min-width: 400px; height: 400px; margin: 0 auto"></div>

Upvotes: 0

Views: 41

Answers (1)

pouyan
pouyan

Reputation: 3449

You can use selected: true in your first series option like this:

series: [{
        name: '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],
    selected: true // Here is the trick
        }, {
            name: '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]} // Continue rest of your code

Here is the working version of yours

$(function () {
    var chart;

    $(document).ready(function() {

        chart = new Highcharts.Chart({

            chart: {

                renderTo: 'container',

                type: 'line',

                marginRight: 130,

                marginBottom: 25

            },
            plotOptions: {
                    series: {
             						 dataLabels: {
               								 enabled: false
              					}
           					 },
        		line: {
            
                events: {
                    checkboxClick: function (event){
                    
                     if(event.checked)
		                        	{
		                        	 var enabled = !this.options.dataLabels.enabled;
                        this.update({
                            dataLabels:{
                                enabled: true
                            }
                        });
                        
                   return true; 
		                        	}
		                        else{
		                        	 var a = !this.options.dataLabels.enabled;
                        this.update({
                            dataLabels:{
                                enabled: false
                            }
                        });
                        
                   return false; 
		                        	}
                     
                		},
         
                   
           		},
            	showInLegend: true,
               showCheckbox: true
       		 }
    		},                
            title: {

                text: 'Monthly Average Temperature',

                x: -20 //center

            },

            subtitle: {

                text: 'Source: WorldClimate.com',

                x: -20

            },

            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',

                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],
        selected: true // Here is the trick

            }, {

                name: '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',

                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',

                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]

            }]

        });

    });

    
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="http://code.highcharts.com/modules/exporting.js"></script>



<div id="container" style="min-width: 400px; height: 400px; margin: 0 auto"></div>


EDIT

In your situation one trick is using load function of chart and inside of that callback function trigger your desired checkbox click event like the following:

events:{
  load: function () {
    let chs = $(".highcharts-legend-checkbox");
    if (chs && chs.length>0) chs[0].click();
  }
}

And here is your working code

$(function () {
    var chart;

    $(document).ready(function() {

        chart = new Highcharts.Chart({

            chart: {

                renderTo: 'container',

                type: 'line',

                marginRight: 130,

                marginBottom: 25,
                events:{
                      load:function(){
                          let chs = $(".highcharts-legend-checkbox");
                          if (chs && chs.length>0) chs[0].click();
                      }
                }

            },
            plotOptions: {
                    series: {
             						 dataLabels: {
               								 enabled: false
              					}
           					 },
        		line: {
            
                events: {
                    checkboxClick: function (event){
                    
                     if(event.checked)
		                        	{
		                        	 var enabled = !this.options.dataLabels.enabled;
                        this.update({
                            dataLabels:{
                                enabled: true
                            }
                        });
                        
                   return true; 
		                        	}
		                        else{
		                        	 var a = !this.options.dataLabels.enabled;
                        this.update({
                            dataLabels:{
                                enabled: false
                            }
                        });
                        
                   return false; 
		                        	}
                     
                		},
         
                   
           		},
            	showInLegend: true,
               showCheckbox: true
       		 }
    		},                
            title: {

                text: 'Monthly Average Temperature',

                x: -20 //center

            },

            subtitle: {

                text: 'Source: WorldClimate.com',

                x: -20

            },

            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',

                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',

                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',

                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',

                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]

            }]

        });

    });

    
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="http://code.highcharts.com/modules/exporting.js"></script>



<div id="container" style="min-width: 400px; height: 400px; margin: 0 auto"></div>

Upvotes: 1

Related Questions