Nuages ​​de points en C ++

Quel est le meilleur moyen de représenter graphiquement des diagrammes de dispersion en C ++?

Vous écrivez des données dans un fichier et utilisez un autre outil? Existe-t-il une bibliothèque comme matplotlib en Python?

J’écris toujours des données puis j’utilise gnuplot pour créer mes graphiques. C’est de loin le meilleur moyen que j’ai trouvé de produire des graphiques dans divers formats: eps, png, jpeg, xpm, par exemple.

gnuplot fera le nuage de points très facilement. Pourvu que les valeurs x et y soient dans 2 colonnes séparées par des espaces, puis

 plot "data.txt" using 1:2 

Vous donnera un nuage de points rapide. Ensuite, vous pouvez l’ajuster et ne pas utiliser d’autres commandes gnuplot.

Si vous êtes impliqué dans les sciences, alors l’apprentissage de gnuplot sera très utile. Cela évite de faire des plots Excel et facilite la création de plots à inclure dans les papiers.

Si vous recherchez une bibliothèque C ++ plutôt qu’un outil de traçage indépendant, tel que gnuplot, je considérerais les éléments suivants:

  • Koolplot
  • dislin ( article de Wikipedia sur dislin )

Disney semble être le plus intéressant des deux. Voici une description extraite de l’article de Wikipédia:

DISLIN est une bibliothèque de traçage de haut niveau facile à utiliser développée par Helmut Michels à l’Institut Max Planck de Katlenburg-Lindau, en Allemagne. Helmut Michels travaille actuellement comme mathématicien et gestionnaire de système Unix au centre de calcul de l’institut.

La bibliothèque DISLIN contient des routines et des fonctions permettant d’afficher des données sous forme de courbes, de graphiques à barres, de camemberts, de diagrammes de couleurs 3D, de surfaces, de contours et de cartes. Plusieurs formats de sortie sont pris en charge, tels que X11, VGA, PostScript, PDF, CGM, HPGL, SVG, PNG, BMP, PPM, GIF et TIFF.

DISLIN est disponible pour les langages de programmation Fortran 77, Fortran 90/95 et C. Les extensions de traçage pour les langages Perl, Python et Java sont également sockets en charge pour la plupart des systèmes d’exploitation. La version actuelle de DISLIN, la version 9.4, a été publiée en octobre 2008. La première version 1.0 a été publiée en décembre 1986.

Le logiciel DISLIN est gratuit pour une utilisation non commerciale.

Solution très lourde: vous pouvez lier contre ROOT , ce qui fera à peu près tout ce que vous voulez:

  • fonctionne sur Mac, Windows et Linux
  • fonctionne compilé ou en utilisant l’interpère cint
  • sortie dans un fichier encapsulé postscript, PDF, gif, png …
  • afficher à l’écran en utilisant plusieurs technologies différentes
  • sérialiser les données dans un format interne qui peut être manipulé plus tard

Bien sûr, c’est un peu trop pour la plupart des gens, mais il fait exactement ce que vous avez demandé. Je l’utilise parce que je le connais et qu’il est déjà sur mes machines parce que je suis ce genre de physicien.

Ce n’est certainement pas la meilleure solution, mais j’écris en général des fichiers de sortie lisibles par R et les utilise, ainsi qu’un script approprié, pour tracer les graphiques.

Bon vieux GNU, ils ont tout …

http://directory.fsf.org/project/plotutils/

Le problème ici est que C ++, contrairement à Java par exemple, n’a pas d’interface graphique ou graphique intégrée. Si vous souhaitez générer des graphiques avec C ++, vous devez utiliser une bibliothèque d’interface graphique disponible pour votre système d’exploitation. Il existe des bibliothèques d’interface graphique gratuites, de nombreuses plates-formes croisées telles que Qt ou GTK.

Cependant, comme d’autres personnes l’ont fait remarquer, la chose la plus simple à faire serait de sauvegarder les données dans un fichier texte et d’utiliser un autre programme pour générer le graphique. Gnuplot est vraiment un bon choix. Il est livré en standard avec la plupart des dissortingbutions Linux, et vous obtenez pour Windows sous cygwin.

Si vous connaissez matplotlib, vous pouvez incorporer python dans les applications C / C ++. Selon ce que vous voulez, cela pourrait être une solution rapide.

Cordialement, traçage en C ++ pour tous ceux qui ne l’ont pas encore fait. Je vais dire ce que j’ai fait pour tracer des graphiques en C ++

  1. Téléchargez le fichier zippé “gp443win32.zip” à l’ adresse http://sourceforge.jp/projects/sfnet_gnuplot/downloads/gnuplot/4.4.3/gp443win32.zip/.

  2. Extrayez-le dans “C: \ Gnuplot” puis j’ai lu “C: \ Gnuplot \ gnuplot \ README.Windows” et j’ai obtenu ces informations:

  3. J’ai utilisé Windows 7 ==> et vous devez donc télécharger “Winhlp32.exe” … il suffit de le rechercher “Winhlp32.exe Windows 7” dans un moteur de recherche et de passer par le premier lien.

  4. Ajouter à la variable d’environnement “Path” le chemin du dossier binary qui est “C: \ Gnuplot \ gnuplot \ binary”

  5. puis j’arrête mon ordinateur et l’ouvre à nouveau. Après avoir constaté que cela ne sentait pas le changement dans les variables d’environnement: D

  6. vous devez maintenant écrire un exemple de code pour tester votre capacité de traçage 🙂 afin de pouvoir visiter ce lien http://code.google.com/p/gnuplot-cpp/source/browse/#svn%2Ftrunk pour afficher le fichier d’en-tête. “gnuplot_i.hpp” et le fichier source “example.cc”.

Vous obtiendrez un grand nombre de graphiques, choisissez votre graphique approprié, personnalisez votre kernel et amusez-vous 🙂

Chart Director a des liaisons pour C ++. J’ai utilisé leurs bibliothèques .Net et j’en ai été assez content. C’est une bibliothèque assez bon marché, et vous donne le pouvoir de faire toutes sortes de graphiques différents.