Highcharts Demo

author(s): Torstein Hønsi

HTML

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

<div id="container"></div>
<button id="add" class="autocompare highcharts-demo-button">Add axis and series</button>
<button id="remove" disabled="disabled" class="autocompare highcharts-demo-button">Remove axis</button>

CSS

#container {
    height: 400px;
}

.highcharts-demo-button {
    background: var(--highcharts-neutral-color-5, #f2f2f2);
    border: none;
    border-radius: 4px;
    color: var(--highcharts-neutral-color-100, #000);
    cursor: pointer;
    display: inline-block;
    font-size: 0.8rem;
    padding: 0.5rem 1.5rem;
    margin: 0.5rem -5px 0.5rem 10px;
    transition: background 250ms;
}

.highcharts-demo-button:hover {
    background: var(--highcharts-neutral-color-10, #e6e6e6);
}

JavaScript

const chart = Highcharts.chart('container', {
    xAxis: {
        categories: [
            'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
            'Oct', 'Nov', 'Dec'
        ]
    },
    yAxis: {
        title: {
            text: 'Temperature'
        },
        lineWidth: 2,
        lineColor: '#F33',
        id: 'temperature-axis'
    },
    series: [{
        name: 'Temperature',
        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
        ],
        color: '#F33'
    }]
});

document.getElementById('add').addEventListener('click', e => {
    chart.addAxis({ // Secondary yAxis
        id: 'rainfall-axis',
        title: {
            text: 'Rainfall'
        },
        lineWidth: 2,
        lineColor: '#08F',
        opposite: true
    });

    chart.addSeries({
        name: 'Rainfall',
        type: 'column',
        color: '#08F',
        yAxis: 'rainfall-axis',
        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
        ]
    });

    e.target.disabled = true;
    document.getElementById('remove').disabled = false;
});

document.getElementById('remove').addEventListener('click', e => {
    chart.get('temperature-axis').remove();

    e.target.disabled = true;
    document.getElementById('add').disabled = false;
});