docstr: Construct a new Grid object
  
  Parameters
  ----------
  arg
      dict of properties compatible with this constructor or
      an instance of :class:`plotly.graph_objs.layout.Grid`
  columns
      The number of columns in the grid. If you provide a 2D
      `subplots` array, the length of its longest row is used
      as the default. If you give an `xaxes` array, its
      length is used as the default. But it's also possible
      to have a different length, if you want to leave a row
      at the end for non-cartesian subplots.
  domain
      :class:`plotly.graph_objects.layout.grid.Domain`
      instance or dict with compatible properties
  pattern
      If no `subplots`, `xaxes`, or `yaxes` are given but we
      do have `rows` and `columns`, we can generate defaults
      using consecutive axis IDs, in two ways: "coupled"
      gives one x axis per column and one y axis per row.
      "independent" uses a new xy pair for each cell, left-
      to-right across each row then iterating rows according
      to `roworder`.
  roworder
      Is the first row the top or the bottom? Note that
      columns are always enumerated from left to right.
  rows
      The number of rows in the grid. If you provide a 2D
      `subplots` array or a `yaxes` array, its length is used
      as the default. But it's also possible to have a
      different length, if you want to leave a row at the end
      for non-cartesian subplots.
  subplots
      Used for freeform grids, where some axes may be shared
      across subplots but others are not. Each entry should
      be a cartesian subplot id, like "xy" or "x3y2", or ""
      to leave that cell empty. You may reuse x axes within
      the same column, and y axes within the same row. Non-
      cartesian subplots and traces that support `domain` can
      place themselves in this grid separately using the
      `gridcell` attribute.
  xaxes
      Used with `yaxes` when the x and y axes are shared
      across columns and rows. Each entry should be an x axis
      id like "x", "x2", etc., or "" to not put an x axis in
      that column. Entries other than "" must be unique.
      Ignored if `subplots` is present. If missing but
      `yaxes` is present, will generate consecutive IDs.
  xgap
      Horizontal space between grid cells, expressed as a
      fraction of the total width available to one cell.
      Defaults to 0.1 for coupled-axes grids and 0.2 for
      independent grids.
  xside
      Sets where the x axis labels and titles go. "bottom"
      means the very bottom of the grid. "bottom plot" is the
      lowest plot that each x axis is used in. "top" and "top
      plot" are similar.
  yaxes
      Used with `yaxes` when the x and y axes are shared
      across columns and rows. Each entry should be an y axis
      id like "y", "y2", etc., or "" to not put a y axis in
      that row. Entries other than "" must be unique. Ignored
      if `subplots` is present. If missing but `xaxes` is
      present, will generate consecutive IDs.
  ygap
      Vertical space between grid cells, expressed as a
      fraction of the total height available to one cell.
      Defaults to 0.1 for coupled-axes grids and 0.3 for
      independent grids.
  yside
      Sets where the y axis labels and titles go. "left"
      means the very left edge of the grid. *left plot* is
      the leftmost plot that each y axis is used in. "right"
      and *right plot* are similar.
  
  Returns
  -------
  Grid
docstr_tok: ["Construct","a","new","Grid","object","Parameters","--","--","--","--","--","arg","dict","of","properties","compatible","with","this","constructor","or","an","instance","of",":","class",":","`","plotly.graph_objs.layout.Grid","`","columns","The","number","of","columns","in","the","grid",".","If","you","provide","a","2D","`","subplots","`","array",",","the","length","of","its","longest","row","is","used","as","the","default",".","If","you","give","an","`","xaxes","`","array",",","its","length","is","used","as","the","default",".","But","it","'s","also","possible","to","have","a","different","length",",","if","you","want","to","leave","a","row","at","the","end","for","non-cartesian","subplots",".","domain",":","class",":","`","plotly.graph_objects.layout.grid.Domain","`","instance","or","dict","with","compatible","properties","pattern","If","no","`","subplots","`",",","`","xaxes","`",",","or","`","yaxes","`","are","given","but","we","do","have","`","rows","`","and","`","columns","`",",","we","can","generate","defaults","using","consecutive","axis","IDs",",","in","two","ways",":","``","coupled","''","gives","one","x","axis","per","column","and","one","y","axis","per","row",".","``","independent","''","uses","a","new","xy","pair","for","each","cell",",","left-","to-right","across","each","row","then","iterating","rows","according","to","`","roworder","`",".","roworder","Is","the","first","row","the","top","or","the","bottom","?","Note","that","columns","are","always","enumerated","from","left","to","right",".","rows","The","number","of","rows","in","the","grid",".","If","you","provide","a","2D","`","subplots","`","array","or","a","`","yaxes","`","array",",","its","length","is","used","as","the","default",".","But","it","'s","also","possible","to","have","a","different","length",",","if","you","want","to","leave","a","row","at","the","end","for","non-cartesian","subplots",".","subplots","Used","for","freeform","grids",",","where","some","axes","may","be","shared","across","subplots","but","others","are","not",".","Each","entry","should","be","a","cartesian","subplot","id",",","like","``","xy","''","or","``","x3y2","''",",","or","``","''","to","leave","that","cell","empty",".","You","may","reuse","x","axes","within","the","same","column",",","and","y","axes","within","the","same","row",".","Non-","cartesian","subplots","and","traces","that","support","`","domain","`","can","place","themselves","in","this","grid","separately","using","the","`","gridcell","`","attribute",".","xaxes","Used","with","`","yaxes","`","when","the","x","and","y","axes","are","shared","across","columns","and","rows",".","Each","entry","should","be","an","x","axis","id","like","``","x","''",",","``","x2","''",",","etc.",",","or","``","''","to","not","put","an","x","axis","in","that","column",".","Entries","other","than","``","''","must","be","unique",".","Ignored","if","`","subplots","`","is","present",".","If","missing","but","`","yaxes","`","is","present",",","will","generate","consecutive","IDs",".","xgap","Horizontal","space","between","grid","cells",",","expressed","as","a","fraction","of","the","total","width","available","to","one","cell",".","Defaults","to","0.1","for","coupled-axes","grids","and","0.2","for","independent","grids",".","xside","Sets","where","the","x","axis","labels","and","titles","go",".","``","bottom","''","means","the","very","bottom","of","the","grid",".","``","bottom","plot","''","is","the","lowest","plot","that","each","x","axis","is","used","in",".","``","top","''","and","``","top","plot","''","are","similar",".","yaxes","Used","with","`","yaxes","`","when","the","x","and","y","axes","are","shared","across","columns","and","rows",".","Each","entry","should","be","an","y","axis","id","like","``","y","''",",","``","y2","''",",","etc.",",","or","``","''","to","not","put","a","y","axis","in","that","row",".","Entries","other","than","``","''","must","be","unique",".","Ignored","if","`","subplots","`","is","present",".","If","missing","but","`","xaxes","`","is","present",",","will","generate","consecutive","IDs",".","ygap","Vertical","space","between","grid","cells",",","expressed","as","a","fraction","of","the","total","height","available","to","one","cell",".","Defaults","to","0.1","for","coupled-axes","grids","and","0.3","for","independent","grids",".","yside","Sets","where","the","y","axis","labels","and","titles","go",".","``","left","''","means","the","very","left","edge","of","the","grid",".","*","left","plot","*","is","the","leftmost","plot","that","each","y","axis","is","used","in",".","``","right","''","and","*","right","plot","*","are","similar",".","Returns","--","--","--","-","Grid"]
code: def __init__(
      self,
      arg=None,
      columns=None,
      domain=None,
      pattern=None,
      roworder=None,
      rows=None,
      subplots=None,
      xaxes=None,
      xgap=None,
      xside=None,
      yaxes=None,
      ygap=None,
      yside=None,
      **kwargs,
  ):
      """
      Construct a new Grid object
  
      Parameters
      ----------
      arg
          dict of properties compatible with this constructor or
          an instance of :class:`plotly.graph_objs.layout.Grid`
      columns
          The number of columns in the grid. If you provide a 2D
          `subplots` array, the length of its longest row is used
          as the default. If you give an `xaxes` array, its
          length is used as the default. But it's also possible
          to have a different length, if you want to leave a row
          at the end for non-cartesian subplots.
      domain
          :class:`plotly.graph_objects.layout.grid.Domain`
          instance or dict with compatible properties
      pattern
          If no `subplots`, `xaxes`, or `yaxes` are given but we
          do have `rows` and `columns`, we can generate defaults
          using consecutive axis IDs, in two ways: "coupled"
          gives one x axis per column and one y axis per row.
          "independent" uses a new xy pair for each cell, left-
          to-right across each row then iterating rows according
          to `roworder`.
      roworder
          Is the first row the top or the bottom? Note that
          columns are always enumerated from left to right.
      rows
          The number of rows in the grid. If you provide a 2D
          `subplots` array or a `yaxes` array, its length is used
          as the default. But it's also possible to have a
          different length, if you want to leave a row at the end
          for non-cartesian subplots.
      subplots
          Used for freeform grids, where some axes may be shared
          across subplots but others are not. Each entry should
          be a cartesian subplot id, like "xy" or "x3y2", or ""
          to leave that cell empty. You may reuse x axes within
          the same column, and y axes within the same row. Non-
          cartesian subplots and traces that support `domain` can
          place themselves in this grid separately using the
          `gridcell` attribute.
      xaxes
          Used with `yaxes` when the x and y axes are shared
          across columns and rows. Each entry should be an x axis
          id like "x", "x2", etc., or "" to not put an x axis in
          that column. Entries other than "" must be unique.
          Ignored if `subplots` is present. If missing but
          `yaxes` is present, will generate consecutive IDs.
      xgap
          Horizontal space between grid cells, expressed as a
          fraction of the total width available to one cell.
          Defaults to 0.1 for coupled-axes grids and 0.2 for
          independent grids.
      xside
          Sets where the x axis labels and titles go. "bottom"
          means the very bottom of the grid. "bottom plot" is the
          lowest plot that each x axis is used in. "top" and "top
          plot" are similar.
      yaxes
          Used with `yaxes` when the x and y axes are shared
          across columns and rows. Each entry should be an y axis
          id like "y", "y2", etc., or "" to not put a y axis in
          that row. Entries other than "" must be unique. Ignored
          if `subplots` is present. If missing but `xaxes` is
          present, will generate consecutive IDs.
      ygap
          Vertical space between grid cells, expressed as a
          fraction of the total height available to one cell.
          Defaults to 0.1 for coupled-axes grids and 0.3 for
          independent grids.
      yside
          Sets where the y axis labels and titles go. "left"
          means the very left edge of the grid. *left plot* is
          the leftmost plot that each y axis is used in. "right"
          and *right plot* are similar.
  
      Returns
      -------
      Grid
      """
      super(Grid, self).__init__("grid")
  
      if "_parent" in kwargs:
          self._parent = kwargs["_parent"]
          return
  
      # Validate arg
      # ------------
      if arg is None:
          arg = {}
      elif isinstance(arg, self.__class__):
          arg = arg.to_plotly_json()
      elif isinstance(arg, dict):
          arg = _copy.copy(arg)
      else:
          raise ValueError(
              """\
  The first argument to the plotly.graph_objs.layout.Grid 
  constructor must be a dict or 
  an instance of :class:`plotly.graph_objs.layout.Grid`"""
          )
  
      # Handle skip_invalid
      # -------------------
      self._skip_invalid = kwargs.pop("skip_invalid", False)
      self._validate = kwargs.pop("_validate", True)
  
      # Populate data dict with properties
      # ----------------------------------
      _v = arg.pop("columns", None)
      _v = columns if columns is not None else _v
      if _v is not None:
          self["columns"] = _v
      _v = arg.pop("domain", None)
      _v = domain if domain is not None else _v
      if _v is not None:
          self["domain"] = _v
      _v = arg.pop("pattern", None)
      _v = pattern if pattern is not None else _v
      if _v is not None:
          self["pattern"] = _v
      _v = arg.pop("roworder", None)
      _v = roworder if roworder is not None else _v
      if _v is not None:
          self["roworder"] = _v
      _v = arg.pop("rows", None)
      _v = rows if rows is not None else _v
      if _v is not None:
          self["rows"] = _v
      _v = arg.pop("subplots", None)
      _v = subplots if subplots is not None else _v
      if _v is not None:
          self["subplots"] = _v
      _v = arg.pop("xaxes", None)
      _v = xaxes if xaxes is not None else _v
      if _v is not None:
          self["xaxes"] = _v
      _v = arg.pop("xgap", None)
      _v = xgap if xgap is not None else _v
      if _v is not None:
          self["xgap"] = _v
      _v = arg.pop("xside", None)
      _v = xside if xside is not None else _v
      if _v is not None:
          self["xside"] = _v
      _v = arg.pop("yaxes", None)
      _v = yaxes if yaxes is not None else _v
      if _v is not None:
          self["yaxes"] = _v
      _v = arg.pop("ygap", None)
      _v = ygap if ygap is not None else _v
      if _v is not None:
          self["ygap"] = _v
      _v = arg.pop("yside", None)
      _v = yside if yside is not None else _v
      if _v is not None:
          self["yside"] = _v
  
      # Process unknown kwargs
      # ----------------------
      self._process_kwargs(**dict(arg, **kwargs))
  
      # Reset skip_invalid
      # ------------------
      self._skip_invalid = False
  
imports: from plotly.basedatatypes import BaseLayoutHierarchyType
  import copy
label_desc: Use image node_id 26 to create a new Grid object from inherited base classes: _BaseLayoutHierarchyType with example: obj = Grid(arg, columns, domain, pattern, roworder, rows, subplots, xaxes, xgap, xside, yaxes, ygap, yside)