Gnuplot
Tracciamento di base di file di dati
Ricerca…
introduzione
Una delle principali caratteristiche utili di gnuplot è la possibilità di tracciare i file di dati . Tracciare un file di dati è davvero semplice con gnuplot , in realtà, una volta aperto il software dal terminale, è sufficiente digitare il comando plot 'file'
per ottenere un grafico automatico.
Prima di tutto, prima di stampare, devi essere sicuro di trovarti nella stessa directory in cui si trova il file di dati, altrimenti alla fine riceverai un warning
.
Sintassi
- trama file di dati usando column_expression con stile
Traccia un singolo file di dati
Il plot
comando gnuplot predefinito (anche solo p
) traccia il set di dati con le colonne, sotto forma del file data_set.dat
sottostante.
# Prototype of a gnuplot data set
# data_set.dat
# X - X^2 - 2*X - Random
0 0 0 5
1 1 2 15
1.4142 2 2.8284 1
2 4 4 30
3 9 6 26.46
3.1415 9.8696 6.2832 39.11
4 16 8 20
4.5627 20.8182 9.1254 17
5.0 25.0 10.0 25.50
6 36 12 0.908
Come puoi vedere puoi scrivere nel tuo set di dati in notazione a virgola mobile. Ora tutto è pronto per tracciare i dati: digitando solo
plot "data_set.dat"
gnuplot produrrà un grafico nella destinazione di output
. Le impostazioni predefinite useranno le prime due colonne del tuo file di dati, rispettivamente xey. Per specificare le colonne da tracciare usa lo specificatore using
plot "data_set.dat" using 2:4
che significa "traccia il file usando la colonna 2 come X e la colonna 4 come Y". Nel caso in cui il set di dati sia un file tridimensionale, basta usare splot
ad aggiungere la z-column
splot "data_set.dat" using 1:2:3
Ci sono anche stili diversi (vedi documentazione gnuplot o Selezione di uno stile di tracciamento per ulteriori informazioni) per i punti di tracciamento. Come detto prima, lo stile predefinito è il point
plot "data_set.dat" using 1:4 with point
che traccerà lo stesso come se non si digiti with point
. Uno stile utile per il linespoint
dati è il punto di linespoint
che è, ovviamente, "linee + punti". PER ESEMPIO:
plot "data_set.dat" using 1:4 with linespoint
# the abbreviated form is completely equivalent:
# p "data_set.dat" u 1:4 w lp
Forme di tracciamento dell'iterazione
Nel caso si dispone di più colonne e si desidera tracciare tutti in uno stesso grafico semplicemente passare alla plot
funzione di qualsiasi argomento si preferisce, separandoli con una ,
:
p "data_set.dat" u 1:2 w lp,\
"data_set.dat" u 1:3 w lp,\
"data_set.dat" u 1:4 w lp
Comunque a volte ci potrebbero essere troppe colonne per scrivere uno per uno. In questi casi la for
iterazione risultati ciclo molto utile:
p for [col = 2:4] "data_set.dat" using 1:col w lp
che dà l'output
Brevemente il for
iterazione incrementare la variabile nel ciclo, in questo caso col
, con passaggi deciso (se non specificato = 1). Ad esempio for [i = 0:6:2]
incrementerà i
da 0 a 6 in 2 passaggi: i = 0, 2, 4, 6
. Tutti i valori (start, stop e increment) vengono convertiti in valori interi.
* Grid
La griglia è spesso utile quando si traccia un set di dati. Per aggiungere un tipo di griglia
set grid
Tracciare più file di dati
Primo metodo - Concatenazione di stringhe
Il metodo più semplice per tracciare più file di dati è inserire un ciclo for
all'interno del comando plot
di gnuplot. Supponendo che tu abbia N
file chiamati sequently, ie
file_1.dat
file_2.dat
file_3.dat
...
file_N.dat
Esecuzione del comando
plot for[i = 1:N] "file_".i.".dat"
file_1.dat
tutti i file tra file_1.dat
e file_N.dat
nello stesso grafico.
Esempio con tre file di dati
Tabella dei set di dati
X-Assi | Y-Ax file_1.dat | Y-Ax file_2.dat | Y-Ax file_3.dat |
---|---|---|---|
1 | 1 | 1 | 1 |
2 | 2 | 4 | 2 |
3 | 3 | 9 | 6 |
4 | 4 | 16 | 24 |
5 | 5 | 25 | 120 |
comandi
set terminal postscript color noenhanced ##setting the term
set output "multiple_files.ps"
set key center ##legend placement
plot [1:5][1:120] \
for [i = 1:3] "file_".i.".dat" \
pointsize 1.3 linecolor i+4 \
title "file\_".i.".dat" \
with linespoint
Il ciclo inizia con for [i = 1:3] "file_".i.".dat"
ed esegue il comando plot
fino a raggiungere i = 3
. Il .i.
è il numero concatenato.
title "file\_".i.".dat"
è stato scritto con \
per far sì che il simbolo _
nel nome dei file appaia come carattere di sottolineatura piuttosto che come indice , e l' noenhanced
è fondamentale per ottenere questo risultato .
Il risultato finale è mostrato sotto
Secondo metodo: utilizzo della funzione sprintf
Un altro possibile percorso da seguire è l'utilizzo della funzione sprintf
che funziona fondamentalmente come lo sprintf
linguaggio C. La sintassi corretta è la documentazione di gnuplot 5.1
sprintf("format", x, y, ...)
Un breve esempio chiarirà ogni dubbio.
file_name(n) = sprintf("file_%d.dat", n)
plot for[i = 1:N] file_name(i) title file_name(i)