docstr: Construct a new Legend object
  
  Parameters
  ----------
  arg
      dict of properties compatible with this constructor or
      an instance of :class:`plotly.graph_objs.layout.Legend`
  bgcolor
      Sets the legend background color. Defaults to
      `layout.paper_bgcolor`.
  bordercolor
      Sets the color of the border enclosing the legend.
  borderwidth
      Sets the width (in px) of the border enclosing the
      legend.
  entrywidth
      Sets the width (in px or fraction) of the legend. Use 0
      to size the entry based on the text width, when
      `entrywidthmode` is set to "pixels".
  entrywidthmode
      Determines what entrywidth means.
  font
      Sets the font used to text the legend items.
  groupclick
      Determines the behavior on legend group item click.
      "toggleitem" toggles the visibility of the individual
      item clicked on the graph. "togglegroup" toggles the
      visibility of all items in the same legendgroup as the
      item clicked on the graph.
  grouptitlefont
      Sets the font for group titles in legend. Defaults to
      `legend.font` with its size increased about 10%.
  itemclick
      Determines the behavior on legend item click. "toggle"
      toggles the visibility of the item clicked on the
      graph. "toggleothers" makes the clicked item the sole
      visible item on the graph. False disables legend item
      click interactions.
  itemdoubleclick
      Determines the behavior on legend item double-click.
      "toggle" toggles the visibility of the item clicked on
      the graph. "toggleothers" makes the clicked item the
      sole visible item on the graph. False disables legend
      item double-click interactions.
  itemsizing
      Determines if the legend items symbols scale with their
      corresponding "trace" attributes or remain "constant"
      independent of the symbol size on the graph.
  itemwidth
      Sets the width (in px) of the legend item symbols (the
      part other than the title.text).
  orientation
      Sets the orientation of the legend.
  title
      :class:`plotly.graph_objects.layout.legend.Title`
      instance or dict with compatible properties
  tracegroupgap
      Sets the amount of vertical space (in px) between
      legend groups.
  traceorder
      Determines the order at which the legend items are
      displayed. If "normal", the items are displayed top-to-
      bottom in the same order as the input data. If
      "reversed", the items are displayed in the opposite
      order as "normal". If "grouped", the items are
      displayed in groups (when a trace `legendgroup` is
      provided). if "grouped+reversed", the items are
      displayed in the opposite order as "grouped".
  uirevision
      Controls persistence of legend-driven changes in trace
      and pie label visibility. Defaults to
      `layout.uirevision`.
  valign
      Sets the vertical alignment of the symbols with respect
      to their associated text.
  visible
      Determines whether or not this legend is visible.
  x
      Sets the x position with respect to `xref` (in
      normalized coordinates) of the legend. When `xref` is
      "paper", defaults to 1.02 for vertical legends and
      defaults to 0 for horizontal legends. When `xref` is
      "container", defaults to 1 for vertical legends and
      defaults to 0 for horizontal legends. Must be between 0
      and 1 if `xref` is "container". and between "-2" and 3
      if `xref` is "paper".
  xanchor
      Sets the legend's horizontal position anchor. This
      anchor binds the `x` position to the "left", "center"
      or "right" of the legend. Value "auto" anchors legends
      to the right for `x` values greater than or equal to
      2/3, anchors legends to the left for `x` values less
      than or equal to 1/3 and anchors legends with respect
      to their center otherwise.
  xref
      Sets the container `x` refers to. "container" spans the
      entire `width` of the plot. "paper" refers to the width
      of the plotting area only.
  y
      Sets the y position with respect to `yref` (in
      normalized coordinates) of the legend. When `yref` is
      "paper", defaults to 1 for vertical legends, defaults
      to "-0.1" for horizontal legends on graphs w/o range
      sliders and defaults to 1.1 for horizontal legends on
      graph with one or multiple range sliders. When `yref`
      is "container", defaults to 1. Must be between 0 and 1
      if `yref` is "container" and between "-2" and 3 if
      `yref` is "paper".
  yanchor
      Sets the legend's vertical position anchor This anchor
      binds the `y` position to the "top", "middle" or
      "bottom" of the legend. Value "auto" anchors legends at
      their bottom for `y` values less than or equal to 1/3,
      anchors legends to at their top for `y` values greater
      than or equal to 2/3 and anchors legends with respect
      to their middle otherwise.
  yref
      Sets the container `y` refers to. "container" spans the
      entire `height` of the plot. "paper" refers to the
      height of the plotting area only.
  
  Returns
  -------
  Legend
docstr_tok: ["Construct","a","new","Legend","object","Parameters","--","--","--","--","--","arg","dict","of","properties","compatible","with","this","constructor","or","an","instance","of",":","class",":","`","plotly.graph_objs.layout.Legend","`","bgcolor","Sets","the","legend","background","color",".","Defaults","to","`","layout.paper_bgcolor","`",".","bordercolor","Sets","the","color","of","the","border","enclosing","the","legend",".","borderwidth","Sets","the","width","(","in","px",")","of","the","border","enclosing","the","legend",".","entrywidth","Sets","the","width","(","in","px","or","fraction",")","of","the","legend",".","Use","0","to","size","the","entry","based","on","the","text","width",",","when","`","entrywidthmode","`","is","set","to","``","pixels","''",".","entrywidthmode","Determines","what","entrywidth","means",".","font","Sets","the","font","used","to","text","the","legend","items",".","groupclick","Determines","the","behavior","on","legend","group","item","click",".","``","toggleitem","''","toggles","the","visibility","of","the","individual","item","clicked","on","the","graph",".","``","togglegroup","''","toggles","the","visibility","of","all","items","in","the","same","legendgroup","as","the","item","clicked","on","the","graph",".","grouptitlefont","Sets","the","font","for","group","titles","in","legend",".","Defaults","to","`","legend.font","`","with","its","size","increased","about","10","%",".","itemclick","Determines","the","behavior","on","legend","item","click",".","``","toggle","''","toggles","the","visibility","of","the","item","clicked","on","the","graph",".","``","toggleothers","''","makes","the","clicked","item","the","sole","visible","item","on","the","graph",".","False","disables","legend","item","click","interactions",".","itemdoubleclick","Determines","the","behavior","on","legend","item","double-click",".","``","toggle","''","toggles","the","visibility","of","the","item","clicked","on","the","graph",".","``","toggleothers","''","makes","the","clicked","item","the","sole","visible","item","on","the","graph",".","False","disables","legend","item","double-click","interactions",".","itemsizing","Determines","if","the","legend","items","symbols","scale","with","their","corresponding","``","trace","''","attributes","or","remain","``","constant","''","independent","of","the","symbol","size","on","the","graph",".","itemwidth","Sets","the","width","(","in","px",")","of","the","legend","item","symbols","(","the","part","other","than","the","title.text",")",".","orientation","Sets","the","orientation","of","the","legend",".","title",":","class",":","`","plotly.graph_objects.layout.legend.Title","`","instance","or","dict","with","compatible","properties","tracegroupgap","Sets","the","amount","of","vertical","space","(","in","px",")","between","legend","groups",".","traceorder","Determines","the","order","at","which","the","legend","items","are","displayed",".","If","``","normal","''",",","the","items","are","displayed","top-to-","bottom","in","the","same","order","as","the","input","data",".","If","``","reversed","''",",","the","items","are","displayed","in","the","opposite","order","as","``","normal","''",".","If","``","grouped","''",",","the","items","are","displayed","in","groups","(","when","a","trace","`","legendgroup","`","is","provided",")",".","if","``","grouped+reversed","''",",","the","items","are","displayed","in","the","opposite","order","as","``","grouped","''",".","uirevision","Controls","persistence","of","legend-driven","changes","in","trace","and","pie","label","visibility",".","Defaults","to","`","layout.uirevision","`",".","valign","Sets","the","vertical","alignment","of","the","symbols","with","respect","to","their","associated","text",".","visible","Determines","whether","or","not","this","legend","is","visible",".","x","Sets","the","x","position","with","respect","to","`","xref","`","(","in","normalized","coordinates",")","of","the","legend",".","When","`","xref","`","is","``","paper","''",",","defaults","to","1.02","for","vertical","legends","and","defaults","to","0","for","horizontal","legends",".","When","`","xref","`","is","``","container","''",",","defaults","to","1","for","vertical","legends","and","defaults","to","0","for","horizontal","legends",".","Must","be","between","0","and","1","if","`","xref","`","is","``","container","''",".","and","between","``","-2","''","and","3","if","`","xref","`","is","``","paper","''",".","xanchor","Sets","the","legend","'s","horizontal","position","anchor",".","This","anchor","binds","the","`","x","`","position","to","the","``","left","''",",","``","center","''","or","``","right","''","of","the","legend",".","Value","``","auto","''","anchors","legends","to","the","right","for","`","x","`","values","greater","than","or","equal","to","2\/3",",","anchors","legends","to","the","left","for","`","x","`","values","less","than","or","equal","to","1\/3","and","anchors","legends","with","respect","to","their","center","otherwise",".","xref","Sets","the","container","`","x","`","refers","to",".","``","container","''","spans","the","entire","`","width","`","of","the","plot",".","``","paper","''","refers","to","the","width","of","the","plotting","area","only",".","y","Sets","the","y","position","with","respect","to","`","yref","`","(","in","normalized","coordinates",")","of","the","legend",".","When","`","yref","`","is","``","paper","''",",","defaults","to","1","for","vertical","legends",",","defaults","to","``","-0.1","''","for","horizontal","legends","on","graphs","w\/o","range","sliders","and","defaults","to","1.1","for","horizontal","legends","on","graph","with","one","or","multiple","range","sliders",".","When","`","yref","`","is","``","container","''",",","defaults","to","1",".","Must","be","between","0","and","1","if","`","yref","`","is","``","container","''","and","between","``","-2","''","and","3","if","`","yref","`","is","``","paper","''",".","yanchor","Sets","the","legend","'s","vertical","position","anchor","This","anchor","binds","the","`","y","`","position","to","the","``","top","''",",","``","middle","''","or","``","bottom","''","of","the","legend",".","Value","``","auto","''","anchors","legends","at","their","bottom","for","`","y","`","values","less","than","or","equal","to","1\/3",",","anchors","legends","to","at","their","top","for","`","y","`","values","greater","than","or","equal","to","2\/3","and","anchors","legends","with","respect","to","their","middle","otherwise",".","yref","Sets","the","container","`","y","`","refers","to",".","``","container","''","spans","the","entire","`","height","`","of","the","plot",".","``","paper","''","refers","to","the","height","of","the","plotting","area","only",".","Returns","--","--","--","-","Legend"]
code: def __init__(
      self,
      arg=None,
      bgcolor=None,
      bordercolor=None,
      borderwidth=None,
      entrywidth=None,
      entrywidthmode=None,
      font=None,
      groupclick=None,
      grouptitlefont=None,
      itemclick=None,
      itemdoubleclick=None,
      itemsizing=None,
      itemwidth=None,
      orientation=None,
      title=None,
      tracegroupgap=None,
      traceorder=None,
      uirevision=None,
      valign=None,
      visible=None,
      x=None,
      xanchor=None,
      xref=None,
      y=None,
      yanchor=None,
      yref=None,
      **kwargs,
  ):
      """
      Construct a new Legend object
  
      Parameters
      ----------
      arg
          dict of properties compatible with this constructor or
          an instance of :class:`plotly.graph_objs.layout.Legend`
      bgcolor
          Sets the legend background color. Defaults to
          `layout.paper_bgcolor`.
      bordercolor
          Sets the color of the border enclosing the legend.
      borderwidth
          Sets the width (in px) of the border enclosing the
          legend.
      entrywidth
          Sets the width (in px or fraction) of the legend. Use 0
          to size the entry based on the text width, when
          `entrywidthmode` is set to "pixels".
      entrywidthmode
          Determines what entrywidth means.
      font
          Sets the font used to text the legend items.
      groupclick
          Determines the behavior on legend group item click.
          "toggleitem" toggles the visibility of the individual
          item clicked on the graph. "togglegroup" toggles the
          visibility of all items in the same legendgroup as the
          item clicked on the graph.
      grouptitlefont
          Sets the font for group titles in legend. Defaults to
          `legend.font` with its size increased about 10%.
      itemclick
          Determines the behavior on legend item click. "toggle"
          toggles the visibility of the item clicked on the
          graph. "toggleothers" makes the clicked item the sole
          visible item on the graph. False disables legend item
          click interactions.
      itemdoubleclick
          Determines the behavior on legend item double-click.
          "toggle" toggles the visibility of the item clicked on
          the graph. "toggleothers" makes the clicked item the
          sole visible item on the graph. False disables legend
          item double-click interactions.
      itemsizing
          Determines if the legend items symbols scale with their
          corresponding "trace" attributes or remain "constant"
          independent of the symbol size on the graph.
      itemwidth
          Sets the width (in px) of the legend item symbols (the
          part other than the title.text).
      orientation
          Sets the orientation of the legend.
      title
          :class:`plotly.graph_objects.layout.legend.Title`
          instance or dict with compatible properties
      tracegroupgap
          Sets the amount of vertical space (in px) between
          legend groups.
      traceorder
          Determines the order at which the legend items are
          displayed. If "normal", the items are displayed top-to-
          bottom in the same order as the input data. If
          "reversed", the items are displayed in the opposite
          order as "normal". If "grouped", the items are
          displayed in groups (when a trace `legendgroup` is
          provided). if "grouped+reversed", the items are
          displayed in the opposite order as "grouped".
      uirevision
          Controls persistence of legend-driven changes in trace
          and pie label visibility. Defaults to
          `layout.uirevision`.
      valign
          Sets the vertical alignment of the symbols with respect
          to their associated text.
      visible
          Determines whether or not this legend is visible.
      x
          Sets the x position with respect to `xref` (in
          normalized coordinates) of the legend. When `xref` is
          "paper", defaults to 1.02 for vertical legends and
          defaults to 0 for horizontal legends. When `xref` is
          "container", defaults to 1 for vertical legends and
          defaults to 0 for horizontal legends. Must be between 0
          and 1 if `xref` is "container". and between "-2" and 3
          if `xref` is "paper".
      xanchor
          Sets the legend's horizontal position anchor. This
          anchor binds the `x` position to the "left", "center"
          or "right" of the legend. Value "auto" anchors legends
          to the right for `x` values greater than or equal to
          2/3, anchors legends to the left for `x` values less
          than or equal to 1/3 and anchors legends with respect
          to their center otherwise.
      xref
          Sets the container `x` refers to. "container" spans the
          entire `width` of the plot. "paper" refers to the width
          of the plotting area only.
      y
          Sets the y position with respect to `yref` (in
          normalized coordinates) of the legend. When `yref` is
          "paper", defaults to 1 for vertical legends, defaults
          to "-0.1" for horizontal legends on graphs w/o range
          sliders and defaults to 1.1 for horizontal legends on
          graph with one or multiple range sliders. When `yref`
          is "container", defaults to 1. Must be between 0 and 1
          if `yref` is "container" and between "-2" and 3 if
          `yref` is "paper".
      yanchor
          Sets the legend's vertical position anchor This anchor
          binds the `y` position to the "top", "middle" or
          "bottom" of the legend. Value "auto" anchors legends at
          their bottom for `y` values less than or equal to 1/3,
          anchors legends to at their top for `y` values greater
          than or equal to 2/3 and anchors legends with respect
          to their middle otherwise.
      yref
          Sets the container `y` refers to. "container" spans the
          entire `height` of the plot. "paper" refers to the
          height of the plotting area only.
  
      Returns
      -------
      Legend
      """
      super(Legend, self).__init__("legend")
  
      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.Legend
  constructor must be a dict or
  an instance of :class:`plotly.graph_objs.layout.Legend`"""
          )
  
      # 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("bgcolor", None)
      _v = bgcolor if bgcolor is not None else _v
      if _v is not None:
          self["bgcolor"] = _v
      _v = arg.pop("bordercolor", None)
      _v = bordercolor if bordercolor is not None else _v
      if _v is not None:
          self["bordercolor"] = _v
      _v = arg.pop("borderwidth", None)
      _v = borderwidth if borderwidth is not None else _v
      if _v is not None:
          self["borderwidth"] = _v
      _v = arg.pop("entrywidth", None)
      _v = entrywidth if entrywidth is not None else _v
      if _v is not None:
          self["entrywidth"] = _v
      _v = arg.pop("entrywidthmode", None)
      _v = entrywidthmode if entrywidthmode is not None else _v
      if _v is not None:
          self["entrywidthmode"] = _v
      _v = arg.pop("font", None)
      _v = font if font is not None else _v
      if _v is not None:
          self["font"] = _v
      _v = arg.pop("groupclick", None)
      _v = groupclick if groupclick is not None else _v
      if _v is not None:
          self["groupclick"] = _v
      _v = arg.pop("grouptitlefont", None)
      _v = grouptitlefont if grouptitlefont is not None else _v
      if _v is not None:
          self["grouptitlefont"] = _v
      _v = arg.pop("itemclick", None)
      _v = itemclick if itemclick is not None else _v
      if _v is not None:
          self["itemclick"] = _v
      _v = arg.pop("itemdoubleclick", None)
      _v = itemdoubleclick if itemdoubleclick is not None else _v
      if _v is not None:
          self["itemdoubleclick"] = _v
      _v = arg.pop("itemsizing", None)
      _v = itemsizing if itemsizing is not None else _v
      if _v is not None:
          self["itemsizing"] = _v
      _v = arg.pop("itemwidth", None)
      _v = itemwidth if itemwidth is not None else _v
      if _v is not None:
          self["itemwidth"] = _v
      _v = arg.pop("orientation", None)
      _v = orientation if orientation is not None else _v
      if _v is not None:
          self["orientation"] = _v
      _v = arg.pop("title", None)
      _v = title if title is not None else _v
      if _v is not None:
          self["title"] = _v
      _v = arg.pop("tracegroupgap", None)
      _v = tracegroupgap if tracegroupgap is not None else _v
      if _v is not None:
          self["tracegroupgap"] = _v
      _v = arg.pop("traceorder", None)
      _v = traceorder if traceorder is not None else _v
      if _v is not None:
          self["traceorder"] = _v
      _v = arg.pop("uirevision", None)
      _v = uirevision if uirevision is not None else _v
      if _v is not None:
          self["uirevision"] = _v
      _v = arg.pop("valign", None)
      _v = valign if valign is not None else _v
      if _v is not None:
          self["valign"] = _v
      _v = arg.pop("visible", None)
      _v = visible if visible is not None else _v
      if _v is not None:
          self["visible"] = _v
      _v = arg.pop("x", None)
      _v = x if x is not None else _v
      if _v is not None:
          self["x"] = _v
      _v = arg.pop("xanchor", None)
      _v = xanchor if xanchor is not None else _v
      if _v is not None:
          self["xanchor"] = _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("y", None)
      _v = y if y is not None else _v
      if _v is not None:
          self["y"] = _v
      _v = arg.pop("yanchor", None)
      _v = yanchor if yanchor is not None else _v
      if _v is not None:
          self["yanchor"] = _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 52 to create a new Legend object from inherited base classes: _BaseLayoutHierarchyType with example: obj = Legend(arg, bgcolor, bordercolor, borderwidth, entrywidth, entrywidthmode, font, groupclick, grouptitlefont, itemclick, itemdoubleclick, itemsizing, itemwidth, orientation, title, tracegroupgap, traceorder, uirevision, valign, visible, x, xanchor, xref, y, yanchor, yref)