Szukaj…


Wprowadzenie

Jedną z głównych przydatnych funkcji gnuplot jest możliwość drukowania plików danych . Wykreślenie pliku danych jest bardzo proste dzięki gnuplot , w rzeczywistości po otwarciu oprogramowania z terminala wystarczy tylko plot 'file' poleceń plot 'file' aby uzyskać wykres automatyczny.

Przede wszystkim, przed wydrukowaniem musisz być w tym samym katalogu, w którym znajduje się plik danych, w przeciwnym razie otrzymasz warning .

Składnia

  • wykreśl plik danych przy użyciu wyrażenia_kolumny ze stylem

Wykreśl pojedynczy plik danych

Domyślny plot komendy gnuplot (także tylko p ) data_set.dat zestaw danych z kolumnami w postaci pliku data_set.dat poniżej.

# 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

Jak widać, możesz zapisać w swoim zbiorze danych w notacji zmiennoprzecinkowej. Teraz wszystko jest gotowe do kreślenia danych: wystarczy pisać

plot "data_set.dat"

gnuplot przedstawi wykres w swojej output przeznaczenia. Domyślne ustawienia będą używać pierwszych dwóch kolumn pliku danych, odpowiednio xiy. Aby określić kolumny do wydrukowania, użyj specyfikatora using

plot "data_set.dat" using 2:4

co oznacza „wydrukuj plik, używając kolumny 2 jako X i kolumny 4 jako Y”. W przypadku, gdy twój zestaw danych jest plikiem trójwymiarowym, po prostu użyj reklamy splot i dodaj kolumnę Z.

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

Istnieją również różne style (patrz dokumentacja gnuplot lub Wybieranie stylu drukowania w celu uzyskania dalszych informacji) dla punktów drukowania. Jak powiedziano wcześniej, domyślnym stylem jest point

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

które wykreślą to samo, jakbyś nie pisał za with point . Przydatnym stylem do kreślenia danych jest linespoint który jest oczywiście „liniami + punktami”. NA PRZYKŁAD:

plot "data_set.dat" using 1:4 with linespoint
# the abbreviated form is completely equivalent:
# p "data_set.dat" u 1:4 w lp

punkt linii

Formy iteracji kreślenia

W przypadku gdy masz więcej kolumn i chcesz je wykreślić wszystko w tym samym wykresie po prostu przejść do plot funkcji żadnego argumentu wolisz, oddzielając je z , :

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

W każdym razie czasami może być za dużo kolumn, aby napisać jeden po drugim. W przypadku tych for wyniki iteracji pętli bardzo przydatne:

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

co daje wynik

Iterowana fabuła

W skrócie, for iteracji inkrementujemy zmienną w pętli, w tym przypadku col , o ustalonych krokach (jeśli nie podano = 1). Na przykład for [i = 0:6:2] będzie zwiększać i od 0 do 6 w 2 krokach: i = 0, 2, 4, 6 . Wszystkie wartości (start, stop i przyrost) są rzutowane na wartości całkowite.

* Siatka

Siatka jest często przydatna podczas drukowania zestawu danych. Aby dodać typ siatki

set grid

Rysowanie wielu plików danych

Pierwsza metoda - konkatenacja łańcuchów

Najprostszym sposobem wykreślenia wielu plików danych jest wstawienie pętli for wewnątrz polecenia plot gnuplot. Zakładając, że masz N nazwanych kolejno plików, tj

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

Wykonanie polecenia

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

wykreśli wszystkie pliki między file_1.dat i file_N.dat na tym samym wykresie.


Przykład z trzema plikami danych

Tabela zestawów danych

Osie X. Plik Y-Axe_1.dat Plik Y-Axe_2.dat Plik Y-Axe_3.dat
1 1 1 1
2) 2) 4 2)
3) 3) 9 6
4 4 16 24
5 5 25 120

Polecenia

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

Pętla zaczyna się for [i = 1:3] "file_".i.".dat" i wykonuje polecenie plot aż osiągnie i = 3 . .i. to skonkatenowana liczba.

title "file\_".i.".dat" został napisany za pomocą \ , aby symbol _ w nazwie plików noenhanced się jako podkreślenie, a nie indeks dolny , a noenhanced specyfikator ma kluczowe znaczenie dla uzyskania tego wyniku .

Ostateczny wynik pokazano poniżej

Przykładowa fabuła


Druga metoda - użycie funkcji sprintf

Inną możliwą ścieżką jest użycie funkcji sprintf która działa w zasadzie tak samo jak sprintf języku C. Właściwą składnią z dokumentacji gnuplot 5.1 jest

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

Krótki przykład wyjaśni wszelkie wątpliwości.

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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow