MC, 15:00 piątek, 17.02.2012 r.
Ilustracja do artykułu: GNUplot: część 15. - Dodawanie i usuwanie osi

GNUplot: część 15. - Dodawanie i usuwanie osi

Czas na kolejną część poradnika. Tym razem podejmijmy zagadnienie dostosowania liczby osi do własnych potrzeb (polecam również: GNUplot: część 7. - Formatowanie osi). Jak wiadomo, domyślnie wykresy w układzie kartezjańskim zamknięte są z każdej strony widoczną osią, czyli innymi słowy - każda oś układu kartezjańskiego ma swój równoległy odpowiednik. Spróbujmy nieco tym po manipulować.

Jak usunąć wybrane osie?

Z naszej perspektywy, chcielibyśmy pewne osie usunąć, jednak GNUplotowi musimy powiedzieć, które chcielibyśmy na wykresie zostawić. Dlatego, gdy chcemy usunąć pomocnicze, równoległe osie wtórne, to tak naprawdę chcemy pozostawić osie podstawowe. Informację taką dostarczamy za pomocą komendy set border , gdzie mówi o tym, które osie są na wykresie pożądane. No dobrze... ale jak powstaje ta wartość liczbowa?
Odpowiedzi poszukajmy w pomocy (help border). Znajdziemy tam poniższą tabelkę:
Bitplotsplot
1bottombottom left front
2leftbottom left back
4topbottom right front
8rightbottom right back
16no effectleft vertical
32no effectback vertical
64no effectright vertical
128no effectfront vertical
256no effecttop left back
512no effecttop right back
1024no effecttop left front
2048no effecttop right front
Jak widzimy każda z osi ma przypisaną wartość liczbową (Bit), zatem do polecenia set border podajemy wartość liczbową odpowiadającą sumie wartości liczbowych osi nas interesujących. Czyli, gdy chcemy zostawić osie podstawowe (bottom i left), wydajemy polecenie:
set border 1+2; # osie podstawowe

Nie takie straszne, prawda? No to jeszcze kilka konkretnych przykładów:

set border 1+2; # osie podstawowe
set xtics nomirror; # usunięcie niepotrzebnej podziałki
set ytics nomirror; # usunięcie niepotrzebnej podziałki
plot sin(x);
set border 1+2+4; # osie podstawowe + górna oś X
set xtics nomirror; # usunięcie niepotrzebnej podziałki
plot sin(x);
set border 1+2+4+8; # wszystkie osie
plot sin(x);
set border 4+8; # tylko osie wtórne
unset xtics; # usunięcie niepotrzebnej podziałki
unset ytics; # usunięcie niepotrzebnej podziałki
plot sin(x);
set border 1; # tylko oś X
set xtics nomirror; # usunięcie niepotrzebnej podziałki
set ytics nomirror; # usunięcie niepotrzebnej podziałki
unset ytics; # usunięcie niepotrzebnej podziałki
plot sin(x);

OK, a jak usunąć wszystkie osie?

Z usunięciem wszystkich osi, sprawa jest niezwykle prosta - wystarczy wydać polecenie: unset border. Od razy dajmy temu konkretny przykład:
unset border; # usuwamy wszystkie osie
set xtics nomirror; # usunięcie niepotrzebnej podziałki
set ytics nomirror; # usunięcie niepotrzebnej podziałki
unset xtics; # usunięcie niepotrzebnej podziałki
unset ytics; # usunięcie niepotrzebnej podziałki
plot sin(x);

Co gdy chcemy dodać osie przechodzące przez punkt (0,0)?

Oczywiście możemy również dodać osie przechodzące przez początek układu współrzędnych. Dokonamy tego przy pomocy komendy set {x|y}zeroaxis. Domyślnie osie będą wykropkowane, dlatego w przykładzie zmienimy im styl na odpowiadający pozostałym osiom.
set xzeroaxis lt -1
set yzeroaxis lt -1

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

Imię:
Treść: