lets_plot.scale_brewer(aesthetic, *, type=None, palette=None, direction=None, name=None, breaks=None, labels=None, lablim=None, limits=None, na_value=None, guide=None, trans=None, format=None)#

Sequential, diverging and qualitative color scales from colorbrewer2.org for the specified aesthetics. Color schemes provided are particularly suited to display discrete values (levels of factors) on a map.

aestheticstr or list

The name(s) of the aesthetic(s) that this scale works with.

type{‘seq’, ‘div’, ‘qual’}

One of seq (sequential), div (diverging) or qual (qualitative) types of scales.

palettestr or int

If a string, will use that named palette. If a number, will index into the list of palettes of appropriate type.

direction{1, -1}, default=1

Set the order of colors in the scale. If 1, colors are as output by brewer palette. If -1, the order of colors is reversed.


The name of the scale - used as the axis label or the legend title. If None, the default, the name of the scale is taken from the first mapping used for that aesthetic.

breakslist or dict

A list of data values specifying the positions of ticks, or a dictionary which maps the tick labels to the breaks values.

labelslist of str or dict

A list of labels on ticks, or a dictionary which maps the breaks values to the tick labels.

lablimint, default=None

The maximum label length (in characters) before trimming is applied.


Continuous scale: a numeric vector of length two providing limits of the scale. Discrete scale: a vector specifying the data range for the scale and the default order of their display in guides.


Missing values will be replaced with this value.


Guide to use for this scale. It can either be a string (‘colorbar’, ‘legend’) or a call to a guide function (guide_colorbar(), guide_legend()) specifying additional arguments. ‘none’ will hide the guide.

trans{‘identity’, ‘log10’, ‘log2’, ‘symlog’, ‘sqrt’, ‘reverse’}

Name of built-in transformation.


Define the format for labels on the scale. The syntax resembles Python’s:

  • ‘.2f’ -> ‘12.45’

  • ‘Num {}’ -> ‘Num 12.456789’

  • ‘TTL: {.2f}$’ -> ‘TTL: 12.45$’

For more info see https://lets-plot.org/python/pages/formats.html.

FeatureSpec or FeatureSpecArray

Scales specification.


Define sequential, diverging and qualitative color scales from colorbrewer2.org for the specified aesthetics. ColorBrewer provides sequential, diverging and qualitative color schemes which are particularly suited and tested to display discrete values (levels of a factor) on a map. It allows to smoothly interpolate 6 colors from any palette to a continuous scale (6 colors per palette gives nice gradients; more results in more saturated colors which do not look as good).

However, the original color schemes (particularly the qualitative ones) were not intended for this and the perceptual result is left to the appreciation of the user. See colorbrewer2.org for more information.


  • Diverging : BrBG, PiYG, PRGn, PuOr, RdBu, RdGy, RdYlBu, RdYlGn, Spectral.

  • Qualitative : Accent, Dark2, Paired, Pastel1, Pastel2, Set1, Set2, Set3.

  • Sequential : Blues, BuGn, BuPu, GnBu, Greens, Greys, Oranges, OrRd, PuBu, PuBuGn, PuRd, Purples, RdPu, Reds, YlGn, YlGnBu, YlOrBr, YlOrRd.


1from lets_plot import *
3x = list(range(9))
4ggplot({'x': x}, aes(x='x')) + \
5    geom_tile(aes(color='x', fill='x')) + \
6    scale_brewer(aesthetic=['color', 'fill'], palette='YlGnBu') + \
7    coord_cartesian() + \
8    ggsize(600, 200)