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

linespoint

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

Iterated plot

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

De voorbeeldplot


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)


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow