Я пытаюсь добиться чего-то подобного, используя 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]);
}
Однако, как вы можете видеть, ось Y в 0 не централизована, поскольку она как бы сдвинута в правую сторону, поскольку левая сторона получила больше данных. Я даже не уверен, что это правильный способ установить график в противоположном направлении. Любые идеи?
Заранее спасибо!