Highcharts Multiple Axes 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 multiple axes chart using highcharts library with examples.

Highcharts Multiple Axes Chart Example

Following is the example of creating a multiple axes chart by setting the required chart properties using highcharts library.

 

Live Preview

<html>

<head>

    <title>Highcharts Multiple Axes 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/modules/series-label.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: {

                    zoomType: 'xy'

                },

                title: {

                    text: 'Average Monthly Weather Data for Tokyo',

                    align: 'left'

                },

                subtitle: {

                    text: 'Source: WorldClimate',

                    align: 'left'

                },

                xAxis: [{

                    categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',

                        'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'

                    ],

                    crosshair: true

                }],

                yAxis: [{ // Primary yAxis

                    labels: {

                        format: '{value}°C',

                        style: {

                            color: Highcharts.getOptions().colors[2]

                        }

                    },

                    title: {

                        text: 'Temperature',

                        style: {

                            color: Highcharts.getOptions().colors[2]

                        }

                    },

                    opposite: true

 

                }, { // Secondary yAxis

                    gridLineWidth: 0,

                    title: {

                        text: 'Rainfall',

                        style: {

                            color: Highcharts.getOptions().colors[0]

                        }

                    },

                    labels: {

                        format: '{value} mm',

                        style: {

                            color: Highcharts.getOptions().colors[0]

                        }

                    }

 

                }, { // Tertiary yAxis

                    gridLineWidth: 0,

                    title: {

                        text: 'Sea-Level Pressure',

                        style: {

                            color: Highcharts.getOptions().colors[1]

                        }

                    },

                    labels: {

                        format: '{value} mb',

                        style: {

                            color: Highcharts.getOptions().colors[1]

                        }

                    },

                    opposite: true

                }],

                tooltip: {

                    shared: true

                },

                legend: {

                    layout: 'vertical',

                    align: 'left',

                    x: 80,

                    verticalAlign: 'top',

                    y: 55,

                    floating: true,

                    backgroundColor: (Highcharts.theme && Highcharts.theme.legendBackgroundColor) || 'rgba(255,255,255,0.25)'

                },

                series: [{

                    name: 'Rainfall',

                    type: 'column',

                    yAxis: 1,

                    data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4],

                    tooltip: {

                        valueSuffix: ' mm'

                    }

 

                }, {

                    name: 'Sea-Level Pressure',

                    type: 'spline',

                    yAxis: 2,

                    data: [1016, 1016, 1015.9, 1015.5, 1012.3, 1009.5, 1009.6, 1010.2, 1013.1, 1016.9, 1018.2, 1016.7],

                    marker: {

                        enabled: false

                    },

                    dashStyle: 'shortdot',

                    tooltip: {

                        valueSuffix: ' mb'

                    }

 

                }, {

                    name: 'Temperature',

                    type: 'spline',

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

                    tooltip: {

                        valueSuffix: ' °C'

                    }

                }],

                responsive: {

                    rules: [{

                        condition: {

                            maxWidth: 500

                        },

                        chartOptions: {

                            legend: {

                                floating: false,

                                layout: 'horizontal',

                                align: 'center',

                                verticalAlign: 'bottom',

                                x: 0,

                                y: 0

                            }

                        }

                    }]

                }

            });

        });

    </script>

</head>

<body>

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

</body>

</html>

If you observe the above example, we created a multiple axes chart using highcharts library with required properties.

 

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

 

Highcharts multiple axes chart example result

 

This is how we can create a multiple axes chart using highcharts library with required properties.