Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

242
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!