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)


