2012-06-13 15 views
7

Podczas drukowania kolorów mapy za pomocą gnuplot, zwykle stosowane są następujące linie:Gnuplot: Ustawianie zakresu trzeciego (kolor) punktu

... 
    set palette rgbformulae 33,13,10 
    plot "file.dat" using 1:2:3 with points pointtype '7' palette 

Zazwyczaj zakres trzeciego punktu (pojawiający się w legendzie) jest automatycznie ustawiane przez gnuplot. Ale jak mogę to zmienić? powiedz, że chcę, aby zakres trzeciego punktu wynosił od 0 do 1500.

Jakieś sugestie?

Odpowiedz

11

To naprawdę dobre pytanie - zakładając, że chcesz określić zasięg paska kolorów (nie legenda [to jest klucz] - legenda zazwyczaj nie ma tych informacji).

Moja pierwsza myśl to set cbrange. To może zrobić, co chcesz -

set cbrange [0:1500] 
set palette rgbformulae 33,13,10 
plot "file.dat" u 1:2:3 w p pt 7 palette 

Jednak pytanie brzmi "Co chcesz osiągnąć poza zasięgiem?" To rozwiązanie przeniesie się poza zakres punktów do dolnej/górnej części skali (np. Fioletowy dla liczb ujemnych, czerwony dla liczb większych niż 1500). Moja następna myśl była taka, że ​​powinieneś być w stanie usunąć te punkty przez set zrange [0:1500] - Ale to nie działa. W tym momencie masz co najmniej 2 opcje.

Wariant 1: użycie SPLOT:

set view map 
set cbrange [0:1500] 
set zrange [0:1500] 
set palette rgbformulae 33,13,10 
splot "file.dat" u 1:2:3 w p pt 7 palette 

Twoje granice będzie nieco inna niż były wcześniej, ale to nie jest prawdziwy wielkiego.

Opcja 2: filtr z operatorem potrójnego (co już wiesz o z poprzednim pytaniu):

set cbrange [0:1500] 
set palette rgbformulae 33,13,10 
inrange(c)=((c>=0) && (c<=1500))? c : (1/0) 
plot "file.dat" u 1:2:(inrange($3)) w p pt 7 palette 

Również do kreślenia map kolorów, można zajrzeć do stylu pm3d kreślenia (image może również działać). Być może będziesz musiał nieco zmodyfikować swój plik danych, ale tworzenie map kolorów polega na kreśleniu chleba z masłem.

+0

Bardzo dziękuję za szczegółową odpowiedź. – stupidity

Powiązane problemy