code: def 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.
  
      Parameters
      ----------
      aesthetic : str 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.
      palette : str 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.
      name : str
          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.
      breaks : list or dict
          A list of data values specifying the positions of ticks, or a dictionary which maps the tick labels to the breaks values.
      labels : list of str or dict
          A list of labels on ticks, or a dictionary which maps the breaks values to the tick labels.
      lablim : int, default=None
          The maximum label length (in characters) before trimming is applied.
      limits : list
          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.
      na_value
          Missing values will be replaced with this value.
      guide
          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.
      format : str
          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/pages/formats.html.
  
      Returns
      -------
      `FeatureSpec` or `FeatureSpecArray`
          Scales specification.
  
      Notes
      -----
      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.
  
      Palettes:
  
      - 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.
  
      Examples
      --------
      .. jupyter-execute::
          :linenos:
          :emphasize-lines: 6
  
          from lets_plot import *
          LetsPlot.setup_html()
          x = list(range(9))
          ggplot({'x': x}, aes(x='x')) + \\
              geom_tile(aes(color='x', fill='x')) + \\
              scale_brewer(aesthetic=['color', 'fill'], palette='YlGnBu') + \\
              coord_cartesian() + \\
              ggsize(600, 200)
  
      """
      return _scale(
          aesthetic=aesthetic,
          name=name,
          breaks=breaks,
          labels=labels,
          lablim=lablim,
          limits=limits,
          expand=None,
          na_value=na_value,
          guide=guide,
          trans=trans,
          format=format,
          #
          type=type,
          palette=palette,
          direction=direction,
          scale_mapper_kind="color_brewer",
      )
  
imports: from .core import FeatureSpec, FeatureSpecArray
  from .util import as_boolean
label_desc: Use image node_id 31 for calling a global function with example usage: scale_brewer(aesthetic) and returns: _scale