docstr: Construct a new Updatemenu object
  
  Parameters
  ----------
  arg
      dict of properties compatible with this constructor or
      an instance of
      :class:`plotly.graph_objs.layout.Updatemenu`
  active
      Determines which button (by index starting from 0) is
      considered active.
  bgcolor
      Sets the background color of the update menu buttons.
  bordercolor
      Sets the color of the border enclosing the update menu.
  borderwidth
      Sets the width (in px) of the border enclosing the
      update menu.
  buttons
      A tuple of
      :class:`plotly.graph_objects.layout.updatemenu.Button`
      instances or dicts with compatible properties
  buttondefaults
      When used in a template (as
      layout.template.layout.updatemenu.buttondefaults), sets
      the default property values to use for elements of
      layout.updatemenu.buttons
  direction
      Determines the direction in which the buttons are laid
      out, whether in a dropdown menu or a row/column of
      buttons. For `left` and `up`, the buttons will still
      appear in left-to-right or top-to-bottom order
      respectively.
  font
      Sets the font of the update menu button text.
  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.
  pad
      Sets the padding around the buttons or dropdown menu.
  showactive
      Highlights active dropdown item or active button if
      true.
  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
      Determines whether the buttons are accessible via a
      dropdown menu or whether the buttons are stacked
      horizontally or vertically
  visible
      Determines whether or not the update menu is visible.
  x
      Sets the x position (in normalized coordinates) of the
      update menu.
  xanchor
      Sets the update menu's horizontal position anchor. This
      anchor binds the `x` position to the "left", "center"
      or "right" of the range selector.
  y
      Sets the y position (in normalized coordinates) of the
      update menu.
  yanchor
      Sets the update menu's vertical position anchor This
      anchor binds the `y` position to the "top", "middle" or
      "bottom" of the range selector.
  
  Returns
  -------
  Updatemenu
docstr_tok: ["Construct","a","new","Updatemenu","object","Parameters","--","--","--","--","--","arg","dict","of","properties","compatible","with","this","constructor","or","an","instance","of",":","class",":","`","plotly.graph_objs.layout.Updatemenu","`","active","Determines","which","button","(","by","index","starting","from","0",")","is","considered","active",".","bgcolor","Sets","the","background","color","of","the","update","menu","buttons",".","bordercolor","Sets","the","color","of","the","border","enclosing","the","update","menu",".","borderwidth","Sets","the","width","(","in","px",")","of","the","border","enclosing","the","update","menu",".","buttons","A","tuple","of",":","class",":","`","plotly.graph_objects.layout.updatemenu.Button","`","instances","or","dicts","with","compatible","properties","buttondefaults","When","used","in","a","template","(","as","layout.template.layout.updatemenu.buttondefaults",")",",","sets","the","default","property","values","to","use","for","elements","of","layout.updatemenu.buttons","direction","Determines","the","direction","in","which","the","buttons","are","laid","out",",","whether","in","a","dropdown","menu","or","a","row\/column","of","buttons",".","For","`","left","`","and","`","up","`",",","the","buttons","will","still","appear","in","left-to-right","or","top-to-bottom","order","respectively",".","font","Sets","the","font","of","the","update","menu","button","text",".","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",".","pad","Sets","the","padding","around","the","buttons","or","dropdown","menu",".","showactive","Highlights","active","dropdown","item","or","active","button","if","true",".","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","Determines","whether","the","buttons","are","accessible","via","a","dropdown","menu","or","whether","the","buttons","are","stacked","horizontally","or","vertically","visible","Determines","whether","or","not","the","update","menu","is","visible",".","x","Sets","the","x","position","(","in","normalized","coordinates",")","of","the","update","menu",".","xanchor","Sets","the","update","menu","'s","horizontal","position","anchor",".","This","anchor","binds","the","`","x","`","position","to","the","``","left","''",",","``","center","''","or","``","right","''","of","the","range","selector",".","y","Sets","the","y","position","(","in","normalized","coordinates",")","of","the","update","menu",".","yanchor","Sets","the","update","menu","'s","vertical","position","anchor","This","anchor","binds","the","`","y","`","position","to","the","``","top","''",",","``","middle","''","or","``","bottom","''","of","the","range","selector",".","Returns","--","--","--","-","Updatemenu"]
code: def __init__(
      self,
      arg=None,
      active=None,
      bgcolor=None,
      bordercolor=None,
      borderwidth=None,
      buttons=None,
      buttondefaults=None,
      direction=None,
      font=None,
      name=None,
      pad=None,
      showactive=None,
      templateitemname=None,
      type=None,
      visible=None,
      x=None,
      xanchor=None,
      y=None,
      yanchor=None,
      **kwargs,
  ):
      """
      Construct a new Updatemenu object
  
      Parameters
      ----------
      arg
          dict of properties compatible with this constructor or
          an instance of
          :class:`plotly.graph_objs.layout.Updatemenu`
      active
          Determines which button (by index starting from 0) is
          considered active.
      bgcolor
          Sets the background color of the update menu buttons.
      bordercolor
          Sets the color of the border enclosing the update menu.
      borderwidth
          Sets the width (in px) of the border enclosing the
          update menu.
      buttons
          A tuple of
          :class:`plotly.graph_objects.layout.updatemenu.Button`
          instances or dicts with compatible properties
      buttondefaults
          When used in a template (as
          layout.template.layout.updatemenu.buttondefaults), sets
          the default property values to use for elements of
          layout.updatemenu.buttons
      direction
          Determines the direction in which the buttons are laid
          out, whether in a dropdown menu or a row/column of
          buttons. For `left` and `up`, the buttons will still
          appear in left-to-right or top-to-bottom order
          respectively.
      font
          Sets the font of the update menu button text.
      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.
      pad
          Sets the padding around the buttons or dropdown menu.
      showactive
          Highlights active dropdown item or active button if
          true.
      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
          Determines whether the buttons are accessible via a
          dropdown menu or whether the buttons are stacked
          horizontally or vertically
      visible
          Determines whether or not the update menu is visible.
      x
          Sets the x position (in normalized coordinates) of the
          update menu.
      xanchor
          Sets the update menu's horizontal position anchor. This
          anchor binds the `x` position to the "left", "center"
          or "right" of the range selector.
      y
          Sets the y position (in normalized coordinates) of the
          update menu.
      yanchor
          Sets the update menu's vertical position anchor This
          anchor binds the `y` position to the "top", "middle" or
          "bottom" of the range selector.
  
      Returns
      -------
      Updatemenu
      """
      super(Updatemenu, self).__init__("updatemenus")
  
      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.Updatemenu 
  constructor must be a dict or 
  an instance of :class:`plotly.graph_objs.layout.Updatemenu`"""
          )
  
      # 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("active", None)
      _v = active if active is not None else _v
      if _v is not None:
          self["active"] = _v
      _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("buttons", None)
      _v = buttons if buttons is not None else _v
      if _v is not None:
          self["buttons"] = _v
      _v = arg.pop("buttondefaults", None)
      _v = buttondefaults if buttondefaults is not None else _v
      if _v is not None:
          self["buttondefaults"] = _v
      _v = arg.pop("direction", None)
      _v = direction if direction is not None else _v
      if _v is not None:
          self["direction"] = _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("name", None)
      _v = name if name is not None else _v
      if _v is not None:
          self["name"] = _v
      _v = arg.pop("pad", None)
      _v = pad if pad is not None else _v
      if _v is not None:
          self["pad"] = _v
      _v = arg.pop("showactive", None)
      _v = showactive if showactive is not None else _v
      if _v is not None:
          self["showactive"] = _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("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("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
  
      # 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 38 to create a new Updatemenu object from inherited base classes: _BaseLayoutHierarchyType with example: obj = Updatemenu(arg, active, bgcolor, bordercolor, borderwidth, buttons, buttondefaults, direction, font, name, pad, showactive, templateitemname, type, visible, x, xanchor, y, yanchor)