code: def facet_grid(
      x=None,
      y=None,
      *,
      scales=None,
      x_order=1,
      y_order=1,
      x_format=None,
      y_format=None,
  ):
      """
      Split data by one or two faceting variables.
      For each data subset creates a plot panel and lays out panels as grid.
      The grid columns are defined by X faceting variable and rows are defined by Y faceting variable.
  
      Parameters
      ----------
      x : str
          Variable name which defines columns of the facet grid.
      y : str
          Variable name which defines rows of the facet grid.
      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.
      x_order : int, default=1
          Specify ordering direction of columns. 1 - ascending, -1 - descending, 0 - no ordering.
      y_order : int, default=1
          Specify ordering direction of rows. 1 - ascending, -1 - descending, 0 - no ordering.
      x_format : str
          Specify the format pattern for displaying faceting values in columns.
      y_format : str
          Specify the format pattern for displaying faceting values in rows.
  
      Returns
      -------
      `FeatureSpec`
          Facet grid specification.
  
      Notes
      -----
      Format pattern in the `x_format` / `y_format` parameters 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_grid(x='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_grid(y='y', y_order=-1, y_format='.2f')
  
      """
      return _facet(
          "grid",
          x=x,
          y=y,
          scales=scales,
          x_order=x_order,
          y_order=y_order,
          x_format=x_format,
          y_format=y_format,
      )
  
imports: from .core import FeatureSpec
label_desc: Use image node_id 1 for calling a global function with example usage: facet_grid(x, y) and returns: _facet