Я создаю приложение на Ionic, которое получает данные из API и показывает их на горизонтальной диаграмме. Но количество данных не является значением по умолчанию, тогда иногда высоты диаграммы недостаточно
и
и у меня есть проблемы с автоматической настройкой горизонтальной диаграммы по высоте. Я уже пытался установить height: auto
, но chart.js устанавливает высоту по умолчанию.
Мой HTML:
<div class="chart-container" >
<canvas #barCanvas></canvas>
</div>
Мой CSS:
.chart-container{
position: relative;
margin: auto;
height: 110vh;
width: 80vw;
}
My JS
private loadChart(){
var backgroundColor = [];
if (this.barChart) {
this.barChart.destroy();
}
for (let x = 0; x < this.servicos.length; x ++) {
backgroundColor[x] = this.randomColor();
}
this.barChart = new Chart(this.barCanvas.nativeElement, {
type: 'horizontalBar',
data: {
labels: this.temp.labels,
datasets: [{
label:this.consulta.Unidade,
data: this.temp.valores,
backgroundColor: backgroundColor,
borderWidth: 0
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
scales: {
xAxes:[{
ticks: {
beginAtZero: true
}
}],
yAxes: [{
ticks: {
beginAtZero: true
}
}]
}
}
});
}
[ОБНОВЛЕНИЕ 1] Я пытался изменить значения height
, сравнивая размер таблицы перед ее созданием. Это сработало, но у меня есть фильтр, который выполняет новый запрос и строит новую диаграмму, но для свойства height установлены значения по умолчанию для chartjs.
if(this.servicos.length <= 10){
document.getElementById("chart-container").style.height = "300px"
}
if(this.servicos.length > 10 ){
document.getElementById("chart-container").style.height = "900px"
}