2022-05-23 00:16:32 +04:00

970 lines
34 KiB
Python

from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
import copy as _copy
class Legend(_BaseLayoutHierarchyType):
# class properties
# --------------------
_parent_path_str = "layout"
_path_str = "layout.legend"
_valid_props = {
"bgcolor",
"bordercolor",
"borderwidth",
"font",
"groupclick",
"grouptitlefont",
"itemclick",
"itemdoubleclick",
"itemsizing",
"itemwidth",
"orientation",
"title",
"tracegroupgap",
"traceorder",
"uirevision",
"valign",
"x",
"xanchor",
"y",
"yanchor",
}
# bgcolor
# -------
@property
def bgcolor(self):
"""
Sets the legend background color. Defaults to
`layout.paper_bgcolor`.
The 'bgcolor' 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
Returns
-------
str
"""
return self["bgcolor"]
@bgcolor.setter
def bgcolor(self, val):
self["bgcolor"] = val
# bordercolor
# -----------
@property
def bordercolor(self):
"""
Sets the color of the border enclosing the legend.
The 'bordercolor' 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
Returns
-------
str
"""
return self["bordercolor"]
@bordercolor.setter
def bordercolor(self, val):
self["bordercolor"] = val
# borderwidth
# -----------
@property
def borderwidth(self):
"""
Sets the width (in px) of the border enclosing the legend.
The 'borderwidth' property is a number and may be specified as:
- An int or float in the interval [0, inf]
Returns
-------
int|float
"""
return self["borderwidth"]
@borderwidth.setter
def borderwidth(self, val):
self["borderwidth"] = val
# font
# ----
@property
def font(self):
"""
Sets the font used to text the legend items.
The 'font' property is an instance of Font
that may be specified as:
- An instance of :class:`plotly.graph_objs.layout.legend.Font`
- A dict of string/value properties that will be passed
to the Font constructor
Supported dict properties:
color
family
HTML font family - the typeface that will be
applied by the web browser. The web browser
will only be able to apply a font if it is
available on the system which it operates.
Provide multiple font families, separated by
commas, to indicate the preference in which to
apply fonts if they aren't available on the
system. The Chart Studio Cloud (at
https://chart-studio.plotly.com or on-premise)
generates images on a server, where only a
select number of fonts are installed and
supported. These include "Arial", "Balto",
"Courier New", "Droid Sans",, "Droid Serif",
"Droid Sans Mono", "Gravitas One", "Old
Standard TT", "Open Sans", "Overpass", "PT Sans
Narrow", "Raleway", "Times New Roman".
size
Returns
-------
plotly.graph_objs.layout.legend.Font
"""
return self["font"]
@font.setter
def font(self, val):
self["font"] = val
# groupclick
# ----------
@property
def groupclick(self):
"""
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.
The 'groupclick' property is an enumeration that may be specified as:
- One of the following enumeration values:
['toggleitem', 'togglegroup']
Returns
-------
Any
"""
return self["groupclick"]
@groupclick.setter
def groupclick(self, val):
self["groupclick"] = val
# grouptitlefont
# --------------
@property
def grouptitlefont(self):
"""
Sets the font for group titles in legend. Defaults to
`legend.font` with its size increased about 10%.
The 'grouptitlefont' property is an instance of Grouptitlefont
that may be specified as:
- An instance of :class:`plotly.graph_objs.layout.legend.Grouptitlefont`
- A dict of string/value properties that will be passed
to the Grouptitlefont constructor
Supported dict properties:
color
family
HTML font family - the typeface that will be
applied by the web browser. The web browser
will only be able to apply a font if it is
available on the system which it operates.
Provide multiple font families, separated by
commas, to indicate the preference in which to
apply fonts if they aren't available on the
system. The Chart Studio Cloud (at
https://chart-studio.plotly.com or on-premise)
generates images on a server, where only a
select number of fonts are installed and
supported. These include "Arial", "Balto",
"Courier New", "Droid Sans",, "Droid Serif",
"Droid Sans Mono", "Gravitas One", "Old
Standard TT", "Open Sans", "Overpass", "PT Sans
Narrow", "Raleway", "Times New Roman".
size
Returns
-------
plotly.graph_objs.layout.legend.Grouptitlefont
"""
return self["grouptitlefont"]
@grouptitlefont.setter
def grouptitlefont(self, val):
self["grouptitlefont"] = val
# itemclick
# ---------
@property
def itemclick(self):
"""
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.
The 'itemclick' property is an enumeration that may be specified as:
- One of the following enumeration values:
['toggle', 'toggleothers', False]
Returns
-------
Any
"""
return self["itemclick"]
@itemclick.setter
def itemclick(self, val):
self["itemclick"] = val
# itemdoubleclick
# ---------------
@property
def itemdoubleclick(self):
"""
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.
The 'itemdoubleclick' property is an enumeration that may be specified as:
- One of the following enumeration values:
['toggle', 'toggleothers', False]
Returns
-------
Any
"""
return self["itemdoubleclick"]
@itemdoubleclick.setter
def itemdoubleclick(self, val):
self["itemdoubleclick"] = val
# itemsizing
# ----------
@property
def itemsizing(self):
"""
Determines if the legend items symbols scale with their
corresponding "trace" attributes or remain "constant"
independent of the symbol size on the graph.
The 'itemsizing' property is an enumeration that may be specified as:
- One of the following enumeration values:
['trace', 'constant']
Returns
-------
Any
"""
return self["itemsizing"]
@itemsizing.setter
def itemsizing(self, val):
self["itemsizing"] = val
# itemwidth
# ---------
@property
def itemwidth(self):
"""
Sets the width (in px) of the legend item symbols (the part
other than the title.text).
The 'itemwidth' property is a number and may be specified as:
- An int or float in the interval [30, inf]
Returns
-------
int|float
"""
return self["itemwidth"]
@itemwidth.setter
def itemwidth(self, val):
self["itemwidth"] = val
# orientation
# -----------
@property
def orientation(self):
"""
Sets the orientation of the legend.
The 'orientation' property is an enumeration that may be specified as:
- One of the following enumeration values:
['v', 'h']
Returns
-------
Any
"""
return self["orientation"]
@orientation.setter
def orientation(self, val):
self["orientation"] = val
# title
# -----
@property
def title(self):
"""
The 'title' property is an instance of Title
that may be specified as:
- An instance of :class:`plotly.graph_objs.layout.legend.Title`
- A dict of string/value properties that will be passed
to the Title constructor
Supported dict properties:
font
Sets this legend's title font. Defaults to
`legend.font` with its size increased about
20%.
side
Determines the location of legend's title with
respect to the legend items. Defaulted to "top"
with `orientation` is "h". Defaulted to "left"
with `orientation` is "v". The *top left*
options could be used to expand legend area in
both x and y sides.
text
Sets the title of the legend.
Returns
-------
plotly.graph_objs.layout.legend.Title
"""
return self["title"]
@title.setter
def title(self, val):
self["title"] = val
# tracegroupgap
# -------------
@property
def tracegroupgap(self):
"""
Sets the amount of vertical space (in px) between legend
groups.
The 'tracegroupgap' property is a number and may be specified as:
- An int or float in the interval [0, inf]
Returns
-------
int|float
"""
return self["tracegroupgap"]
@tracegroupgap.setter
def tracegroupgap(self, val):
self["tracegroupgap"] = val
# traceorder
# ----------
@property
def traceorder(self):
"""
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".
The 'traceorder' property is a flaglist and may be specified
as a string containing:
- Any combination of ['reversed', 'grouped'] joined with '+' characters
(e.g. 'reversed+grouped')
OR exactly one of ['normal'] (e.g. 'normal')
Returns
-------
Any
"""
return self["traceorder"]
@traceorder.setter
def traceorder(self, val):
self["traceorder"] = val
# uirevision
# ----------
@property
def uirevision(self):
"""
Controls persistence of legend-driven changes in trace and pie
label visibility. Defaults to `layout.uirevision`.
The 'uirevision' property accepts values of any type
Returns
-------
Any
"""
return self["uirevision"]
@uirevision.setter
def uirevision(self, val):
self["uirevision"] = val
# valign
# ------
@property
def valign(self):
"""
Sets the vertical alignment of the symbols with respect to
their associated text.
The 'valign' property is an enumeration that may be specified as:
- One of the following enumeration values:
['top', 'middle', 'bottom']
Returns
-------
Any
"""
return self["valign"]
@valign.setter
def valign(self, val):
self["valign"] = val
# x
# -
@property
def x(self):
"""
Sets the x position (in normalized coordinates) of the legend.
Defaults to 1.02 for vertical legends and defaults to 0 for
horizontal legends.
The 'x' property is a number and may be specified as:
- An int or float in the interval [-2, 3]
Returns
-------
int|float
"""
return self["x"]
@x.setter
def x(self, val):
self["x"] = val
# xanchor
# -------
@property
def xanchor(self):
"""
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.
The 'xanchor' property is an enumeration that may be specified as:
- One of the following enumeration values:
['auto', 'left', 'center', 'right']
Returns
-------
Any
"""
return self["xanchor"]
@xanchor.setter
def xanchor(self, val):
self["xanchor"] = val
# y
# -
@property
def y(self):
"""
Sets the y position (in normalized coordinates) of the legend.
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.
The 'y' property is a number and may be specified as:
- An int or float in the interval [-2, 3]
Returns
-------
int|float
"""
return self["y"]
@y.setter
def y(self, val):
self["y"] = val
# yanchor
# -------
@property
def yanchor(self):
"""
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.
The 'yanchor' property is an enumeration that may be specified as:
- One of the following enumeration values:
['auto', 'top', 'middle', 'bottom']
Returns
-------
Any
"""
return self["yanchor"]
@yanchor.setter
def yanchor(self, val):
self["yanchor"] = val
# Self properties description
# ---------------------------
@property
def _prop_descriptions(self):
return """\
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.
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.
x
Sets the x position (in normalized coordinates) of the
legend. Defaults to 1.02 for vertical legends and
defaults to 0 for horizontal legends.
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.
y
Sets the y position (in normalized coordinates) of the
legend. 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.
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.
"""
def __init__(
self,
arg=None,
bgcolor=None,
bordercolor=None,
borderwidth=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,
x=None,
xanchor=None,
y=None,
yanchor=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.
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.
x
Sets the x position (in normalized coordinates) of the
legend. Defaults to 1.02 for vertical legends and
defaults to 0 for horizontal legends.
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.
y
Sets the y position (in normalized coordinates) of the
legend. 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.
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.
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("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("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