docstr: Construct a new Node object
  
  The nodes of the Sankey plot.
  
  Parameters
  ----------
  arg
      dict of properties compatible with this constructor or
      an instance of :class:`plotly.graph_objs.sankey.Node`
  color
      Sets the `node` color. It can be a single value, or an
      array for specifying color for each `node`. If
      `node.color` is omitted, then the default `Plotly`
      color palette will be cycled through to have a variety
      of colors. These defaults are not fully opaque, to
      allow some visibility of what is beneath the node.
  colorsrc
      Sets the source reference on Chart Studio Cloud for
      color .
  customdata
      Assigns extra data to each node.
  customdatasrc
      Sets the source reference on Chart Studio Cloud for
      customdata .
  groups
      Groups of nodes. Each group is defined by an array with
      the indices of the nodes it contains. Multiple groups
      can be specified.
  hoverinfo
      Determines which trace information appear when hovering
      nodes. If `none` or `skip` are set, no information is
      displayed upon hovering. But, if `none` is set, click
      and hover events are still fired.
  hoverlabel
      :class:`plotly.graph_objects.sankey.node.Hoverlabel`
      instance or dict with compatible properties
  hovertemplate
      Template string used for rendering the information that
      appear on hover box. Note that this will override
      `hoverinfo`. Variables are inserted using %{variable},
      for example "y: %{y}". Numbers are formatted using
      d3-format's syntax %{variable:d3-format}, for example
      "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
      reference/blob/master/Formatting.md#d3_format for
      details on the formatting syntax. Dates are formatted
      using d3-time-format's syntax %{variable|d3-time-
      format}, for example "Day: %{2019-01-01|%A}".
      https://github.com/d3/d3-time-format#locale_format for
      details on the date formatting syntax. The variables
      available in `hovertemplate` are the ones emitted as
      event data described at this link
      https://plotly.com/javascript/plotlyjs-events/#event-
      data. Additionally, every attributes that can be
      specified per-point (the ones that are `arrayOk: true`)
      are available. variables `value` and `label`. Anything
      contained in tag `<extra>` is displayed in the
      secondary box, for example
      "<extra>{fullData.name}</extra>". To hide the secondary
      box completely, use an empty tag `<extra></extra>`.
  hovertemplatesrc
      Sets the source reference on Chart Studio Cloud for
      hovertemplate .
  label
      The shown name of the node.
  labelsrc
      Sets the source reference on Chart Studio Cloud for
      label .
  line
      :class:`plotly.graph_objects.sankey.node.Line` instance
      or dict with compatible properties
  pad
      Sets the padding (in px) between the `nodes`.
  thickness
      Sets the thickness (in px) of the `nodes`.
  x
      The normalized horizontal position of the node.
  xsrc
      Sets the source reference on Chart Studio Cloud for  x
      .
  y
      The normalized vertical position of the node.
  ysrc
      Sets the source reference on Chart Studio Cloud for  y
      .
  
  Returns
  -------
  Node
docstr_tok: ["Construct","a","new","Node","object","The","nodes","of","the","Sankey","plot",".","Parameters","--","--","--","--","--","arg","dict","of","properties","compatible","with","this","constructor","or","an","instance","of",":","class",":","`","plotly.graph_objs.sankey.Node","`","color","Sets","the","`","node","`","color",".","It","can","be","a","single","value",",","or","an","array","for","specifying","color","for","each","`","node","`",".","If","`","node.color","`","is","omitted",",","then","the","default","`","Plotly","`","color","palette","will","be","cycled","through","to","have","a","variety","of","colors",".","These","defaults","are","not","fully","opaque",",","to","allow","some","visibility","of","what","is","beneath","the","node",".","colorsrc","Sets","the","source","reference","on","Chart","Studio","Cloud","for","color",".","customdata","Assigns","extra","data","to","each","node",".","customdatasrc","Sets","the","source","reference","on","Chart","Studio","Cloud","for","customdata",".","groups","Groups","of","nodes",".","Each","group","is","defined","by","an","array","with","the","indices","of","the","nodes","it","contains",".","Multiple","groups","can","be","specified",".","hoverinfo","Determines","which","trace","information","appear","when","hovering","nodes",".","If","`","none","`","or","`","skip","`","are","set",",","no","information","is","displayed","upon","hovering",".","But",",","if","`","none","`","is","set",",","click","and","hover","events","are","still","fired",".","hoverlabel",":","class",":","`","plotly.graph_objects.sankey.node.Hoverlabel","`","instance","or","dict","with","compatible","properties","hovertemplate","Template","string","used","for","rendering","the","information","that","appear","on","hover","box",".","Note","that","this","will","override","`","hoverinfo","`",".","Variables","are","inserted","using","%","{","variable","}",",","for","example","``","y",":","%","{","y","}","''",".","Numbers","are","formatted","using","d3-format","'s","syntax","%","{","variable",":","d3-format","}",",","for","example","``","Price",":","%","{","y",":","$",".2f","}","''",".","https",":","\/\/github.com\/d3\/d3-3.x-api-","reference\/blob\/master\/Formatting.md","#","d3_format","for","details","on","the","formatting","syntax",".","Dates","are","formatted","using","d3-time-format","'s","syntax","%","{","variable|d3-time-","format","}",",","for","example","``","Day",":","%","{","2019-01-01|","%","A","}","''",".","https",":","\/\/github.com\/d3\/d3-time-format","#","locale_format","for","details","on","the","date","formatting","syntax",".","The","variables","available","in","`","hovertemplate","`","are","the","ones","emitted","as","event","data","described","at","this","link","https",":","\/\/plotly.com\/javascript\/plotlyjs-events\/","#","event-","data",".","Additionally",",","every","attributes","that","can","be","specified","per-point","(","the","ones","that","are","`","arrayOk",":","true","`",")","are","available",".","variables","`","value","`","and","`","label","`",".","Anything","contained","in","tag","`","<","extra",">","`","is","displayed","in","the","secondary","box",",","for","example","``","<","extra",">","{","fullData.name","}","<","\/extra",">","''",".","To","hide","the","secondary","box","completely",",","use","an","empty","tag","`","<","extra",">","<","\/extra",">","`",".","hovertemplatesrc","Sets","the","source","reference","on","Chart","Studio","Cloud","for","hovertemplate",".","label","The","shown","name","of","the","node",".","labelsrc","Sets","the","source","reference","on","Chart","Studio","Cloud","for","label",".","line",":","class",":","`","plotly.graph_objects.sankey.node.Line","`","instance","or","dict","with","compatible","properties","pad","Sets","the","padding","(","in","px",")","between","the","`","nodes","`",".","thickness","Sets","the","thickness","(","in","px",")","of","the","`","nodes","`",".","x","The","normalized","horizontal","position","of","the","node",".","xsrc","Sets","the","source","reference","on","Chart","Studio","Cloud","for","x",".","y","The","normalized","vertical","position","of","the","node",".","ysrc","Sets","the","source","reference","on","Chart","Studio","Cloud","for","y",".","Returns","--","--","--","-","Node"]
code: def __init__(
      self,
      arg=None,
      color=None,
      colorsrc=None,
      customdata=None,
      customdatasrc=None,
      groups=None,
      hoverinfo=None,
      hoverlabel=None,
      hovertemplate=None,
      hovertemplatesrc=None,
      label=None,
      labelsrc=None,
      line=None,
      pad=None,
      thickness=None,
      x=None,
      xsrc=None,
      y=None,
      ysrc=None,
      **kwargs,
  ):
      """
      Construct a new Node object
  
      The nodes of the Sankey plot.
  
      Parameters
      ----------
      arg
          dict of properties compatible with this constructor or
          an instance of :class:`plotly.graph_objs.sankey.Node`
      color
          Sets the `node` color. It can be a single value, or an
          array for specifying color for each `node`. If
          `node.color` is omitted, then the default `Plotly`
          color palette will be cycled through to have a variety
          of colors. These defaults are not fully opaque, to
          allow some visibility of what is beneath the node.
      colorsrc
          Sets the source reference on Chart Studio Cloud for
          color .
      customdata
          Assigns extra data to each node.
      customdatasrc
          Sets the source reference on Chart Studio Cloud for
          customdata .
      groups
          Groups of nodes. Each group is defined by an array with
          the indices of the nodes it contains. Multiple groups
          can be specified.
      hoverinfo
          Determines which trace information appear when hovering
          nodes. If `none` or `skip` are set, no information is
          displayed upon hovering. But, if `none` is set, click
          and hover events are still fired.
      hoverlabel
          :class:`plotly.graph_objects.sankey.node.Hoverlabel`
          instance or dict with compatible properties
      hovertemplate
          Template string used for rendering the information that
          appear on hover box. Note that this will override
          `hoverinfo`. Variables are inserted using %{variable},
          for example "y: %{y}". Numbers are formatted using
          d3-format's syntax %{variable:d3-format}, for example
          "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
          reference/blob/master/Formatting.md#d3_format for
          details on the formatting syntax. Dates are formatted
          using d3-time-format's syntax %{variable|d3-time-
          format}, for example "Day: %{2019-01-01|%A}".
          https://github.com/d3/d3-time-format#locale_format for
          details on the date formatting syntax. The variables
          available in `hovertemplate` are the ones emitted as
          event data described at this link
          https://plotly.com/javascript/plotlyjs-events/#event-
          data. Additionally, every attributes that can be
          specified per-point (the ones that are `arrayOk: true`)
          are available. variables `value` and `label`. Anything
          contained in tag `<extra>` is displayed in the
          secondary box, for example
          "<extra>{fullData.name}</extra>". To hide the secondary
          box completely, use an empty tag `<extra></extra>`.
      hovertemplatesrc
          Sets the source reference on Chart Studio Cloud for
          hovertemplate .
      label
          The shown name of the node.
      labelsrc
          Sets the source reference on Chart Studio Cloud for
          label .
      line
          :class:`plotly.graph_objects.sankey.node.Line` instance
          or dict with compatible properties
      pad
          Sets the padding (in px) between the `nodes`.
      thickness
          Sets the thickness (in px) of the `nodes`.
      x
          The normalized horizontal position of the node.
      xsrc
          Sets the source reference on Chart Studio Cloud for  x
          .
      y
          The normalized vertical position of the node.
      ysrc
          Sets the source reference on Chart Studio Cloud for  y
          .
  
      Returns
      -------
      Node
      """
      super(Node, self).__init__("node")
  
      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.sankey.Node 
  constructor must be a dict or 
  an instance of :class:`plotly.graph_objs.sankey.Node`"""
          )
  
      # 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("color", None)
      _v = color if color is not None else _v
      if _v is not None:
          self["color"] = _v
      _v = arg.pop("colorsrc", None)
      _v = colorsrc if colorsrc is not None else _v
      if _v is not None:
          self["colorsrc"] = _v
      _v = arg.pop("customdata", None)
      _v = customdata if customdata is not None else _v
      if _v is not None:
          self["customdata"] = _v
      _v = arg.pop("customdatasrc", None)
      _v = customdatasrc if customdatasrc is not None else _v
      if _v is not None:
          self["customdatasrc"] = _v
      _v = arg.pop("groups", None)
      _v = groups if groups is not None else _v
      if _v is not None:
          self["groups"] = _v
      _v = arg.pop("hoverinfo", None)
      _v = hoverinfo if hoverinfo is not None else _v
      if _v is not None:
          self["hoverinfo"] = _v
      _v = arg.pop("hoverlabel", None)
      _v = hoverlabel if hoverlabel is not None else _v
      if _v is not None:
          self["hoverlabel"] = _v
      _v = arg.pop("hovertemplate", None)
      _v = hovertemplate if hovertemplate is not None else _v
      if _v is not None:
          self["hovertemplate"] = _v
      _v = arg.pop("hovertemplatesrc", None)
      _v = hovertemplatesrc if hovertemplatesrc is not None else _v
      if _v is not None:
          self["hovertemplatesrc"] = _v
      _v = arg.pop("label", None)
      _v = label if label is not None else _v
      if _v is not None:
          self["label"] = _v
      _v = arg.pop("labelsrc", None)
      _v = labelsrc if labelsrc is not None else _v
      if _v is not None:
          self["labelsrc"] = _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("pad", None)
      _v = pad if pad is not None else _v
      if _v is not None:
          self["pad"] = _v
      _v = arg.pop("thickness", None)
      _v = thickness if thickness is not None else _v
      if _v is not None:
          self["thickness"] = _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("xsrc", None)
      _v = xsrc if xsrc is not None else _v
      if _v is not None:
          self["xsrc"] = _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("ysrc", None)
      _v = ysrc if ysrc is not None else _v
      if _v is not None:
          self["ysrc"] = _v
  
      # Process unknown kwargs
      # ----------------------
      self._process_kwargs(**dict(arg, **kwargs))
  
      # Reset skip_invalid
      # ------------------
      self._skip_invalid = False
  
imports: from plotly.basedatatypes import BaseTraceHierarchyType
  import copy
label_desc: Use image node_id 38 to create a new Node object from inherited base classes: _BaseTraceHierarchyType with example: obj = Node(arg, color, colorsrc, customdata, customdatasrc, groups, hoverinfo, hoverlabel, hovertemplate, hovertemplatesrc, label, labelsrc, line, pad, thickness, x, xsrc, y, ysrc)