Rafał Ślusarz

 
 
 
 

GNUPLOT - podstawowe wykorzystanie


Celem tego mini-poradnika jest opanowanie umiejętności prezentacji danych z wykorzystaniem programu Gnuplot.

Słowa kluczowe: Gnuplot, przetwarzanie danych, modele matematyczne, wykresy

  1. Wprowadzenie
    Gnuplot jest przeznaczony do przetwarzania danych i ich prezentacji w formie dwu- i trójwymiarowych wykresów. Program Gnuplot jest programem darmowym i można go pobrać ze strony http://www.gnuplot.info/.

  2. Uruchamianie programu Gnuplot
    Aby uruchomić program gnuplot w terminalu tekstowym piszemy po prostu gnuplot i naciskamy ENTER. obraz

  3. Rysowanie prostych funkcji z zastosowaniem programu Gnuplot
    Po uruchomieniu programu Gnuplot w tym samym oknie terminala w którym uruchomiliśmy program piszemy

    plot sin(x)

    Pojawia się nowe okno z rysunkiem przedstawiającym wykres funkcji sinus obraz Możemy na jednym wykresie jednocześnie wyświetlić przebieg kilku funkcji (na jednym rysunku). W tym celu wydajemy polecenie:

    plot sin(x),cos(x),cos(x)*sin(x)

    Pojawia się wykres przebiegu funkcji sinus (kolor czerwony), funkcji kosinus(kolor ziolony) i funkcji zdefiniowanej jako iloczyn funkcji sinus i kosinus (kolor niebieski) obraz Możemy nakreślić dowolną funkcję jednej zmiennej jeśli tylko potrafimy ją zapisać. Z przykładów wiemy już jak zapisać funkcje trygonometryczne i jak wygląda znak mnożenia. Inne użyteczne znaki działań to:

    - odejmowanie
    + dodawanie
    ** potęgowanie
    / dzielenie

    Inne użyteczne funkcje to:

    log - logarytm o podstawie dziesiętnej
    sqrt - pierwiastek kwadratowy

    Czyli np. funkcję logarytm dziesiętny z kwadratu zmiennej X zapisujemy tak

    log(x**2)

    Czy potrafisz narysować przebieg zmienność nastepujących funkcji:

    cosinus kwadratu zmiennej X
    iloraz kwadratu zmiennej X i sinusa zmiennej X

  4. Rysowanie prostych funkcji trójwymiarowych

    Aby narysować funkcję dwu zmiennych zamiast komendy plot używamy komendy splot

    splot -x**3-y

    Efekt takiej komendy możesz zobaczyć tutaj obraz

  5. Wczytwanie i wizualizacja danych

    Przy pomocy programu Gnuplot możemy zaprezentować dane, które mamy już wcześniej zapisane w postaci jakiegoś pliku. Aby wykonać to ćwiczenie stwórz plik o nazwie dane do swoim katalogu domowym.

    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 obraz
    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: obraz 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: obraz 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


  6. Zatosowanie programu Gnuplot do obliczeń chemicznych

    Aby wykonać to ćwiczenie stwórz plik o nazwie dane2 w swoim katalogu domowym.

    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 obraz
    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 obraz 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?

↑↑↑


  Data ostatniej modyfikacji strony: 19.02.2021 r.