docstr: Construct a new Selection object
  
  Parameters
  ----------
  arg
      dict of properties compatible with this constructor or
      an instance of
      :class:`plotly.graph_objs.layout.Selection`
  line
      :class:`plotly.graph_objects.layout.selection.Line`
      instance or dict with compatible properties
  name
      When used in a template, named items are created in the
      output figure in addition to any items the figure
      already has in this array. You can modify these items
      in the output figure by making your own item with
      `templateitemname` matching this `name` alongside your
      modifications (including `visible: false` or `enabled:
      false` to hide it). Has no effect outside of a
      template.
  opacity
      Sets the opacity of the selection.
  path
      For `type` "path" - a valid SVG path similar to
      `shapes.path` in data coordinates. Allowed segments
      are: M, L and Z.
  templateitemname
      Used to refer to a named item in this array in the
      template. Named items from the template will be created
      even without a matching item in the input figure, but
      you can modify one by making an item with
      `templateitemname` matching its `name`, alongside your
      modifications (including `visible: false` or `enabled:
      false` to hide it). If there is no template or no
      matching item, this item will be hidden unless you
      explicitly show it with `visible: true`.
  type
      Specifies the selection type to be drawn. If "rect", a
      rectangle is drawn linking (`x0`,`y0`), (`x1`,`y0`),
      (`x1`,`y1`) and (`x0`,`y1`). If "path", draw a custom
      SVG path using `path`.
  x0
      Sets the selection's starting x position.
  x1
      Sets the selection's end x position.
  xref
      Sets the selection's x coordinate axis. If set to a x
      axis id (e.g. "x" or "x2"), the `x` position refers to
      a x coordinate. If set to "paper", the `x` position
      refers to the distance from the left of the plotting
      area in normalized coordinates where 0 (1) corresponds
      to the left (right). If set to a x axis ID followed by
      "domain" (separated by a space), the position behaves
      like for "paper", but refers to the distance in
      fractions of the domain length from the left of the
      domain of that axis: e.g., *x2 domain* refers to the
      domain of the second x  axis and a x position of 0.5
      refers to the point between the left and the right of
      the domain of the second x axis.
  y0
      Sets the selection's starting y position.
  y1
      Sets the selection's end y position.
  yref
      Sets the selection's x coordinate axis. If set to a y
      axis id (e.g. "y" or "y2"), the `y` position refers to
      a y coordinate. If set to "paper", the `y` position
      refers to the distance from the bottom of the plotting
      area in normalized coordinates where 0 (1) corresponds
      to the bottom (top). If set to a y axis ID followed by
      "domain" (separated by a space), the position behaves
      like for "paper", but refers to the distance in
      fractions of the domain length from the bottom of the
      domain of that axis: e.g., *y2 domain* refers to the
      domain of the second y  axis and a y position of 0.5
      refers to the point between the bottom and the top of
      the domain of the second y axis.
  
  Returns
  -------
  Selection
docstr_tok: ["Construct","a","new","Selection","object","Parameters","--","--","--","--","--","arg","dict","of","properties","compatible","with","this","constructor","or","an","instance","of",":","class",":","`","plotly.graph_objs.layout.Selection","`","line",":","class",":","`","plotly.graph_objects.layout.selection.Line","`","instance","or","dict","with","compatible","properties","name","When","used","in","a","template",",","named","items","are","created","in","the","output","figure","in","addition","to","any","items","the","figure","already","has","in","this","array",".","You","can","modify","these","items","in","the","output","figure","by","making","your","own","item","with","`","templateitemname","`","matching","this","`","name","`","alongside","your","modifications","(","including","`","visible",":","false","`","or","`","enabled",":","false","`","to","hide","it",")",".","Has","no","effect","outside","of","a","template",".","opacity","Sets","the","opacity","of","the","selection",".","path","For","`","type","`","``","path","''","-","a","valid","SVG","path","similar","to","`","shapes.path","`","in","data","coordinates",".","Allowed","segments","are",":","M",",","L","and","Z.","templateitemname","Used","to","refer","to","a","named","item","in","this","array","in","the","template",".","Named","items","from","the","template","will","be","created","even","without","a","matching","item","in","the","input","figure",",","but","you","can","modify","one","by","making","an","item","with","`","templateitemname","`","matching","its","`","name","`",",","alongside","your","modifications","(","including","`","visible",":","false","`","or","`","enabled",":","false","`","to","hide","it",")",".","If","there","is","no","template","or","no","matching","item",",","this","item","will","be","hidden","unless","you","explicitly","show","it","with","`","visible",":","true","`",".","type","Specifies","the","selection","type","to","be","drawn",".","If","``","rect","''",",","a","rectangle","is","drawn","linking","(","`","x0","`",",","`","y0","`",")",",","(","`","x1","`",",","`","y0","`",")",",","(","`","x1","`",",","`","y1","`",")","and","(","`","x0","`",",","`","y1","`",")",".","If","``","path","''",",","draw","a","custom","SVG","path","using","`","path","`",".","x0","Sets","the","selection","'s","starting","x","position",".","x1","Sets","the","selection","'s","end","x","position",".","xref","Sets","the","selection","'s","x","coordinate","axis",".","If","set","to","a","x","axis","id","(","e.g",".","``","x","''","or","``","x2","''",")",",","the","`","x","`","position","refers","to","a","x","coordinate",".","If","set","to","``","paper","''",",","the","`","x","`","position","refers","to","the","distance","from","the","left","of","the","plotting","area","in","normalized","coordinates","where","0","(","1",")","corresponds","to","the","left","(","right",")",".","If","set","to","a","x","axis","ID","followed","by","``","domain","''","(","separated","by","a","space",")",",","the","position","behaves","like","for","``","paper","''",",","but","refers","to","the","distance","in","fractions","of","the","domain","length","from","the","left","of","the","domain","of","that","axis",":","e.g.",",","*","x2","domain","*","refers","to","the","domain","of","the","second","x","axis","and","a","x","position","of","0.5","refers","to","the","point","between","the","left","and","the","right","of","the","domain","of","the","second","x","axis",".","y0","Sets","the","selection","'s","starting","y","position",".","y1","Sets","the","selection","'s","end","y","position",".","yref","Sets","the","selection","'s","x","coordinate","axis",".","If","set","to","a","y","axis","id","(","e.g",".","``","y","''","or","``","y2","''",")",",","the","`","y","`","position","refers","to","a","y","coordinate",".","If","set","to","``","paper","''",",","the","`","y","`","position","refers","to","the","distance","from","the","bottom","of","the","plotting","area","in","normalized","coordinates","where","0","(","1",")","corresponds","to","the","bottom","(","top",")",".","If","set","to","a","y","axis","ID","followed","by","``","domain","''","(","separated","by","a","space",")",",","the","position","behaves","like","for","``","paper","''",",","but","refers","to","the","distance","in","fractions","of","the","domain","length","from","the","bottom","of","the","domain","of","that","axis",":","e.g.",",","*","y2","domain","*","refers","to","the","domain","of","the","second","y","axis","and","a","y","position","of","0.5","refers","to","the","point","between","the","bottom","and","the","top","of","the","domain","of","the","second","y","axis",".","Returns","--","--","--","-","Selection"]
code: def __init__(
      self,
      arg=None,
      line=None,
      name=None,
      opacity=None,
      path=None,
      templateitemname=None,
      type=None,
      x0=None,
      x1=None,
      xref=None,
      y0=None,
      y1=None,
      yref=None,
      **kwargs,
  ):
      """
      Construct a new Selection object
  
      Parameters
      ----------
      arg
          dict of properties compatible with this constructor or
          an instance of
          :class:`plotly.graph_objs.layout.Selection`
      line
          :class:`plotly.graph_objects.layout.selection.Line`
          instance or dict with compatible properties
      name
          When used in a template, named items are created in the
          output figure in addition to any items the figure
          already has in this array. You can modify these items
          in the output figure by making your own item with
          `templateitemname` matching this `name` alongside your
          modifications (including `visible: false` or `enabled:
          false` to hide it). Has no effect outside of a
          template.
      opacity
          Sets the opacity of the selection.
      path
          For `type` "path" - a valid SVG path similar to
          `shapes.path` in data coordinates. Allowed segments
          are: M, L and Z.
      templateitemname
          Used to refer to a named item in this array in the
          template. Named items from the template will be created
          even without a matching item in the input figure, but
          you can modify one by making an item with
          `templateitemname` matching its `name`, alongside your
          modifications (including `visible: false` or `enabled:
          false` to hide it). If there is no template or no
          matching item, this item will be hidden unless you
          explicitly show it with `visible: true`.
      type
          Specifies the selection type to be drawn. If "rect", a
          rectangle is drawn linking (`x0`,`y0`), (`x1`,`y0`),
          (`x1`,`y1`) and (`x0`,`y1`). If "path", draw a custom
          SVG path using `path`.
      x0
          Sets the selection's starting x position.
      x1
          Sets the selection's end x position.
      xref
          Sets the selection's x coordinate axis. If set to a x
          axis id (e.g. "x" or "x2"), the `x` position refers to
          a x coordinate. If set to "paper", the `x` position
          refers to the distance from the left of the plotting
          area in normalized coordinates where 0 (1) corresponds
          to the left (right). If set to a x axis ID followed by
          "domain" (separated by a space), the position behaves
          like for "paper", but refers to the distance in
          fractions of the domain length from the left of the
          domain of that axis: e.g., *x2 domain* refers to the
          domain of the second x  axis and a x position of 0.5
          refers to the point between the left and the right of
          the domain of the second x axis.
      y0
          Sets the selection's starting y position.
      y1
          Sets the selection's end y position.
      yref
          Sets the selection's x coordinate axis. If set to a y
          axis id (e.g. "y" or "y2"), the `y` position refers to
          a y coordinate. If set to "paper", the `y` position
          refers to the distance from the bottom of the plotting
          area in normalized coordinates where 0 (1) corresponds
          to the bottom (top). If set to a y axis ID followed by
          "domain" (separated by a space), the position behaves
          like for "paper", but refers to the distance in
          fractions of the domain length from the bottom of the
          domain of that axis: e.g., *y2 domain* refers to the
          domain of the second y  axis and a y position of 0.5
          refers to the point between the bottom and the top of
          the domain of the second y axis.
  
      Returns
      -------
      Selection
      """
      super(Selection, self).__init__("selections")
  
      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.Selection
  constructor must be a dict or
  an instance of :class:`plotly.graph_objs.layout.Selection`"""
          )
  
      # 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("line", None)
      _v = line if line is not None else _v
      if _v is not None:
          self["line"] = _v
      _v = arg.pop("name", None)
      _v = name if name is not None else _v
      if _v is not None:
          self["name"] = _v
      _v = arg.pop("opacity", None)
      _v = opacity if opacity is not None else _v
      if _v is not None:
          self["opacity"] = _v
      _v = arg.pop("path", None)
      _v = path if path is not None else _v
      if _v is not None:
          self["path"] = _v
      _v = arg.pop("templateitemname", None)
      _v = templateitemname if templateitemname is not None else _v
      if _v is not None:
          self["templateitemname"] = _v
      _v = arg.pop("type", None)
      _v = type if type is not None else _v
      if _v is not None:
          self["type"] = _v
      _v = arg.pop("x0", None)
      _v = x0 if x0 is not None else _v
      if _v is not None:
          self["x0"] = _v
      _v = arg.pop("x1", None)
      _v = x1 if x1 is not None else _v
      if _v is not None:
          self["x1"] = _v
      _v = arg.pop("xref", None)
      _v = xref if xref is not None else _v
      if _v is not None:
          self["xref"] = _v
      _v = arg.pop("y0", None)
      _v = y0 if y0 is not None else _v
      if _v is not None:
          self["y0"] = _v
      _v = arg.pop("y1", None)
      _v = y1 if y1 is not None else _v
      if _v is not None:
          self["y1"] = _v
      _v = arg.pop("yref", None)
      _v = yref if yref is not None else _v
      if _v is not None:
          self["yref"] = _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 Selection object from inherited base classes: _BaseLayoutHierarchyType with example: obj = Selection(arg, line, name, opacity, path, templateitemname, type, x0, x1, xref, y0, y1, yref)