Question

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

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

Était-ce utile?

La solution

J'écris toujours les 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. À condition que les valeurs x et y soient dans 2 colonnes séparées par un espace, puis

plot "data.txt" using 1:2 

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

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

Autres conseils

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:

Dislin 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 dans le 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 prises en charge pour la plupart des systèmes d’exploitation. La version actuelle de DISLIN, 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 créer un lien contre ROOT , ce qui fera à peu près tout ce que vous voulez:

  • fonctionne sur Mac, Windows et Linux
  • exécute compilé ou utilise l'interprète cint
  • sortie dans un fichier au format 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 car je suis ce genre de physicien.

Bon vieux GNU, ils ont tout ...

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

Ce n’est certainement pas la meilleure solution, mais j’écris habituellement des fichiers de sortie lisibles par R et utilisez-le avec un script approprié pour tracer les graphiques.

Le problème ici est que C ++, contrairement à Java par exemple, n’a pas d’interface graphique ni d’interface 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 et de nombreuses applications croisées telles que Qt ou GTK.

Cependant, comme d'autres personnes l'ont fait remarquer, la meilleure chose à faire est 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 distributions Linux, et vous obtenez pour Windows sous cygwin.

Je m'engage à tracer en C ++ 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 compressé " gp443win32.zip " à partir de http://sourceforge.jp/projects/sfnet_gnuplot/ téléchargements / gnuplot / 4.4.3 / gp443win32.zip /

  2. Extrayez-le dans "C: \ Gnuplot". alors j'ai lu "C: \ Gnuplot \ gnuplot \ README.Windows" et j'ai eu ces informations:

  3. J'ai utilisé Windows 7 == > vous devez donc télécharger " winhlp32.exe & ...; cherchez-le simplement " winhlp32.exe Windows 7 " dans un moteur de recherche et passez par le premier lien.

  4. Ajouter au "chemin" Variable d'environnement le chemin du dossier binaire 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 que vous puissiez 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 "exemple.cc".

Vous obtiendrez un grand nombre de graphiques, choisissez votre graphique approprié, personnalisez votre noyau et appréciez:)

Si vous connaissez matplotlib, vous pouvez incorporer un python dans Applications C / C ++. Selon votre choix, cela pourrait être une solution rapide.

Le

directeur des graphiques 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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top