dc.js – Escuchando para renderizar grupos de gráficos

Estoy tratando de refactorizar algunos códigos d3 personalizados que escribí para generar una serie de gráficos impulsados ​​por filtros cruzados mediante la incorporación de dc.js.

Mi problema principal es que tengo algunos tipos de gráficos que no son compatibles con dc.js (por ejemplo, una partición Sunburst ) y estoy tratando de encontrar la forma de representarlos junto con un grupo de gráficos dc.js.

Filtrar un solo gráfico dc.js automáticamente renderizará / redibujará todos los demás gráficos que pertenezcan al mismo grupo de gráficos . ¿Es posible enganchar de algún modo en ese evento global de reedición, de modo que pueda volver a dibujar los gráficos que no son de CC al mismo tiempo?

Entiendo que hay oyentes en cada gráfico individual, por ejemplo, chart.on("postRender", function(chart){...}) pero no parece haber una forma de enganchar en la re-representación de un grupo de gráficos . ¿Hay un buen patrón por el cual esto podría lograrse?

La forma “correcta” de hacerlo es registrar su tabla en el registro de DC con dc.registerChart

https://github.com/dc-js/dc.js/blob/master/src/core.js#L91

Desafortunadamente, esto no está documentado actualmente, pero en realidad hay un acoplamiento bastante ligero aquí. Solo necesita implementar .redraw() y .render() en algún objeto (su gráfico o un contenedor) y pasarlo como el primer argumento.

Póngalo en el mismo grupo (segundo arg) que los gráficos a los que debería responder.

render () crea los elementos dom desde cero, y redraw () los actualiza cuando los datos cambian.

Parece que también puede necesitar implementar un .filterAll() ficticio, pero eso es un descuido.

Agregué un problema para documentar esto:

https://github.com/dc-js/dc.js/issues/676

Comente aquí o aquí si tiene problemas.

EDITAR: esto ahora está documentado, gracias a Jasmine Hegman. Ver la documentación de chartRegistry .

    Intereting Posts