Colors
There are many color attributes, for lines, fills, markers, backgrounds, and foregrounds. Many colors follow a hierarchy... linecolor
gets its value from seriescolor
, for example, unless you override the value. This allows for you to simply set precisely what you want, without lots of boilerplate.
Color attributes will accept many different types:
Symbol
s orString
s will be passed toColors.parse(Colorant, c)
, so:red
is equivalent tocolorant"red"
false
ornothing
will be converted to an invisibleRGBA(0,0,0,0)
- Any
Colors.Colorant
, with or without alpha/opacity - Any
Plots.ColorScheme
, which includesColorVector
,ColorGradient
, etc - An integer, which picks the corresponding color from the
seriescolor
In addition, there is an extensive facility for selecting and generating color maps/gradients.
- A valid Symbol:
:inferno
(the default),:heat
,:blues
, etc - A list of colors (or anything that can be converted to a color)
- A pre-built
ColorGradient
, which can be constructed with thecgrad
helper function. See this short tutorial for example usage.
Color names
The supported color names is the union of X11's and SVG's. They are defined in the Colors.jl ,like blue
, blue2
, blue3
, ...etc.
Series Colors
For series, there are a few attributes to know:
- seriescolor: Not used directly, but defines the base color for the series
- linecolor: Color of paths
- fillcolor: Color of area fill
- markercolor: Color of the interior of markers and shapes
- markerstrokecolor: Color of the border/stroke of markers and shapes
seriescolor
defaults to :auto
, and gets assigned a color from the color_palette
based on its index in the subplot. By default, the other colors :match
. (See the table below)
In general, color gradients can be set by *color
, and the corresponding color values to look up in the gradients by *_z
.
This color... | matches this color... |
---|---|
linecolor | seriescolor |
fillcolor | seriescolor |
markercolor | seriescolor |
markerstrokecolor | foregroundcolorsubplot |
each of these attributes have a corresponding alpha override: seriesalpha
, linealpha
, fillalpha
, markeralpha
, and markerstrokealpha
. They are optional, and you can still give alpha information as part of an Colors.RGBA
.
In some contexts, and when the user hasn't set a value, the linecolor
or markerstrokecolor
may be overridden.
Foreground/Background
Foreground and background colors work similarly:
This color... | matches this color... |
---|---|
background_color_outside | background_color |
background_color_subplot | background_color |
background_color_legend | background_color_subplot |
background_color_inside | background_color_subplot |
foreground_color_subplot | foreground_color |
foreground_color_legend | foreground_color_subplot |
foreground_color_grid | foreground_color_subplot |
foreground_color_title | foreground_color_subplot |
foreground_color_axis | foreground_color_subplot |
foreground_color_border | foreground_color_subplot |
foreground_color_guide | foreground_color_subplot |
foreground_color_text | foreground_color_subplot |
Misc
- the
linecolor
under the default theme is not CSS-defined, but close to:steelblue
. line_z
andmarker_z
parameters will map data values into aColorGradient
valuecolor_palette
determines the colors assigned whenseriescolor == :auto
:- If passed a vector of colors, it will force cycling of those colors
- If passed a gradient, it will infinitely draw unique colors from that gradient, attempting to spread them out