lets_plot.scale_gradient2(aesthetic, *, low=None, mid=None, high=None, midpoint=0, name=None, breaks=None, labels=None, lablim=None, limits=None, na_value=None, guide=None, trans=None, format=None)#

Define diverging color gradient for the specified aesthetics.

aestheticstr or list

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


Color for low end of gradient.


Color for mid-point.


Color for high end of gradient.

midpointfloat, default=0.0

The midpoint (in data value) of the diverging scale.


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 diverging color gradient for the specified aesthetics. Default mid point is set to white color.


1from lets_plot import *
3x = list(range(-25, 26))
4ggplot({'x': x}, aes(x='x')) + \
5    geom_tile(aes(color='x', fill='x')) + \
6    scale_gradient2(aesthetic=['color', 'fill'], low='#2b83ba', mid='#ffffbf', high='#d7191c') + \
7    coord_cartesian() + \
8    ggsize(600, 200)