Celem tego mini-poradnika jest opanowanie umiejętności prezentacji danych z wykorzystaniem programu Gnuplot.
Słowa kluczowe: Gnuplot, przetwarzanie danych, modele matematyczne, wykresy
Plik dane:
1 2 2 3.5 3 3.7 4 5 4.2 6.1 5 8.5
Następnie wczytaj dane zawarte w pliku dane do programu gnuplot przy pomocy polecenia
plot 'dane'
Efekt poprawnie wykonanego polecenia powinien wygladać tak
Program Gnuplot posiada wiele opcji do zmiany wyglądu rysunku możemy np. zmienić wielkość wyświetlanych punktów.
Zobacz jak zmieni się rysunek jesli wykonamy następujące komendy
plot 'dane' points 1
plot 'dane' points 2
plot 'dane' title 'Nasze dane'
Inne style rysowania: (sprawdzaj, jak zmienia się styl reprezentacji danych)
plot 'dane' w l
plot 'dane' w l lt 3
plot 'dane' w l lt 3 lw 4
plot 'dane' w lp lt 4 lw 2 pt 5 ps 3
Zastosowane "litery" to skróty od:
w - with - "używając"
l - lines - rysowanie za pomocą linii (domyślnie były rysowane tylko punkty pomiarowe: "points" (skrót: p)). Możesz też wypróbować "linespoints", "impulses", "boxes")
lt - line type - typ linii; możesz poeksperymentować podając typ linii jako liczbę naturalną z zakresu 1-8
lw - line wight - szerokość (grubość) linii
lp - linespoints - rysowanie jednocześnie linii i punktów
pt - point type - rodzaj rysowanych punktów; możesz poeksperymentować podając wartość pt z zakresu 1-8
ps - point size - wielkość punktu
Możemy dodać opisy osi np. w celu dodania opisów do obu osi wykonujemy nastepującą serię poleceń
set xlabel 'Nasze X-y'
set ylabel 'Nasze Y-i'
replot
(replot - oznacz tu ponowne narysowanie tego, co rysowaliśmy ostatnio używając polecenia plot; czyli zamiast ponownie wpisywać:
plot 'dane' w lp lt 4 lw 2 pt 5 ps 3
(co było naszym ostatnim poleceniem rysowania) wystarczy, że wpiszemy "replot"
Możemy też dodać tytuł do naszego wykresu (1):
set title "Przebieg zmiennosci"
(to polecenie doda tytuł zapisany nad wykresem; aby tytuł był widoczny, należy wykres narysować jeszcze raz (pełnym poleceniem plot.... lub "replot"))
Możemy też dodać opis do legendy (prawa strona, u góry wykresu (2)):
plot 'dane' t 'pierwsza seria danych' w lp lt 4 lw 2 pt 5 ps 3
zobacz rysunek:
Możemy w końcu wyłączyć rysowanie osi z prawej strony i na górze wykresu:
set border 3
set xtics nomirror
set ytics nomirror
replot
Efekt powinien być podobny do:
Wykres jest bardzo ładny, jednak dobrze by było "zachować go sobie" do przyszłego użycia. Aby wyeksportować plik graficzny zawierający nasz wykres, należy wykonać sekwencję poleceń:
set term postscript color
set output 'wykres.ps'
replot
Po tym należy zamknąć program gnuplot (polecenie quit) i można obejrzeć swój plik z wykresem używając programu GhostView.
Polecenie:
gv wykres.ps
Pracę programu gv kończy się naciskając Q
Plik dane2:
9 0.0961 18 0.0856 27 0.0767 40 0.0645 54 0.0536 72 0.0432 105 0.027 135 0.0174 180 0.0089
Plik zawiera dane dotyczące kinetyki pewnej reakcji chemicznej przeprowadzonej w temperaturze 50°C. W pierwszej kolumnie podany jest czas w minutach
a w drugiej kolumnie podane jest stężenie w mol/l substratu reakcji. Na podstawie danych zawartych w pliku dane2
chcemy wyznaczyć stałą szybkości reakcji chemicznej, zakładając, że reakcja jest reakcją pierwszego rzędu. Zgodnie z równaniem kinetycznym reakcji pierwszego rzędu stężenie substratu reakcji przedstawione jest wzorem
Ct=Co exp(kt)
Gdzie Ct to stężenie substratu w chwili t, Co to początkowe stężenie substratu, k - stała szybkości reakcji, t - czas.
W rozpatrywanym przez nas przykładzie poniżej początkowe stężenie substratu wynosi 0.1056 mol/l
Na początek używając programu gnuplot zobaczmy jak wyglada wykres zależności stężenia od czasu. Uruchom program gnuplot i wykonaj polecenie:
plot 'dane2'
Efekt poprawnie wykonanego polecenia powinien wygladać tak
Zgodnie z przedstawionym powyżej równaniem możemy wyliczyć stałą szybkości k dla tej reakcji. Oczywiście możemy dla dowolnego czasu t wyznaczyć stałą k. Możemy jednak wyznaczyć tą stałą dla całego zbioru danych tak ją dopasowując, aby otrzymana w ten sposób funkcja najlepiej oddawała zebrane przez nas punkty pomiarowe. Oto seria komend w gnuplocie która na to pozwoli (komendy są pogrubione a zwykłą czcionką zaprezentowane są komentarze).
Definiujemy funkcję zmiany stężenia substratu zgodnie z przedstawionym powyżej równaniem:
f(x) = 0.1056*exp(k*x)
Następnie dfiniujemy początkową wartość dla stałej k np. 0.1
k=0.1
Następnie wykonyjemy fitowanie
fit f(x) 'dane2' using 1:2 via k
Efekt poprawnie wykonanego polecenia powinien wygladać tak
Komendę czytamy w ten sposób, że dopasowujemy do zadanej funkcji f(x) dane ze zbioru "dane2" i pierwsza kolumna to zmienna a druga kolumna to wartość funkcji, a parametrem który dopasowujemy jest k.
Efektem działania programu jest ciag operacji matematycznych których efekt obserwujemy w terminalu - jak na poprzedniej grafice.
Następnie możemy narysować zestaw danych i dopasowaną funkcję na ekranie.
plot 'dane2', f(x)
Ile wynosi k?