我正在尝试使用horizontalBar
图表在chartjs中绘制多个y轴。
以下是最终图表的样子:
这是我的图表配置:
{
type: 'horizontalBar',
data: {
labels: ['a', 'b', 'c', 'd', 'e'],
datasets: [{
label: 'A',
yAxisID: 'A',
data: [10, 20, 30, 40, 50],
backgroundColor: 'blue'
}, {
label: 'B',
yAxisID: 'B',
data: [10, 20, 30, 40, 50],
backgroundColor: 'red'
}]
},
options: {
scales: {
xAxes: [{
ticks: {
beginAtZero: true
}
}],
yAxes: [{
id: 'A',
position: 'left'
}, {
id: 'B',
position: 'right'
}]
}
}
第一个数据集(蓝色数据集)正确显示和,其中包含正确的y轴值(即a
,b
,c
,等)
但第二个数据集根本没有出现。此外,第二个数据集(右侧)的y轴显示50
,40
,30
等,而不是a
,b
, c
...
PS:必须同时显示y轴。这是因为我必须绘制右侧y轴的正值(蓝色值)和左侧y轴的负值(红色值)。
这是jsFiddle
答案 0 :(得分:2)
更改您的第二个数据'对象'标签'和' yAxisID'来自' B'的值到了'。此外,您可以删除第二个' yAxes'底部的物体。
所以它看起来像这样:
var canvas = document.getElementById('chart');
new Chart(canvas, {
type: 'horizontalBar',
data: {
labels: ['a', 'b', 'c', 'd', 'e'],
datasets: [{
label: 'A',
yAxisID: 'A',
data: [100, 90, 80, 70, 60],
backgroundColor: 'blue'
}, {
label: 'A',
yAxisID: 'A',
data: [-100, -90, -80, -70, -60],
backgroundColor: 'red'
}]
},
options: {
scales: {
yAxes: [{
id: 'A',
position: 'left'
}]
}
}
});
jsfiddle:https://jsfiddle.net/vjt2r1mL/362/