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

133
Visualizações
¿Hay alguna forma de obtener y de x específico que no pertenezca al conjunto de datos en el gráfico Chart.js?

Tengo pocos puntos, por ejemplo. ( { x: 5, y: 10 }, { x: 10, y: 15 }, { x: 20, y: 25 } ). Chart.js puede dibujar un gráfico para mí basándose en estos puntos. ¿Hay alguna forma de leer el valor y de, por ejemplo. 13 usando la tabla dibujada? Estoy usando chart.js 2.9.3 (no puedo cambiarlo) y vue.js. ¡Gracias por cualquier consejo!

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Esto se puede hacer con la siguiente función:

 function valueAt(x) { let xScale = chart.scales['x-axis-0']; let yScale = chart.scales['y-axis-0']; let data = chart.data.datasets[0].data; let index = data.findIndex(o => ox >= x); let prev = data[index - 1]; let next = data[index]; if (prev && next) { let slope = (next.y - prev.y) / (next.x - prev.x); return prev.y + (x - prev.x) * slope; } }

La mayoría del código se copia de interpolate.js del excelente chartjs-plugin-crosshair .

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

 const chart = new Chart("chart", { type: 'line', data: { datasets: [{ label: '', data: [{ x: 5, y: 10 }, { x: 10, y: 15 }, { x: 20, y: 25 }], type: 'line', borderColor: 'red', fill: false, }], }, options: { responsive: false, scales: { xAxes: [{ type: 'linear' }] } } }); function valueAt(x) { let xScale = chart.scales['x-axis-0']; let yScale = chart.scales['y-axis-0']; let data = chart.data.datasets[0].data; let index = data.findIndex(o => ox >= x); let prev = data[index - 1]; let next = data[index]; if (prev && next) { let slope = (next.y - prev.y) / (next.x - prev.x); return prev.y + (x - prev.x) * slope; } } let x = 13; let y = valueAt(x); console.log('x: ' + x + ' -> y: ' + y);
 <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js"></script> <canvas id="chart" height="200"></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