from plotly.basedatatypes import BaseTraceHierarchyType as _BaseTraceHierarchyType import copy as _copy class Link(_BaseTraceHierarchyType): # class properties # -------------------- _parent_path_str = "sankey" _path_str = "sankey.link" _valid_props = { "color", "colorscaledefaults", "colorscales", "colorsrc", "customdata", "customdatasrc", "hoverinfo", "hoverlabel", "hovertemplate", "hovertemplatesrc", "label", "labelsrc", "line", "source", "sourcesrc", "target", "targetsrc", "value", "valuesrc", } # color # ----- @property def color(self): """ Sets the `link` color. It can be a single value, or an array for specifying color for each `link`. If `link.color` is omitted, then by default, a translucent grey link will be used. The 'color' property is a color and may be specified as: - A hex string (e.g. '#ff0000') - An rgb/rgba string (e.g. 'rgb(255,0,0)') - An hsl/hsla string (e.g. 'hsl(0,100%,50%)') - An hsv/hsva string (e.g. 'hsv(0,100%,100%)') - A named CSS color: aliceblue, antiquewhite, aqua, aquamarine, azure, beige, bisque, black, blanchedalmond, blue, blueviolet, brown, burlywood, cadetblue, chartreuse, chocolate, coral, cornflowerblue, cornsilk, crimson, cyan, darkblue, darkcyan, darkgoldenrod, darkgray, darkgrey, darkgreen, darkkhaki, darkmagenta, darkolivegreen, darkorange, darkorchid, darkred, darksalmon, darkseagreen, darkslateblue, darkslategray, darkslategrey, darkturquoise, darkviolet, deeppink, deepskyblue, dimgray, dimgrey, dodgerblue, firebrick, floralwhite, forestgreen, fuchsia, gainsboro, ghostwhite, gold, goldenrod, gray, grey, green, greenyellow, honeydew, hotpink, indianred, indigo, ivory, khaki, lavender, lavenderblush, lawngreen, lemonchiffon, lightblue, lightcoral, lightcyan, lightgoldenrodyellow, lightgray, lightgrey, lightgreen, lightpink, lightsalmon, lightseagreen, lightskyblue, lightslategray, lightslategrey, lightsteelblue, lightyellow, lime, limegreen, linen, magenta, maroon, mediumaquamarine, mediumblue, mediumorchid, mediumpurple, mediumseagreen, mediumslateblue, mediumspringgreen, mediumturquoise, mediumvioletred, midnightblue, mintcream, mistyrose, moccasin, navajowhite, navy, oldlace, olive, olivedrab, orange, orangered, orchid, palegoldenrod, palegreen, paleturquoise, palevioletred, papayawhip, peachpuff, peru, pink, plum, powderblue, purple, red, rosybrown, royalblue, rebeccapurple, saddlebrown, salmon, sandybrown, seagreen, seashell, sienna, silver, skyblue, slateblue, slategray, slategrey, snow, springgreen, steelblue, tan, teal, thistle, tomato, turquoise, violet, wheat, white, whitesmoke, yellow, yellowgreen - A list or array of any of the above Returns ------- str|numpy.ndarray """ return self["color"] @color.setter def color(self, val): self["color"] = val # colorscales # ----------- @property def colorscales(self): """ The 'colorscales' property is a tuple of instances of Colorscale that may be specified as: - A list or tuple of instances of plotly.graph_objs.sankey.link.Colorscale - A list or tuple of dicts of string/value properties that will be passed to the Colorscale constructor Supported dict properties: cmax Sets the upper bound of the color domain. cmin Sets the lower bound of the color domain. colorscale Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`cmin` and `cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Grey s,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues, Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth ,Electric,Viridis,Cividis. label The label of the links to color based on their concentration within a flow. 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. 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`. Returns ------- tuple[plotly.graph_objs.sankey.link.Colorscale] """ return self["colorscales"] @colorscales.setter def colorscales(self, val): self["colorscales"] = val # colorscaledefaults # ------------------ @property def colorscaledefaults(self): """ When used in a template (as layout.template.data.sankey.link.colorscaledefaults), sets the default property values to use for elements of sankey.link.colorscales The 'colorscaledefaults' property is an instance of Colorscale that may be specified as: - An instance of :class:`plotly.graph_objs.sankey.link.Colorscale` - A dict of string/value properties that will be passed to the Colorscale constructor Supported dict properties: Returns ------- plotly.graph_objs.sankey.link.Colorscale """ return self["colorscaledefaults"] @colorscaledefaults.setter def colorscaledefaults(self, val): self["colorscaledefaults"] = val # colorsrc # -------- @property def colorsrc(self): """ Sets the source reference on Chart Studio Cloud for color . The 'colorsrc' property must be specified as a string or as a plotly.grid_objs.Column object Returns ------- str """ return self["colorsrc"] @colorsrc.setter def colorsrc(self, val): self["colorsrc"] = val # customdata # ---------- @property def customdata(self): """ Assigns extra data to each link. The 'customdata' property is an array that may be specified as a tuple, list, numpy array, or pandas Series Returns ------- numpy.ndarray """ return self["customdata"] @customdata.setter def customdata(self, val): self["customdata"] = val # customdatasrc # ------------- @property def customdatasrc(self): """ Sets the source reference on Chart Studio Cloud for customdata . The 'customdatasrc' property must be specified as a string or as a plotly.grid_objs.Column object Returns ------- str """ return self["customdatasrc"] @customdatasrc.setter def customdatasrc(self, val): self["customdatasrc"] = val # hoverinfo # --------- @property def hoverinfo(self): """ Determines which trace information appear when hovering links. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired. The 'hoverinfo' property is an enumeration that may be specified as: - One of the following enumeration values: ['all', 'none', 'skip'] Returns ------- Any """ return self["hoverinfo"] @hoverinfo.setter def hoverinfo(self, val): self["hoverinfo"] = val # hoverlabel # ---------- @property def hoverlabel(self): """ The 'hoverlabel' property is an instance of Hoverlabel that may be specified as: - An instance of :class:`plotly.graph_objs.sankey.link.Hoverlabel` - A dict of string/value properties that will be passed to the Hoverlabel constructor Supported dict properties: align Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines alignsrc Sets the source reference on Chart Studio Cloud for align . bgcolor Sets the background color of the hover labels for this trace bgcolorsrc Sets the source reference on Chart Studio Cloud for bgcolor . bordercolor Sets the border color of the hover labels for this trace. bordercolorsrc Sets the source reference on Chart Studio Cloud for bordercolor . font Sets the font used in hover labels. namelength Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis. namelengthsrc Sets the source reference on Chart Studio Cloud for namelength . Returns ------- plotly.graph_objs.sankey.link.Hoverlabel """ return self["hoverlabel"] @hoverlabel.setter def hoverlabel(self, val): self["hoverlabel"] = val # hovertemplate # ------------- @property def hovertemplate(self): """ 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}" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, "xother" will be added to those with different x positions from the first point. An underscore before or after "(x|y)other" will add a space on that side, only when this field is shown. 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 `` is displayed in the secondary box, for example "{fullData.name}". To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: - A string - A number that will be converted to a string - A tuple, list, or one-dimensional numpy array of the above Returns ------- str|numpy.ndarray """ return self["hovertemplate"] @hovertemplate.setter def hovertemplate(self, val): self["hovertemplate"] = val # hovertemplatesrc # ---------------- @property def hovertemplatesrc(self): """ Sets the source reference on Chart Studio Cloud for hovertemplate . The 'hovertemplatesrc' property must be specified as a string or as a plotly.grid_objs.Column object Returns ------- str """ return self["hovertemplatesrc"] @hovertemplatesrc.setter def hovertemplatesrc(self, val): self["hovertemplatesrc"] = val # label # ----- @property def label(self): """ The shown name of the link. The 'label' property is an array that may be specified as a tuple, list, numpy array, or pandas Series Returns ------- numpy.ndarray """ return self["label"] @label.setter def label(self, val): self["label"] = val # labelsrc # -------- @property def labelsrc(self): """ Sets the source reference on Chart Studio Cloud for label . The 'labelsrc' property must be specified as a string or as a plotly.grid_objs.Column object Returns ------- str """ return self["labelsrc"] @labelsrc.setter def labelsrc(self, val): self["labelsrc"] = val # line # ---- @property def line(self): """ The 'line' property is an instance of Line that may be specified as: - An instance of :class:`plotly.graph_objs.sankey.link.Line` - A dict of string/value properties that will be passed to the Line constructor Supported dict properties: color Sets the color of the `line` around each `link`. colorsrc Sets the source reference on Chart Studio Cloud for color . width Sets the width (in px) of the `line` around each `link`. widthsrc Sets the source reference on Chart Studio Cloud for width . Returns ------- plotly.graph_objs.sankey.link.Line """ return self["line"] @line.setter def line(self, val): self["line"] = val # source # ------ @property def source(self): """ An integer number `[0..nodes.length - 1]` that represents the source node. The 'source' property is an array that may be specified as a tuple, list, numpy array, or pandas Series Returns ------- numpy.ndarray """ return self["source"] @source.setter def source(self, val): self["source"] = val # sourcesrc # --------- @property def sourcesrc(self): """ Sets the source reference on Chart Studio Cloud for source . The 'sourcesrc' property must be specified as a string or as a plotly.grid_objs.Column object Returns ------- str """ return self["sourcesrc"] @sourcesrc.setter def sourcesrc(self, val): self["sourcesrc"] = val # target # ------ @property def target(self): """ An integer number `[0..nodes.length - 1]` that represents the target node. The 'target' property is an array that may be specified as a tuple, list, numpy array, or pandas Series Returns ------- numpy.ndarray """ return self["target"] @target.setter def target(self, val): self["target"] = val # targetsrc # --------- @property def targetsrc(self): """ Sets the source reference on Chart Studio Cloud for target . The 'targetsrc' property must be specified as a string or as a plotly.grid_objs.Column object Returns ------- str """ return self["targetsrc"] @targetsrc.setter def targetsrc(self, val): self["targetsrc"] = val # value # ----- @property def value(self): """ A numeric value representing the flow volume value. The 'value' property is an array that may be specified as a tuple, list, numpy array, or pandas Series Returns ------- numpy.ndarray """ return self["value"] @value.setter def value(self, val): self["value"] = val # valuesrc # -------- @property def valuesrc(self): """ Sets the source reference on Chart Studio Cloud for value . The 'valuesrc' property must be specified as a string or as a plotly.grid_objs.Column object Returns ------- str """ return self["valuesrc"] @valuesrc.setter def valuesrc(self, val): self["valuesrc"] = val # Self properties description # --------------------------- @property def _prop_descriptions(self): return """\ color Sets the `link` color. It can be a single value, or an array for specifying color for each `link`. If `link.color` is omitted, then by default, a translucent grey link will be used. colorscales A tuple of :class:`plotly.graph_objects.sankey.link.Colorscale` instances or dicts with compatible properties colorscaledefaults When used in a template (as layout.template.data.sankey.link.colorscaledefaults), sets the default property values to use for elements of sankey.link.colorscales colorsrc Sets the source reference on Chart Studio Cloud for color . customdata Assigns extra data to each link. customdatasrc Sets the source reference on Chart Studio Cloud for customdata . hoverinfo Determines which trace information appear when hovering links. 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.link.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}" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, "xother" will be added to those with different x positions from the first point. An underscore before or after "(x|y)other" will add a space on that side, only when this field is shown. 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 `` is displayed in the secondary box, for example "{fullData.name}". To hide the secondary box completely, use an empty tag ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for hovertemplate . label The shown name of the link. labelsrc Sets the source reference on Chart Studio Cloud for label . line :class:`plotly.graph_objects.sankey.link.Line` instance or dict with compatible properties source An integer number `[0..nodes.length - 1]` that represents the source node. sourcesrc Sets the source reference on Chart Studio Cloud for source . target An integer number `[0..nodes.length - 1]` that represents the target node. targetsrc Sets the source reference on Chart Studio Cloud for target . value A numeric value representing the flow volume value. valuesrc Sets the source reference on Chart Studio Cloud for value . """ def __init__( self, arg=None, color=None, colorscales=None, colorscaledefaults=None, colorsrc=None, customdata=None, customdatasrc=None, hoverinfo=None, hoverlabel=None, hovertemplate=None, hovertemplatesrc=None, label=None, labelsrc=None, line=None, source=None, sourcesrc=None, target=None, targetsrc=None, value=None, valuesrc=None, **kwargs ): """ Construct a new Link object The links of the Sankey plot. Parameters ---------- arg dict of properties compatible with this constructor or an instance of :class:`plotly.graph_objs.sankey.Link` color Sets the `link` color. It can be a single value, or an array for specifying color for each `link`. If `link.color` is omitted, then by default, a translucent grey link will be used. colorscales A tuple of :class:`plotly.graph_objects.sankey.link.Colorscale` instances or dicts with compatible properties colorscaledefaults When used in a template (as layout.template.data.sankey.link.colorscaledefaults), sets the default property values to use for elements of sankey.link.colorscales colorsrc Sets the source reference on Chart Studio Cloud for color . customdata Assigns extra data to each link. customdatasrc Sets the source reference on Chart Studio Cloud for customdata . hoverinfo Determines which trace information appear when hovering links. 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.link.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}" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, "xother" will be added to those with different x positions from the first point. An underscore before or after "(x|y)other" will add a space on that side, only when this field is shown. 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 `` is displayed in the secondary box, for example "{fullData.name}". To hide the secondary box completely, use an empty tag ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for hovertemplate . label The shown name of the link. labelsrc Sets the source reference on Chart Studio Cloud for label . line :class:`plotly.graph_objects.sankey.link.Line` instance or dict with compatible properties source An integer number `[0..nodes.length - 1]` that represents the source node. sourcesrc Sets the source reference on Chart Studio Cloud for source . target An integer number `[0..nodes.length - 1]` that represents the target node. targetsrc Sets the source reference on Chart Studio Cloud for target . value A numeric value representing the flow volume value. valuesrc Sets the source reference on Chart Studio Cloud for value . Returns ------- Link """ super(Link, self).__init__("link") 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.Link constructor must be a dict or an instance of :class:`plotly.graph_objs.sankey.Link`""" ) # 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("colorscales", None) _v = colorscales if colorscales is not None else _v if _v is not None: self["colorscales"] = _v _v = arg.pop("colorscaledefaults", None) _v = colorscaledefaults if colorscaledefaults is not None else _v if _v is not None: self["colorscaledefaults"] = _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("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("source", None) _v = source if source is not None else _v if _v is not None: self["source"] = _v _v = arg.pop("sourcesrc", None) _v = sourcesrc if sourcesrc is not None else _v if _v is not None: self["sourcesrc"] = _v _v = arg.pop("target", None) _v = target if target is not None else _v if _v is not None: self["target"] = _v _v = arg.pop("targetsrc", None) _v = targetsrc if targetsrc is not None else _v if _v is not None: self["targetsrc"] = _v _v = arg.pop("value", None) _v = value if value is not None else _v if _v is not None: self["value"] = _v _v = arg.pop("valuesrc", None) _v = valuesrc if valuesrc is not None else _v if _v is not None: self["valuesrc"] = _v # Process unknown kwargs # ---------------------- self._process_kwargs(**dict(arg, **kwargs)) # Reset skip_invalid # ------------------ self._skip_invalid = False