Risposte:
Esiste un numero crescente di soluzioni commerciali e open source per grafici JavaScript puri che non richiedono Flash. In questa risposta presenterò solo le opzioni Open Source.
Esistono 2 classi principali di soluzioni JavaScript per la grafica che non richiedono Flash:
Ci sono pro e contro di entrambi gli approcci, ma per una libreria di creazione di grafici consiglierei il secondo perché è ben integrato con il DOM, consentendo di manipolare gli elementi dei grafici con il DOM e, soprattutto, impostare gli eventi DOM. Al contrario, le librerie di creazione di grafici Canvas devono reinventare la ruota DOM per gestire gli eventi. Pertanto, a meno che non si intenda creare grafici statici senza gestione degli eventi, le soluzioni SVG / VML dovrebbero essere migliori.
Per le soluzioni SVG / VML ci sono molte opzioni, tra cui:
Raphael è una libreria grafica open source molto attiva, ben mantenuta e matura con un ottimo supporto cross-browser tra cui IE 6 a 8, Firefox, Opera, Safari, Chrome e Konqueror. Raphael non dipende da alcun framework JavaScript e quindi può essere utilizzato con Prototype, jQuery, Dojo, Mootools, ecc ...
Esistono numerose librerie grafiche basate su Raffaello, tra cui (ma non limitato a):
Divulgazione: sono lo sviluppatore di una delle forcelle Ico su github .
Se stai usando jQuery ho trovato che flot è molto buono - prova gli esempi per vedere se soddisfano le tue esigenze, ma li ho trovati per fare la maggior parte di ciò che mi serve per il mio progetto attuale.
Inoltre ExtJS 4.0 ha introdotto una serie eccezionale di grafici: molto potente ed è progettato per funzionare con dati live.
Dai un'occhiata a http://www.highcharts.com !
Highcharts è una libreria per grafici scritta in puro JavaScript, che offre un modo semplice per aggiungere grafici interattivi al tuo sito web o applicazione web. Highcharts attualmente supporta i tipi di grafico a linee, spline, area, aree, linea, colonna, barra, grafico a torta e scatter.
Forse non è esattamente quello che stai cercando, ma
l'API Chart di Google è piuttosto interessante e facile da usare.
Esiste un'altra libreria javascript basata su SVG. Si chiama Protovis e proviene dal Stanford Visualization Group
Inoltre, consente di realizzare grafica e visualizzazioni interattive.
http://vis.stanford.edu/protovis/ex/
Anche se è solo per i browser Web moderni
AGGIORNAMENTO: Il team di protovis si è trasferito in un'altra libreria chiamata d3.js (Data Driven Documents) mentre dicevano:
"Il team Protovis sta ora sviluppando una nuova libreria di visualizzazione, D3.js, con un supporto migliorato per l'animazione e l'interazione. D3 si basa su molti dei concetti di Protovis"
La nuova libreria è ora disponibile in:
http://mbostock.github.com/d3/
AGGIORNAMENTO 2:
"Rickshaw" è un toolkit JavaScript per la creazione di grafici interattivi di serie temporali. Basato su d3.js che semplifica molto il lavoro con d3.js sebbene sia un po 'meno potente.
Recentemente stavo cercando una libreria di creazione di grafici javascript e ho valutato un sacco di cose prima di accontentarmi di jqplot che si adattava molto bene alle mie esigenze. Come menzionato nella risposta di Jean Vincent, stai davvero scegliendo tra la soluzione canvas e la soluzione svg.
A mio avviso, i principali pro e contro erano i seguenti. Le soluzioni basate su SVG come Raphael (e offshoots) sono ottime se vuoi costruire grafici altamente dinamici / interattivi. O se i tuoi requisiti di creazione di grafici sono molto al di fuori della norma (ad esempio, vuoi creare una sorta di grafico ibrido o hai creato una nuova visualizzazione che nessun altro ha ancora pensato). L'aspetto negativo è la curva di apprendimento e la quantità di codice che dovrai scrivere. Non sbaglierai i grafici in pochi minuti, preparati a investire un po 'di tempo di apprendimento reale e poi a scrivere una buona quantità di codice per produrre un grafico relativamente semplice.
Se i tuoi requisiti di creazione di grafici sono ragionevolmente standard, ad esempio vuoi alcuni grafici a linee o a barre o forse un grafico a torta o due, con interattività limitata, vale la pena esaminare soluzioni basate su tela. Non ci sarà quasi nessuna curva di apprendimento, sarai in grado di ottenere grafici di base in pochi minuti, non dovrai scrivere molto codice, poche righe di javascript / jquery di base saranno tutto ciò di cui hai bisogno. Ovviamente sarai in grado di produrre solo i tipi specifici di grafici supportati dalla libreria, di solito limitati a vari tipi di linee, barre, torte. Le scelte di interattività saranno estremamente limitate, vale a dire inesistenti per molte delle librerie là fuori, sebbene alcuni effetti al passaggio del mouse siano possibili con quelli migliori.
Sono andato con JQplot che è una soluzione basata su tela poiché avevo davvero bisogno solo di alcuni tipi standard di grafici. Dalla mia ricerca e giocando con le varie scelte ho trovato che era ragionevolmente full-optional (se sei solo dopo le classifiche standard) ed estremamente facile da usare, quindi lo consiglierei se i tuoi requisiti sono simili.
Riassumendo, semplifica e desideri i grafici ora, quindi scegli JQplot. Complessi / diversi e non premuti per il tempo, vai con Raffaello e gli amici
jqPlot è fantastico. Se i tuoi requisiti sono abbastanza "normali" e vuoi solo disegnare alcuni grafici, probabilmente sei sopraffatto dalla quantità di opzioni di creazione di grafici js. Supponendo di non voler fare ore di ricerca, basta andare con jqPlot poiché è probabilmente la soluzione migliore. Copre bene la maggior parte dei casi d'uso per la maggior parte delle persone. Alcune delle alternative sono specializzate in un determinato tipo di grafico o costruite tenendo presente un determinato caso d'uso.
Come una specie di risposta tardiva, prova d3.js
http://mbostock.github.com/d3/
È la continuazione del protovis.
La grande differenza da utilizzare è nel numero di funzioni supportate.
Sebbene flot possa essere più semplice, d3.js è sicuramente più potente.
Prova PlotKit
Consiglierei gRaphaël per la creazione di grafici JavaScript puri insieme alla libreria di grafica vettoriale JavaScript pura su cui è costruito ( Raphaël ).
gRaphaël attualmente supporta Firefox 3.0+, Safari 3.0+, Opera 9.5+ e Internet Explorer 6.0+.
un fondamento: http://www.filamentgroup.com/examples/charting_v2/index_2.php
bello: http://www.highcharts.com/
Un altro è RGraph: grafici Javascript e libreria di grafici:
Basato su tela quindi è veloce e ci sono circa 20 diversi tipi di grafici. È gratuito anche per uso non commerciale!
Il mio preferito (flot) è già stato menzionato.
Ma assicurati di indagare su Ortho . È eccellente per grafici ad albero e linee temporali.
C'è molta attività nella libreria di grafici dojo e, cosa fantastica, la sto usando all'interno di un'applicazione AIR senza problemi, è davvero interessante! Vedi ad esempio http://www.sitepen.com/blog/2008/05/27/dojo-charting-event-support-has-landed/
Dai un'occhiata all'API di visualizzazione di Google , che è una specie di generalizzazione dell'API per grafici più semplice
http://code.google.com/apis/visualization/documentation/gallery.html
Ha opzioni interattive molto interessanti tra cui mappe, indicatori e grafici.
Abbiamo appena acquistato una licenza di TechOctave Charts Suite per la nostra nuova startup. Li consiglio vivamente. La licenza è semplice. I grafici sono fantastici! Iniziare è stato semplice e ha una potente API per quando ne abbiamo bisogno. Sono rimasto scioccato da quanto sia pulito ed estensibile il codice. Davvero contento della nostra scelta.
Prova la sequenza temporale simile del MIT che potrebbe essere trasformata in un grafico: http://simile.mit.edu/timeline/
o l'ultimo, http://code.google.com/p/gchart/
Non è una libreria Javascript ma può essere un'alternativa adatta: dai un'occhiata a Google Charts dove puoi generare grafici passando i dati di querystring al loro servizio web.
Dai un'occhiata a Bluff . È una porta JavaScript della libreria grafica di Gruff per Ruby.
Il protocollo è tutto ciò di cui hai bisogno
Sencha ha acquisito Raphael e ora i loro grafici sono in puro javascript a partire dalla versione 4. Emprise e HighCharts menzionati sopra sono i miei due preferiti.
Per i grafici più insoliti: http://thejit.org/
Posso raccomandare ArcadiaCharts . Una nuovissima libreria di creazione di grafici professionali per JavaScript e GWT. Funziona in tutti i browser senza plugin. Facile e veloce da usare: crea grafici di bell'aspetto con poche righe di codice. Gratuito per uso non commerciale.
Fusion Chart ha una nuova libreria javascript / jquery che sembra promettente.
Nel caso in cui sia necessario solo un grafico a barre. Ho pubblicato del codice che ho usato in un vecchio progetto. Qualcuno mi ha detto che l'implementazione di VML è stata interrotta nelle ultime versioni di IE, ma SVG dovrebbe funzionare bene. Potrebbe tornare al progetto e rilasciare alcuni renderer lato server che ho già e forse il livello di rendering WebGL. C'è un link: http://blog.conquex.com/?p=64
Probabilmente non quello che l'OP sta cercando, ma da quando questa domanda è diventata un elenco di opzioni della libreria di grafici JS: jQuery Sparklines è davvero interessante.
Consulta i grafici ZingChart HTML5 Canvas, SVG, VML e Flash . Libreria molto potente e compatibile. Faccio parte del team di Zing: menzionaci su Twitter @zingchart o fai qualsiasi domanda a support@zingchart.com.