Graphique de dispersion en C++ [fermé]

Quelle est la meilleure façon de représenter graphiquement les diagrammes de dispersion en C++?

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

20
demandé sur paxos1977 2008-10-18 18:38:20

9 réponses

j'écris toujours des données puis j'utilise 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, vous l'appelez.

gnuplot fera le nuage de points très facilement. À condition 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 scatter plot rapide. Ensuite, vous pouvez l'ajuster et ce n'utilisant pas d'autres commandes gnuplot.

si vous êtes impliqué dans les sciences, alors l'apprentissage gnuplot vous sera très utile. Il jette la merde hors de faire des parcelles d'excel pour sûr et il facilite la tâche de faire des parcelles à inclure dans les papiers.

28
répondu freespace 2008-10-18 14:47:17

si vous cherchez une bibliothèque C++ plutôt qu'un outil de pointage 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 pointage de haut niveau et facile à utiliser développé par Helmut Michels à L'Institut Max Planck à Katlenburg-Lindau, en Allemagne. Helmut Michels travaille actuellement comme 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 des données comme des courbes, des graphiques à barres, des diagrammes circulaires, des tracés de couleur 3D, des surfaces, des contours et des 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. extensions de pointage pour les langages Perl, Python et Java sont également pris en charge pour la plupart des systèmes d'exploitation. La version actuelle de DISLIN est 9.4, sorti 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.

11
répondu David S. 2008-10-18 15:58:06

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

  • fonctionne sur Mac, Windows et Linux
  • exécute compilé ou en utilisant l'interperter cint
  • sortie vers un fichier en postscript encapsulé, PDF, gif, png...
  • affichage à l'écran en utilisant plusieurs technologies différentes
  • sérialiser les données dans un format interne pouvant être manipulé ultérieurement

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 sais et il est déjà sur mes machines becase je suis ce genre de physicien.

9
répondu dmckee 2008-10-18 18:34:53

ce n'est certainement pas la meilleure façon, mais j'écris habituellement des fichiers de sortie qui peuvent être lus par R et utiliser ceci, avec un script approprié, pour tracer les graphiques.

4
répondu Konrad Rudolph 2008-10-18 14:39:59

bon vieux GNU, ils ont tout...

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

4
répondu paxos1977 2009-03-12 21:19:29

le problème ici est que C++, contrairement à Java par exemple, n'a pas d'interface graphique intégrée. Si vous voulez générer des graphiques avec C++, vous devez utiliser une bibliothèque GUI disponible pour votre système D'exploitation. Il y a des bibliothèques GUI gratuites, beaucoup de Inter-plaform comme Qt ou GTK.

Cependant, comme d'autres personnes l'ont souligné, la meilleure chose à faire pour vous serait d'enregistrer les données dans un fichier texte, et utiliser un autre programme pour générer le graphique. gnuplot est certainement un bon choix. Il est livré en standard avec la plupart des distributions linux, et vous obtenez Pour Windows sous cygwin.

3
répondu Dima 2008-10-18 16:01:15

si vous êtes familier avec matplotlib, vous pouvez intégrer python dans les applications C/C++. Selon ce que vous voulez, cela pourrait être une solution rapide.

1
répondu Alex Coventry 2008-10-18 17:40:25

concerne le 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 compressé " gp443win32.zip " De http://sourceforge.jp/projects/sfnet_gnuplot/downloads/gnuplot/4.4.3/gp443win32.zip/

  2. L'extraire dans "C:\Gnuplot" puis 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.".. il suffit de le chercher " winhlp32.exe Windows 7" dans un moteur de recherche et passer par le premier lien.

  4. ajoute à la variable D'environnement" Path "le chemin pour le dossier binaire qui est "C:\Gnuplot\gnuplot\binary "

  5. puis j'ai éteint mon ordinateur et je l'ai ouvert à nouveau. Après que j'ai trouvé qu'il n'a pas senti le changement dans l'environnement variables: d

  6. vous devez maintenant écrire un exemple de code pour tester votre capacité de traçage :) vous pouvez donc 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 fichier source "example.cc".

vous obtiendrez beaucoup de graphiques, choisissez votre graphique approprié, personnalisez votre noyau, et profitez :)

1
répondu Islam Yousry 2016-12-02 09:09:18

Chart Director a des reliures pour C++. J'ai utilisé leurs bibliothèques.net, et j'ai été assez heureux avec eux. C'est une bibliothèque assez bon marché, et vous donne le pouvoir de faire toutes sortes de graphiques différents.

0
répondu Kibbee 2008-10-18 17:46:28