[<< wikibooks] Gnuplot/palette
Palette or color gradientPalette is a color storage for use by:

`pm3d`
filled color contours or  polygons
color histograms
color gradient background
and whatever it is  or it will be implemented...Here it stands for a palette of smooth  "continuous" colors or grays, but let's call it just a palette.
Color palettes require terminal entries for filled color polygons and  palettes of smooth colors, are currently available for terminals listed in  help for `set pm3d`. 
The range of color values are adjustable independently by:

`set cbrange`
`set log cb`.The whole color palette is  visualized in the `colorbox`.


= show palette =
Syntax:

 show palette
 show palette palette  {{float | int}}
 show palette gradient
 show palette fit2rgbformulae
 show palette rgbformulae

Command:

`show palette` shows the current palette properties.
`show palette gradient` displays the gradient defining the palette (if  appropriate)
`show palette rgbformulae` prints the available fixed gray --> color transformation formulae.
`show palette palette ` prints to the screen or to the file given by  `set print` a table of RGB triplets calculated for the current palette settings and a palette having  discrete colors.  The default wide table can be  limited to 3 columns of r,g,b float values [0..1] or integer values [0..255]  by options float or int, respectively.  This way, the current gnuplot color  palette can be loaded into other imaging applications, for example Octave. Alternatively, the `test palette` command will plot the R,G,B profiles for the  current palette and leave the profile values in a datablock $PALETTE.Check the standard color gradient (traditional pm3d is black-blue-red-yellow):

show palette

Output:

palette is COLOR
rgb color mapping by rgbformulae are 7,5,15
figure is POSITIVE
all color formulae ARE NOT written into output postscript file
allocating ALL remaining color positions for discrete palette terminals
Color-Model: RGB
gamma is 1.5

Help: 

 help show palette


= test palette =
Command `test palette` plots profiles of R(z),G(z),B(z), where 0<=z<=1. These are the  RGB components of the current color `palette`. It also plots the apparent net  intensity as calculated using NTSC coefficients to map RGB onto a grayscale.
The profile values are also loaded into a datablock named $PALETTE.

test palette

It can be saved to the graphic file : 

set terminal png
set output 'p.png'
test palette

where

NTSC
gray value : calculated using NTSC coefficients to map RGB onto a grayscale
the NTSC luminance, which corresponds to the Y channel in the YIQ model. It indicates the result if the color were displayed on a black-and-white TV screen
the weighted sum of  RGB color components  
  
    
      
        Y
        =
        0.2126
        R
        +
        0.7152
        G
        +
        0.0722
        B
      
    
    {\displaystyle Y=0.2126R+0.7152G+0.0722B}
  
Code : 


= set palette =
Command `set palette`  without options 

 set palette

sets up the default values
Code:


== file ==
Syntax: 

  set palette file '' {datafile-modifiers}

Where:

filename jest to nazwa pliku palety zawierającego kolumny z danymi. Nie jest to plik z rozszerzeniem pal zawierajacy 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 set palette defined a dane są wczytywane z pliku filename.
Sprawdzamy zawartość pomocy:

 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ń


=== Text file ===
Syntax: 

 set palette file 'palette.txt' using ($1/255):($2/255):($3/255) # Read in a palette of RGB triples each in range [0,255]

W pliku mogą być:

4 kolumny: gray, R, G, B
trzy kolumny: R, G, B

Zbiory plików tekstowych gpf

cpt-city : "Gnuplot Palette File (with gpf extension) in the RGB colour-space" ( 4 kolumny)
pliki map programu Fractint ( 3 kolumny )
Fractint [213 Map Files]
Daniel Krajzewicz: free-color-palettes
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]


=== Binary file ===
Syntax

  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


=== CLI ===
Możemy użyć tego polecenia do wprowadzenie tabeli kolorów w linii komend:

zamiast nazwy pliku podajemy "-"
wprowadzmy tabelę
kończymy literą e


== cubehelix ==
 Cubehelix gradient
		
		
Rodzina palet kolorów opracowana przez D A Green (2011) 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

W kodzie:

the cubehelix palette can be modified by gamma. E.g.

    set palette cubehelix gamma 2.0

C function using gnuplot code : 

 

Examples:

gnuplot  demo : parametric functions


== gamma ==
Składnia:

set palette  gamma  

Ustawia współczynnik gamma na wartość 
Standardowa wartość współczynnika gamma = 1.5
Przykłady:
 set palette gamma 1.25 

Gamma korekcja innymi metodami:
  set palette model RGB
  set palette functions gray**0.64, gray**0.67, gray**0.70

lub:

W stosunku do palet szarych zamiast 

 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 )

Zobacz w kodzie:


== gray/color ==
Ustawienie szarej palety kolorów

 set palette gray 

przy standarowych ustawieniach odpowiada to : 

 set palette gray positive gamma 1.5 # nieliniowa

Jeśli chcemy otrzymać liniową palete to ustawiamy gamma na 1.0:

 set palette gray gamma 1.0 # liniowa plaeta

Powrót do kolorowej palety:

 set palette color

Zobacz też color modes:


== model/functions ==
Składnia: 

może być łączone:
 set palette model HSV functions gray, 1, 1 # full color hsv = rainbow
 set palette model XYZ functions gray**0.35, gray**0.5, gray**0.8 # black to gold

Definicje

gray jest zmienną przyjmującą wartości od 0 do 1


== rgbformulae ==
Składnia:

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  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ć:  

show palette rgbformulae

Otrzymamy:

* there are 37 available rgb color mapping formulae:
0: 0               1: 0.5             2: 1
3: x               4: x^2             5: x^3
6: x^4             7: sqrt(x)         8: sqrt(sqrt(x))
9: sin(90x)       10: cos(90x)       11: |x-0.5|
12: (2x-1)^2       13: sin(180x)      14: |cos(180x)|
15: sin(360x)      16: cos(360x)      17: |sin(360x)|
18: |cos(360x)|    19: |sin(720x)|    20: |cos(720x)|
21: 3x             22: 3x-1           23: 3x-2
24: |3x-1|         25: |3x-2|         26: (3x-1)/2
27: (3x-2)/2       28: |(3x-1)/2|     29: |(3x-2)/2|
30: x/0.32-0.78125 31: 2*x-0.84       32: 4x;1;-2x+1.84;x/0.08-11.5
33: |2*x - 0.5|    34: 2*x            35: 2*x - 0.5
36: 2*x - 1
* negative numbers mean inverted=negative colour component
* thus the ranges in `set pm3d rgbformulae' are -36..36

Kod znajdziemy w: gnuplot/src/getcolor.c/GetColorValueFromFormula

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" ( ang. hot =black-red-yellow-white):

set palette rgbformulae 21,22,23

albo odwrócony gorący gradient: 

set palette rgbformulae -21,-22,-23

lub odwrócony liniowy gradient szarości

 set palette rgbformulae -3,-3,-3 # 1-x, 1-x, 1-x

Przykłady przestrzenie RGB:
       7,5,15   ... traditional pm3d (black-blue-red-yellow)
       3,11,6   ... green-red-violet
       23,28,3  ... ocean (green-blue-white); try also all other permutations
       30,31,32 ... color printable on gray (black-blue-violet-yellow-white)
       33,13,10 ... rainbow (blue-green-yellow-red)
       34,35,36 ... AFM hot (black-red-yellow-white)
    

Pełna paleta HSV

       3,2,2    ... red-yellow-green-cyan-blue-magenta-red


== defined ==
Składnia:

 set palette  defined { (   {,  }... ) }

gdzie 

    := {    | ’’ | ’#rrggbb’ }

Paleta jest zbudowana poprzez liniową interpolację między wartościami określonymi w definicji.
Przykłady:

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 )

Inna równowazna składnie polecena set palette: 

Dane możemy wprowadzić z

linii poleceń
z pliku palety pal load 'a.pal'

Przykład pliku tekstowego pal:

Zbiory palet:

github Gnuplotting : gnuplot-palettes
Sprawdzamy jaki gradient ma aktualna paleta: 

show palette gradient

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


= References =