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

243
Vistas
Chartjs 3.x: ¿cómo duplicar el eje X en ambos lados del gráfico de barras horizontales con solo 1 conjunto de datos?

Estoy tratando de duplicar las marcas del eje X en ambos lados del gráfico (inferior y superior).

He visto preguntas anteriores sobre esto, pero esto fue durante chartjs 2.x. Han cambiado la sección de escala de las opciones desde entonces. Solías ser capaz de hacer algo similar a esto:

 xAxes: [ { position: 'top', }, { position: 'bottom', } ]

Pero en Chartjs 3.x no puede proporcionar una matriz para xAxes. Ahora debe agregar una ID a su conjunto de datos y luego, en las opciones de escala, haga referencia a esa ID. Pero no puedo hacer referencia a 1 conjunto de datos en 2 objetos de escala cuando uno dice posición: superior y la otra posición: inferior. Solo usará el último objeto de escala.

Entonces mi pregunta es, con UN conjunto de datos. ¿Cómo puedo hacer que el eje X esté en la parte inferior del gráfico Y en la parte superior de un gráfico de barras horizontales? De esa manera, en caso de que el gráfico sea grande, no tengo que desplazarme siempre hacia abajo para ver cuál es el valor.

Editar: según los comentarios, ahora tengo el siguiente resultado, que está más cerca de lo que estoy buscando, pero lo que sucede con las marcas en la parte superior. ¿Por qué no coinciden con los números en la parte inferior?

 new Chart('myChart', { type: 'line', data: { labels: ['A', 'B', 'C', 'D', 'E', 'F'], datasets: [{ data: [1, 3, 6, 2, 8, 9], borderColor: '#00D', }] }, options: { indexAxis: "y", scales: { x: { }, x1: { position: 'top' } } } });
 canvas { max-height: 180px; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.5.1/chart.min.js"></script> <canvas id="myChart"></canvas>

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

0

En caso de que desee ver los mismos ticks en la parte superior del gráfico, simplemente defina un segundo eje x de la siguiente manera:

 x1: { position: 'top' }

Eche un vistazo al código ejecutable a continuación y vea cómo funciona:

 new Chart('myChart', { type: 'line', data: { labels: ['A', 'B', 'C', 'D', 'E', 'F'], datasets: [{ data: [1, 3, 6, 2, 8, 9], borderColor: '#00D', }] }, options: { scales: { x: { }, x1: { position: 'top' } } } });
 canvas { max-height: 180px; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.5.1/chart.min.js"></script> <canvas id="myChart"></canvas>

about 4 years ago · Juan Pablo Isaza Denunciar

0

En caso de que desee producir un gráfico de barras horizontales, puede definir los ejes x de la siguiente manera:

 scales: { x: { min: 0 }, x1: { position: 'top', min: 0, max: 9 } }

Eche un vistazo a la muestra ejecutable a continuación y vea cómo funciona cuando los datos son dinámicos:

 var data = [3, 6, 8, 9, 31]; new Chart('myChart', { type: 'bar', data: { labels: ['A', 'B', 'C', 'D', 'E'], datasets: [{ data: data, borderColor: '#00D', }] }, options: { indexAxis: 'y', plugins: { legend: { display: false } }, scales: { x: { min: 0, max: Math.max(...data) }, x1: { position: 'top', min: 0, max: Math.max(...data) } } } });
 canvas { max-height: 180px; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.5.1/chart.min.js"></script> <canvas id="myChart"></canvas>

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