MC, 12:16 czwartek, 26.08.2010 r.
Ilustracja do artykułu: GNUplot: część 3. - Rysowanie (style - całość)

GNUplot: część 3. - Rysowanie (style - całość)

W tej części poradnika chciałbym skupić się stylach rysowanych wykresów, więc do rzeczy.
Dla przypomnienia, tak wygląda składnia polecenia plot:

plot {<ranges>}
{<function> | {"<datafile>" {datafile-modifiers}}}
{axes <axes>} {<title-spec>} {with <style>}
{, {definitions,} <function> ...}

Jak widać parametry stylu podajemy po słowie with. Jakie mamy możliwości? Rysując wykres możemy użyć jednego ze stylów:

'lines', 'points', 'linespoints', 'dots', 'impulses', 'yerrorbars', 'xerrorbars', 'xyerrorbars', 'steps', 'fsteps', 'histeps', 'filledcurves', 'boxes', 'boxerrorbars', 'boxxyerrorbars', 'vectors', 'financebars', 'candlesticks', 'errorlines', 'xerrorlines', 'yerrorlines', 'xyerrorlines', 'pm3d', 'labels', 'histograms', 'image', 'rgbimage'

Opis poszczególnych stylów

lines - rysowanie za pomocą linii (skrótowy zapis - l)
opcje:
- linetype - wybór koloru linii, lub typu linii w terminalach bez obsługi kolorów (temat terminali podjęty będzie w kolejnych artykułach). W skrócie można zapisywać jako lt. Po tej opcji podajemy liczbę całkowitą przypisaną w programie do danego koloru (typu), lub podajemy numer koloru w RGB w następujący sposób: lt rgb "#254FA1"
- linecolor - wybór koloru linii. W skrócie można zapisywać jako lc. Po tej opcji podajemy numer koloru w RGB w następujący sposób: lt rgb "#00G654"
- linewidth - ustawienie szerokości rysowanej linii. W skrócie można zapisywać jako lw. Po tej opcji podajemy liczbową szerokość linii.

przykłady:

plot sin(x) with lines linetype 2 linewidth 5
plot sin(x) with l linewidth 2
plot sin(x) with l linecolor rgb "#546645"
plot sin(x) with l lc rgb "#05487H"
plot sin(x) with l lt 5 lw 3

points - rysowanie za pomocą punktów (skrótowy zapis - p)
opcje:
- pointtype - wybór typu punktów. W skrócie można zapisywać jako pt. Po tej opcji podajemy liczbę całkowitą przypisaną w programie do danego typu
- pointsize - wybór rozmiaru punktów. W skrócie można zapisywać jako ps. Po tej opcji podajemy liczbowy rozmiar punktów
- pointinterval - wybór odstępu między punktami. W skrócie można zapisywać jako pi. Po tej opcji podajemy odstęp między sąsiednimi punktami

przykłady:

plot sin(x) with points pointtype 2 pointsize 5
plot sin(x) with p pt 4 ps 2
plot sin(x) with p pt 4 ps 2 pointinterval 2
plot sin(x) with p pt 1 ps 1 pi 3

linespoints - rysowanie za pomocą linii z punktami (skrótowy zapis - lp)
opcje (opisy powyżej):
- linetype
- linecolor
- linewidth
- pointtype
- pointtype
- pointinterval

przykłady:

plot sin(x) with linespoints pt 2 ps 5 lt 2 lw 3
plot sin(x) with lp pt 3 lw 4

dots - rysowanie za pomocą kropek (skrótowy zapis - d)

przykłady:

plot sin(x) with dots
plot sin(x) with d

impulses - rysowanie pionowych linii łączących punkt na osi X (argument) z odpowiadającą jemu wartością

przykłady:

plot sin(x) with impulses
plot tan(x) with impulses

yerrorbars - rysowanie słupków niepewności dla osi Y
Opcji tej używa się podczas rysowania z pliku z danymi - o tym w kolejnych częściach poradnika

przykłady:

plot "plik_z_danymi.txt" with yerrorbars

xerrorbars - rysowanie słupków niepewności dla osi X
Opcji tej używa się podczas rysowania z pliku z danymi - o tym w kolejnych częściach poradnika

przykłady:

plot "plik_z_danymi.txt" with xerrorbars

xyerrorbars - rysowanie słupków niepewności dla osi X oraz Y
Opcji tej używa się podczas rysowania z pliku z danymi - o tym w kolejnych częściach poradnika

przykłady:

plot "plik_z_danymi.txt" with xerrorbars

steps - łączenie kolejnych punktów w sposób sekwencyjny: (x1,y1) z (x1,y2); (x1,y2) z (x2,y2)

przykłady:

plot sin(x) with steps
plot tan(x) with steps

fsteps - łączenie kolejnych punktów w sposób sekwencyjny: (x1,y1) z (x2,y1); (x2,y1) z (x2,y2). Zwróć uwagę na różnicę pomiędzy fsteps a steps! - dotyczy kolejności po jakich współrzędnych dochodzi się do kolejnego punktu.

przykłady:

plot sin(x) with fsteps
plot tan(x) with fsteps
plot cos(x) with steps, cos(x) with fsteps

filledcurves - rysowanie krzywych z wypełnieniem
opcje:
- closed - krzywa potraktowana zostanie jako wielokąt
- x1 - krzywa z wypełnieniem pomiędzy nią a osią X1 (dolna X-owa)
- x2 - krzywa z wypełnieniem pomiędzy nią a osią X2 (górna X-owa)
- y1 - krzywa z wypełnieniem pomiędzy nią a osią Y1 (lewa Y-owa)
- y2 - krzywa z wypełnieniem pomiędzy nią a osią Y2 (prawa Y-owa)
- y1=wartość - krzywa z wypełnieniem pomiędzy nią a prostą y=wartość
- y2=wartość - krzywa z wypełnieniem pomiędzy nią a prostą y=wartość
- xy=współrzędna x, współrzędna y - krzywa z wypełnieniem pomiędzy nią a punktem (wspórzędna x, współrzędna y)

przykłady:

plot sin(x) with filledcurves closed
plot sin(x) with filledcurves x1
plot sin(x) with filledcurves x2
plot sin(x) with filledcurves y1
plot sin(x) with filledcurves y2
plot sin(x) with filledcurves y1=0.75
plot sin(x) with filledcurves y2=-0.25
plot sin(x) with filledcurves xy=-0.25,0.75

boxes - rysowanie prostokątnych diagramów.
opcje:
- set boxwidth odstęp - w ten sposób ustawią się odległość między słupkami; należy wydać tę komendę przed poleceniem plot
- set boxwidth odstęp relative - jak wyżej, tylko że odstęp będzie względny
- fillstyle - styl wypełnienia (skrótowy zapis - fs); parametry:
- empty - brak wypełnienia
- solid wartość - wypełnienie aktualnie używanym kolorem, przyczym wartość to stopien przejścia pomiędzy kolorem tła a aktualnym kolorem do rysowania; paramatr ten zawiera się w zakresie [0,1], przyczym 0 da w efekcie wypełnienie kolorem tła, zaś 1 aktualnym kolorem
- pattern - wypełnienie zdefiniowanym deseniem

przykłady:

set boxwidth 1
plot sin(x) with boxes

set boxwidth 2.5
plot sin(x) with boxes

plot sin(x) with boxes fillstyle empty
plot sin(x) with boxes fs empty
plot sin(x) with boxes fs solid 0
plot sin(x) with boxes fs solid 0.25
plot sin(x) with boxes fs solid 0.50
plot sin(x) with boxes fs solid 0.75
plot sin(x) with boxes fs solid 1
plot sin(x) with boxes fs pattern 1
plot sin(x) with boxes fs pattern 2

histeps - łączenie kolejnych punktów w sposób sekwencyjny: ((x0 + x1)/2,y1) z ((x1 + x2)/2,y1); ((x1 + x2)/2,y1) z ((x1 + x2)/2,y2)

przykłady:

plot sin(x) with histeps
plot tan(x) with histeps

boxerrorbars - połączenie stylu boxes z yerrorbars

przykłady:

plot "plik_z_danymi.txt" with yerrorbars

boxxyerrorbars - rysowanie prostokątów niepewności (nie słupków jak przy xyerrorbars!)
Opcji tej używa się podczas rysowania z pliku z danymi - o tym w kolejnych częściach poradnika

przykłady:

plot "plik_z_danymi.txt" with boxxyerrorbars

vectors - rysowanie wektorów z pliku danych; pocztątek wektora w punkcie (x,y), oraz koniec w (x + delta x, y + delta y)
opcje:
- head - jeden koniec wektora będzie zakończony strzałką (alternatywne do heads i nohead)
- heads - oba końce wektora będą zakończone strzałkami (alternatywne do head i nohead)
- nohead - brak strzałki (alternatywne do heads i head)
- size długość,kąt - ustala długość ramion strzałki oraz ich kąt rozwarcia
- filled - strzałka będzie w postaci wypełnionego trójkąta (alternatywne do empty oraz nofilled)
- empty - strzałka będzie w postaci pustego trójkąta (alternatywne do filled i nofilled)
- nofilled - zwykła strzałka (alternatywne do filled i empty)
- ls numer - styl linii (alternatywne do lt)
- lt numer - typ linii (alternatywne do ls)
- lw numer - szerokość linii

przykłady:

plot 'plik_z_danymi.txt' with vectors
plot 'plik_z_danymi.txt' with vectors head
plot 'plik_z_danymi.txt' with vectors nohead
plot 'plik_z_danymi.txt' with vectors heads size 0.5,45
plot 'plik_z_danymi.txt' with vectors heads size 0.5,45 filled
plot 'plik_z_danymi.txt' with vectors heads size 0.5,45 nofilled
plot 'plik_z_danymi.txt' with vectors heads size 0.5,45 empty
plot 'plik_z_danymi.txt' with vectors heads size 0.5,45 empty ls 2
plot 'plik_z_danymi.txt' with vectors heads size 0.5,45 empty lt 2
plot 'plik_z_danymi.txt' with vectors heads size 0.5,45 empty lw 2
plot 'plik_z_danymi.txt' with vectors heads size 0.5,45 empty lt 2 lw 2

financebars - rysowanie słupków finansowych, które dla danej daty odznaczają 4 wartości: otwarcie, wartość najniższą, wartość najwyższą, zamknięcie. Wykres rysowany jest z pliku zawierającego 5 kolumn:
data otwarcie wartość najniższa wartość najwyższa zamknięcie
opcje:
- set bars - przed rysowaniem wykresu można ustalić długość pasków wskazujących wartości. Możliwe opcje dla set bars:
- small - ustala zerową długość pasków
- large - ustala długość równą 1
- rozmiar - sami podajemy rozmiar w postaci liczby

przykłady:

plot 'plik_z_danymi.txt' with financebars

set bars small
plot 'plik_z_danymi.txt' with financebars

set bars large
plot 'plik_z_danymi.txt' with financebars

set bars 10
plot 'plik_z_danymi.txt' with financebars

errorlines - równoważne yerrorlines (opisane poniżej)

yerrorlines - rysowanie łamanej z punktami oraz słupkami błędów po osi y. Wykres rysowany jest z pliku z danymi o:
3 kolumnach: x y delta_y
4 kolumnach: x y -błąd_y +błąd_y
opcje:
modyfikowanie wyglądu odcinków i punktów - patrz poprzednie artykuły.

przykłady:

plot 'plik_z_danymi.txt' with yerrorlines
plot 'plik_z_danymi.txt' with errorlines

xerrorlines - rysowanie łamanej z punktami oraz słupkami błędów po osi y. Wykres rysowany jest z pliku z danymi o:
3 kolumnach: x y delta_x
4 kolumnach: x y -błąd_x +błąd_x
opcje:
modyfikowanie wyglądu odcinków i punktów - patrz poprzednie artykuły.

przykłady:

plot 'plik_z_danymi.txt' with xerrorlines

xyerrorlines - rysowanie łamanej z punktami oraz słupkami błędów po osi x oraz y. Wykres rysowany jest z pliku z danymi o:
4 kolumnach: x y delta_x delta_y
6 kolumnach: x y -błąd_x +błąd_x -błąd_y +błąd_y
opcje:
modyfikowanie wyglądu odcinków i punktów - patrz poprzednie artykuły.

przykłady:

plot 'plik_z_danymi.txt' with xyerrorlines

labels - wypisywanie tekstu w miejscu wskazanym przez współrzędne x oraz y. Wykres rysowany jest z pliku z danymi o 3 kolumnach (dla wykresów 2D):
x y "tekst"
opcje:
- left - tekst będzie wypisany po lewej stronie od wskazanych współrzędnych (alternatywne do center oraz right)
- center - tekst będzie wyśrodkowany względem wskazanych współrzędnych (wartość domyślna; alternatywne do left oraz right)
- right - tekst będzie wypisany po prawej stronie od wskazanych współrzędnych (alternatywne do center oraz left)
- norotate - bez obracania (alternatywne do rotate)
- rotate by ile_stopni (rotate ile_stopni) - obrót o dany kąt w stopniach (alternatywne do norotate)
- font "nazwa,rozmiar" - ustala rodzaj i rozmiar czcionki, przy czym rozmiar jest opcjonalny
- noenhanced - bez możliwości używania znaków typu greckie litery, indeksy dolne/górne itp.
- textcolor rgb "#RRGGBB" - ustawia kolor czcionki (można korzystać z palety zamiast rgb)
- point styl_punktu - wstawia dodatkowo punkt na wskazane współrzędne (patrz przykłady; alternatywne do nopoint)
- nopoint - bez wstawiania punktów na współrzędne (wartość domyślna; alternatywne do point)

przykłady:

plot 'plik_z_danymi.txt' with labels
plot 'plik_z_danymi.txt' with labels center
plot 'plik_z_danymi.txt' with labels right
plot 'plik_z_danymi.txt' with labels left
plot 'plik_z_danymi.txt' with labels left norotate
plot 'plik_z_danymi.txt' with labels left rotate by 45
plot 'plik_z_danymi.txt' with labels left rotate 45
plot 'plik_z_danymi.txt' with labels left rotate 45 font "Arial,15"
plot 'plik_z_danymi.txt' with labels left rotate 45 font "Arial,15" noenhanced
plot 'plik_z_danymi.txt' with labels left rotate 45 font "Arial,15" noenhanced textcolor rgb "#125748"
plot 'plik_z_danymi.txt' with labels left rotate 45 font "Arial,15" noenhanced textcolor rgb "#125748" nopoint
plot 'plik_z_danymi.txt' with labels left rotate 45 font "Arial,15" noenhanced textcolor rgb "#125748" point 2

To już wszystkie style, które miałem zamiar opisać - po opisy pozostałych odsyłam do dokumentacji GNUplota (link w pierwszej części poradnika)

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!

Imię:
Treść: