class_docstr: Wrap 1D Panels onto 2D surface
  
  Parameters
  ----------
  facets : str | tuple | list
      A formula with the rows (of the tabular display) on
      the LHS and the columns (of the tabular display) on
      the RHS; the dot in the formula is used to indicate
      there should be no faceting on this dimension
      (either row or column). If a tuple/list is used, it
      must of size two, the elements of which must be
      strings or lists. If string formula is not processed
      as you may expect, use tuple/list. For example, the
      follow two specifications are equivalent:
  
      ```python
      "func(var4) ~ func(var1+var3) + func(var2)"
  
      ["func(var4)", ("func(var1+var3)", "func(var2)")]
      ```
  
      There may be cases where you cannot use a
      use a pure string formula, e.g.
  
      ```python
      ['var4', ('var1+var3', 'var2')]
      ```
  margins : bool | list[str]
      variable names to compute margins for.
      True will compute all possible margins.
  space : str | dict
      Control the size of the  `x` or `y` sides of the panels.
      The size also depends to the `scales` parameter.
  
      If a string, it should be one of
      `['fixed', 'free', 'free_x', 'free_y']`{.py}.
      Currently, only the `'fixed'` option is supported.
  
      Alternatively if a `dict`, it indicates the relative facet
      size ratios such as:
  
      ```python
      {"x": [1, 2], "y": [3, 1, 1]}
      ```
  
      This means that in the horizontal direction, the second panel
      will be twice the length of the first. In the vertical direction
      the top facet will be the 3 times longer then the second and
      third facets.
  
      Note that the number of dimensions in the list must equal the
      number of facets that will be produced.
  shrink : bool, default=True
      Whether to shrink the scales to the output of the
      statistics instead of the raw data.
  labeller : str | callable, default="label_value"
      How to label the facets. A string value if it should be
      one of `["label_value", "label_both", "label_context"]`{.py}.
  as_table : bool, default=True
      If `True`, the facets are laid out like a table with
      the highest values at the bottom-right. If `False`
      the facets are laid out like a plot with the highest
      value a the top-right
  drop : bool, default=True
      If `True`, all factor levels not used in the data
      will automatically be dropped. If `False`, all
      factor levels will be shown, regardless of whether
      or not they appear in the data.
class_docstr_tok: ["Wrap","1D","Panels","onto","2D","surface","Parameters","--","--","--","--","--","facets",":","str","|","tuple","|","list","A","formula","with","the","rows","(","of","the","tabular","display",")","on","the","LHS","and","the","columns","(","of","the","tabular","display",")","on","the","RHS",";","the","dot","in","the","formula","is","used","to","indicate","there","should","be","no","faceting","on","this","dimension","(","either","row","or","column",")",".","If","a","tuple\/list","is","used",",","it","must","of","size","two",",","the","elements","of","which","must","be","strings","or","lists",".","If","string","formula","is","not","processed","as","you","may","expect",",","use","tuple\/list",".","For","example",",","the","follow","two","specifications","are","equivalent",":","``","`","python","``","func","(","var4",")","~","func","(","var1+var3",")","+","func","(","var2",")","''","[","``","func","(","var4",")","''",",","(","``","func","(","var1+var3",")","''",",","``","func","(","var2",")","''",")","]","``","`","There","may","be","cases","where","you","can","not","use","a","use","a","pure","string","formula",",","e.g",".","``","`","python","[","'var4","'",",","(","'var1+var3","'",",","'var2","'",")","]","``","`","margins",":","bool","|","list","[","str","]","variable","names","to","compute","margins","for",".","True","will","compute","all","possible","margins",".","space",":","str","|","dict","Control","the","size","of","the","`","x","`","or","`","y","`","sides","of","the","panels",".","The","size","also","depends","to","the","`","scales","`","parameter",".","If","a","string",",","it","should","be","one","of","`","[","'fixed","'",",","'free","'",",","'free_x","'",",","'free_y","'","]","`","{",".py","}",".","Currently",",","only","the","`","'fixed","'","`","option","is","supported",".","Alternatively","if","a","`","dict","`",",","it","indicates","the","relative","facet","size","ratios","such","as",":","``","`","python","{","``","x","''",":","[","1",",","2","]",",","``","y","''",":","[","3",",","1",",","1","]","}","``","`","This","means","that","in","the","horizontal","direction",",","the","second","panel","will","be","twice","the","length","of","the","first",".","In","the","vertical","direction","the","top","facet","will","be","the","3","times","longer","then","the","second","and","third","facets",".","Note","that","the","number","of","dimensions","in","the","list","must","equal","the","number","of","facets","that","will","be","produced",".","shrink",":","bool",",","default=True","Whether","to","shrink","the","scales","to","the","output","of","the","statistics","instead","of","the","raw","data",".","labeller",":","str","|","callable",",","default=","''","label_value","''","How","to","label","the","facets",".","A","string","value","if","it","should","be","one","of","`","[","``","label_value","''",",","``","label_both","''",",","``","label_context","''","]","`","{",".py","}",".","as_table",":","bool",",","default=True","If","`","True","`",",","the","facets","are","laid","out","like","a","table","with","the","highest","values","at","the","bottom-right",".","If","`","False","`","the","facets","are","laid","out","like","a","plot","with","the","highest","value","a","the","top-right","drop",":","bool",",","default=True","If","`","True","`",",","all","factor","levels","not","used","in","the","data","will","automatically","be","dropped",".","If","`","False","`",",","all","factor","levels","will","be","shown",",","regardless","of","whether","or","not","they","appear","in","the","data","."]
code: def make_ax_strips(
      self, layout_info: layout_details, ax: Axes
  ) -> Strips:
      lst = []
      toprow = layout_info.row == 1
      rightcol = layout_info.col == self.ncol
      if toprow and len(self.cols):
          s = strip(self.cols, layout_info, self, ax, "top")
          lst.append(s)
      if rightcol and len(self.rows):
          s = strip(self.rows, layout_info, self, ax, "right")
          lst.append(s)
      return Strips(lst)
  
file_path: plotnine/plotnine/facets/facet_grid.py
imports: from __future__ import annotations
  import typing
  import pandas
  from .._utils import add_margins, cross_join, join_keys, match, ninteraction
  from ..exceptions import PlotnineError
  from .facet import add_missing_facets, combine_vars, eval_facet_vars, facet, layout_null
  from .strips import Strips, strip
label_desc: Use image node_id 4 for calling the facet_grid obj's underlying member method code with example usage: obj.make_ax_strips(layout_info, ax) and returns: Strips