Search code examples
javascripthighchartscontextmenu

HighCharts : How to add or remove "chart context menu" from chart container?


Is there any property in highcharts that I can use to remove the chart context menu (the one looks like a hamburger menu on the right hand side) appears in this column chart using javascript?

Is this option comes in highchart by default? I also have a line chart but in that one there was no chart context menu by default. Also if I want to add a chart context menu to that line chart how can I do it?

Highcharts.chart('container', {
  chart: {
    type: 'column',
    events: {
      load: function() {
        var series = this.series[0];
        setInterval(function() {
          newValue = Math.random() * 100;
          series.update({
            data: [newValue],
          }, true)
        }, 1000);
      }
    }
  },
  title: {
    text: 'Monthly Average Rainfall'
  },
  subtitle: {
    text: 'Source: WorldClimate.com'
  },
  xAxis: {
    categories: [
      'Jan'
    ],
    crosshair: true
  },
  yAxis: {
    min: 0,
    title: {
      text: 'Rainfall (mm)'
    }
  },
  tooltip: {
    headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
    pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
      '<td style="padding:0"><b>{point.y:.1f} mm</b></td></tr>',
    footerFormat: '</table>',
    shared: true,
    useHTML: true
  },
  plotOptions: {
    column: {
      pointPadding: 0.2,
      borderWidth: 0
    }
  },
  series: [{
    name: 'Tokyo',
    data: [49.9]

  }, {
    name: 'New York',
    data: [83.6]

  }, {
    name: 'London',
    data: [48.9]

  }, {
    name: 'Berlin',
    data: [42.4]

  }]
});


Solution

  • Just Include <script src="https://code.highcharts.com/modules/exporting.js"></script>

    you can enable or disable it by adding buttonOptions. Defaults to true

    Highcharts.chart('container', {
        navigation: {
            buttonOptions: {
                enabled: true
            }
        }
    });
    

    Highcharts.chart('container', {
      chart: {
        type: 'column',
        events: {
          load: function() {
            var series = this.series[0];
            setInterval(function() {
              newValue = Math.random() * 100;
              series.update({
                data: [newValue],
              }, true)
            }, 1000);
          }
        }
      },
      title: {
        text: 'Monthly Average Rainfall'
      },
      subtitle: {
        text: 'Source: WorldClimate.com'
      },
      xAxis: {
        categories: [
          'Jan'
        ],
        crosshair: true
      },
      yAxis: {
        min: 0,
        title: {
          text: 'Rainfall (mm)'
        }
      },
      tooltip: {
        headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
        pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
          '<td style="padding:0"><b>{point.y:.1f} mm</b></td></tr>',
        footerFormat: '</table>',
        shared: true,
        useHTML: true
      },
      plotOptions: {
        column: {
          pointPadding: 0.2,
          borderWidth: 0
        }
      },
      series: [{
        name: 'Tokyo',
        data: [49.9]
    
      }, {
        name: 'New York',
        data: [83.6]
    
      }, {
        name: 'London',
        data: [48.9]
    
      }, {
        name: 'Berlin',
        data: [42.4]
    
      }]
    });
    <script src="https://code.highcharts.com/highcharts.js"></script>
    <script src="https://code.highcharts.com/modules/exporting.js"></script>
    
    <div id="container" style="height: 400px; margin-top: 1em"></div>