GnuPlot - podstawy
|
GnuPlot |
Gnuplot jest narzędziem do kreślenia wykresów 2D i 3D, sterowanym z wiersza poleceń. Ta jego cecha, oraz możliwość pobierania zewnętrznych danych, umożliwia jego wykorzystanie do wizualizacji wyników z innych programów. Możliwe są dwa tryby pracy:
- Jezeli uruchomimy program bez podania zadnych parametrow (polecenie gnuplot), bedzie on pracowal w trybie interaktywnym (bedzie oczekiwal na komendy uzytkownika i kolejno je wykonywal). Aby zakonczyc prace, nalezy wpisac komende exit, quit lub q.
- Jezeli podamy parametr (polecenie gnuplot plik), program wykona polecenia zawarte w pliku i zakonczy prace (tryb wsadowy)
- Zmienne i funkcje
- Wykresy 2D
- Wykresy 3D
- Wykresy parametryczne
- Konfiguracja Wykresow
- Dane zewnetrzne
- Zapis wynikow
- Skrypty i tryb wsadowy
- Dalsze zrodla informacji
Zmienne i funkcje
W przypadku wykresow dwuwymiarowych zmianna niezalezna jest x (lub t w trybach: parametrycznym i biegunowym). Dla wykresow trojwymiarowych zmiennymi niezaleznymi sa odpowiednio x i y (lub u i v w trybie parametrycznym). Nazwy zmiennych niezaleznych mozna przypisywac poleceniem set dummy.
Funkcje definiujemy w sposob podobny jak w jezykach programowania,
np.
f(x) = x**2 + 2*x + 1
oznacza funkcje f(x) = x2 + 2x + 1,
zas
g(x) = (x<0) ? -x**2 : x**2
oznacza funkcje g(x) = {-x2 dla x<0 i x2 dla x>=0}.
Podstawowe operatory i funkcje matematyczne, ktore oferuje GnuPlot, to:
a+b suma a i ba-b roznica a i b a*b iloczyn a i b a/b iloraz a i b a**b podniesienie a do potegi b sqrt(a) pierwiastek kwadratowy z a exp(a) podniesienie liczby e=2,71828 do potegi a log(a) logarytm naturalny (o podstawie e) z a log10(a) logarytm dziesietny z a abs(a) wartosc bezwzgledna z a sgn(a) signum (=1 dla a>0, =-1 dla a<0, =0 dla a=0) real(a) czesc rzeczywista liczby zespolonej imag(a) czesc urojona liczby zespolonej sin(a) funkcje trygonometryczne cos(a) tan(a) asin(a) funkcje cyklometryczne (arcus sinus, ...) acos(a) atan(a) sinh(a) funkcje hiperboliczne cosh(a) tanh(a) a && b logiczne AND a || b logiczne OR
Nalezy pamietac, ze operacje na zmiennych zdefiniowanych jako calkowite moga dac inne rezultaty, niz w przypadku zmiennych rzeczymistych.
np.
1.0 / 4.0 = 0.25
1 / 4 = 0
Wykresy 2D |
![]() |
Do kreslenia wykresow 2D sluzy polecenie plot. Jego skladnia jest nastepujaca:
plot [przedzial zmiennej] funkcja1, funkcja2, … title “nazwa”
np. polecenie:
plot [0:10] x**2-2*x , 5*sin(x)
spowoduje wykreslenie wykresow dwoch funkcji dla x zmieniajacego sie w przedziale <0,10>.
zaś:
plot x*sin(x+2) title “Funkcja”
spowoduje wykreslenie w domyslnym przedziale wykresu i nadanie mu nazwy “Funkcja”.Dwuwymiarowe wykresy mozna kreslic takze w biegunowym ukladzie wspolrzednych. Sluzy do tego polecenie set polar. Zmienna niezalezna (t) jest wtedy kat w radianach, a zmienna zalezna - promien. Do zmiany jednostek katowych stosuje sie polecenia: set angles degrees (stopnie) i set angles radians (radiany).
W celu przywrocenia kartezjanskiego ukladu wspolrzednych stosujemy komende set nopolar.
Wykresy 3D |
![]() |
Do kreslenia wykresow 3D sluzy polecenie splot. Jego skladnia jest nastepujaca:splot [przedzial 1] [przedzial 2] funkcja1, funkcja2, … title “nazwa”np. polecenie
splot [-10:10] [-10:10] x**2*y
powoduje wykreslenie wykresu funkcji dla x i y zmieniajacych sie w przedziale <-10,10>
Do obracania wykresu 3D sluzy komenda set view kat_x, kat_z
Wykresy parametryczne |
![]() |
W wykresach parametrycznych zmienne x,y uzalezniamy od parametru t ( dla 3D - odpowiednio x,y,z zaleza od u i v). Do wlaczenia trybu parametrycznego sluzy polecenie set parametric.Przykladem wykresow parametrycznych jest obrazek obok, wygenerowany przez skrypt:
#! /usr/bin/gnuplotset parametric; set polar; set samples 200; set grid polar set size 1,1; set origin 0.1,0.1; set multiplot set size 0.5,0.5; set origin 0.0,0.0; plot sin(2*pi*cos(t)), exp(t)-t set size 0.5,0.5; set origin 0.5,0.0; plot sin(2*pi*sin(t)), exp(t)+t set size 1.0,0.5; set origin 0.0,0.5; plot t, sin(t)*t set nomultiplot pause -1 "Press ENTER to continue"
Konfiguracja wykresow
Wiecej o przedzialach
Jezeli dla danej zmiennej nie zostanie okreslony przedzial, zostaje przyjeta jego poprzednia wartosc (poczatkowo <-10,10>). Przedzial zmiennej zaleznej jest okreslany automatycznie.
Jesli chcemy, bez okreslania przedzialu dla zmiennej x, okreslic przedzial dla zmiennej y, ten pierwszy zapisujemy: [ ].
Przedzialy dla zmiennych mozna tez okreslac za pomoca polecen:
set xrange, set yrange i set zrange
np.
set xrange [-0.5:1.0] .
W ten sposob zdefiniowane przedzialy obowiazuja we wszystkich nastepnych wykresach nie posiadajacych wlasnej definicji przedzialu. Jezeli chcemy przywrocic automatyczne ustalanie przedzialow, wywolujemy polecenie
set autoscale [zmienna]
Inne przydatne polecenia
set xlabel “nazwa”, set ylabel “nazwa” i set zlabel “nazwa”
set title “nazwa”
set grid
set samples
set isosamples
set nokey
plot … with boxes
set boxwidth
set hidden3d
set contour
set nosurface
set cntrparam
Dane zewnetrzne
| Dane w postaci wspolrzednych kolejnych punktow mozemy odczytac z pliku zewnetrznego. Nazwe pliku podajemy w cudzyslowie, jak w przykladzie ponizej: plot ‘plik_z_danymi’ Przykladowy plik zawierajacy dane przedstawiono po prawej.Aby na wykresie kolejne punkty polaczone byly liniami, stosujemy polecenie set data style, np. set data style linesAby zastosowac wygladzanie, dodajemy polecenie smooth, np. plot ‘plik_z_danymi’ smooth bezier |
30 10 10 20 20 40 30 90 30 100 45 120 55 110 70 100 100 100 |
Zapis wynikow
Aby zapisac uzyskany wykres nalezy zmienic typ wyjscia (polecenie set terminal), oraz okreslic plik wyjsciowy (polecenie set output).
Skladnia i mozliwe opcje obu polecen sa nastepujace:
- set terminal typ
- X11 - ekran
postscript - plik postskryptowy (ps)
png [small medium large] [monochrome gray color] - obraz png
dxf - plik dxf (AutoCAD)
table - wynikiem jest tablica zawierajaca wspolrzedne punktow wykresu - set output “nazwa_pliku”
- jesli pominiemy nazwe, wyjscie zostanie przekierowane na STDOUT (ekran)
Do podgladu aktualnych ustawien sluza polecenia show terminal i show output
Skrypty i tryb wsadowy
Podobnie jak w przypadku skryptow shell’a, dodanie linijki ze sciezka dostepu do gnuplota:
#!/usr/bin/gnuplot,
oraz zmiana atrybutow pliku na wykonywalny powoduje, ze do uruchomienia takiego skryptu nie trzeba wpisywac polecenia gnuplot.
Po wykonaniu polecen zapisanych w skrypcie okienko z wykresem natychmiast sie zamknie. Aby tego uniknac, stosujemy instrukcje pause. Jako parametr przyjmuje ona czas, jaki ma uplynac od wykonania zadania do zamkniecia okienka. Jesli podamy -1, program bedzie oczekiwal na nacisniecie klawisza ENTER przez uzytkownika
np.
pause -1 “Press ENTER to continue”
Podczas pisania skryptow do gnuplota przydatne moga okazac sie znaki:
# - komentarz
; - koniec polecenia
\ - kontynuacja linii
Dalsze zrodla informacji
Dalsze, bardziej szczegolowe informacje na temat programu GnuPlot mozna uzyskac, korzystajac z interaktywnej pomocy tego programu (polecenie help albo ?). Informacje na temat danego polecenia uzyskac mozna wpisujac help nazwa_polecenia.



