2010-01-21 12 views
5

Me pregunto si hay alguna biblioteca de gráficos en 2D que se ejecute en el lado del cliente usando JavaScript. La idea básica es que podrías poner una trama en un navegador y el usuario puede cambiar cosas como escalas y límites X e Y, acercar y alejar, sin tener que recargar constantemente la página web desde el servidor. Los datos en sí mismos se obtendrían a través de AJAX, lo que también le permitiría a un usuario simplemente wget los datos directamente desde el servidor si quieren usar herramientas de servicio pesado. Algo así como la parte 2D de matplotlib para Python.¿Trazado de datos 2D basado en JavaScript de lado abierto?

Esto es algo que eché un vistazo hace mucho tiempo antes de decidir que era más rápido desarrollar algún código que acabara de generar un SVG en el lado del servidor (usando un servidor web eCos incorporado), pero ahora que He estado leyendo sobre cosas como Prototype y jQuery, me pregunto si alguien ya se ha ido y lo ha hecho.

Respuesta

4

Quizás te interese probar Flot. Flot es una biblioteca de trazado de código abierto de Javascript puro para jQuery. Produce gráficas de conjuntos de datos arbitrarios sobre la marcha en el lado del cliente.

En primer lugar, asegúrese de comprobar el siguiente ejemplo que utiliza datos obtenidos a través de AJAX para trazar un gráfico en rea-ltime:

Esto es como ir a buscar y el trazado de la datos con AJAX se vería en código:

function fetchData() { 

    function onDataReceived(series) { 
     data = [ series ]; 

     $.plot($("#placeholder"), data, options); 
    } 

    $.ajax({ 
     url:  "data_feed.php", 
     method: "GET", 
     dataType: "json", 
     success: onDataReceived 
    }); 

    setTimeout(fetchData, 1000); 
} 

desbordamiento de pila también utiliza Flot para el gráfico con zoom en la pestaña de la reputación de perfiles de usuario.

Para más información sobre Flot:

Flot example with zooming overview http://img710.imageshack.us/img710/2062/flot.jpg

+0

Estuve investigando el mismo problema hace un tiempo y Flot siguió subiendo por mí, pero no recuerdo por qué. – Jason

+0

También parece haber un Flotr (http://solutoire.com/flotr/) que se ejecuta en Prototype en lugar de jQuery. Sé que puedo empacar Prototype en 36k más o menos, pero no conozco la huella de jQuery, así que aún no me he decidido por una biblioteca o la otra. Es bueno ver que hay opciones de gráficos para ambos. –

+0

La huella de jQuery tiene 23k de gzip y minificación, y 74k solo se ha modificado. Si prestas jQuery (o prototipo) desde el CDN de Google AJAX Libraries, es posible que la mayoría de tus usuarios no necesiten descargar jQuery del todo, ya que probablemente ya esté en caché en sus navegadores: http://code.google.com/apis/ajaxlibs /. –

5

http://g.raphaeljs.com/ - cruz navegador compatible JS biblioteca de gráficos.

+0

+1 Me gusta mucho Raphael porque los elementos SVG/VML son simplemente nodos DOM normales que puedes adjuntar a eventos después de un hecho. – slebetman

+0

http://g.raphaeljs.com/reference.html - Sin documentos. ; _; (Los gráficos de líneas son todo lo que necesito, los gráficos de símbolos pie, barra y funky son peso muerto. También estoy tratando de ver si puede hacer escalas logarítmicas). –

Cuestiones relacionadas