docstr: Construct a new Newshape object
  
  Parameters
  ----------
  arg
      dict of properties compatible with this constructor or
      an instance of
      :class:`plotly.graph_objs.layout.Newshape`
  drawdirection
      When `dragmode` is set to "drawrect", "drawline" or
      "drawcircle" this limits the drag to be horizontal,
      vertical or diagonal. Using "diagonal" there is no
      limit e.g. in drawing lines in any direction. "ortho"
      limits the draw to be either horizontal or vertical.
      "horizontal" allows horizontal extend. "vertical"
      allows vertical extend.
  fillcolor
      Sets the color filling new shapes' interior. Please
      note that if using a fillcolor with alpha greater than
      half, drag inside the active shape starts moving the
      shape underneath, otherwise a new shape could be
      started over.
  fillrule
      Determines the path's interior. For more info please
      visit https://developer.mozilla.org/en-
      US/docs/Web/SVG/Attribute/fill-rule
  layer
      Specifies whether new shapes are drawn below or above
      traces.
  line
      :class:`plotly.graph_objects.layout.newshape.Line`
      instance or dict with compatible properties
  opacity
      Sets the opacity of new shapes.
  
  Returns
  -------
  Newshape
docstr_tok: ["Construct","a","new","Newshape","object","Parameters","--","--","--","--","--","arg","dict","of","properties","compatible","with","this","constructor","or","an","instance","of",":","class",":","`","plotly.graph_objs.layout.Newshape","`","drawdirection","When","`","dragmode","`","is","set","to","``","drawrect","''",",","``","drawline","''","or","``","drawcircle","''","this","limits","the","drag","to","be","horizontal",",","vertical","or","diagonal",".","Using","``","diagonal","''","there","is","no","limit","e.g",".","in","drawing","lines","in","any","direction",".","``","ortho","''","limits","the","draw","to","be","either","horizontal","or","vertical",".","``","horizontal","''","allows","horizontal","extend",".","``","vertical","''","allows","vertical","extend",".","fillcolor","Sets","the","color","filling","new","shapes","'","interior",".","Please","note","that","if","using","a","fillcolor","with","alpha","greater","than","half",",","drag","inside","the","active","shape","starts","moving","the","shape","underneath",",","otherwise","a","new","shape","could","be","started","over",".","fillrule","Determines","the","path","'s","interior",".","For","more","info","please","visit","https",":","\/\/developer.mozilla.org\/en-","US\/docs\/Web\/SVG\/Attribute\/fill-rule","layer","Specifies","whether","new","shapes","are","drawn","below","or","above","traces",".","line",":","class",":","`","plotly.graph_objects.layout.newshape.Line","`","instance","or","dict","with","compatible","properties","opacity","Sets","the","opacity","of","new","shapes",".","Returns","--","--","--","-","Newshape"]
code: def __init__(
      self,
      arg=None,
      drawdirection=None,
      fillcolor=None,
      fillrule=None,
      layer=None,
      line=None,
      opacity=None,
      **kwargs,
  ):
      """
      Construct a new Newshape object
  
      Parameters
      ----------
      arg
          dict of properties compatible with this constructor or
          an instance of
          :class:`plotly.graph_objs.layout.Newshape`
      drawdirection
          When `dragmode` is set to "drawrect", "drawline" or
          "drawcircle" this limits the drag to be horizontal,
          vertical or diagonal. Using "diagonal" there is no
          limit e.g. in drawing lines in any direction. "ortho"
          limits the draw to be either horizontal or vertical.
          "horizontal" allows horizontal extend. "vertical"
          allows vertical extend.
      fillcolor
          Sets the color filling new shapes' interior. Please
          note that if using a fillcolor with alpha greater than
          half, drag inside the active shape starts moving the
          shape underneath, otherwise a new shape could be
          started over.
      fillrule
          Determines the path's interior. For more info please
          visit https://developer.mozilla.org/en-
          US/docs/Web/SVG/Attribute/fill-rule
      layer
          Specifies whether new shapes are drawn below or above
          traces.
      line
          :class:`plotly.graph_objects.layout.newshape.Line`
          instance or dict with compatible properties
      opacity
          Sets the opacity of new shapes.
  
      Returns
      -------
      Newshape
      """
      super(Newshape, self).__init__("newshape")
  
      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.Newshape 
  constructor must be a dict or 
  an instance of :class:`plotly.graph_objs.layout.Newshape`"""
          )
  
      # 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("drawdirection", None)
      _v = drawdirection if drawdirection is not None else _v
      if _v is not None:
          self["drawdirection"] = _v
      _v = arg.pop("fillcolor", None)
      _v = fillcolor if fillcolor is not None else _v
      if _v is not None:
          self["fillcolor"] = _v
      _v = arg.pop("fillrule", None)
      _v = fillrule if fillrule is not None else _v
      if _v is not None:
          self["fillrule"] = _v
      _v = arg.pop("layer", None)
      _v = layer if layer is not None else _v
      if _v is not None:
          self["layer"] = _v
      _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("opacity", None)
      _v = opacity if opacity is not None else _v
      if _v is not None:
          self["opacity"] = _v
  
      # Process unknown kwargs
      # ----------------------
      self._process_kwargs(**dict(arg, **kwargs))
  
      # Reset skip_invalid
      # ------------------
      self._skip_invalid = False
  
file_path: catboost/contrib/python/plotly/py2/plotly/graph_objs/layout/_newshape.py
imports: from plotly.basedatatypes import BaseLayoutHierarchyType
  import copy
label_desc: Use image node_id 14 to create a new Newshape object from inherited base classes: _BaseLayoutHierarchyType with example: obj = Newshape(arg, drawdirection, fillcolor, fillrule, layer, line, opacity)