Réponses:
Il existe un nombre croissant de solutions Open Source et commerciales pour la cartographie JavaScript pure qui ne nécessitent pas Flash. Dans cette réponse, je ne présenterai que les options Open Source.
Il existe 2 classes principales de solutions JavaScript pour les graphiques qui ne nécessitent pas Flash:
Il y a des avantages et des inconvénients des deux approches, mais pour une bibliothèque de graphiques, je recommanderais la dernière car elle est bien intégrée au DOM, ce qui permet de manipuler les éléments des graphiques avec le DOM et, surtout, de définir les événements du DOM. En revanche, les bibliothèques de graphiques Canvas doivent réinventer la roue DOM pour gérer les événements. Donc, à moins que vous n'ayez l'intention de créer des graphiques statiques sans gestion d'événements, les solutions SVG / VML devraient être meilleures.
Pour les solutions SVG / VML, il existe de nombreuses options, notamment:
Raphael est une bibliothèque graphique open source très active, bien entretenue et mature avec une très bonne prise en charge multi-navigateur, notamment IE 6 à 8, Firefox, Opera, Safari, Chrome et Konqueror. Raphael ne dépend d'aucun framework JavaScript et peut donc être utilisé avec Prototype, jQuery, Dojo, Mootools, etc ...
Il existe un certain nombre de bibliothèques de graphiques basées sur Raphael, notamment (mais sans s'y limiter):
Divulgation: Je suis le développeur d' une des fourches Ico sur github .
Si vous utilisez jQuery, j'ai trouvé que flot était très bon - essayez les exemples pour voir s'ils répondent à vos besoins, mais je les ai trouvés pour faire la plupart de ce dont j'ai besoin pour mon projet actuel.
De plus, ExtJS 4.0 a introduit un grand ensemble de graphiques - très puissant, et est conçu pour fonctionner avec des données en direct.
Consultez http://www.highcharts.com !
Highcharts est une bibliothèque de graphiques écrite en JavaScript pur, offrant un moyen simple d'ajouter des graphiques interactifs à votre site Web ou à votre application Web. Highcharts prend actuellement en charge les types de ligne, spline, zone, areapline, colonne, barre, camembert et nuage de points.
Ce n'est peut-être pas exactement ce que vous recherchez, mais
l'API Chart de Google est assez cool et facile à utiliser.
Il existe une autre bibliothèque javascript basée sur SVG. Il s'appelle Protovis et il vient du Stanford Visualization Group
Il permet également de créer de jolis graphiques et visualisations interactifs.
http://vis.stanford.edu/protovis/ex/
Bien que ce soit uniquement pour les navigateurs Web modernes
MISE À JOUR: L'équipe de protovis a déménagé dans une autre bibliothèque appelée d3.js (Data Driven Documents) comme ils l'ont dit:
"L'équipe Protovis développe actuellement une nouvelle bibliothèque de visualisation, D3.js, avec un support amélioré pour l'animation et l'interaction. D3 s'appuie sur de nombreux concepts de Protovis"
La nouvelle bibliothèque se trouve désormais dans:
http://mbostock.github.com/d3/
MISE À JOUR 2:
"Rickshaw" est une boîte à outils JavaScript pour créer des graphiques de séries chronologiques interactifs. Basé sur d3.js qui simplifie beaucoup le travail avec d3.js bien qu'il soit un peu moins puissant.
Je cherchais récemment une bibliothèque de cartographie javascript et j'ai évalué tout un tas avant de finalement m'installer sur jqplot qui correspondait très bien à mes besoins. Comme l'a mentionné la réponse de Jean Vincent, vous choisissez vraiment entre une solution basée sur toile et basée sur svg.
À mon avis, les principaux avantages et inconvénients étaient les suivants. Les solutions basées sur SVG comme Raphael (et les ramifications) sont excellentes si vous voulez construire des graphiques hautement dynamiques / interactifs. Ou si vos exigences graphiques sont très en dehors de la norme (par exemple, vous voulez créer une sorte de graphique hybride ou vous avez trouvé une nouvelle visualisation à laquelle personne d'autre n'a encore pensé). L'inconvénient est la courbe d'apprentissage et la quantité de code que vous devrez écrire. Vous ne frapperez pas les graphiques en quelques minutes, préparez-vous à investir du temps d'apprentissage réel, puis à écrire une bonne quantité de code pour produire un graphique relativement simple.
Si vos exigences graphiques sont raisonnablement standard, par exemple si vous voulez des graphiques à barres ou à barres ou peut-être un graphique à secteurs ou deux, avec une interactivité limitée, alors il vaut la peine de chercher des solutions basées sur le canevas. Il n'y aura pratiquement aucune courbe d'apprentissage, vous pourrez obtenir des graphiques de base en quelques minutes, vous n'aurez pas besoin d'écrire beaucoup de code, quelques lignes de javascript / jquery de base seront tout ce dont vous avez besoin. Bien sûr, vous ne pourrez produire que les types de graphiques spécifiques pris en charge par la bibliothèque, généralement limités à différentes saveurs de ligne, de barre, de tarte. Les choix d'interactivité seront extrêmement limités, c'est-à-dire inexistants pour de nombreuses bibliothèques, bien que certains effets de survol limités soient possibles avec les meilleurs.
Je suis allé avec JQplot qui est une solution basée sur un canevas car je n'avais vraiment besoin que de certains types de graphiques standard. D'après mes recherches et en jouant avec les différents choix, j'ai trouvé qu'il était raisonnablement complet (si vous ne recherchez que les graphiques standard) et extrêmement facile à utiliser, donc je le recommanderais si vos besoins sont similaires.
Pour résumer, simple et voulez des graphiques maintenant, alors allez avec JQplot. Complexe / différent et pas pressé par le temps, alors allez avec Raphael et ses amis.
jqPlot est super. Si vos besoins sont assez «normaux» et que vous souhaitez simplement dessiner des graphiques, vous êtes probablement submergé par la quantité d'options de cartographie js. En supposant que vous ne voulez pas faire des heures de recherche, optez simplement pour jqPlot car c'est probablement votre meilleur pari. Il couvre bien la plupart des cas d'utilisation pour la plupart des gens. Certaines des alternatives sont spécialisées sur un certain type de graphique ou conçues avec un certain cas d'utilisation à l'esprit.
Comme une sorte de réponse tardive, essayez d3.js
http://mbostock.github.com/d3/
C'est la suite de protovis.
La grande différence avec flot réside dans le nombre de fonctionnalités prises en charge.
Bien que flot soit plus simple, d3.js est définitivement plus puissant.
Essayez PlotKit
Je recommanderais gRaphaël pour les graphiques JavaScript purs avec la bibliothèque de graphiques vectoriels JavaScript sur laquelle il est construit ( Raphaël ).
gRaphaël prend actuellement en charge Firefox 3.0+, Safari 3.0+, Opera 9.5+ et Internet Explorer 6.0+.
Un autre est RGraph: tableaux et bibliothèque de graphiques Javascript:
Basé sur Canvas, il est donc rapide et il existe environ 20 types de graphiques différents. C'est également gratuit pour une utilisation non commerciale!
Mon préféré (flot) a déjà été mentionné.
Mais assurez-vous d'enquêter sur Ortho . Il est excellent pour les arbres et les chronologies.
Il y a beaucoup d'activité dans la bibliothèque de cartographie du dojo, et ce qui est génial, je l'utilise sans problème dans une application AIR aussi, plutôt cool! Voir par exemple là http://www.sitepen.com/blog/2008/05/27/dojo-charting-event-support-has-landed/
Découvrez l' API de visualisation Google , qui est une sorte de généralisation de l' API Chart plus simple
http://code.google.com/apis/visualization/documentation/gallery.html
Possède des options interactives très intéressantes, notamment des cartes, des jauges et des graphiques.
Nous venons d'acheter une licence de TechOctave Charts Suite pour notre nouvelle startup. Je les recommande vivement. La licence est simple. Les graphiques ont fière allure! Il était facile de commencer et possède une API puissante pour quand nous en avons besoin. J'ai été choqué par la netteté et l'extensibilité du code. Vraiment content de notre choix.
Essayez la chronologie de comparaison du MIT qui pourrait être transformée en un graphique - http://simile.mit.edu/timeline/
ou la dernière, http://code.google.com/p/gchart/
Ce n'est pas une bibliothèque Javascript, mais cela peut être une alternative appropriée - consultez Google Charts où vous pouvez générer des graphiques en transmettant des données de requête à leur service Web.
Jetez un oeil à Bluff . Il s'agit d'un port JavaScript de la bibliothèque graphique Gruff pour Ruby.
Protochart est tout ce dont vous avez besoin
Sencha a acquis Raphael et maintenant leurs graphiques sont en javascript pur à partir de la version 4. Emprise et HighCharts mentionnés ci-dessus sont mes deux favoris.
Pour les graphiques plus inhabituels: http://thejit.org/
Je peux recommander ArcadiaCharts . Une toute nouvelle bibliothèque de graphiques professionnels pour JavaScript et GWT. Fonctionne dans tous les navigateurs sans plugins. Facile et rapide à utiliser: crée de superbes graphiques avec seulement quelques lignes de code. Gratuit pour un usage non commercial.
Les graphiques Fusion ont une nouvelle bibliothèque javascript / jquery qui semble prometteuse.
Au cas où vous auriez besoin d'un graphique à barres uniquement. J'ai publié du code que j'utilisais dans un ancien projet. Quelqu'un m'a dit que l'implémentation de VML est cassée sur les versions récentes d'IE, mais le SVG devrait très bien fonctionner. Peut-être revenir au projet et libérer certains moteurs de rendu côté serveur que j'ai déjà et peut-être une couche de rendu WebGL. Il y a un lien: http://blog.conquex.com/?p=64
Probablement pas ce que l'OP recherche, mais puisque cette question est devenue une liste d'options de bibliothèque de création de graphiques JS: jQuery Sparklines est vraiment cool.
Découvrez ZingChart HTML5 Canvas, SVG, VML et Flash Charts . Bibliothèque très puissante et compatible. Je fais partie de l'équipe Zing - mentionnez-nous sur twitter @zingchart ou envoyez vos questions à support@zingchart.com.