Grafici a dispersione in C ++ [chiuso]
-
03-07-2019 - |
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?
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 ...
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 ++
-
Scarica il file zippato " gp443win32.zip " da http://sourceforge.jp/projects/sfnet_gnuplot/ downloads / gnuplot / 4.4.3 / gp443win32.zip /
-
Estrai in " C: \ Gnuplot " quindi ho letto " C: \ Gnuplot \ gnuplot \ README.Windows " e ho ottenuto queste informazioni:
-
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.
-
Aggiungi al " Percorso " Variabile d'ambiente il percorso per la cartella binaria che è " C: \ Gnuplot \ gnuplot \ binary "
-
quindi spengo il computer e lo apro di nuovo. Dopo aver scoperto che non ha rilevato il cambiamento nelle variabili di ambiente: D
-
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.