Gnuplot
Podstawowe drukowanie plików danych
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
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
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
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)