Gnuplot/palette: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Nie podano opisu zmian
Rychozol (dyskusja | edycje)
popr. literówek, dr. red.
 
Linia 1:
Palette czyli gradient koloru<ref>[[:w:Gradient_(grafika)|Gradient_(grafika) w wikipediiWikipedii]]</ref>
 
= Wstęp =
Gradient koloru może być:
* ciągły / nieciągły ( dyskretny) ,
* szary/kolorowy.
 
== colorColor mapping ==
Gradient ciągły korzysta z mapowania koloru ( ang. color mapping), które może być:
* ciągle korzysta z analitycznych formuł ( wzorów). Zobacz polecenia [[Gnuplot/palette#rgbformulae|rgbformulae]] i [[Gnuplot/palette#functions|functions]],
* nieciągle ( dyskretne) korzysta z tabel do interpolacji ). Zobacz polecenia [[Gnuplot/palette#defined|palette defined]] i [[Gnuplot/palette#file|palette file]].
 
= Show =
Sprawdzamy jaki mamy standardowy gradient kolorów (tradycyjny pm3d (czarny-niebieski-czerwony-żółty):
 
show palette
Linia 25:
gamma is 1.5
 
=test Test =
Wykres składowych koloru otrzymamy:
 
Linia 158:
</syntaxhighlight>
 
= Set =
Polecenie
 
set palette
 
przywraca standardowe ustawienia :
 
<syntaxhighlight lang=c>
Linia 190:
</syntaxhighlight>
 
==color Color/gray ==
 
Składnia :
 
 
set palette {gray | color }
 
Ustawia ciagłyciągły gradient koloru lub skali szarości. Gradient dyskretny (= nie ciagłyciągły) ustawia polecenie set palette maxcolors.
 
 
 
Ustawienie szarej palety kolorów:
 
set palette gray
 
przy standarowychstandardowych ustawieniach odpowiada to :
 
set palette gray positive gamma 1.5 # nieliniowa
 
Jeśli chcemy otrzymać liniową paletepaletę to ustawiamy gamma na 1.0:
 
set palette gray gamma 1.0 # liniowa plaeta
 
 
set palette gray gamma 1.0 # liniowa plaetapaleta
 
Powrót do kolorowej palety:
 
set palette color
 
 
Zobacz też color modes:
Linia 238 ⟶ 232:
</syntaxhighlight>
 
==file File ==
 
Składnia :
 
set palette file '<filename>' {datafile-modifiers}
 
gdzie:
* filename jest to nazwa pliku palety zawierającego kolumny z danymi. Nie jest to plik z rozszerzeniem pal zawierajacyzawierający polecenia gnuplota ,
* data-modifiers jest to opcjonalny składnik służacy do wybierania elementów z palety( tabeli). Przykład: 'using ($1/255):($2/255):($3/255)' .
 
Polecenie `set palette file` odpowiada poleceniu [[Gnuplot#defined|set palette defined]], a dane są wczytywane z pliku filename.
 
Sprawdzamy zawartość pomocy:
Linia 254 ⟶ 248:
help set palette file
 
Przypadki użycia:
* plik tekstowy ( gpf nie pal, który wczytujemy za pomocą polecenia load),
* plik binarny,
* dane wczytywane z linii poleceń.
 
=== Plik tekstowy ===
Składnia:
 
Linia 265 ⟶ 259:
 
W pliku mogą być:
* 4 kolumny: gray, R, G, B ,
* trzy kolumny: R, G, B .
 
 
 
 
<syntaxhighlight lang = gnuplot>
Linia 279 ⟶ 270:
</syntaxhighlight>
 
Zbiory plików tekstowych :
 
* [http://soliton.vm.bytemark.co.uk/pub/cpt-city/index.html cpt-city ]: "Gnuplot Palette File (with gpf extension) in the RGB colour-space" ( 4 kolumny),
Zbiory plików tekstowych
* [http://www.kennethmoreland.com/color-advice/ Color Map for Scientific Visualization by Kenneth Moreland]. pobieranyPobierany tabelę (float), zapisujemy jako plik tekstowy, zamieniamy przecinki na spacje i usuwamy lub komentujemy nagłówkenagłówek tekstowy,
* [http://soliton.vm.bytemark.co.uk/pub/cpt-city/index.html cpt-city ]: "Gnuplot Palette File (with gpf extension) in the RGB colour-space" ( 4 kolumny)
* pliki map programu Fractint ( 3 kolumny ),
* [http://www.kennethmoreland.com/color-advice/ Color Map for Scientific Visualization by Kenneth Moreland]. pobierany tabelę (float), zapisujemy jako plik tekstowy, zamieniamy przecinki na spacje i usuwamy lub komentujemy nagłówke tekstowy
** [https://archive.org/details/ALLMAPS_ZIP Fractint [213 Map Files<nowiki>]</nowiki>],
* pliki map programu Fractint ( 3 kolumny )
** [http://www.krajzewicz.de/blog/free-color-palettes.php Daniel Krajzewicz: free-color-palettes],
** [https://archive.org/details/ALLMAPS_ZIP Fractint [213 Map Files<nowiki>]</nowiki>]
** [https://github.com/rm-hull/webrot/tree/master/resources/private/maps webrot LUT maps].
** [http://www.krajzewicz.de/blog/free-color-palettes.php Daniel Krajzewicz: free-color-palettes]
** [https://github.com/rm-hull/webrot/tree/master/resources/private/maps webrot LUT maps]
set palette file "Skydye07.map" using ($1/255):($2/255):($3/255) # Read in a palette of RGB triples each in range [0,255]
 
===plik Plik binarny ===
 
Składnia:
set palette file "palette.bin" binary record=64 using 1:2:3 # put 64 triplets of R,G,B doubles into file palette.bin and load
 
===linia Linia komend ===
 
===linia komend===
Możemy użyć tego polecenia do wprowadzenie tabeli kolorów w linii komend:
* zamiast nazwy pliku podajemy nazwę specjalną ( ang. special-filename): "-"<ref>[https://apimirror.com/gnuplot/plot#special-filenames apimirror: gnuplot special-filenames]</ref>,
* wprowadzmywprowadzamy tabelę,
* kończymy literą e.
 
<syntaxhighlight lang=gnuplot>
Linia 322 ⟶ 311:
</syntaxhighlight>
 
==cubehelix Cubehelix ==
<gallery caption ="Cubehelix gradient>
Cubehelix gnuplot palette.png|2D RGB profile
Linia 328 ⟶ 317:
</gallery>
 
Rodzina palet kolorów opracowana przez D .A .Green (2011)<ref>[https://arxiv.org/abs/1108.5083 A colour scheme for the display of astronomical intensity images by D. A. Green]</ref>, w której kolor (odcień) zmienia się wzdłuż standardowego koła kolorów, a jednocześnie intensywność rośnie monotonicznie, gdy wartość szarości zmienia się od 0 do 1.
 
Rodzina palet kolorów opracowana przez D A Green (2011)<ref>[https://arxiv.org/abs/1108.5083 A colour scheme for the display of astronomical intensity images by D. A. Green]</ref> w której kolor (odcień) zmienia się wzdłuż standardowego koła kolorów, a jednocześnie intensywność rośnie monotonicznie, gdy wartość szarości zmienia się od 0 do 1.
 
Zalety:
* drukuje równie dobrze w kolorze i czerni/bieli<ref>[https://ifweassume.blogspot.com/2013/05/cubehelix-or-how-i-learned-to-love.html cubehelix-or-how-i-learned-to-love by James Davenport]</ref>.
 
W kodzie:
Linia 350 ⟶ 338:
set palette cubehelix gamma 2.0
 
==gamma Gamma ==
 
Składnia:
Linia 356 ⟶ 344:
set palette gamma <gamma>
 
Ustawia współczynnik gamma na wartość <gamma>.
 
Standardowa wartość współczynnika gamma = 1.5.
 
Przykłady:<ref>[http://gnuplot.sourceforge.net/demo_5.5/pm3dgamma.html gnuplot 5.5 demo pm3dgamma]</ref>
Linia 384 ⟶ 372:
set palette defined ( 0 0 0 0, 1 1 1 1 )
 
możemy użyć :
set palette defined ( 0 0 0 0, 0.5 .73 .73 .73, 1 1 1 1 )
Linia 396 ⟶ 384:
</syntaxhighlight>
 
==model Model ==
set palette { model { RGB | HSV | CMY | XYZ }
 
Linia 404 ⟶ 392:
* HSV oznacza Hue, Saturation, Value
 
Modeli YIQ i XYZ nie należy używać ( zła lub niepełna implementacja ).
 
== Functions ==
 
 
==functions==
 
Składnia:
Linia 427 ⟶ 413:
 
 
Definicje:
* gray jest zmienną przyjmującą wartości od 0 do 1.
 
==rgbformulae Rgbformulae ==
 
Składnia:
Linia 438 ⟶ 424:
</syntaxhighlight>
 
skrócona postać :
 
set palette rgb r,g,b
 
r, g i b są to funkcje odpowiadające za obliczenie każdej ze składowej koloru (mimo że nazwy składowych są R, G oraz B to ich znaczenie jest zależne od [[w:Przestrzeń barw| modelu koloru]], tzn. w modelu HSV R będzie oznaczało H). Mamy do dyspozycji 37 wbudowanych funkcji ponumerowanych od 0 do 36 (liczby ujemne dają odwrócony gradient).
 
 
r, g i b są to funkcje odpowiadające za obliczenie każdej ze składowej koloru.
(mimo że nazwy składowych są R,G oraz B to ich znaczenie jest zależne od [[w:Przestrzeń barw| modelu koloru]], tzn. w modelu HSV R będzie oznaczało H). Mamy do dyspozycji 37 wbudowanych funkcji ponumerowanych od 0 do 36 (liczby ujemne dają odwrócony gradient).
Możemy je wyświetlić:
 
Linia 544 ⟶ 527:
[[Grafika:P hot.gif|thumb|right|Gorący gradient]]
[[Grafika:P hot inv.gif|thumb|right|Odwrócony gorący gradient]]
[[Plik:Gnuplot linear gray gradient.png|mały|prawo|OdróconyOdwrócony liniowy gradinetgradient szarości]]
 
Standardowo są wybrane funkcje nr 7 dla składowej czerwonej, 5 dla składowej zielonej i 15 dla niebieskiej.
Możemy wybrać inny zestaw, na przykład proponowany w dokumentacji zestaw "gorący"„gorący” ( ang. hot = black-red-yellow-white):
 
set palette rgbformulae 21,22,23
Linia 573 ⟶ 556:
3,2,2 ... red-yellow-green-cyan-blue-magenta-red
 
==maxcolors Maxcolors ==
Polecenie :
 
set palette maxcolors <N>
 
z rozsądnie małą wartością N ustawia dyskretny gradient koloru. Ta opcja powoduje wybranie N dyskretnych kolorów z ciągłej palety , pobierane w równych odstępach czasu. Jeśli chcesz nierównych odstępów N dyskretne kolory, użyj :
 
set palette defined
 
== definedDefined ==
 
 
 
 
 
== defined ==
 
 
 
 
Składnia:
Linia 596 ⟶ 571:
set palette defined { ( <gray1> <color1> {, <grayN> <colorN>}... ) }
 
gdzie :
 
<pre>
Linia 611 ⟶ 586:
Otrzymujemy nieciągły gradient.
 
Za pomocą 2 kolorów otrzymujemy ciągły gradient ( liniowy) pomiędzy bielą ( 1 1 1) a czernią ( 0 0 0 ).
 
<syntaxhighlight lang=gnuplot>
Linia 619 ⟶ 594:
test palette
</syntaxhighlight>
Inna równowaznarównoważna składnie polecenapolecenia set palette:
 
<syntaxhighlight lang=gnuplot>
Linia 634 ⟶ 609:
[[Plik:Matlab gradient.png|mały|prawo|Matlab gradient]]
 
Dane możemy wprowadzić z:
 
* linii poleceń,
 
* z pliku palety pal.
Dane możemy wprowadzić z
* linii poleceń
* z pliku palety pal
 
load 'a.pal'
Linia 688 ⟶ 661:
 
Otrzymujemy:
 
 
0. gray=0.0000, (r,g,b)=(1.0000,1.0000,1.0000), #ffffff = 255 255 255
1. gray=1.0000, (r,g,b)=(0.0000,0.0000,0.0000), #000000 = 0 0 0
 
Inny przykład:
 
<syntaxhighlight lang=gnuplot>
Linia 704 ⟶ 675:
</syntaxhighlight>
 
==nops_allcF Nops_allcF | ps_allcF ==
 
Opcja dotyczy postscriptu<ref>[http://gnuplot.sourceforge.net/docs_4.2/node221.html gnuplot docs_4.2 ]</ref>.
 
= Dla programistów =
Sprawdzamy w jakich plikach użyto słowa palette:
 
Linia 754 ⟶ 725:
</syntaxhighlight>
 
= Zobacz również =
* [[Gnuplot/pm3d|pm3d]]
 
= Źródła =
<references/>