Chart.jsを使用して、それぞれが独自のYスケール/軸(グラフの左側、右側)を持つ2つのデータセットで折れ線グラフを作成しようとしています。
これは私のコードです( jsfiddle ):
var canvas = document.getElementById('chart');
new Chart(canvas, {
type: 'line',
data: {
labels: [ '1', '2', '3', '4', '5' ],
datasets: [
{
label: 'A',
yAxesGroup: 'A',
data: [ 100, 96, 84, 76, 69 ]
},
{
label: 'B',
yAxesGroup: 'B',
data: [ 1, 1, 1, 1, 0 ]
}
]
},
options: {
yAxes: [
{
name: 'A',
type: 'linear',
position: 'left',
scalePositionLeft: true
},
{
name: 'B',
type: 'linear',
position: 'right',
scalePositionLeft: false,
min: 0,
max: 1
}
]
}
});
ただし、2番目の軸は表示されず、2番目のデータセットは最初の軸とまったく同じようにスケーリングされます(0から1ではなく0から100)。何を変更する必要がありますか?
ChartJs 2.xの場合、変更する必要があるのは2つだけです(2.xオプションと私のフォークのマルチ軸オプションを組み合わせようとしたようですか?)、
yAxes
フィールドはscales
オブジェクト内にある必要がありますticks
オブジェクトにラップするだけです。scalePositionLeft
これはposition
でカバーされています例:
var canvas = document.getElementById('chart');
new Chart(canvas, {
type: 'line',
data: {
labels: ['1', '2', '3', '4', '5'],
datasets: [{
label: 'A',
yAxisID: 'A',
data: [100, 96, 84, 76, 69]
}, {
label: 'B',
yAxisID: 'B',
data: [1, 1, 1, 1, 0]
}]
},
options: {
scales: {
yAxes: [{
id: 'A',
type: 'linear',
position: 'left',
}, {
id: 'B',
type: 'linear',
position: 'right',
ticks: {
max: 1,
min: 0
}
}]
}
}
});