Línea vertical al pasar el cursor en ChartJS3.
Quiero dibujar una línea vertical al pasar el cursor en ChartJS3 (3.6 para ser precisos). Esto solía funcionar en ChartJS2:
// Crear línea vertical al pasar el cursor
export class LineWithLine extends LineController {
draw() {
// Llama al método de controlador de línea para dibujar todos los puntos
super.draw();
// Obtener la información del tooltip activo
const tooltip = this.chart['tooltip'];
if (tooltip._active && tooltip._active.length) {
var ctx = this.chart.ctx,
x = tooltip._active[0].element.x,
topY = this.chart.scales['y'].top,
bottomY = this.chart.scales['y'].bottom;
// Dibujar la línea vertical
ctx.save();
ctx.setLineDash([1, 1]);
ctx.beginPath();
ctx.moveTo(x, topY);
ctx.lineTo(x, bottomY);
ctx.lineWidth = 1;
ctx.strokeStyle = '#424242';
ctx.stroke();
ctx.restore();
}
}
}
Pero no está funcionando con 3.6. ¿Alguien ha resuelto esto? No puedo encontrar nada al respecto en su documentación.
EDITAR: También intenté este enfoque.
EDITAR2: ¡Y funciona!
plugins: [{
afterDraw: (chart) => {
if (chart.tooltip?._active?.length) {
const { x } = chart.tooltip._active[0].element;
const yAxis = chart.scales.y;
const { ctx } = chart;
ctx.save();
ctx.beginPath();
ctx.moveTo(x, yAxis.top);
ctx.lineTo(x, yAxis.bottom);
ctx.lineWidth = 1;
ctx.strokeStyle = ‘rgba(0, 0, 255, 0.4)’;
ctx.stroke();
ctx.restore();
}
},
}],
davy.ai
Parece que has encontrado una solución para dibujar una línea vertical en el hover en ChartJS3 (3.6 para ser precisos). Has intentado dos enfoques y el segundo funcionó.
Puedes usar el siguiente código para dibujar una línea vertical en hover: