Sök…


Introduktion

En av de viktigaste användbara funktionerna i gnuplot är möjligheten att plotta datafiler . Att plotta en datafil är verkligen enkelt med gnuplot , när du väl har öppnat programvaran från terminalen behöver du bara siffran kommandot plot 'file' att få en automatisk tomt.

Först av allt, innan du planerar, måste du vara säker på att vara under samma katalog där datafilen är, annars får du så småningom en warning .

Syntax

  • plot datafile med kolumnuttryck med stil

Planera en enda datafil

Gnuplot- kommandot plot (även endast p ) plottdataset med kolumner, i form av filen data_set.dat nedan.

# 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

Som du ser kan du skriva i din datauppsättning i flytande punktnotation. Nu är allt redo att göra dataplanen: genom att bara skriva

plot "data_set.dat"

gnuplot producerar en graf i din output . Standardinställningarna använder de två första kolumnerna i din datafil, respektive x och y. För att specificera kolumnerna som ska plottas med using specifikatorn

plot "data_set.dat" using 2:4

vilket betyder "plotta filen med hjälp av kolumn 2 som X och kolumn 4 som Y". Om din datauppsättning är en tredimensionell fil, använd bara splot lägg till z-kolumnen

splot "data_set.dat" using 1:2:3

Det finns också annan stil (se gnuplot-dokumentation eller Välja en plottningsstil för ytterligare information) för att plotta poäng. Som sagt tidigare är standardstilen point

plot "data_set.dat" using 1:4 with point

vilket kommer att plotta samma sak som om du inte skriver with point . En användbar stil för linespoint är linespoint , som uppenbarligen är "linjer + poäng". T.EX:

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

Former för att plotta iteration

I det fall du har fler kolumner och vill rita dem alla i samma graf bara övergå till plot funktionen något argument du föredrar, genom att separera dem med ett , :

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

Hur som helst ibland kan det finnas för mycket kolumner för att skriva en efter en. I dessa fall blir slingan for iteration mycket användbar:

p for [col = 2:4] "data_set.dat" using 1:col w lp

vilket ger utgången

Iterated plot

Kortfattat ökar variabeln i slingan for iteration, i detta fall col , med ett beslutat steg (om inte specificerat = 1). Till exempel for [i = 0:6:2] ökar i från 0 till 6 i 2 steg: i = 0, 2, 4, 6 . Alla värden (start, stopp och steg) kastas till heltal.

* Rutnät

Rutnätet är ofta användbart när du planerar en datauppsättning. Lägga till en rutnätstyp

set grid

Plottar flera datafiler

Första metoden - sammankoppling av strängar

Den enklaste metoden för att plotta flera datafiler är att sätta in en for loop i plot för gnuplot. Förutsatt att du har N filer namngivna i följd, dvs.

file_1.dat
file_2.dat
file_3.dat
...
file_N.dat

Utför kommandot

plot for[i = 1:N] "file_".i.".dat" 

kommer att plotta alla filerna mellan file_1.dat och file_N.dat i samma graf.


Exempel med tre datafiler

Tabell över datasätt

X-Axlar Y-Ax fil_1.dat Y-Ax fil_2.dat Y-Ax fil_3.dat
1 1 1 1
2 2 4 2
3 3 9 6
4 4 16 24
5 5 25 120

kommandon

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

Slingan börjar med for [i = 1:3] "file_".i.".dat" och kör plot tills den når i = 3 . .i. är det sammankopplade numret.

title "file\_".i.".dat" har skrivits med \ för att få symbolen _ i filernas namn att visas som en understruk snarare än ett prenumeration , och noenhanced specificer är grundläggande för att få detta resultat .

Det slutliga resultatet visas nedan

Exemplet plot


Andra metoden - Använd sprintf funktion

En annan möjlig väg att följa är att använda sprintf funktionen som fungerar i princip samma som C-språkets sprintf . Rätt syntax, från gnuplot 5.1-dokumentationen är

sprintf("format", x, y, ...)

Ett kort exempel klargör varje tvivel.

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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow