2011-12-27 23 views
13

Ho un file di dati contenente 30 colonne e N righe. Ogni riga corrisponde a 30 valori di una funzione f (x) per x = {1, ..., 30}. Il file di dati ha seguente schema:gnuplot: come tracciare ogni linea di un file di dati come Y e incrementale X

#<index> f(1) f(2) ... f(30) 
1 7.221 5.302 ... -1.031 
2 4.527 3.193 ... 0.410 
... 
N 6.386 1.321 ... -0.386 

gnuplot interpreta prima colonna come X e il secondo come Y. Ma non è quello che voglio. Ad esempio, per la prima linea, gnuplot prende l'uscita desiderata con questo file di input:

# X Y 
1 7.221 
2 5.302 
... 
30 -1.031 

voglio tracciare ogni riga in un file di output separati senza trasposizione questo file di dati.

Grazie

risposta

7

AGGIORNATO sulla base di @ commento di Christoph:

plot for [i=2:30] 'data.dat' using (i-1):(column(i)) with linespoint 
+0

Grazie per la risposta, ma non è quello che sto cercando. L'output di questo sarebbe questi punti (1, y1), (1, y2), ... (1, y30) per la prima riga di "data.dat". La risposta desiderata è (1, y1), (2, y2), ..., (30, y30). – cartoonist

+2

Funzionerebbe con 'using (i-1) :(column (i))'. – Christoph

+0

Non funziona correttamente. Non traccia fila per riga, ma colonna per colonna. La risposta qui sotto è corretta. –

7

ho trovato una soluzione:

plot "data.dat" matrix every 1::1 with linespoint 
  • matix indica il tipo di file di dati con cui il file di input interpretato come matrice.
  • every 1::1 saltare la prima colonna
+0

C'è un modo per colorare ogni linea in modo diverso? –

+1

@JakubPietkun Sì, [c'è] (http://stackoverflow.com/a/20983399). Sembra, 'trama" data.dat "matrice usando 1: 3: 2 ogni 1: 1 con la palette dei punti di riferimento" farà il trucco. –

Problemi correlati