lets_plot.scale_identity(aesthetic, *, name=None, breaks=None, labels=None, lablim=None, limits=None, na_value=None, guide='none', format=None, **other)#

Use this scale when your data has already been scaled. I.e. it already represents aesthetic values that the library can handle directly. This will not produce a legend unless you also supply the breaks and labels.

aestheticstr or list

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


The name of the scale - used as the axis label or the legend title.

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, default=’none’

Guide to use for this scale.


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.


 1import numpy as np
 2from lets_plot import *
 4n = 50
 6c = np.random.choice(['#e41a1c', '#377eb8', '#4daf4a'], size=n)
 7v = np.random.normal(size=n)
 8ggplot({'c': c, 'v': v}, aes(x='c', y='v')) + \
 9    geom_boxplot(aes(color='c', fill='c'), size=2) + \
10    scale_identity(aesthetic=['color', 'fill'])