Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

275
Vistas
¿Cómo usar el exceso de espacio vertical en el gráfico de barras apiladas?

Estoy tratando de crear un gráfico de barras apiladas (con chart.js 3.7+) que usa todo el lienzo:

 new Chart(..., { type: 'bar', data: { labels: ['a','b','c','d','e'], datasets: [{ backgroundColor: '#ff00ff', data: [20,40,60,40,20], },{ backgroundColor: '#00ff00', data: [100,200,300,200,100], }] }, options: { maintainAspectRatio: false, responsive: true, plugins: { legend: { display: false }, }, scales: { x: { display: false, stacked: true }, y: { display: true, stacked: true } } } });

Cuando uso un gráfico de barras normal, el gráfico se estira para usar todo el espacio vertical:

Gráfico de barras

Pero cuando apilo las barras, la barra más larga combinada no ocupa todo el espacio vertical:

gráfico de barras apiladas

¿Cómo puedo hacer que el gráfico de barras apiladas se estire para usar todo el espacio vertical disponible?

Ver ejemplo aquí .

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Puede sumar sus matrices, encontrar el valor máximo en la matriz resultante y establecer la propiedad options.scales.y.max con este valor:

 let data1 = [20,40,60,40,20]; let data2 = [100,200,300,200,100]; let sum = data1.map(function (num, idx) { return num + data2[idx]; }); let max = Math.max(...sum); var options = { maintainAspectRatio: false, responsive: true, plugins: { legend: { display: false }, }, scales: { x: { display: false, stacked: true }, y: { display: true, stacked: true, max: max } } }; var mychart = new Chart(document.getElementById('mycanvas2').getContext('2d'), { type: 'bar', data: { labels: ['a','b','c','d','e'], datasets: [{ backgroundColor: '#ff00ff', data: data1 },{ backgroundColor: '#00ff00', data: data2 }] }, options: options });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.7.0/chart.min.js"></script> <div style="width:400px; height: 200px"> <canvas id="mycanvas2"></canvas> </div>

about 4 years ago · Juan Pablo Isaza Denunciar

0

De acuerdo con este problema con chart.js , puede configurar los límites del eje y para que se ajusten a los datos:

 options: { scales: { x: { display: false, stacked: true }, y: { display: true, stacked: true, bounds: 'data' <---------- } } }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda