forked from plotly/plotly.py
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path_fillgradient.py
264 lines (234 loc) · 9.72 KB
/
_fillgradient.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
from plotly.basedatatypes import BaseTraceHierarchyType as _BaseTraceHierarchyType
import copy as _copy
class Fillgradient(_BaseTraceHierarchyType):
# class properties
# --------------------
_parent_path_str = "scatter"
_path_str = "scatter.fillgradient"
_valid_props = {"colorscale", "start", "stop", "type"}
# colorscale
# ----------
@property
def colorscale(self):
"""
Sets the fill gradient colors as a color scale. The color scale
is interpreted as a gradient applied in the direction specified
by "orientation", from the lowest to the highest value of the
scatter plot along that axis, or from the center to the most
distant point from it, if orientation is "radial".
The 'colorscale' property is a colorscale and may be
specified as:
- A list of colors that will be spaced evenly to create the colorscale.
Many predefined colorscale lists are included in the sequential, diverging,
and cyclical modules in the plotly.colors package.
- A list of 2-element lists where the first element is the
normalized color level value (starting at 0 and ending at 1),
and the second item is a valid color string.
(e.g. [[0, 'green'], [0.5, 'red'], [1.0, 'rgb(0, 0, 255)']])
- One of the following named colorscales:
['aggrnyl', 'agsunset', 'algae', 'amp', 'armyrose', 'balance',
'blackbody', 'bluered', 'blues', 'blugrn', 'bluyl', 'brbg',
'brwnyl', 'bugn', 'bupu', 'burg', 'burgyl', 'cividis', 'curl',
'darkmint', 'deep', 'delta', 'dense', 'earth', 'edge', 'electric',
'emrld', 'fall', 'geyser', 'gnbu', 'gray', 'greens', 'greys',
'haline', 'hot', 'hsv', 'ice', 'icefire', 'inferno', 'jet',
'magenta', 'magma', 'matter', 'mint', 'mrybm', 'mygbm', 'oranges',
'orrd', 'oryel', 'oxy', 'peach', 'phase', 'picnic', 'pinkyl',
'piyg', 'plasma', 'plotly3', 'portland', 'prgn', 'pubu', 'pubugn',
'puor', 'purd', 'purp', 'purples', 'purpor', 'rainbow', 'rdbu',
'rdgy', 'rdpu', 'rdylbu', 'rdylgn', 'redor', 'reds', 'solar',
'spectral', 'speed', 'sunset', 'sunsetdark', 'teal', 'tealgrn',
'tealrose', 'tempo', 'temps', 'thermal', 'tropic', 'turbid',
'turbo', 'twilight', 'viridis', 'ylgn', 'ylgnbu', 'ylorbr',
'ylorrd'].
Appending '_r' to a named colorscale reverses it.
Returns
-------
str
"""
return self["colorscale"]
@colorscale.setter
def colorscale(self, val):
self["colorscale"] = val
# start
# -----
@property
def start(self):
"""
Sets the gradient start value. It is given as the absolute
position on the axis determined by the orientiation. E.g., if
orientation is "horizontal", the gradient will be horizontal
and start from the x-position given by start. If omitted, the
gradient starts at the lowest value of the trace along the
respective axis. Ignored if orientation is "radial".
The 'start' property is a number and may be specified as:
- An int or float
Returns
-------
int|float
"""
return self["start"]
@start.setter
def start(self, val):
self["start"] = val
# stop
# ----
@property
def stop(self):
"""
Sets the gradient end value. It is given as the absolute
position on the axis determined by the orientiation. E.g., if
orientation is "horizontal", the gradient will be horizontal
and end at the x-position given by end. If omitted, the
gradient ends at the highest value of the trace along the
respective axis. Ignored if orientation is "radial".
The 'stop' property is a number and may be specified as:
- An int or float
Returns
-------
int|float
"""
return self["stop"]
@stop.setter
def stop(self, val):
self["stop"] = val
# type
# ----
@property
def type(self):
"""
Sets the type/orientation of the color gradient for the fill.
Defaults to "none".
The 'type' property is an enumeration that may be specified as:
- One of the following enumeration values:
['radial', 'horizontal', 'vertical', 'none']
Returns
-------
Any
"""
return self["type"]
@type.setter
def type(self, val):
self["type"] = val
# Self properties description
# ---------------------------
@property
def _prop_descriptions(self):
return """\
colorscale
Sets the fill gradient colors as a color scale. The
color scale is interpreted as a gradient applied in the
direction specified by "orientation", from the lowest
to the highest value of the scatter plot along that
axis, or from the center to the most distant point from
it, if orientation is "radial".
start
Sets the gradient start value. It is given as the
absolute position on the axis determined by the
orientiation. E.g., if orientation is "horizontal", the
gradient will be horizontal and start from the
x-position given by start. If omitted, the gradient
starts at the lowest value of the trace along the
respective axis. Ignored if orientation is "radial".
stop
Sets the gradient end value. It is given as the
absolute position on the axis determined by the
orientiation. E.g., if orientation is "horizontal", the
gradient will be horizontal and end at the x-position
given by end. If omitted, the gradient ends at the
highest value of the trace along the respective axis.
Ignored if orientation is "radial".
type
Sets the type/orientation of the color gradient for the
fill. Defaults to "none".
"""
def __init__(
self, arg=None, colorscale=None, start=None, stop=None, type=None, **kwargs
):
"""
Construct a new Fillgradient object
Sets a fill gradient. If not specified, the fillcolor is used
instead.
Parameters
----------
arg
dict of properties compatible with this constructor or
an instance of
:class:`plotly.graph_objs.scatter.Fillgradient`
colorscale
Sets the fill gradient colors as a color scale. The
color scale is interpreted as a gradient applied in the
direction specified by "orientation", from the lowest
to the highest value of the scatter plot along that
axis, or from the center to the most distant point from
it, if orientation is "radial".
start
Sets the gradient start value. It is given as the
absolute position on the axis determined by the
orientiation. E.g., if orientation is "horizontal", the
gradient will be horizontal and start from the
x-position given by start. If omitted, the gradient
starts at the lowest value of the trace along the
respective axis. Ignored if orientation is "radial".
stop
Sets the gradient end value. It is given as the
absolute position on the axis determined by the
orientiation. E.g., if orientation is "horizontal", the
gradient will be horizontal and end at the x-position
given by end. If omitted, the gradient ends at the
highest value of the trace along the respective axis.
Ignored if orientation is "radial".
type
Sets the type/orientation of the color gradient for the
fill. Defaults to "none".
Returns
-------
Fillgradient
"""
super(Fillgradient, self).__init__("fillgradient")
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.scatter.Fillgradient
constructor must be a dict or
an instance of :class:`plotly.graph_objs.scatter.Fillgradient`"""
)
# 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("colorscale", None)
_v = colorscale if colorscale is not None else _v
if _v is not None:
self["colorscale"] = _v
_v = arg.pop("start", None)
_v = start if start is not None else _v
if _v is not None:
self["start"] = _v
_v = arg.pop("stop", None)
_v = stop if stop is not None else _v
if _v is not None:
self["stop"] = _v
_v = arg.pop("type", None)
_v = type if type is not None else _v
if _v is not None:
self["type"] = _v
# Process unknown kwargs
# ----------------------
self._process_kwargs(**dict(arg, **kwargs))
# Reset skip_invalid
# ------------------
self._skip_invalid = False