Dans le cadre d’un projet en C#, j’ai eu à représenter des courbes dans un repère - un peu comme sur l’écran d’un oscilloscope. J’ai donc dû me documenter sur les différentes possibilités d’afficher des graphiques, des courbes et des statistiques diverses en C#. Cela m’a conduit à plusieurs librairies et tutoriaux permettant d’atteindre ce but plus ou moins facilement.
NPlot est une librairie de charts légère, mais semble-t’il assez complète. Sa courte page d’exemples est assez impressionante par le nombre d’options et de customisations possibles. Les graphiques produits peuvent être affichés dans un contrôle WindowsForm ou dans une page web ASP.NET. De plus, sa license personnalisée est compatible avec une utilisation commerciale et non contaminante - à l’inverse de la GPL. Malheureusement, il n’y a quasiment aucune documentation, ni, ce qui est bien pire, aucun exemple de code. Bref, par paresse, je n’ai même pas essayé. Mais l’auteur semble être en train de rédiger une documentation et des exemples complets ; NPlot peut donc être à surveiller.
ZedGraph est une autre librairie OpenSource, plus puissante et plus complète que NPlot. Comme NPlot, elle est compatible WinForms et WebForms. Licencié sous LGPL, qui permet une inclusion à du code propriétaire sans problèmes particuliers, elle est très bien documentée (à l’aide de l’exellent NDoc), et surtout possède de nombreux exemples, ainsi qu’un tutoriel très complet sur Code Project. Bref, très complet, simple à utiliser… mais évidemment pas super légère, et ne convenant probablement pas à un usage PocketPC ou SmartPhone.
Ce tutoriel, qui nous vient de Supinfo,
explique comment créer un contrôle utilisateur utilisant GDI+. Cela
permet en gros de créer un composant qui instanciera une surface et
dessinera des primitives dessus. Le contrôle est ensuite exportable dans
Visual Studio, et peut se configurer entièrement avec le Form Designer.
Bref, un très bon pas-à-pas pour établir la structure d’un composant
GDI+ générique.
Supinfo - Créer un contrôle utilisateur d’affichage des
données
Ce second tutoriel, hébergé sur DevX, explique
comme afficher des graphiques et des courbes statistiques en utilisant
GDI+. Il détaille le système de changement de repère, la création
d’échelles et de graduations, et bien plus encore. Le texte de l’article
est assez avare en code, il faut penser à suivre les liens pour
récupérer le code correspondant. C’est ce tutorial qui m’a été le plus
utile pour arriver à mon propre composant.
Build a Reusable Graphical Charting Engine with
C#
On trouve beaucoup de librairies .NET de Charts sur le web, mais beaucoup sont payantes, certaines reposent sur l’infâme controle ActiveX d’Office, difficilement réutilisable… J’espère avoir pu montrer toutes les possibilités offertes par les librairies gratuites, ainsi que la possibilité de construire sa propre librairie facilement.