Gnuplot
Eenvoudig plotten van gegevensbestanden
Zoeken…
Invoering
Een van de belangrijkste handige functies van gnuplot is de mogelijkheid om gegevensbestanden te plotten. Het plotten van een gegevensbestand is heel eenvoudig met gnuplot , eigenlijk hoeft u, zodra u de software vanaf de terminal hebt geopend, alleen de opdrachtplot plot 'file'
te coderen om een automatische plot te krijgen.
Allereerst moet u ervoor zorgen dat u zich vóór het plotten in dezelfde map bevindt als het gegevensbestand, anders krijgt u uiteindelijk een warning
.
Syntaxis
- plot datafile met behulp van column_expression met stijl
Plot een enkel gegevensbestand
De standaard gnuplot commando plot
(ook slechts p
) plot dataset met kolommen, van de vorm van de data_set.dat
bestand hieronder.
# 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
Zoals u ziet, kunt u in uw gegevensset schrijven in notatie met drijvende komma. Nu is alles klaar om de gegevensplot te maken: alleen door te typen
plot "data_set.dat"
gnuplot zal een grafiek produceren in uw output
. De standaardinstellingen gebruiken de eerste twee kolommen van uw gegevensbestand, respectievelijk x en y. Om de kolommen opgeven om getekende gebruik het using
specifier
plot "data_set.dat" using 2:4
wat betekent "plot het bestand met kolom 2 als X en kolom 4 als Y". In het geval dat uw gegevensset een driedimensionaal bestand is, gebruikt u gewoon een splot
advertentie en voegt u de z-kolom toe
splot "data_set.dat" using 1:2:3
Er zijn ook verschillende stijlen (zie gnuplot-documentatie of Een plotstijl selecteren voor meer informatie) voor het plotten van punten. Zoals eerder gezegd, is de standaardstijl point
plot "data_set.dat" using 1:4 with point
die hetzelfde plot als wanneer u niet with point
typt. Een nuttige stijl voor het plotten van gegevens is linespoint
dat is duidelijk "lijnen + punten". Bijv:
plot "data_set.dat" using 1:4 with linespoint
# the abbreviated form is completely equivalent:
# p "data_set.dat" u 1:4 w lp
Vormen van het plotten van iteratie
In het geval u meer kolommen en willen ze plotten allemaal in dezelfde grafiek gewoon door te geven aan de plot
functie enige argument dat u wilt, door ze te scheiden met een ,
:
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
Hoe dan ook, soms kunnen er teveel kolommen zijn om één voor één te schrijven. In dit geval is de lus for
iteratie erg handig:
p for [col = 2:4] "data_set.dat" using 1:col w lp
die de output geeft
Kort gezegd, verhoog for
iteratie de variabele in de lus, in dit geval col
, met een besliste stap (indien niet gespecificeerd = 1). Voor for [i = 0:6:2]
wordt i
verhoogd van 0 naar 6 in 2 stappen: i = 0, 2, 4, 6
. Alle waarden (start, stop en increment) worden naar gehele getallen gegoten.
* Raster
Het raster is vaak handig bij het plotten van een gegevensset. Een rastertype toevoegen
set grid
Meerdere gegevensbestanden plotten
Eerste methode - Aaneenschakeling van strings
De eenvoudigste methode om meerdere databestanden plot is om in te voegen for
lus in de plot
bevel van gnuplot. Ervan uitgaande dat u N
bestanden opeenvolgend hebt genoemd, dat wil zeggen
file_1.dat
file_2.dat
file_3.dat
...
file_N.dat
Het commando uitvoeren
plot for[i = 1:N] "file_".i.".dat"
plot alle bestanden tussen file_1.dat
en file_N.dat
in dezelfde grafiek.
Voorbeeld met drie gegevensbestanden
Tabel met gegevenssets
X-Assen | Y-Axe file_1.dat | Y-Axe file_2.dat | Y-Axe file_3.dat |
---|---|---|---|
1 | 1 | 1 | 1 |
2 | 2 | 4 | 2 |
3 | 3 | 9 | 6 |
4 | 4 | 16 | 24 |
5 | 5 | 25 | 120 |
commando's
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
De lus begint met for [i = 1:3] "file_".i.".dat"
en voert het plot
uit totdat het i = 3
. De .i.
is het aaneengesloten getal.
title "file\_".i.".dat"
is geschreven met het \
om het _
symbool in de naam van de bestanden te laten verschijnen als een onderstrepingsteken in plaats van een subscript , en een noenhanced
specificatie is van fundamenteel belang om dit resultaat te verkrijgen .
Het eindresultaat wordt hieronder weergegeven
Tweede methode - sprintf
functie gebruiken
Een ander mogelijk pad om te volgen is de sprintf
functie die in principe hetzelfde werkt als de C-taal sprintf
. De juiste syntaxis, uit de documentatie van gnuplot 5.1 is
sprintf("format", x, y, ...)
Een kort voorbeeld zal elke twijfel verhelderen.
file_name(n) = sprintf("file_%d.dat", n)
plot for[i = 1:N] file_name(i) title file_name(i)