He estado luchando para hacer que un gráfico de líneas chart.js comience en 0 cuando todos los valores son 0. Si todos los datos de un conjunto de datos son 0, el eje y siempre mostrará valores por debajo de 0 que no quiero allí.
Aquí está el ejemplo:
<div class="container"> <canvas id="lineChart"></canvas> <script> var ctx = document.getElementById('lineChart'); var lineChart = new Chart(ctx, { type: 'line', data: { labels: [1,2,3], datasets: [{ data: [0, 0, 0] }] }, options: { responsive: true, scales: { y: { ticks: { beginAtZero:true } } } } }); </script> <div> Como puede ver, estoy cambiando las opciones de las escalas como se sugiere en la documentación aquí (aparentemente ha habido una migración y este es el camino a seguir en v3, que es lo que estoy usando). Pero el gráfico aún no comenzará en 0: 
Todas las opciones de eje que no sean las marcas funcionan correctamente. ¿Alguna idea de lo que podría estar haciendo mal?
Intentaste colocar el beginAtZero en el lugar V2, en V3 tienes que ponerlo en la raíz del objeto de escala así:
const options = { type: 'line', data: { labels: [1, 2, 3], datasets: [{ label: '# of Votes', data: [0, 0, 0], borderColor: 'pink' }] }, options: { scales: { y: { beginAtZero: true } } } } const ctx = document.getElementById('chartJSContainer').getContext('2d'); new Chart(ctx, options); <body> <canvas id="chartJSContainer" width="600" height="400"></canvas> <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.7.0/chart.js"></script> </body>Para todos los cambios entre V2 y V3, puede leer la guía de migración