Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

250
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda