Jan Keber
Jan Keber

Reputation: 347

Chart.js same Y axis on left and right

I have a working chart that I made using chart.js, and by default the Y axis is on the left, but I would like to have Y axis data on both sides

I know I can change sides using:

yAxes: [{
 position: 'right'
}]

but I would like same Y axis data on both sides. Any idea how to do that?

Thank you for your help.

Upvotes: 20

Views: 22297

Answers (3)

Fixit
Fixit

Reputation: 1

This is what works for me, but I still need to display none the scal at the left side

scales: {
    myScale: {
        type: 'linear',
        position: 'right',
    }
}

Upvotes: 0

Constantin Beer
Constantin Beer

Reputation: 5835

The solution of @Keno didn't worked for me. Think because my chart needed to be min: 1000 and not min: 0.

What worked for me was:

scales: {
   yAxes: [{
    display: true,
    position: 'right',
    ticks: {
     beginAtZero: false,
     max: 2000,
     min: 1000,
     stepSize: 100
    }
   }, {
    display: true,
    position: 'left',
    ticks: {
     beginAtZero: false,
     max: 2000,
     min: 1000,
     stepSize: 100
    }
   }]
 }

Upvotes: 1

Keno
Keno

Reputation: 3945

Here's one way:

your yAxes is an Array [] with objects in it {}, so you need to add another yScale to it, here an example:

  scales: {
   yAxes: [{
    display: true,
    position: 'right',
    ticks: {
     beginAtZero: true
    }
   }, {
    display: true,
    position: 'left',
    ticks: {
     beginAtZero: true,
     max: 45,
     min: 0,
     stepSize: 5
    }
   }]
 }

enter image description here

Live demo: Chart.js Double yAxis

Notice you have to reformat one of the new axis to conform to the default, you might need to format both or tie those parameters to your data if it's going to change depending on what you want it to look like.

Upvotes: 25

Related Questions