【发布时间】:2017-08-06 07:52:53
【问题描述】:
我正在尝试使用 chart.js 实现类似的目标。我想根据每个年龄组显示男性/女性的数据:
这是我的图表选项:
var options = {
layout: {
padding: {
top: 5,
}
},
scales:
{
yAxes: [{
display: true,
barPercentage: 0.4,
ticks: {
fontSize: 12
},
stacked: true,
}],
xAxes: [{
stacked: true,
}]
},
responsive: true,
maintainAspectRatio: false,
legend: {
display: false,
},
animation: {
animateScale: true,
animateRotate: true
},
};
var opt = {
type: "horizontalBar",
data: {
labels: ageGroup,
datasets: [{
label: 'Male',
data: maleData,
backgroundColor: '#2196F3',
hoverBackgroundColor: '#2196F3'
},
{
label: 'Female',
data: femaleData,
backgroundColor: '#E91E63',
hoverBackgroundColor: '#E91E63'
}]
},
options: options
};
我把femaleData数组中的正数改成负数就可以达到上面的结果:
for (var i = 0; i < femaleData.length; i++) {
femaleData[i] = -Math.abs(femaleData[i]);
}
但是,0 处的 y 轴并不集中,因为它被推到右侧,因为左侧有更多数据。我什至不确定这是否是将图表设置为相反方向的正确方法。我怎样才能正确地做到这一点?
【问题讨论】:
-
是的,这是正确的方法,这是预期的行为!
-
但是向左增长的 x 轴显示负值。有什么办法可以使它积极吗?此外,将鼠标悬停在栏上时的值也显示为负数。有没有办法覆盖它?因为我似乎找不到任何关于这方面的例子,但我看到一些用谷歌图表可以做到的。
-
是的,有办法!你想要this 之类的东西吗?
-
是的,这就是我想要实现的目标。我通过将女性设置为负值来玩一个把戏:p
标签: javascript chart.js stacked-chart