Gráficos web para series de tiempo

Tengo una base de datos (mysql) con 10 estadísticas recopiladas cada minuto.

Quiero visualizar esas colecciones a través de diferentes gráficos. Por ejemplo visualizar la colección agrupada por día de la semana, hora del día... etc.

¿Hay alguna biblioteca que pueda hacer eso automáticamente?

Ahora estoy usando highcharts en node.js pero cada vez que necesito un nuevo gráfico debo hacer una nueva consulta SQL y todo el procesamiento es demasiado largo.

El idioma no es importante, e incluso si no es una biblioteca web, puede ser cualquier tipo de biblioteca.

Estoy pensando en (como resultado) algo como Google Analytics. ¿Alguna idea?

Respuestas (1)

La biblioteca NPM / JS más cercana que existe hoy que le permitirá "visualizar" datos (he buscado extensamente ) es dc.js basada en crossfilter , aunque no lo hará automáticamente sin ninguna configuración o entrada de UI.

La razón por la que no hay una biblioteca JS plug-and-play con controles de interfaz de usuario completos para modificar la forma en que se muestran los datos es que esta función generalmente se reserva para aplicaciones de software de análisis / BI completas que están diseñadas específicamente para permitir a los usuarios visualizar datos a lo largo de dimensiones definidas. como las siguientes:

Por supuesto, puede escribir código que logre su objetivo que consultaría dinámicamente su conjunto de datos y agregaría sus datos, que luego se incorporarían a sus gráficos después de un promedio adicional, suma, etc. Espero que pueda ingresar opciones sobre cómo para "visualizar" sus puntos de datos en función de los tipos de campo y/o la configuración de los archivos de configuración o los controles en su interfaz de usuario.

Por ejemplo, puede reutilizar su biblioteca Highcharts existente después de agrupar datos dinámicamente a través de lodash o construcción dinámica de una consulta MySQL GROUP BY . Sin embargo, personalmente recomendé aprovechar las características de dc.js para realizar el dimensionamiento según los tamaños de sus conjuntos de datos, como en este ejemplo .

Si escribe un código personalizado de Node.JS para eliminar datos de gráficos en función de la configuración o la entrada de configuración de la interfaz de usuario, publíquelo como un paquete NPM para que todos podamos usarlo.