Quelle est la meilleure façon de représenter graphiquement les nuages de points en C++?
Écrivez-vous des données dans un fichier et utilisez-vous un autre outil? Existe-t-il une bibliothèque comme matplotlib en Python?
J'écris toujours des données et j'utilise ensuite gnuplot pour créer mes graphiques. C'est de loin la meilleure façon que j'ai trouvée de produire des graphiques dans une variété de formats: eps, png, jpeg, xpm, nommez-le.
gnuplot
fera un nuage de points très facilement. Pourvu que les valeurs x
et y
soient dans 2 colonnes séparées par des espaces,
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 vous évite de faire des tracés Excel à coup sûr et facilite la tâche de faire des tracés à inclure dans les papiers.
Si vous recherchez une bibliothèque C++ plutôt qu'un outil de traçage indépendant comme gnuplot, je considérerais ce qui suit:
dislin semble être le plus intéressant des deux. Voici une description extraite de l'article de wikipedia:
DISLIN est une bibliothèque de traçage de haut niveau et facile à utiliser développée par Helmut Michels à l'Institut Max Planck de Katlenburg-Lindau, en Allemagne. Helmut Michels travaille actuellement en tant que mathématicien et gestionnaire de système Unix au centre informatique de l'institut.
La bibliothèque DISLIN contient des routines et des fonctions pour afficher les données sous forme de courbes, graphiques à barres, camemberts, tracés 3D, surfaces, contours et 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. Tracer des extensions pour les langages Perl, Python et Java sont également pris en charge pour la plupart des La version actuelle de DISLIN est 9.4, sortie en octobre 2008. La première version 1.0 est sortie 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:
Bien sûr, c'est un peu beaucoup pour la plupart des gens, mais il fait exactement ce que vous avez demandé. Je l'utilise car je le connais et il est déjà sur mes machines car je suis ce genre de physicien.
Bon vieux GNU, ils ont tout ...
Ce n'est certainement pas la meilleure façon, mais j'écris habituellement des fichiers de sortie qui peuvent être lus par R et je les utilise, 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 ou de graphiques intégrés. Si vous souhaitez générer des graphiques avec C++, vous devrez utiliser une bibliothèque d'interface graphique disponible pour votre Il existe des bibliothèques GUI gratuites, de nombreuses plateformes croisées telles que Qt ou GTK.
Cependant, comme d'autres l'ont souligné, la chose la plus simple à faire serait d'enregistrer les données dans un fichier texte et d'utiliser un autre programme pour générer le graphique. gnuplot est définitivement un bon choix. Il est livré en standard avec la plupart des distributions Linux, et vous obtenez pour Windows sous cygwin.
Cordialement, comploter en C++ pour ceux qui ne l'ont pas encore fait. Je vais dire ce que j'ai fait pour tracer des graphiques en C++
Téléchargez le fichier compressé "gp443win32.Zip" depuis http://sourceforge.jp/projects/sfnet_gnuplot/downloads/gnuplot/4.4.3/gp443win32.Zip/
Extrayez-le dans "C:\Gnuplot" puis je lis "C:\Gnuplot\gnuplot\README.Windows" et j'ai obtenu ces informations:
J'ai utilisé Windows 7 ==> vous devez donc télécharger "winhlp32.exe" ... recherchez-le simplement "winhlp32.exe Windows 7" dans un moteur de recherche et passez par le premier lien.
Ajoutez à la variable d'environnement "Path" le chemin du dossier binaire qui est "C:\Gnuplot\gnuplot\binary"
puis j'arrête mon ordinateur et l'ouvre à nouveau. Après avoir découvert qu'il ne détectait pas le changement dans les variables d'environnement: D
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 voir le fichier d'en-tête "gnuplot_i.hpp" et le fichier source "example.cc".
Vous obtiendrez de nombreux graphiques, choisissez votre graphique approprié, personnalisez votre cœur et profitez :)
Si vous connaissez matplotlib, vous pouvez incorporer python dans les applications C/C++. Selon ce que vous voulez, cela pourrait être une solution rapide.
Chart Director a des liaisons pour C++. J'ai utilisé leurs bibliothèques .Net et j'en ai été assez satisfait. C'est une bibliothèque assez bon marché et vous donne le pouvoir de faire toutes sortes de graphiques différents.