Estoy buscando una forma de cambiar el valor (o el formato) de una etiqueta de serie individual al pasar el mouse por cualquier gráfico.

Actualmente solo puedo acceder a todo el eje y no puedo encontrar ningún método getter para etiquetas individuales para adjuntar un oyente.

xAxis.labels().listen('mouseOver', function(e) {
    console.log(this, e.target);
});

Este jsfiddle está tan lejos como llegué (ver el registro de la consola), esto así como el event.target hacen referencia al eje completo pero no a la etiqueta:

https://jsfiddle.net/robstarbuck/pbhd4b7L/9/

0
robstarbuck 27 abr. 2017 a las 17:58

3 respuestas

La mejor respuesta

De hecho, hubo un pequeño error con la función de caché y format (), nuestro equipo de desarrollo hizo la corrección, así que verifique la muestra de trabajo:

var labelIndex = e.labelIndex;
var label = this.getLabel(labelIndex);
var value = xAxis.scale().ticks().get()[labelIndex];
label.format(value * 2);

https://jsfiddle.net/pbhd4b7L/13/: también muestra cómo trabajar con tick valores:

Actualmente toma el js de la rama, pero esta solución se incluirá en el próximo lanzamiento - versión 7.14.0 (ETA: mayo de 2017)

1
AnyChart Support 4 may. 2017 a las 08:06

Nuestra API es un poco complicada aquí, pero estamos trabajando duro para mejorarla. ¿Esto es lo que estás buscando?

    var labelIndex = e.labelIndex;
    var label = this.getLabel(labelIndex);
    label.fontColor('red');
    label.draw();

https://jsfiddle.net/pbhd4b7L/10/

1
Roman Lubushkin 29 abr. 2017 a las 02:49

Este problema se solucionó en la versión 7.14.0, use este código:

  xAxis.labels().listen('mouseOver', function(e) {
    var labelIndex = e.labelIndex;
    var label = this.getLabel(labelIndex);
    var value = xAxis.scale().ticks().get()[labelIndex];
    label.format(value * 2);
    label.fontColor('red');
    label.draw();
  });

Con la última versión: https://jsfiddle.net/2t08ahkg/3/

0
AnyChart Support 31 may. 2017 a las 09:00