from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
import copy as _copy
class Symbol(_BaseLayoutHierarchyType):
# class properties
# --------------------
_parent_path_str = "layout.mapbox.layer"
_path_str = "layout.mapbox.layer.symbol"
_valid_props = {"icon", "iconsize", "placement", "text", "textfont", "textposition"}
# icon
# ----
@property
def icon(self):
"""
Sets the symbol icon image (mapbox.layer.layout.icon-image).
Full list: https://www.mapbox.com/maki-icons/
The 'icon' property is a string and must be specified as:
- A string
- A number that will be converted to a string
Returns
-------
str
"""
return self["icon"]
@icon.setter
def icon(self, val):
self["icon"] = val
# iconsize
# --------
@property
def iconsize(self):
"""
Sets the symbol icon size (mapbox.layer.layout.icon-size). Has
an effect only when `type` is set to "symbol".
The 'iconsize' property is a number and may be specified as:
- An int or float
Returns
-------
int|float
"""
return self["iconsize"]
@iconsize.setter
def iconsize(self, val):
self["iconsize"] = val
# placement
# ---------
@property
def placement(self):
"""
Sets the symbol and/or text placement
(mapbox.layer.layout.symbol-placement). If `placement` is
"point", the label is placed where the geometry is located If
`placement` is "line", the label is placed along the line of
the geometry If `placement` is "line-center", the label is
placed on the center of the geometry
The 'placement' property is an enumeration that may be specified as:
- One of the following enumeration values:
['point', 'line', 'line-center']
Returns
-------
Any
"""
return self["placement"]
@placement.setter
def placement(self, val):
self["placement"] = val
# text
# ----
@property
def text(self):
"""
Sets the symbol text (mapbox.layer.layout.text-field).
The 'text' property is a string and must be specified as:
- A string
- A number that will be converted to a string
Returns
-------
str
"""
return self["text"]
@text.setter
def text(self, val):
self["text"] = val
# textfont
# --------
@property
def textfont(self):
"""
Sets the icon text font (color=mapbox.layer.paint.text-color,
size=mapbox.layer.layout.text-size). Has an effect only when
`type` is set to "symbol".
The 'textfont' property is an instance of Textfont
that may be specified as:
- An instance of :class:`plotly.graph_objs.layout.mapbox.layer.symbol.Textfont`
- A dict of string/value properties that will be passed
to the Textfont 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.mapbox.layer.symbol.Textfont
"""
return self["textfont"]
@textfont.setter
def textfont(self, val):
self["textfont"] = val
# textposition
# ------------
@property
def textposition(self):
"""
Sets the positions of the `text` elements with respects to the
(x,y) coordinates.
The 'textposition' property is an enumeration that may be specified as:
- One of the following enumeration values:
['top left', 'top center', 'top right', 'middle left',
'middle center', 'middle right', 'bottom left', 'bottom
center', 'bottom right']
Returns
-------
Any
"""
return self["textposition"]
@textposition.setter
def textposition(self, val):
self["textposition"] = val
# Self properties description
# ---------------------------
@property
def _prop_descriptions(self):
return """\
icon
Sets the symbol icon image (mapbox.layer.layout.icon-
image). Full list: https://www.mapbox.com/maki-icons/
iconsize
Sets the symbol icon size (mapbox.layer.layout.icon-
size). Has an effect only when `type` is set to
"symbol".
placement
Sets the symbol and/or text placement
(mapbox.layer.layout.symbol-placement). If `placement`
is "point", the label is placed where the geometry is
located If `placement` is "line", the label is placed
along the line of the geometry If `placement` is "line-
center", the label is placed on the center of the
geometry
text
Sets the symbol text (mapbox.layer.layout.text-field).
textfont
Sets the icon text font (color=mapbox.layer.paint.text-
color, size=mapbox.layer.layout.text-size). Has an
effect only when `type` is set to "symbol".
textposition
Sets the positions of the `text` elements with respects
to the (x,y) coordinates.
"""
def __init__(
self,
arg=None,
icon=None,
iconsize=None,
placement=None,
text=None,
textfont=None,
textposition=None,
**kwargs,
):
"""
Construct a new Symbol object
Parameters
----------
arg
dict of properties compatible with this constructor or
an instance of
:class:`plotly.graph_objs.layout.mapbox.layer.Symbol`
icon
Sets the symbol icon image (mapbox.layer.layout.icon-
image). Full list: https://www.mapbox.com/maki-icons/
iconsize
Sets the symbol icon size (mapbox.layer.layout.icon-
size). Has an effect only when `type` is set to
"symbol".
placement
Sets the symbol and/or text placement
(mapbox.layer.layout.symbol-placement). If `placement`
is "point", the label is placed where the geometry is
located If `placement` is "line", the label is placed
along the line of the geometry If `placement` is "line-
center", the label is placed on the center of the
geometry
text
Sets the symbol text (mapbox.layer.layout.text-field).
textfont
Sets the icon text font (color=mapbox.layer.paint.text-
color, size=mapbox.layer.layout.text-size). Has an
effect only when `type` is set to "symbol".
textposition
Sets the positions of the `text` elements with respects
to the (x,y) coordinates.
Returns
-------
Symbol
"""
super(Symbol, self).__init__("symbol")
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.mapbox.layer.Symbol
constructor must be a dict or
an instance of :class:`plotly.graph_objs.layout.mapbox.layer.Symbol`"""
)
# 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("icon", None)
_v = icon if icon is not None else _v
if _v is not None:
self["icon"] = _v
_v = arg.pop("iconsize", None)
_v = iconsize if iconsize is not None else _v
if _v is not None:
self["iconsize"] = _v
_v = arg.pop("placement", None)
_v = placement if placement is not None else _v
if _v is not None:
self["placement"] = _v
_v = arg.pop("text", None)
_v = text if text is not None else _v
if _v is not None:
self["text"] = _v
_v = arg.pop("textfont", None)
_v = textfont if textfont is not None else _v
if _v is not None:
self["textfont"] = _v
_v = arg.pop("textposition", None)
_v = textposition if textposition is not None else _v
if _v is not None:
self["textposition"] = _v
# Process unknown kwargs
# ----------------------
self._process_kwargs(**dict(arg, **kwargs))
# Reset skip_invalid
# ------------------
self._skip_invalid = False