JavaScript-Diagrammbibliothek

223

Würde jemand eine bestimmte JavaScript-Diagrammbibliothek empfehlen - insbesondere eine, die überhaupt kein Flash verwendet?

Steve M.
quelle

Antworten:

160

Es gibt eine wachsende Anzahl von Open Source- und kommerziellen Lösungen für reine JavaScript-Diagramme, für die kein Flash erforderlich ist. In dieser Antwort werde ich nur Open Source-Optionen vorstellen.

Es gibt zwei Hauptklassen von JavaScript-Lösungen für Grafiken, für die kein Flash erforderlich ist:

  • Canvas-basiert, im IE mit ExplorerCanvas gerendert, der wiederum auf VML basiert
  • SVG in standardbasierten Browsern, im IE als VML gerendert

Beide Ansätze haben Vor- und Nachteile, aber für eine Diagrammbibliothek würde ich das spätere empfehlen, da es gut in DOM integriert ist, Diagrammelemente mit dem DOM bearbeiten und vor allem DOM-Ereignisse festlegen kann. Im Gegensatz dazu müssen Canvas-Diagrammbibliotheken das DOM-Rad neu erfinden, um Ereignisse zu verwalten. Wenn Sie also nicht beabsichtigen, statische Diagramme ohne Ereignisbehandlung zu erstellen, sollten SVG / VML-Lösungen besser sein.

Für SVG / VML-Lösungen gibt es viele Optionen, darunter:

Raphael ist eine sehr aktive, gut gepflegte und ausgereifte Open-Source-Grafikbibliothek mit sehr guter browserübergreifender Unterstützung, einschließlich IE 6 bis 8, Firefox, Opera, Safari, Chrome und Konqueror. Raphael ist von keinem JavaScript-Framework abhängig und kann daher mit Prototype, jQuery, Dojo, Mootools usw. verwendet werden.

Es gibt eine Reihe von Diagrammbibliotheken, die auf Raphael basieren, einschließlich (aber nicht beschränkt auf):

  • gRaphael , eine Erweiterung der Raphael-Grafikbibliothek
  • Ico mit einer intuitiven API, die auf einem einzelnen Funktionsaufruf basiert, um komplexe Diagramme zu erstellen

Offenlegung: Ich bin der Entwickler einer der Ico-Gabeln auf Github .

Jean Vincent
quelle
5
Grafico und Ico sind zwei inkompatible Gabeln des ursprünglichen Ico von Alex Young. Es ist also nicht richtig zu behaupten, dass Ico zu Grafico geworden ist. Grafico ist nur eine der Gabeln.
Jean Vincent
Es ist zu beachten, dass Raphael anscheinend nicht mehr gewartet wird. Das letzte Commit war ungefähr im Juli 2010.
Alastair Pitts
1
Ich habe gerade Raphael-Charts heruntergeladen und mag es sehr, aber keine Dokumente, nur um mich zu warnen.
Orbit
@Alastair: Raphael wird jetzt von Sencha gesponsert und entwickelt ... oder so heißt es :)
Roy Tinker
1
SVG wird in Android vor Honeycomb nicht unterstützt. Wenn Sie die Diagramme auf einer Vielzahl aktueller Android-Geräte anzeigen möchten, müssen Sie eine Canvas-basierte Lösung auswählen. In diesem Artikel zu Sencha Touch- Diagrammen werden weitere Informationen zum mobilen Charting im Allgemeinen und zu den Gründen, warum Sencha Touch den Canvas-Weg eingeschlagen hat, erläutert.
Pallavi Anderson
70

Wenn Sie jQuery verwenden, habe ich festgestellt, dass Flot sehr gut ist. Probieren Sie die Beispiele aus , um festzustellen, ob sie Ihren Anforderungen entsprechen. Ich habe jedoch festgestellt, dass sie das meiste tun, was ich für mein aktuelles Projekt benötige.

zusätzlich ExtJS 4.0 eine große Anzahl von Diagrammen eingeführt - sehr leistungsfähig und für die Arbeit mit Live-Daten ausgelegt.

Bittercoder
quelle
2
Dies ist dieselbe Bibliothek, mit der Geoff Dalgas hier auf StackOverflow das Reputationsdiagramm erstellt hat. Es ist wirklich ein schönes Stück Kit.
Charles Roper
Meine einzige wirkliche Beschwerde über Flot ist, dass es beim Rendern im IE bei jeder anderen Zoomstufe als 100% schrecklich aussieht (dh alle Linien / Blöcke skalieren nicht zusammen - dies ist definitiv ein Problem für diejenigen von uns mit hochauflösenden Displays).
Bittercoder
2
Es sieht so aus, als ob Flot-Charts besser aussehen als viele der anderen, die ich mir angesehen habe. Hier ist ein Link zu 20 JavaScript-Diagrammbibliotheken: javascript.open-libraries.com/utilities/chart/…
B Seven
Ich mag Flot auch, habe dies schon oft auf verschiedenen Web-Apps verwendet.
Fedmich
1
Ich mag Flot im Allgemeinen, aber es möchte, dass alle Daten Zahlen sind. Wenn Sie also so etwas wie Verkäufe pro Kunde (nach Namen) oder pro Produkt zeichnen möchten, funktioniert es nicht
Zachary K
60

Schauen Sie sich http://www.highcharts.com an !

Highcharts ist eine in reinem JavaScript geschriebene Diagrammbibliothek, mit der Sie Ihrer Website oder Webanwendung auf einfache Weise interaktive Diagramme hinzufügen können. Highcharts unterstützen derzeit Linien-, Spline-, Flächen-, Flächenlinien-, Spalten-, Balken-, Kreis- und Streudiagrammtypen.

Torstein Hønsi
quelle
12
Es sei darauf hingewiesen, dass diese Bibliothek für nichtkommerzielle Zwecke kostenlos ist, für einzelne und mehrere Standorte jedoch Geld kostet. Es scheint jedoch ein ziemlich vernünftiger Preis zu sein.
Nick Spacek
Zuerst als schamloser Stecker, aber sie sehen WIRKLICH fantastisch aus !! Es ist zwar nicht kostenlos für die kommerzielle Nutzung, ich habe keine Referenz, ob die Preise angemessen sind oder nicht, aber sie sehen auf einen Blick in Ordnung aus!
Trufa
Dies ist dieselbe Diagrammbibliothek, die auch in CloudFlare.com verwendet wird, und sie sieht wirklich gut aus. Ich wollte gerade die DevExpress-Diagrammbibliothek verwenden, die ASP.NET ist und im Server rendert und abbildet, als ich auf die Highcharts-Bibliothek stieß. Ich war sofort überzeugt, dass dies der richtige Weg ist. Als ich herausfand, dass CloudFlare, das eines der auffälligsten Dashboards / Analysen hat, das ich je gesehen habe, es auch verwendet, wurde ich verkauft! Ich experimentiere gerade damit und es hat bei meinem ersten Versuch, ein Diagramm in meine Webseite einzubetten, funktioniert ... also scheint es auch einfach zu sein!
Loudenvier
1
Noch eine Stimme für Highcharts. Ich benutze es gerade und es ist großartig. Unterstützt jQuery, Mootools und Prototype und ist sehr einfach einzurichten und zu verwenden.
Gnclmorais
1
Stackoverflow selbst verwendet Highcharts stackoverflow.com/users/22656/jon-skeet?tab=reputation
Scott
36

Es ist vielleicht nicht genau das, wonach Sie suchen, aber
die Chart-API von Google ist ziemlich cool und einfach zu bedienen.

Jan Gressmann
quelle
16
Es ist kein Javascript
user102008
5
Denken Sie
@ user102008: es ist jetzt :) (Sie können immer noch auf die alte bildbasierte API zugreifen, wenn Sie möchten)
Spycho
Die Google Chart-API kann nicht offline verwendet werden, was für die mobile Entwicklung schlecht ist.
Oldwizard
Ich muss einen horizontalen Kerzenhalter machen, weiß jemand, ob es mit Google Chart API möglich ist?
Tom Stickel
15

Es gibt eine weitere Javascript-Bibliothek, die auf SVG basiert. Es heißt Protovis und stammt von der Stanford Visualization Group

Es ermöglicht auch schöne interaktive Grafiken und Visualisierungen.

http://vis.stanford.edu/protovis/ex/

Obwohl es nur für moderne Webbrowser ist

UPDATE: Das protovis-Team ist in eine andere Bibliothek namens d3.js (Data Driven Documents) umgezogen.

"Das Protovis-Team entwickelt derzeit eine neue Visualisierungsbibliothek, D3.js, mit verbesserter Unterstützung für Animation und Interaktion. D3 baut auf vielen Konzepten in Protovis auf."

Die neue Bibliothek finden Sie jetzt in:

http://mbostock.github.com/d3/

UPDATE 2:

"Rickshaw" ist ein JavaScript-Toolkit zum Erstellen interaktiver Zeitreihendiagramme. Basierend auf d3.js vereinfacht dies die Arbeit mit d3.js erheblich, ist jedoch etwas weniger leistungsfähig.

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

Fgblanch
quelle
Aufgrund eines kurzen Blicks glaube ich nicht, dass D3 Protovis "ersetzt". Ich würde sagen, dass das Team "weitergezogen" ist, weil sie es als interessanter und innovativer ansehen.
David J.
14

Ich habe vor kurzem nach einer Javascript-Diagrammbibliothek gesucht und eine ganze Reihe ausgewertet, bevor ich mich schließlich für jqplot entschieden habe, das meinen Anforderungen sehr gut entspricht. Wie in der Antwort von Jean Vincent erwähnt, wählen Sie wirklich zwischen einer Canvas-basierten und einer SVG-basierten Lösung.

Meiner Meinung nach waren die wichtigsten Vor- und Nachteile wie folgt. Die SVG-basierten Lösungen wie Raphael (und Ableger) eignen sich hervorragend, wenn Sie hochdynamische / interaktive Diagramme erstellen möchten. Oder wenn Ihre Diagrammanforderungen weit außerhalb der Norm liegen (z. B. wenn Sie eine Art Hybriddiagramm erstellen möchten oder eine neue Visualisierung entwickelt haben, an die noch niemand gedacht hat). Der Nachteil ist die Lernkurve und die Menge an Code, die Sie schreiben müssen. Sie werden in wenigen Minuten keine Diagramme mehr erstellen, keine echte Lernzeit investieren und dann eine gute Menge Code schreiben, um ein relativ einfaches Diagramm zu erstellen.

Wenn Ihre Diagrammanforderungen einigermaßen Standard sind, z. B. einige Linien- oder Balkendiagramme oder vielleicht ein oder zwei Kreisdiagramme mit begrenzter Interaktivität, sollten Sie sich leinwandbasierte Lösungen ansehen. Es wird kaum eine Lernkurve geben, Sie werden in der Lage sein, grundlegende Diagramme innerhalb weniger Minuten zum Laufen zu bringen, Sie müssen nicht viel Code schreiben, ein paar Zeilen grundlegendes Javascript / JQuery sind alles, was Sie brauchen. Natürlich können Sie nur die von der Bibliothek unterstützten Diagrammtypen erstellen, die normalerweise auf verschiedene Arten von Linien, Balken und Torten beschränkt sind. Die Interaktivitätsoptionen sind äußerst begrenzt, dh für viele der Bibliotheken gibt es keine, obwohl mit den besseren einige begrenzte Hover-Effekte möglich sind.

Ich habe mich für JQplot entschieden, eine Canvas-basierte Lösung, da ich nur einige Standardtypen von Diagrammen wirklich brauchte. Aufgrund meiner Recherchen und des Herumspielens mit den verschiedenen Auswahlmöglichkeiten fand ich, dass es einigermaßen voll ausgestattet ist (wenn Sie nur nach den Standard-Charts suchen) und extrem einfach zu bedienen ist. Daher würde ich es empfehlen, wenn Ihre Anforderungen ähnlich sind.

Um es jetzt zusammenzufassen, einfach und wollen Sie Diagramme, dann gehen Sie mit JQplot. Komplex / anders und nicht unter Zeitdruck, dann geh mit Raphael und Freunden.

Skorks
quelle
14

jqPlot ist großartig. Wenn Ihre Anforderungen ziemlich "normal" sind und Sie nur einige Diagramme zeichnen möchten, sind Sie wahrscheinlich von der Anzahl der js-Diagrammoptionen überwältigt. Angenommen, Sie möchten nicht stundenlang recherchieren, entscheiden Sie sich einfach für jqPlot, da dies wahrscheinlich die beste Wahl ist. Es deckt die meisten Anwendungsfälle für die meisten Menschen gut ab. Einige der Alternativen sind auf einen bestimmten Diagrammtyp spezialisiert oder wurden für einen bestimmten Anwendungsfall erstellt.

Fletch
quelle
Ich denke auch, nachdem ich einige Nachforschungen angestellt habe. Im Moment sieht es nach einer der besten kostenlosen JS-Diagrammbibliotheken aus.
Jturcotte
4

Versuchen Sie als eine Art späte Antwort d3.js
http://mbostock.github.com/d3/

Es ist die Fortsetzung von Protovis.
Der große Unterschied zum Flot liegt in der Anzahl der unterstützten Funktionen.
Obwohl Flot einfacher sein mag, ist d3.js definitiv mächtiger.

Stefan Steiger
quelle
3

Flotr ist eine weitere reine Javascript-Diagrammbibliothek, die auf Prototype basiert und von Flot inspiriert ist

Argelbargel
quelle
3

Probieren Sie PlotKit aus

Jason Bunting
quelle
3

Ich würde gRaphaël für reines JavaScript-Diagramm zusammen mit der reinen JavaScript-Vektorgrafikbibliothek empfehlen, auf der es basiert ( Raphaël ).

gRaphaël unterstützt derzeit Firefox 3.0+, Safari 3.0+, Opera 9.5+ und Internet Explorer 6.0+.

Peter McG
quelle
1
Ich möchte nur aufgeben, dass es keine Dokumente für diese Bibliothek gibt, obwohl es sehr schön ist.
Orbit
3

Ein anderes ist RGraph: Javascript-Diagramme und Diagrammbibliothek:

http://www.rgraph.net

Canvas-basiert, also schnell und es gibt ungefähr 20 verschiedene Diagrammtypen. Es ist auch für nichtkommerzielle Zwecke kostenlos!

Richard
quelle
2

Mein Favorit (Flot) wurde bereits erwähnt.

Aber seien Sie sicher, Ortho zu untersuchen . Es eignet sich hervorragend für Baumdiagramme und Zeitleisten.

Rui Vieira
quelle
2

Wir haben gerade eine Lizenz für die TechOctave Charts Suite für unser neues Startup gekauft. Ich kann sie nur empfehlen. Die Lizenzierung ist einfach. Charts sehen toll aus! Der Einstieg war einfach und verfügt über eine leistungsstarke API, wenn wir sie benötigen. Ich war schockiert, wie sauber und erweiterbar der Code ist. Wirklich zufrieden mit unserer Wahl.

Aaron Reis
quelle
1

Keine Javascript-Bibliothek, aber möglicherweise eine geeignete Alternative. Schauen Sie sich Google Charts an, wo Sie Diagramme erstellen können, indem Sie Querystring-Daten an ihren Webdienst übergeben.

Luke Bennett
quelle
1

Schauen Sie sich Bluff an . Es ist ein JavaScript-Port der Gruff-Grafikbibliothek für Ruby.

John Topley
quelle
1

Protochart ist alles was Sie brauchen

Vince Panuccio
quelle
1

Sencha hat Raphael erworben und jetzt sind ihre Charts ab Version 4 reines Javascript. Emprise und HighCharts, die oben erwähnt wurden, sind meine beiden Favoriten.

http://www.sencha.com/

Justin Thomas
quelle
0

Ich kann ArcadiaCharts empfehlen . Eine brandneue professionelle Diagrammbibliothek für JavaScript und GWT. Läuft in allen Browsern ohne Plugins. Einfach und schnell zu bedienen: Erstellt gut aussehende Diagramme mit nur wenigen Codezeilen. Kostenlos für nichtkommerzielle Zwecke.

Hoang-Tran Vo
quelle
Ich habe damit herumgespielt und festgestellt, dass es keine Möglichkeit gibt, eine kommerzielle Lizenz auf der Website zu erhalten. In der Tat ist die Website nicht klar, ob dies kostenlos ist oder nicht.
Zumalifeguard
Du hast recht. Die Website wurde aktualisiert, sodass Sie jetzt leicht herausfinden können, welche kommerzielle Lizenz Ihren Anforderungen entspricht: ArcadiaCharts .
Hoang-Tran Vo
0

Fusion Charts verfügt über eine neue Javascript / JQuery-Bibliothek, die vielversprechend aussieht.

Amurra
quelle
0

Falls Sie nur ein Balkendiagramm benötigen. Ich habe Code veröffentlicht, den ich in einem alten Projekt verwendet habe. Jemand sagte mir, dass die VML-Implementierung in neueren IE-Versionen fehlerhaft ist, aber die SVG sollte einwandfrei funktionieren. Möglicherweise kehren Sie zum Projekt zurück und veröffentlichen einige Server-Renderer, die ich bereits habe, und möglicherweise die WebGL-Rendering-Ebene. Es gibt einen Link: http://blog.conquex.com/?p=64

Ivan Mishonov
quelle
0

Wahrscheinlich nicht das, wonach das OP sucht, aber da diese Frage zu einer Liste von Optionen für die JS-Diagrammbibliothek geworden ist: jQuery Sparklines ist wirklich cool.

Befiedern
quelle