Estoy usando Highcharts para representar grupos de series temporales. Por lo tanto, los puntos de datos recopilados del mismo individuo están conectados por líneas, y los puntos de datos de individuos que pertenecen al mismo grupo comparten el mismo color. La leyenda de Highcharts muestra cada serie de tiempo individual en lugar de grupos, y tengo más de cien series temporales, por lo que es feo y poco práctico ocultar y mostrar datos de esa manera.Ocultar _grupos_ de series en Highcharts y jQuery: ¿cómo obtener un rendimiento aceptable?
En su lugar creé botones y usé jQuery para asociarlos con funciones que buscarían coincidencias de colores entre las series temporales y alternar la visibilidad de cada serie coincidente.
Aquí se muestra un ejemplo con un pequeño conjunto de datos: http://jsfiddle.net/bokov/VYkmg/6/
Aquí es la función de serie-ocultación de ese ejemplo:
$("#button").click(function() {
if ($(this).hasClass("hideseries")) {
hs = true;
} else {
hs = false;
}
$(chart.series).each(function(idx, item) {
if (item.color == 'green') {
if (hs) {
item.show();
} else {
item.hide();
}
}
});
$(this).toggleClass("hideseries");
});
Los trabajos anteriores. El problema es que mis datos reales pueden tener más de cien series de tiempo individuales y parece que verificar el color de cada serie es muy lento. Entonces, ¿alguien puede sugerir una forma más eficiente de resolver este problema? ¿Hay algunos métodos incorporados de Highcharts que ya hacen esto? O bien, ¿puedo darle a jQuery un selector más específico?
Intenté profundizar en el elemento <svg>
creado por Highcharts, pero no puedo determinar qué elementos secundarios corresponden a las series en el gráfico.
Gracias.
Usted, señor, es un genio. Gracias desde el fondo de mi corazón. – f1r3br4nd
¡De nada! – EndangeredMassa
Descubrí más sobre la forma en que Highcharts opera aquí. Parece que el redibujado no es necesario para este tipo específico de actualización. No necesita llamarlo cuando haya terminado. Simplemente resáltelo con una función en blanco y vuelva a la normalidad cuando haya terminado. – EndangeredMassa