MC, 15:45 piątek, 24.05.2013 r.
Ilustracja do artykułu: GNUplot: część 19. - Rysowanie co któregoś punktu (wiersza danych), ustalenie punktów brzegowych

GNUplot: część 19. - Rysowanie co któregoś punktu (wiersza danych), ustalenie punktów brzegowych

Kolejna porada dotycząca użytkowania programu GNUplot. Nadeszła pora by zadać sobie pytanie, w jaki sposób możemy wprowadzić okresową selekcję punktów umieszczanych na wykresie. Ten wpis ma na celu przybliżenie tego zagadnienia.

Po co rysować tylko "co któreś" dane?

W ramach odpowiedzi na to pytanie, pewnie można by napisać cały wywód. Mnie problem ten najczęściej dotyka w kontekście nadmiarowej ilości danych na przykład uzyskanych z jakiegoś pomiaru. Nadmiarowych w tym sensie, że nie można ich umieścić na wykresie stworzonym przy pomocy punktów, bo te zupełnie by się ze sobą zlały. W takiej sytuacji, warto właśnie wybrać tylko pewne punkty pomiarowe i tylko je nanieść na wykres. Oczywiście, jak już wspomniałem, to tylko jeden z wielu przykładów jakie można przytoczyć na potwierdzenie potrzeby takiej operacji selekcji.

No dobrze... a jak to zrobić?

Możliwość o jakiej mowa w tym artykule, dostarczona jest wraz ze słowem kluczowym every przekazywanym jako parametr do polecenia plot. Spójrzmy na składnię takiej dyrektywy:
plot "danePlik.txt" every inkrementacja wiersza : inkrementacja bloku : początkowy wiersz : początkowy blok : końcowy punkt : końcowy blok

Jak widać wraz ze słowem kluczowym every należy dołączyć kilka dodatkowych parametrów liczbowych definiujących sposób selekcji danych, rozdzielonych dwukropkiem. Możemy również w ten sposób ustalić zakres punktów pomiarowych jaki chcemy uwzględnić na wykresie (parametry: początkowy i końcowy wiersz), co również jest bardzo przydane w wielu przypadkach!
O ile pojęcie wiersza, użyte w powyższym poleceniu, nie powinno dla nikogo być zagadką, bo chodzi po prostu o jeden wiersz danych, punkt pomiarowy, o tyle inaczej może się mieć sytuacja z pojęciem blok.

Czym jest blok danych?

O blokach danych zapewne zrobię kiedyś osobny wpis, bo warto wiedzieć o nich nieco więcej, przez wzgląd na to jak wiele ciekawych możliwości stwarzają. Teraz pokrótce powiem, że chodzi o zwykły kolumnowy zbiór danych, podzielony na podzbiory przy pomocy pustej linii w pliku, jak np.:
# Pierwszy blok danych
1 10.1
2 10.7
3 11.3
4 12.0
5 12.6

# Drugi blok danych
6 13.2
7 13.8
8 14.4
9 15.0
Oczywiście do tak stworzonych bloków możemy się odnosić, między innymi właśnie przy pomocy słowa kluczowego every (bloki numerowane są od 0).

Czas na kilka przykładów

Skupmy się jedynie na selekcji wierszy. Oto kilka prostych przykładów:
plot "data" every 1 # wszystkie punkty
plot "data" every 1:::::1 # wszystkie punkty z pierwszego bloku
plot "data" every 2:::::1 # co drugi punkt z pierwszego bloku
plot "data" every 3::10:::1 # co trzeci punkt z pierwszego bloku począwszy od dziesiątego
plot "data" every 5::7::20:1 # co piąty punkt z pierwszego bloku począwszy od siódmego i skończywszy na dwudziestym

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

Imię:
Treść: