J’ai testé quelques jours Google Chart, l’API de Google dédiée à la génération de graphiques. Le principe de celle-ci est fort intéressant, puisque tout se passe par une API REST qui renvoit une simple image. Ainsi, vous pouvez très rapidement créer des graphiques depuis n’importe quel page web, ceux-ci seront directement générés par Google sans que vous n’ayez à vous préoccuper de la génération de l’image elle-même.
Cependant, l’API a aussi son lot de contraintes. En effet, en tant qu’API REST, on envoie les données directement sur l’URL. Or, la longueur de l’URL est limitée. Par conséquent, il faut faire des tours de passe-passe pour « compresser » les données, en particulier lorsqu’elles sont nombreuses. Cela implique un travail de filtrage en amont. En conséquence, dès que l’on s’éloigne de graphiques d’exemples montrant de jolis camembers faits en une ligne de code (l’URL), le travail du développeur se complique. L’API nécessite alors une encapsulation dans sa propre bibliothèque de filtrage et de préparation des données, seul le rendu final est réclamé à Google.
Un problème concerne ce rendu, d’ailleurs : la taille de l’image fournie par Google ne peut dépasser 300.000 pixels carrés. Cela vous paraît énorme ? Pourtant, cela ne vous permettra pas d’avoir un graphique en 640×480 pixels, celui-ci dépassant les capacités maximales de l’API avec ses 307.200 pixels carrés. Si cela suffit à l’essentiel des graphiques écran, ne comptez pas sur ce système pour générer une version imprimable en haute résolution de votre travail.
Du coup, après la découverte de l’API, somme toute assez astucieuse et simple, pour peu que l’on se donne le temps de préparer une couche logicielle intermédiaire entre l’application et cette API, afin de filtrer les données, je me suis penché vers d’autres cieux.
Ainsi, en ce moment, je découvre Open Flash Chart 2, petit frère d’Open Flash Chart. Tous deux proposent des graphiques à base de Flash (fait avec Flex) avec une API JSON et des bibliothèques de classes prêtes à l’emploi en PHP, parmi d’autres langages. Mais je vous en parlerai une prochaine fois !
Et vous, connaissez-vous d’autres API dédiées à la gestion des graphiques ? Quelles ont été vos expériences, bonnes et mauvaises ?
Pour l’instant j’ai été agréablement surpris par la simplicité et le look de GC (ayant essayé qqes alternatives avant). Mais effectivement je n’en attendais pas un truc pour faire des graphiques ultra-complexes, ce qui explique peut-être la différence d’opinion par rapport à cet article.
@Matt : Pour afficher un camembert, Google Chart API est une excellente solution, de même que pour afficher la pluviométrie de l’année. En revanche, pour afficher un graphique à base d’un nuage de points aux coordonnées (X,Y), ou de courbes avec des coordonnées (X,Y), il faut investir un temps conséquent pour la mise en place d’une couche logicielle intermédiaire conséquente entre l’application de Google Chart API.
Pour ma part, j’utilise JpGraph, une librairie PHP pour générer des graphiques.
Toutes les données servant à préparer l’image restent ainsi sur le serveur. L’intégration HTML se fait uniquement sur l’image générée.
Personnellement je me suis tourné vers AMCharts melant Flash / Javascript et PHP par contre il est payant pour toute utilisation commercial (la version gratuite est complete mais affiche un logo dans un coin du graphique).
Je le recommande.
http://www.highcharts.com un generateur de graphique via jquery.