Highcharts Gauge Series Chart

In the previous chapters, we learned how to setup highcharts library and how to create a chart with required configurations using highcharts library in our webpage. Now, we will learn how to create a gauge series or speedometer chart using highcharts library with examples.

Highcharts Gauge Series Chart Example

Following is the example of creating a gauge series or speedometer chart by setting the required chart properties using highcharts library.

 

Live Preview

<html>

<head>

    <title>Highcharts Gauge Series Chart</title>

    <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>

    <script src="https://code.highcharts.com/highcharts.js"></script>

    <script src="https://code.highcharts.com/highcharts-more.js"></script>

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

    <script src="https://code.highcharts.com/modules/export-data.js"></script>

    <script type="text/javascript">

        $(function() {

            Highcharts.chart('container', {

                    chart: {

                        type: 'gauge',

                        plotBackgroundColor: null,

                        plotBackgroundImage: null,

                        plotBorderWidth: 0,

                        plotShadow: false

                    },

                    title: {

                        text: 'Speedometer'

                    },

                    pane: {

                        startAngle: -150,

                        endAngle: 150,

                        background: [{

                            backgroundColor: {

                                linearGradient: {

                                    x1: 0,

                                    y1: 0,

                                    x2: 0,

                                    y2: 1

                                },

                                stops: [

                                    [0, '#FFF'],

                                    [1, '#333']

                                ]

                            },

                            borderWidth: 0,

                            outerRadius: '109%'

                        }, {

                            backgroundColor: {

                                linearGradient: {

                                    x1: 0,

                                    y1: 0,

                                    x2: 0,

                                    y2: 1

                                },

                                stops: [

                                    [0, '#333'],

                                    [1, '#FFF']

                                ]

                            },

                            borderWidth: 1,

                            outerRadius: '107%'

                        }, {

                            // default background

                        }, {

                            backgroundColor: '#DDD',

                            borderWidth: 0,

                            outerRadius: '105%',

                            innerRadius: '103%'

                        }]

                    },

                    // the value axis

                    yAxis: {

                        min: 0,

                        max: 200,

                        minorTickInterval: 'auto',

                        minorTickWidth: 1,

                        minorTickLength: 10,

                        minorTickPosition: 'inside',

                        minorTickColor: '#666',

                        tickPixelInterval: 30,

                        tickWidth: 2,

                        tickPosition: 'inside',

                        tickLength: 10,

                        tickColor: '#666',

                        labels: {

                            step: 2,

                            rotation: 'auto'

                        },

                        title: {

                            text: 'km/h'

                        },

                        plotBands: [{

                            from: 0,

                            to: 120,

                            color: '#55BF3B' // green

                        }, {

                            from: 120,

                            to: 160,

                            color: '#DDDF0D' // yellow

                        }, {

                            from: 160,

                            to: 200,

                            color: '#DF5353' // red

                        }]

                    },

                    series: [{

                        name: 'Speed',

                        data: [80],

                        tooltip: {

                            valueSuffix: ' km/h'

                        }

                    }]

                },

                // Add some life

                function(chart) {

                    if (!chart.renderer.forExport) {

                        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);

                    }

                });

        });

    </script>

</head>

<body>

    <div id="container" style="width: 100%; height: 400px;"> </div>

</body>

</html>

If you observe the above example, we created a gauge series or speedometer chart using highcharts library with required properties.

 

When we execute the above highcharts example, we will get the result like as shown below.

 

Highcharts gauge series chart example result

 

This is how we can create a gauge series or speedometer chart using highcharts library with required properties.