Raju
Raju

Reputation: 459

how to add dynamic y axis in highchart from specific point of x-axis

how to add dynamic y axis from specific point of x-axis.

suppose my x-axis values are (jan,feb,march....dec) 

i want to generate y axis from Jun-dec (x-axis).

when ever i click the button but its generate a yaxis and start from jan- july in x-axis instead of jun-dec

please see the jsfiddle you can understand my problem clearly.

var 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'
    }]
});

// the button handlera
$('#add').click(function () {
    chart.addAxis({ // Secondary yAxis
        id: 'rainfall-axis',
        title: {
            text: 'Rainfall'
        },
        lineWidth: 2,
        lineColor: '#08F',
        opposite: true
    });
    chart.addSeries({
        name: 'Rainfall',
        type: 'line',
        color: '#08F',
        yAxis: 'rainfall-axis',
        data: [135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
    });
     $(this).attr('disabled', true);
 });
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<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"></div>
<button id="add" class="autocompare">Add axis and series</button>
<button id="remove" disabled="disabled" class="autocompare">Remove axis</button>

Upvotes: 1

Views: 2148

Answers (2)

Deep 3015
Deep 3015

Reputation: 10075

Above problem can be solved by

1> Updating array with the null values to match the xAxis categories

$('#add').click(function () {
    chart.addAxis({ // Secondary yAxis
        id: 'rainfall-axis',
        title: {
            text: 'Rainfall'
        },
        lineWidth: 2,
        lineColor: '#08F',
        opposite: true
    });
    chart.addSeries({
        name: 'Rainfall',
        type: 'line',
        color: '#08F',
        yAxis: 'rainfall-axis',
        data: [null,null,null,null,null,null,135.6, 148.5, 216.4, 194.1, 95.6, 54.4]  //update with null values
    });
    $(this).attr('disabled', true);
 });

Fiddle demo

2> Use pointStart to pass extra parameter from what values to start.

$('#add').click(function () {
    chart.addAxis({ // Secondary yAxis
        id: 'rainfall-axis',
        title: {
            text: 'Rainfall'
        },
        lineWidth: 2,
        lineColor: '#08F',
        opposite: true
    });
    chart.addSeries({
        name: 'Rainfall',
        type: 'line',
        color: '#08F',
        yAxis: 'rainfall-axis',
        pointStart: 6, //start point
        data: [135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
    });
    $(this).attr('disabled', true);
 });

Fiddle demo

Upvotes: 2

Core972
Core972

Reputation: 4114

You must add null to your data set

data: [null,null,null,null,null,null,135.6, 148.5, 216.4, 194.1, 95.6, 54.4]

Fiddle

Upvotes: 1

Related Questions