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:

  • Symbols or Strings will be passed to Colors.parse(Colorant, c), so :red is equivalent to colorant"red"
  • false or nothing will be converted to an invisible RGBA(0,0,0,0)
  • Any Colors.Colorant, with or without alpha/opacity
  • Any Plots.ColorScheme, which includes ColorVector, 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 the cgrad 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)

Tip

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...
linecolorseriescolor
fillcolorseriescolor
markercolorseriescolor
markerstrokecolorforegroundcolorsubplot
Note

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.

Note

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_outsidebackground_color
background_color_subplotbackground_color
background_color_legendbackground_color_subplot
background_color_insidebackground_color_subplot
foreground_color_subplotforeground_color
foreground_color_legendforeground_color_subplot
foreground_color_gridforeground_color_subplot
foreground_color_titleforeground_color_subplot
foreground_color_axisforeground_color_subplot
foreground_color_borderforeground_color_subplot
foreground_color_guideforeground_color_subplot
foreground_color_textforeground_color_subplot

Misc

  • the linecolor under the default theme is not CSS-defined, but close to :steelblue.
  • line_z and marker_z parameters will map data values into a ColorGradient value
  • color_palette determines the colors assigned when seriescolor == :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