代码之家  ›  专栏  ›  技术社区  ›  zawarudo

在呈现高图表后显示选中系列的标签的能力

  •  0
  • zawarudo  · 技术社区  · 7 年前

    我设法有了高图表,通过复选框,我可以显示系列的值,如果复选框被选中或没有,但现在我正在尝试,例如,在渲染后,选择(选中)第一个系列,而其余的默认情况下,在

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

    但是,即使“值为真”复选框保持未选中状态,是否有任何方法可以在默认情况下仅将第一个serie选中为真,而其余部分保持未选中状态?

    $(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>
    1 回复  |  直到 7 年前
        1
  •  1
  •   pouyan    7 年前

    你可以用 selected: true 在您的第一个系列选项中,如下所示:

    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
    

    这是你的工作版本

    $(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>

    编辑

    在你的情况下,一个技巧是使用 load chart函数和回调函数内部触发所需的复选框 click 事件如下:

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

    这是你的工作代码

    $(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”></脚本>
    
    
    
    <div id=“container”style=“min width:400px;height:400px;margin:0 auto”><div>
    推荐文章