code: def facet_wrap(
      facets,
      ncol=None,
      nrow=None,
      *,
      scales=None,
      order=1,
      format=None,
      dir="h",
  ):
      """
      Split data by one or more faceting variables.
      For each data subset creates a plot panel and lays out panels
      according to the `ncol`, `nrow` and `dir` settings.
  
      Parameters
      ----------
      facets : str or list
          One or more faceting variable names.
      ncol : int
          Number of columns.
      nrow : int
          Number of rows.
      scales : str
          Specify whether scales are shared across all facets.
          'fixed' - shared (the default), 'free' - vary across both rows and columns,
          'free_x' or 'free_y' - vary across rows or columns respectively.
      order : int or list, default=1
          Specify ordering direction panels. 1 - ascending, -1 - descending, 0 - no ordering.
          When a list is given, then values in the list are positionally matched to variables in `facets`.
      format : str or list
          Specify the format pattern for displaying faceting values.
          The `format` values are positionally matched to variables in `facets`.
      dir : {'h', 'v'}, default='h'
          Direction: either 'h' for horizontal, or 'v' for vertical.
  
      Returns
      -------
      `FeatureSpec`
          Facet wrap specification.
  
      Notes
      -----
      Format patterns in the `format` parameter can be just a number format (like 'd') or
      a string template where number format is surrounded by curly braces: "{d} cylinders".
  
      For example:
  
      - '.2f' -> '12.45',
      - 'Score: {.2f}' -> 'Score: 12.45',
      - 'Score: {}' -> 'Score: 12.454789'.
  
      For more info see https://lets-plot.org/pages/formats.html.
  
      Examples
      --------
      .. jupyter-execute::
          :linenos:
          :emphasize-lines: 9
  
          import numpy as np
          from lets_plot import *
          LetsPlot.setup_html()
          n = 100
          np.random.seed(42)
          x = np.random.normal(size=n)
          group = np.random.choice(['a', 'b'], size=n)
          ggplot({'x': x, 'group': group}, aes(x='x')) + \\
              geom_histogram() + facet_wrap(facets='group')
  
      |
  
      .. jupyter-execute::
          :linenos:
          :emphasize-lines: 11
  
          import numpy as np
          from lets_plot import *
          LetsPlot.setup_html()
          n = 1000
          np.random.seed(42)
          x = np.random.normal(size=n)
          p = [1/6, 1/3, 1/2]
          y = np.random.choice(p, size=n, p=p)
          ggplot({'x': x, 'y': y}, aes(x='x')) + \\
              geom_histogram() + \\
              facet_wrap(facets='y', order=-1, ncol=2, dir='v', format='.2f')
  
      """
      return _facet(
          "wrap",
          facets=facets,
          ncol=ncol,
          nrow=nrow,
          scales=scales,
          order=order,
          format=format,
          dir=dir,
      )
  
imports: from .core import FeatureSpec
label_desc: Use image node_id 2 for calling a global function with example usage: facet_wrap(facets, ncol, nrow) and returns: _facet