2015-03-06 23 views
7

Di seguito è riportato il codice che ho usato per scrivere i dati (coordinate xey) in un file.come tracciare un grafico usando gnuplot dal programma C++

void display(){ 

    fstream out; 
    outfile.open("Co_ordinates.txt",fstream::out | fstream::trunc); 
    outfile.precision(6); 
    for(int i=0;i<3000; i++){ 
     outfile<<fixed<<x[i]<<" "<<fixed<<y[i]<<endl; 
    } 
    out.close(); 

} 

voglio tracciare il grafico utilizzando il x e y coordinate dal file sopra "Co_ordinates.txt" Ho aggiunto gnuplot utilità "gnuplot_i.hpp" da https://code.google.com/p/gnuplot-cpp/source/browse/trunk/gnuplot_i.hpp.

ho usato la seguente funzione definita in gnuplot_i.hpp

/// plot x,y pairs: x y 
    /// from file 
    Gnuplot& plotfile_xy(const std::string &filename, 
         const unsigned int column_x = 1, 
         const unsigned int column_y = 2, 
         const std::string &title = ""); 

ho aggiunto il seguente codice per tracciare il grafico

const string s="Co_ordinates.txt"; 
Gnuplot& plotfile_xy(&s,1,2,'Grid'); 

Ma ottenere i seguenti errori

errore: l'espressione lista trattata come espressione composta in initializer [-fpermissive] | errore: inizializzazione non valida del riferimento non const del tipo 'Gnuplot &' da un valore di rvalenza di tipo 'int' |

Ho provato il codice di cui sopra in varie forme .. ma ottenendo errori. Si prega di suggerire alcune soluzioni ..

+0

Penso che il modo che hai scritto 'Gnuplot & plotfile_xy (& s, 1,2, 'Grid'); ', il compilatore pensa che stai dichiarando una funzione, piuttosto che chiamarne una. –

risposta

2

plotfile_xy è una funzione membro della classe Gnuplot, per così chiamarlo è necessario un'istanza di Gnuplot, ad esempio:

Gnuplot gp("lines"); 
//using the parameters from your code 
gp.plotfile_xy(&s,1,2,'Grid'); 

Non c'è molto nel modo di documentazione, ma hai notato che c'è un programma di esempio che dimostra molte delle funzioni? https://code.google.com/p/gnuplot-cpp/source/browse/trunk/example.cc

8

Il tutto ho fatto può essere fatto facilmente utilizzando il seguente codice

system("gnuplot -p -e \"plot 'Co_ordinates.txt'\"");

Problemi correlati