Tracer avec C #

C # semble être prometteur pour le calcul scientifique, mais je n’ai trouvé que très peu de choses sur le traçage de graphes 2D, ce qui est très important pour les étudiants en sciences et les scientifiques.

Existe-t-il un moyen fiable et gratuit de créer un tracé 2D de qualité publication avec C #? Et la capacité à enregistrer dans plusieurs formats (png, eps, …). Quelque chose de similaire au matplotlib de Python?

Il y a Oxyplot que je recommande et il y a aussi des Live-Charts (voir update2).

Oxyplot a des paquets pour WPF, Metro, Silverlight, Windows Forms, Avalonia UI, XWT. Outre les graphiques, il peut exporter vers Svg, Pdf, OpenXml, etc. Et il supporte même Mono et Xamarin pour Android et IOS. Il est activement développé aussi.

* Mise à jour * Déplacé vers GitHub https://github.com/oxyplot/oxyplot

* Mise à jour 2 * Il y a aussi une nouvelle bibliothèque de traçage .net (au moins pour moi) appelée Live-Charts (lien github)

Les plots sont assez interactives. Bibliothèque suporte WPF, WinForms et UWP. Xamarin est prévu. La conception est faite en fonction des modèles MV *.

Voir Environnement d’exemples pour les contrôles Microsoft Chart :

L’environnement exemple pour Microsoft Chart Controls pour .NET Framework contient plus de 200 exemples pour ASP.NET et Windows Forms . Les exemples couvrent toutes les principales fonctionnalités des contrôles graphiques pour .NET Framework. Ils vous permettent de voir les contrôles Chart en action et d’utiliser le code comme modèles pour vos propres applications Web et Windows.

Semble être davantage axé sur les affaires, mais peut être utile aux étudiants en sciences et aux scientifiques .

ZedGraph est un bon choix.

gnuplot est un programme activement maintenu et largement utilisé dans la communauté scientifique. Normalement, les tracés sont générés à partir de fichiers de données que vous pouvez écrire dans votre programme C #, mais il est également possible d’appeler l’exécutable gnuplot à partir de C # et d’afficher l’image générée dans un bloc d’image C #.

J’ai commencé à utiliser le nouveau contrôle graphique ASP.NET il y a quelques jours, et ses capacités sont absolument incroyables.

Voici le lien.

EDIT: Ce n’est évidemment que si vous utilisez ASP.NET. Pas sûr de WinForms.

Je voulais simplement compléter la recommandation de MajesticRa concernant OxyPlot et souligner comment OxyPlot peut être utilisé pour une variété de cas de traçage. Le logiciel est gratuit et open-source, très poli et permet une variété d’utilisations au-delà de la cartographie 2D normale.

J’ai utilisé OxyPlot pour un projet peu orthodoxe, où j’affiche (dans WPF / C #) une carte (Robotic Occupancy Grid) que je pourrais superposer avec LineSeries (Path Traveled) et PointSeries (Way Points). En utilisant la fonctionnalité ImageAnnotation OxyPlot, je peux afficher la vidéo 60Hz dans mon OxyPlot, en mettant à jour périodiquement ImageAnnotation sur son propre thread, tout en mappant la série de points sur la vidéo. La vidéo de fond et les points sont même évolutifs et traduisibles.

J’espère que cela est utile pour les autres qui cherchent à afficher des graphiques sur des images et des vidéos.

NPlot est une assez bonne API de traçage 2D open source. Malheureusement, le site Web est en panne. Je ne sais pas si c’est juste temporaire ou non. Je n’ai pas entendu parler de mauvaises nouvelles. Cela peut revenir.

http://www.nplot.com

Voici un article le décrivant:

http://aspnet.4guysfromrolla.com/articles/072507-1.aspx

L’article précédent utilise VB.NET, mais cela fonctionnera évidemment avec C #.

Encore une fois, je ne sais pas pourquoi le site de nplot ne fonctionne pas actuellement, mais c’est une API de traçage assez populaire que j’ai utilisée par le passé. Je le publie pour votre information et en cas d’événement probable, nplot sera bientôt disponible. 🙂

Modifier:

Grâce à un Hosam Aly, il semble que le projet SourceForge soit toujours accessible ici:

http://sourceforge.net/projects/nplot

FWIW, vous voulez probablement regarder F # au lieu de C # dans le contexte de l’informatique technique car F # est spécialement conçu à cet effet. Cependant, j’ai développé ma propre bibliothèque de traçage commerciale car je n’étais pas satisfait de tout ce qui était disponible gratuitement sur .NET.