...

Package palette

import "gonum.org/v1/plot/palette"
Overview
Index
Examples
Subdirectories

Overview ▾

Package palette provides basic color palette handling.

Variables

var (
    // ErrOverflow is the error returned by ColorMaps when the specified
    // value is greater than the maximum value.
    ErrOverflow = errors.New("palette: specified value > maximum")

    // ErrUnderflow is the error returned by ColorMaps when the specified
    // value is less than the minimum value.
    ErrUnderflow = errors.New("palette: specified value < minimum")

    // ErrNaN is the error returned by ColorMaps when the specified
    // value is NaN.
    ErrNaN = errors.New("palette: specified value == NaN")
)

HSVAModel converts any color.Color to an HSVA color.

var HSVAModel = color.ModelFunc(hsvaModel)

type ColorMap

A ColorMap maps scalar values to colors.

type ColorMap interface {
    // At returns the color associated with the given value.
    // If the value is not between Max() and Min(), an error is returned.
    At(float64) (color.Color, error)

    // Max returns the current maximum value of the ColorMap.
    Max() float64

    // SetMax sets the maximum value of the ColorMap.
    SetMax(float64)

    // Min returns the current minimum value of the ColorMap.
    Min() float64

    // SetMin sets the minimum value of the ColorMap.
    SetMin(float64)

    // Alpha returns the opacity value of the ColorMap.
    Alpha() float64

    // SetAlpha sets the opacity value of the ColorMap. Zero is transparent
    // and one is completely opaque. The default value of alpha should be
    // expected to be one. The function should be expected to panic
    // if alpha is not between zero and one.
    SetAlpha(float64)

    // Palette creates a Palette with the specified number of colors
    // from the ColorMap.
    Palette(colors int) Palette
}

func Reverse

func Reverse(c ColorMap) ColorMap

Reverse reverses the direction of ColorMap c.

Example

This example creates a color bar and a second color bar where the direction of the colors are reversed.

Code:

p := plot.New()
l := &plotter.ColorBar{ColorMap: moreland.Kindlmann()}
l2 := &plotter.ColorBar{ColorMap: palette.Reverse(moreland.Kindlmann())}
l.ColorMap.SetMin(0.5)
l.ColorMap.SetMax(2.5)
l2.ColorMap.SetMin(2.5)
l2.ColorMap.SetMax(4.5)

p.Add(l, l2)
p.HideY()
p.X.Padding = 0
p.Title.Text = "A ColorMap and its Reverse"

if err := p.Save(300, 48, "testdata/reverse.png"); err != nil {
    log.Panic(err)
}

Example (Palette)

This example creates a color palette from a reversed ColorMap.

Code:

p := plot.New()
thumbs := plotter.PaletteThumbnailers(palette.Reverse(moreland.Kindlmann()).Palette(10))
for i, t := range thumbs {
    p.Legend.Add(strconv.Itoa(i), t)
}
p.HideAxes()
p.X.Padding = 0
p.Y.Padding = 0

if err := p.Save(35, 120, "testdata/reverse_palette.png"); err != nil {
    log.Panic(err)
}

type DivergingColorMap

DivergingColorMap maps scalar values to colors that diverge from a central value.

type DivergingColorMap interface {
    ColorMap

    // SetConvergePoint sets the value where the diverging colors
    // should meet. The default value should be expected to be
    // (Min() + Max()) / 2. It should be expected that calling either
    // SetMax() or SetMin() will set a new default value, so for a
    // custom convergence point this function should be called after
    // SetMax() and SetMin(). The function should be expected to panic
    // if the value is not between Min() and Max().
    SetConvergePoint(float64)

    // ConvergePoint returns the value where the diverging colors meet.
    ConvergePoint() float64
}

type DivergingPalette

DivergingPalette is a collection of colors ordered into a palette with a critical class or break in the middle of the color range.

type DivergingPalette interface {
    Palette

    // CriticalIndex returns the indices of the lightest
    // (median) color or colors in the DivergingPalette.
    // The low and high index values will be equal when
    // there is a single median color.
    CriticalIndex() (low, high int)
}

func Radial

func Radial(colors int, start, end Hue, alpha float64) DivergingPalette

Radial return a diverging palette across the specified range, through white and with the specified alpha.

type HSVA

HSVA represents a Hue/Saturation/Value/Alpha color. H, S, V and A are valid within [0, 1].

type HSVA struct {
    H, S, V, A float64
}

func (HSVA) RGBA

func (c HSVA) RGBA() (r, g, b, a uint32)

RGBA allows HSVAColor to satisfy the color.Color interface.

type Hue

Hue represents a hue in HSV color space. Valid Hues are within [0, 1].

type Hue float64
const (
    Red Hue = Hue(iota) / 6
    Yellow
    Green
    Cyan
    Blue
    Magenta
)

func (Hue) Complement

func (h Hue) Complement() Hue

Complement returns the complementary hue of a Hue.

type Palette

Palette is a collection of colors ordered into a palette.

type Palette interface {
    Colors() []color.Color
}

func Heat

func Heat(colors int, alpha float64) Palette

Heat returns a red to yellow palette with the specified number of colors and alpha.

func Rainbow

func Rainbow(colors int, start, end Hue, sat, val, alpha float64) Palette

Rainbow returns a rainbow palette with the specified number of colors, saturation value and alpha, and hues in the specified range.

Subdirectories

Name Synopsis
..
brewer Package brewer provides Brewer Palettes for informative graphics.
moreland Package moreland provides color maps for pseudocoloring scalar fields.