Wykonywanie wykresów za pomocą programu Gnuplot.


Podstawy obsługi w systemie Linux.



Jednym z największych problemów w opracowywaniu wyników jest wykonywanie wykresów. W chwili obecnej wykonuje się je najczęście za pomocą komputera. Można nabyć do tego celu specjalistyczne oprogramowanie. Niestety, jest ono drogie. Stosunkowo najprostszym rozwiązaniem wydaje się być zastosowanie Excela w którym po wpisaniu danych do arkusza możemy poleceniem Wstaw=> Wykres wykonać to zadanie. Jednak oprogramowanie to wykazuje szereg wad: przede wszystkim jest to program przeznaczony do wykonywania prac biurowych tak zwanej “grafiki biznesowej” i możemy mieć trudności z dostosowaniem go do naszych potrzeb, np umieszczeniem kilku wykresów na jednym rysunku itd. Proponujemy zastosowanie Wolnego Oprogramowania dzięki któremu będziemy mogli wykonać wszystkie potrzebne prace bez wydawania pieniędzy z zachowaniem profesjonalnych wymagań.


Światowym standardem do wykonywania wykresów jest Gnuplot. Program ten ma szereg zalet: potrafi wykonać bardzo trudne operacje ( na przykład na wielkiej liczbie punktów pomiarowych) łatwo się instaluje w różnych środowiskach zajmuje bardzo mało zasobów. Jest on darmowy, rozpowszechniany na licencji GPL i możemy z niego dowolnie korzystać, pobierać rozdawać itd umieszczać uzyskane za jego pomocą wyniki w komercyjnych pracach. Tak więc czas poświęcony na jego naukę jest wartościową inwestycją w umiejętności zawodowe. Program ma też pewną w gruncie rzeczy zupełnie pozorną niedogodność: obsługę z linii poleceń. W sieci można znaleźć wiele obszernych stron z pomocą dla niego .




Aby wykonać wykres musimy mieć oczywiście zainstalowany program Gnuplot oraz odpowiednio przygotowany plik z danymi. Program w środowisku Linux jest standardowo dostarczany z podstawowymi dystrybucjami. W środowisku Windows instaluje się go typowo, jak inne programy, przy czym dla Windows mamy kilka graficznych nakładek, które można polecić osobom przyzwyczajonym do pracy w trybie graficznym. Program z dostarczonych danych produkuje plik w zadanym graficznym formacie, który można wydrukować pomocą innego programu, lub dołączyć do dokumentu.


Uwaga: domyślnie program kieruje wynik przetwarzania na ekran i jako podgląd nie jest on zapisywany. Aby wynik pracy został zapisany trzeba wskazać format i podać nazwę pliku w jakim ma zostać zapisany.


Dane przygotowujemy w formacie tekstowym. Jest to najprostszy format danych z jakim się spotykamy w technice komputerowej. Najprostsze dane mają postać dwu kolumn oddzielonych spacją . Pierwsza kolumna zawiera zbiór danych zmienna x druga kolumna zmiennej y. Przykład poniżej: (Uwaga w takim zapisie kolumny “giną wizualnie”, sprawdź, że w każdym wierszu mamy dwie liczby oddzielone spacją)

1   0.11
2   0.121
3   0.134
4   0.139
5   0.151
6   0.164
7   0.172
8   0.188
9   0.193
10   0.201
11   0.215
12   0.225

Dane te możemy wcześniej otrzymać jako plik zapisany automatycznie z aparatury pomiarowej, możemy też przygotować go ręcznie w dowolnym edytorze, który posiada możliwość zapisu w pliku tekstowym. Nazwa pliku w przypadku systemu Linux jest dowolna, w przypadku systemu windows stosujemy rozszerzenie (trzy litery po kropce) txt lub dat. W obu przypadkach lepiej stosować takie samo rozszerzenie, co pozwoli zachować porządek. W przypadku Windows inne rozszerzenie lub jego brak może spowodować kłopoty z odczytanie i edycją pliku danych.


Program Gnuplot uruchamiamy w Linuksie z wiersza poleceń pisząc gnuplot .

Jeśli program jest prawidłowo zainstalowany zostanie wyświetlone szereg informacji oraz na końcu wiersz poleceń ze znakiem zachęty

gnuplot>

Polecenia programu będziemy wpisywać w tym wierszu. Aby wyświetlić okno z danymi zapisanymi w pliku “gnuplot_przyklad.dat” wpisujemy polecenie:

>plot'gnuplot_przyklad.dat' using 1: 2

Zostaje wówczas wyświetlone okno z wykresem w formie bitmapy a dzięki użyciu słowa using pierwsza kolumna zostaje użyta jako dane x druga jako dane y . Jeśli napisalibyśmy “ using 2:1” pierwsza kolumna będzie użyta jako dane y a druga jako dane x.

Gnuplot posiada bardzo obszerną pomoc. Aby uzyskać do niej dostęp piszemy w wierszu poleceń


> help.


Plik pomocy ma hierarchiczną budowę, możemy się dostać do konkretnych tematów pisząc


>help startup

lub

> help plot

O ile temat istnieje, zostanie wyświetlony.


Program obsługuje drukarki, jednak najwygodniej wykres wydrukować z innej aplikacji.

Dobrym sposobem jest zapisanie wykresu w języku (formacie) postscript i wydrukowanie go za pomocą np. ghostviev. Jeśli chcemy umieścić wykres w dokumencie innej aplikacji ( choćby MS Word) zapisujemy wykres jako obrazek np. w formacie png. Aby tego dokonać musimy najpierw poinformować program w jakim formacie ma dokonać zapisu, oraz jak ma się nazywać plik. Dokonujemy tego poleceniem :


>set terminal nazwa_formatu

>set output 'nazwa_pliku'.


Na przykład tworzymy wykres w poscripcie w kolorze, w pliku “moj_wykres.ps”


>set terminal postscript color

>set output moj_wykres.ps





Rys 1 Okno terminala z programem Gnuplot, oraz okno wyświetlonego wykresu.











Rys 2 Efekt polecenia

>plot'gnuplot_przyklad.dat' using 1: 2 .









Taki “wykres” zawiera tylko punkty pomiarowe. Musimy dodać jeszcze linię przybliżającą przebieg zmiennej .Gnuplot potrafi przybliżać dane pomiarowe (“fitować”) bardzo skomplikowanymi funkcjami, lecz na I pracowni wystarczy linia prosta, zwana prostę regresji. Wykonamy to następującymi poleceniami. (Przybliżamy dane zawarte w pliku “przykład.dat”)


> f(x)=a*x+b;

> fit f(x) 'gnuplot_przyklad.dat' using 1:2 via a, b







Rys.3 Terminal programu z wyświetlonymi wartościami współczynników prostej regresji.








Po tej komendzie w oknie terminala tekstowego program wyświetli nam wartości współczynników a, b,wartości ich błędów, oraz inne wartości, kó;re będą potrzebne przy bardziej skomplikowanej analizie wyników niż na I Pracowni.


Poleceniem gnuplot> plot 'gnuplot_przyklad.dat', f(x) umieścimy na jednym wykresie punkty danych oraz aproksymującą je prostą.





Rys 4. Wykres z naniesioną prostą regresji.






Za pomocą następujących komend opiszemy osie:

gnuplot> set xlabel "dane x"

gnuplot> set ylabel "dane y"

Komendą

> set title'regresja'

dodajemy nazwę wykresu.


Przypominamy, aby zapisać wykres do pliku musimy podać nazwę pliku wyjściowego

>set output'przyklad_out.png'


Komendą

>set terminal png color

informujemy program do jakiego formatu ma zostać skonwertowany wynik pracy ( w tym wypadku kolorowa bit mapa typu png )


Rys 5 Wykres z opisem osi i tytułem

.

.

.

.




Umieszczenie na wykresie niepewności pomiarowych.


Aby umieścić na wykresie niepewności pomiarowe punktów pomiarowych musimy uzupełnić plik z naszymi danymi o kolumny zawierające ich wartości. W najprostszym wypadku gdy zaznaczamy tylko niepewność pomiarową na osi x lub y plik zawiera trzy kolumny danych (x, y ,niepewność pomiarowa) gdy zaznaczamy niepewność pomiarową na osiach x i y plik z danymi powinien zawierać 4 kolumny. Gnuplot obsługuje także bardziej skomplikowane przypadki. ( Zobacz w pomocy poleceniem > help errorbars )


Niepewność pomiarowa jest naniesiona na wykres w wyniku dodania do polecenia plot opcji with errorbars, xerrorbars, yerrorbars, xyerrorbars, w zależności od potrzeby.


Polecenie plot xyerrorbars zakłada określoną kolejność kolumn. Na przykład

dane x, dane y , niepewność pomiarowa x, niepewność pomiarowa y.


Jeśli chcemy aby kolejność kolumn była inna musimy za pomocą słowa using poinformować program o tej kolejności.


W poniższym przykładzie trzecia kolumna zawiera niepewność pomiarową dla osi y a kolumna 4 dla osi x (Sprawdź że poszczególne wiersze zawierają 4 liczby oddzielone spacjami!)


1    0.11    0.09   0.5
2    0.121    0.091   0.5  
3    0.134    0.04    0.6  
4    0.1390    0.07    0.5
5    0.151    0.05    0.5
6    0.164    0.08    0.4
7    0.172    0.08    0.6
8    0.188    0.07    0.8
9    0.193    0.04    0.5
10    0.201    0.06    0.4
11    0.215    0.05    0.5
12    0.225    0.08    0.5


Do wykonania wykresu użyjemy komendy :


> plot'gnuplot_przyklad_er.dat' using 1:2:4:3 with xyerrorbars


Zwróć uwagę, że kolejność kolumn zamieniliśmy wymieniając je po słowie using.




Rys. 6. Wykres wykonany na podstawie danych z naszego przykładu.





Przykłady innych użytecznych komend.

   zmiana skali osi y:    (skala zaczyna się w punkcie 0,001 i kończy w punkcie 0,005)                               
> set yrange [0.001:0.005]
     zmiana skali osi x:    (skala zaczyna się w punkcie 20 i kończy w punkcie 500)                              
> set xrange [20:500]
     autoskalowanie (Gnuplot ustala sam zakres skali):   
> set autoscale
Uwaga: w miejsce liczb w nawiasach kwadratowych wstawiamy własne wartości!


Wstawienie siatki na wykres > set grid


ustawienie skali logarytmicznej na osi y > set logscale y