Libreria di grafici JavaScript


223

Qualcuno consiglierebbe una particolare libreria di grafici JavaScript, in particolare una che non usa affatto il flash?

Risposte:


160

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:

  • Basato su tela, reso in IE usando ExplorerCanvas che a sua volta si basa su VML
  • SVG su browser basati su standard, reso come VML in IE

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):

  • gRaphael , un'estensione della libreria grafica di Raphael
  • Ico , con un'API intuitiva basata su una singola chiamata di funzione per creare grafici complessi

Divulgazione: sono lo sviluppatore di una delle forcelle Ico su github .


5
Grafico e Ico sono due forcelle incompatibili della Ico iniziale di Alex Young. Quindi non è preciso affermare che Ico sia diventato Grafico. Grafico è solo una delle forcelle.
Jean Vincent,

Va notato che Raffaello sembra non essere più mantenuto. L'ultimo commit è stato a luglio 2010 o giù di lì.
Alastair Pitts,

1
Ho appena scaricato le classifiche di Raffaello, mi piacciono molto ma niente documenti, solo per avvertire.
Orbita

@Alastair: Raphael è ora sponsorizzato e sviluppato da Sencha ... o almeno così dicono :)
Roy Tinker,

1
SVG non è supportato in Android pre-Honeycomb. Se essere in grado di visualizzare i grafici su una vasta gamma di dispositivi Android attuali è un requisito, dovresti scegliere una soluzione basata su Canvas. Questo articolo su Sencha Touch Charts fornisce ulteriori dettagli sulla creazione di grafici mobili in generale e sul perché Sencha Touch ha intrapreso il percorso Canvas.
Pallavi Anderson,

70

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.


2
Questa è la stessa libreria utilizzata da Geoff Dalgas per creare il grafico della reputazione qui su StackOverflow. È davvero un bel po 'di kit.
Charles Roper,

La mia unica vera lamentela riguardo a flot è che quando si esegue il rendering in IE sembra terribile a qualsiasi livello di zoom diverso dal 100% (cioè tutte le linee / i blocchi non si ridimensionano insieme - questo sicuramente è un problema per quelli di noi con display ad alta risoluzione).
Bittercoder,

2
Sembra che le carte flott siano più belle di molte altre che ho visto. Ecco un link a 20 librerie di grafici JavaScript: javascript.open-libraries.com/utilities/chart/…
B Seven

Mi piace anche flot, l'ho usato molte volte su diverse app web prima.
fedmich,

1
Mi piace il flot in generale, ma vuole che tutti i dati siano numeri, quindi se vuoi tracciare qualcosa come vendite per cliente (per nome) o per prodotto, non funzionerà
Zachary K

60

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.


12
Vale la pena sottolineare che questa libreria è gratuita per uso non commerciale, ma costa denaro per siti singoli e siti multipli. Sembra comunque un prezzo abbastanza ragionevole.
Nick Spacek,

All'inizio è una spina spudorata ma sembrano davvero FANTASTICI !! Tuttavia, non per uso commerciale gratuito, non ho alcun riferimento se il prezzo è ragionevole o no, ma sembrano ok a colpo d'occhio!
Trufa,

Questa è la stessa libreria di grafici usata in CloudFlare.com ed è davvero fantastica. Stavo per usare la libreria per grafici DevExpress, che è ASP.NET e il rendering e l'immagine nel server quando mi sono imbattuto nella libreria highcharts. Sono stato subito convinto che questa è la strada da percorrere. Quando ho scoperto che CloudFlare, che ha una delle dashboard / analitiche più accattivanti che abbia mai visto, lo usa anche io sono stato venduto! Attualmente sto sperimentando, e ha funzionato nel mio primo tentativo di incorporare un grafico nella mia pagina Web ... quindi sembra anche facile da usare!
Loudenvier,

1
Un altro voto per Highcharts. Attualmente lo sto usando ed è fantastico. Supporta jQuery, Mootools e Prototype ed è molto facile da configurare e utilizzare.
gnclmorais,

1
StackOverflow stessa utilizza Highcharts stackoverflow.com/users/22656/jon-skeet?tab=reputation
Scott

36

Forse non è esattamente quello che stai cercando, ma
l'API Chart di Google è piuttosto interessante e facile da usare.


16
non è javascript
user102008

5
ricorda, Google Chart richiede una connessione a Internet e ha anche alcuni limiti sul numero di richieste dei clienti consentite
fedmich,

@ user102008: è adesso :) (Puoi ancora accedere alla vecchia API basata su immagini se vuoi)
Spycho,

L'API di Google Chart non può essere utilizzata offline, male per lo sviluppo mobile.
oldwizard,

Devo fare un candelabro di tipo orizzontale, qualcuno sa se è possibile con l'API di google chart?
Tom Stickel,

15

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.

http://code.shutterstock.com/rickshaw/


Sulla base di una rapida occhiata, non credo che D3 "sostituisca" Protovis. Direi che il team "è passato" perché lo vede più interessante e all'avanguardia.
David J.

14

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


14

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.


Lo penso anche dopo aver fatto qualche ricerca. In questo momento sembra una delle migliori librerie di grafici JS gratuite disponibili.
jturcotte,

4

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.




3

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+.


1
voglio solo dire che non ci sono documenti per questa libreria, anche se è molto bella.
Orbita


3

Un altro è RGraph: grafici Javascript e libreria di grafici:

http://www.rgraph.net

Basato su tela quindi è veloce e ci sono circa 20 diversi tipi di grafici. È gratuito anche per uso non commerciale!


2

Il mio preferito (flot) è già stato menzionato.

Ma assicurati di indagare su Ortho . È eccellente per grafici ad albero e linee temporali.





2

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.



1

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.






0

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.


Stavo giocando con questo, e ho notato che non c'è modo di ottenere una licenza commerciale sul sito web. In effetti, il sito web non è chiaro se questo è gratuito o meno.
zumalifeguard,

Hai ragione. Il sito Web è stato aggiornato, in modo che ora puoi scoprire facilmente quale licenza commerciale si adatta alle tue esigenze: ArcadiaCharts .
Hoang-Tran Vo,


0

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


0

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.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.