Domanda

Qual è il modo migliore per rappresentare graficamente grafici a dispersione in C ++?

Scrivi i dati in un file e usi un altro strumento? Esiste una libreria come matplotlib in Python?

È stato utile?

Soluzione

Scrivo sempre i dati e quindi utilizzo gnuplot per creare i miei grafici. È di gran lunga il modo migliore che ho trovato di produrre grafici in una varietà di formati: eps, png, jpeg, xpm, lo chiami.

gnuplot eseguirà la trama scatter molto facilmente. A condizione che i valori x e y siano in 2 colonne separate da spazio, quindi

plot "data.txt" using 1:2 

Ti darà un grafico a dispersione rapida. Quindi puoi regolarlo e cosa non usare altri comandi di gnuplot.

Se sei coinvolto nelle scienze, l'apprendimento di gnuplot ti sarà molto utile. Dà il via alla schifezza di fare trame eccellenti e facilita il compito di creare trame da includere nei documenti.

Altri suggerimenti

Se stai cercando una libreria C ++ piuttosto che uno strumento di stampa indipendente come gnuplot, prenderei in considerazione quanto segue:

dislin sembra essere il più interessante dei due. Ecco una descrizione estratta dall'articolo di Wikipedia:

  

DISLIN è una libreria di disegno di alto livello e facile da usare sviluppata da Helmut Michels al Max Planck Institute di Katlenburg-Lindau, Germania. Helmut Michels attualmente lavora come matematico e responsabile di sistema Unix presso il centro di calcolo dell'istituto.

     

La libreria DISLIN contiene routine e funzioni per la visualizzazione di dati come curve, grafici a barre, grafici a torta, grafici a colori 3D, superfici, contorni e mappe. Sono supportati diversi formati di output come X11, VGA, PostScript, PDF, CGM, HPGL, SVG, PNG, BMP, PPM, GIF e TIFF.

     

DISLIN è disponibile per i linguaggi di programmazione Fortran 77, Fortran 90/95 e C. Le estensioni di stampa per le lingue Perl, Python e Java sono supportate anche per la maggior parte dei sistemi operativi. L'attuale versione di DISLIN è la 9.4, rilasciata nell'ottobre 2008. La prima versione 1.0 è stata rilasciata nel dicembre 1986.

     

Il software DISLIN è gratuito per uso non commerciale.

Soluzione molto pesante: potresti collegarti a ROOT , che farà quasi tutto ciò che desideri:

  • funziona su Mac, Windows e Linux
  • funziona compilato o usando l'interperter cint
  • output in un file in Postscript incapsulato, PDF, gif, png ...
  • visualizza sullo schermo usando diverse tecnologie
  • serializza i dati in un formato interno che può essere manipolato in seguito

Certo, è un po 'troppo per la maggior parte delle persone, ma fa esattamente quello che hai chiesto. Lo uso perché lo conosco ed è già sulle mie macchine perché sono quel tipo di fisico.

Buon vecchio GNU, hanno tutto ...

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

Questo non è certamente il modo migliore, ma di solito scrivo file di output che possono essere letti da R e utilizzalo insieme a uno script appropriato per tracciare i grafici.

Il problema qui è che C ++, a differenza di Java per esempio, non ha una GUI o una grafica integrate. Se si desidera generare grafici con C ++, è necessario utilizzare una libreria GUI disponibile per il proprio sistema operativo. Esistono librerie GUI gratuite, molte interfacce come Qt o GTK.

Tuttavia, come altri hanno sottolineato, la cosa più semplice da fare sarebbe quella di salvare i dati in un file di testo e utilizzare un altro programma per generare il grafico. gnuplot è sicuramente una buona scelta. Viene fornito di serie con la maggior parte delle distribuzioni Linux, e si ottiene per Windows con Cygwin.

Saluti stampa in C ++ per chiunque non lo abbia ancora fatto. Dirò cosa ho fatto per tracciare grafici in C ++

  1. Scarica il file zippato " gp443win32.zip " da http://sourceforge.jp/projects/sfnet_gnuplot/ downloads / gnuplot / 4.4.3 / gp443win32.zip /

  2. Estrai in " C: \ Gnuplot " quindi ho letto " C: \ Gnuplot \ gnuplot \ README.Windows " e ho ottenuto queste informazioni:

  3. Ho usato Windows 7 == > quindi devi scaricare " winhlp32.exe " ... basta cercarlo " winhlp32.exe Windows 7 " in un motore di ricerca e passa attraverso il primo link.

  4. Aggiungi al " Percorso " Variabile d'ambiente il percorso per la cartella binaria che è " C: \ Gnuplot \ gnuplot \ binary "

  5. quindi spengo il computer e lo apro di nuovo. Dopo aver scoperto che non ha rilevato il cambiamento nelle variabili di ambiente: D

  6. ora devi scrivere un codice di esempio per testare la tua abilità di disegno :) così puoi visitare questo link http://code.google.com/p/gnuplot -cpp / source / browse / # svn% 2Ftrunk per visualizzare il file di intestazione " gnuplot_i.hpp " e file sorgente " esempio.cc " ;.

Otterrai molti e molti grafici, scegli il tuo grafico appropriato, personalizza il tuo core e divertiti :)

Se hai familiarità con matplotlib, puoi embed python in Applicazioni C / C ++. A seconda di cosa lo desideri, questa potrebbe essere una soluzione rapida.

Chart Director ha collegamenti per C ++. Ho usato le loro librerie .Net e sono stato abbastanza contento di loro. È una libreria piuttosto economica e ti dà il potere di fare tutti i tipi di grafici diversi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top