Easy Tutorial
❮ Highcharts 3D Column Null Highcharts Spline Symbols ❯

Highcharts Dual Axis Speedometer

Highcharts Gauges

The following example demonstrates a dual axis speedometer.

We have already learned the basic configuration syntax of Highcharts in previous chapters. Now, let's look at other configurations.


Configuration

chart.type Configuration

Set the chart type to 'gauge'. The chart.type describes the type of chart. The default value is "line".

var chart = {
   type: 'gauge'
};

pane Configuration

The pane is applicable only for polar charts and angular gauges. This configurable object holds the general options for combining x and y axes. Each x and y axis can be associated with a pane by index.

var pane = {
  startAngle: -150,  // Starting degrees for the x-axis or gauge axis, given in degrees. 0 is north.
  endAngle: 150      // Final degrees for the x-axis or angular axis, given in degrees. 0 is north.
};

Example

Filename: highcharts_guage_dualaxes.htm

<html>
<head>
<meta charset="UTF-8" />
<title>Highcharts Tutorial | tutorialpro.org</title>
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="http://code.highcharts.com/highcharts-more.js"></script>     
</head>
<body>
<div id="container" style="width: 550px; height: 400px; margin: 0 auto"></div>
<script language="JavaScript">
$(document).ready(function() {  
   var chart = {      
      type: 'gauge',
      plotBackgroundColor: null,
      plotBackgroundImage: null,
      plotBorderWidth: 0,
      plotShadow: false     
   };
   var credits = {
      enabled: false
   };

   var title = {
      text: 'Dual Axis Speedometer'
   };

   var pane = {
      startAngle: -150,
      endAngle: 150
   };

   // the value axis
   var yAxis = [{
      min: 0,
      max: 200,
      lineColor: '#339',
      tickColor: '#339',
      minorTickColor: '#339',
      offset: -25,
      lineWidth: 2,
      labels: {
         distance: -20,
         rotation: 'auto'
      },
      tickLength: 5,
      minorTickLength: 5,
      endOnTick: false
   }, {
      min: 0,
      max: 124,
      tickPosition: 'outside',
      lineColor: '#933',
      lineWidth: 2,
      minorTickPosition: 'outside',
      tickColor: '#933',
      minorTickColor: '#933',
      tickLength: 5,
      minorTickLength: 5,
      labels: {
         distance: 12,
         rotation: 'auto'
      },
      offset: -20,
      endOnTick: false
   }];

   var series= [{
      name: 'Speed',
      data: [80],
      dataLabels: {
         formatter: function () {
            var kmh = this.y,
            mph = Math.round(kmh * 0.621);
            return '<span style="color:#339">' + kmh + ' km/h</span><br/>' +
               '<span style="color:#933">' + mph + ' mph</span>';
         },
         backgroundColor: {
            linearGradient: {
               x1: 0,
               y1: 0,
               x2: 0,
               y2: 1
            },
            stops: [
               [0, '#DDD'],
               [1, '#FFF']
            ]
         }
      },
      tooltip: {
         valueSuffix: ' km/h'
      }
   }];     

   var json = {};   
   json.chart = chart; 
   json.credits = credits;
   json.title = title;       
   json.pane = pane; 
   json.yAxis = yAxis;    
   json.series = series;      

   // Add some life
   var chartFunction = function (chart) {
      setInterval(function () {
         var point = chart.series[0].points[0],
         newVal,
         inc = Math.round((Math.random() - 0.5) * 20);

         newVal = point.y + inc;
         if (newVal < 0 || newVal > 200) {
            newVal = point.y - inc;
         }
         point.update(newVal);
      }, 3000);
   };

   $('#container').highcharts(json, chartFunction);  
});
</script>
</body>
</html>

Try it »

The above example will output:

Highcharts Gauges

❮ Highcharts 3D Column Null Highcharts Spline Symbols ❯