aboutsummaryrefslogtreecommitdiff
path: root/venv/lib/python3.8/site-packages/plotly/graph_objs/layout
diff options
context:
space:
mode:
authorsotech117 <michael_foiani@brown.edu>2025-07-31 17:27:24 -0400
committersotech117 <michael_foiani@brown.edu>2025-07-31 17:27:24 -0400
commit5bf22fc7e3c392c8bd44315ca2d06d7dca7d084e (patch)
tree8dacb0f195df1c0788d36dd0064f6bbaa3143ede /venv/lib/python3.8/site-packages/plotly/graph_objs/layout
parentb832d364da8c2efe09e3f75828caf73c50d01ce3 (diff)
add code for analysis of data
Diffstat (limited to 'venv/lib/python3.8/site-packages/plotly/graph_objs/layout')
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/__init__.py120
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_activeselection.py104
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_activeshape.py104
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_annotation.py1714
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_coloraxis.py396
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_colorscale.py214
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_font.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_geo.py968
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_grid.py511
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_hoverlabel.py254
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_image.py608
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_legend.py916
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_map.py392
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_mapbox.py452
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_margin.py212
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_modebar.py387
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_newselection.py118
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_newshape.py543
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_polar.py382
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_scene.py454
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_selection.py493
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_shape.py1287
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_slider.py786
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_smith.py166
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_template.py133
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_ternary.py250
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_title.py450
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_transition.py144
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_uniformtext.py124
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_updatemenu.py632
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_xaxis.py3415
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_yaxis.py3443
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/annotation/__init__.py13
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/annotation/_font.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/annotation/_hoverlabel.py151
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/annotation/hoverlabel/__init__.py9
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/annotation/hoverlabel/_font.py335
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/__init__.py12
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/_colorbar.py1722
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/colorbar/__init__.py16
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/colorbar/_tickfont.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/colorbar/_tickformatstop.py241
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/colorbar/_title.py136
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/colorbar/title/__init__.py9
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/colorbar/title/_font.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/__init__.py24
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/_center.py115
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/_domain.py204
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/_lataxis.py258
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/_lonaxis.py258
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/_projection.py251
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/projection/__init__.py11
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/projection/_rotation.py129
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/grid/__init__.py9
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/grid/_domain.py122
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/hoverlabel/__init__.py12
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/hoverlabel/_font.py335
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/hoverlabel/_grouptitlefont.py335
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/legend/__init__.py16
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/legend/_font.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/legend/_grouptitlefont.py335
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/legend/_title.py145
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/legend/title/__init__.py9
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/legend/title/_font.py335
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/__init__.py17
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/_bounds.py160
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/_center.py104
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/_domain.py170
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/_layer.py691
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/layer/__init__.py17
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/layer/_circle.py80
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/layer/_fill.py86
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/layer/_line.py133
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/layer/_symbol.py243
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/layer/symbol/__init__.py11
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/layer/symbol/_textfont.py202
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/__init__.py17
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/_bounds.py160
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/_center.py104
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/_domain.py170
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/_layer.py695
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/layer/__init__.py17
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/layer/_circle.py82
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/layer/_fill.py86
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/layer/_line.py133
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/layer/_symbol.py245
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/layer/symbol/__init__.py11
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/layer/symbol/_textfont.py202
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newselection/__init__.py9
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newselection/_line.py142
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/__init__.py17
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/_label.py397
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/_legendgrouptitle.py104
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/_line.py142
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/label/__init__.py9
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/label/_font.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/legendgrouptitle/__init__.py9
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/legendgrouptitle/_font.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/__init__.py17
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/_angularaxis.py1776
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/_domain.py170
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/_radialaxis.py2049
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/angularaxis/__init__.py12
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/angularaxis/_tickfont.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/angularaxis/_tickformatstop.py241
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/radialaxis/__init__.py22
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/radialaxis/_autorangeoptions.py216
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/radialaxis/_tickfont.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/radialaxis/_tickformatstop.py241
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/radialaxis/_title.py104
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/radialaxis/title/__init__.py9
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/radialaxis/title/_font.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/__init__.py32
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/_annotation.py1243
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/_aspectratio.py119
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/_camera.py183
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/_domain.py170
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/_xaxis.py2111
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/_yaxis.py2111
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/_zaxis.py2111
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/annotation/__init__.py13
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/annotation/_font.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/annotation/_hoverlabel.py151
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/annotation/hoverlabel/__init__.py9
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/annotation/hoverlabel/_font.py335
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/camera/__init__.py16
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/camera/_center.py121
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/camera/_eye.py121
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/camera/_projection.py83
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/camera/_up.py122
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/xaxis/__init__.py22
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/xaxis/_autorangeoptions.py216
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/xaxis/_tickfont.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/xaxis/_tickformatstop.py241
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/xaxis/_title.py104
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/xaxis/title/__init__.py9
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/xaxis/title/_font.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/yaxis/__init__.py22
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/yaxis/_autorangeoptions.py216
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/yaxis/_tickfont.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/yaxis/_tickformatstop.py241
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/yaxis/_title.py104
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/yaxis/title/__init__.py9
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/yaxis/title/_font.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/zaxis/__init__.py22
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/zaxis/_autorangeoptions.py216
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/zaxis/_tickfont.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/zaxis/_tickformatstop.py241
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/zaxis/_title.py104
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/zaxis/title/__init__.py9
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/zaxis/title/_font.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/selection/__init__.py9
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/selection/_line.py139
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/__init__.py17
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/_label.py396
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/_legendgrouptitle.py104
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/_line.py139
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/label/__init__.py9
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/label/_font.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/legendgrouptitle/__init__.py9
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/legendgrouptitle/_font.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/__init__.py24
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/_currentvalue.py220
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/_font.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/_pad.py159
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/_step.py354
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/_transition.py109
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/currentvalue/__init__.py9
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/currentvalue/_font.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/__init__.py17
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/_domain.py170
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/_imaginaryaxis.py865
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/_realaxis.py922
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/imaginaryaxis/__init__.py11
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/imaginaryaxis/_tickfont.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/realaxis/__init__.py11
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/realaxis/_tickfont.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/__init__.py13
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/_data.py1435
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/_layout.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/__init__.py111
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_bar.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_barpolar.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_box.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_candlestick.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_carpet.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_choropleth.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_choroplethmap.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_choroplethmapbox.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_cone.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_contour.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_contourcarpet.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_densitymap.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_densitymapbox.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_funnel.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_funnelarea.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_heatmap.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_histogram.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_histogram2d.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_histogram2dcontour.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_icicle.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_image.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_indicator.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_isosurface.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_mesh3d.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_ohlc.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_parcats.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_parcoords.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_pie.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_sankey.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scatter.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scatter3d.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scattercarpet.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scattergeo.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scattergl.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scattermap.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scattermapbox.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scatterpolar.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scatterpolargl.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scattersmith.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scatterternary.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_splom.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_streamtube.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_sunburst.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_surface.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_table.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_treemap.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_violin.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_volume.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_waterfall.py1
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/__init__.py19
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/_aaxis.py1474
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/_baxis.py1474
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/_caxis.py1474
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/_domain.py170
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/aaxis/__init__.py16
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/aaxis/_tickfont.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/aaxis/_tickformatstop.py241
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/aaxis/_title.py104
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/aaxis/title/__init__.py9
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/aaxis/title/_font.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/baxis/__init__.py16
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/baxis/_tickfont.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/baxis/_tickformatstop.py241
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/baxis/_title.py104
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/baxis/title/__init__.py9
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/baxis/title/_font.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/caxis/__init__.py16
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/caxis/_tickfont.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/caxis/_tickformatstop.py241
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/caxis/_title.py104
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/caxis/title/__init__.py9
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/caxis/title/_font.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/title/__init__.py14
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/title/_font.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/title/_pad.py164
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/title/_subtitle.py104
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/title/subtitle/__init__.py9
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/title/subtitle/_font.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/updatemenu/__init__.py13
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/updatemenu/_button.py359
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/updatemenu/_font.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/updatemenu/_pad.py159
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/__init__.py32
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_autorangeoptions.py216
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_minor.py566
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_rangebreak.py330
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_rangeselector.py427
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_rangeslider.py311
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_tickfont.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_tickformatstop.py241
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_title.py150
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/rangeselector/__init__.py12
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/rangeselector/_button.py318
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/rangeselector/_font.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/rangeslider/__init__.py9
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/rangeslider/_yaxis.py118
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/title/__init__.py9
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/title/_font.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/__init__.py26
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/_autorangeoptions.py216
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/_minor.py566
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/_rangebreak.py330
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/_tickfont.py334
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/_tickformatstop.py241
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/_title.py150
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/title/__init__.py9
-rw-r--r--venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/title/_font.py334
288 files changed, 74548 insertions, 0 deletions
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/__init__.py
new file mode 100644
index 0000000..9fe6cad
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/__init__.py
@@ -0,0 +1,120 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._activeselection import Activeselection
+ from ._activeshape import Activeshape
+ from ._annotation import Annotation
+ from ._coloraxis import Coloraxis
+ from ._colorscale import Colorscale
+ from ._font import Font
+ from ._geo import Geo
+ from ._grid import Grid
+ from ._hoverlabel import Hoverlabel
+ from ._image import Image
+ from ._legend import Legend
+ from ._map import Map
+ from ._mapbox import Mapbox
+ from ._margin import Margin
+ from ._modebar import Modebar
+ from ._newselection import Newselection
+ from ._newshape import Newshape
+ from ._polar import Polar
+ from ._scene import Scene
+ from ._selection import Selection
+ from ._shape import Shape
+ from ._slider import Slider
+ from ._smith import Smith
+ from ._template import Template
+ from ._ternary import Ternary
+ from ._title import Title
+ from ._transition import Transition
+ from ._uniformtext import Uniformtext
+ from ._updatemenu import Updatemenu
+ from ._xaxis import XAxis
+ from ._yaxis import YAxis
+ from . import annotation
+ from . import coloraxis
+ from . import geo
+ from . import grid
+ from . import hoverlabel
+ from . import legend
+ from . import map
+ from . import mapbox
+ from . import newselection
+ from . import newshape
+ from . import polar
+ from . import scene
+ from . import selection
+ from . import shape
+ from . import slider
+ from . import smith
+ from . import template
+ from . import ternary
+ from . import title
+ from . import updatemenu
+ from . import xaxis
+ from . import yaxis
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__,
+ [
+ ".annotation",
+ ".coloraxis",
+ ".geo",
+ ".grid",
+ ".hoverlabel",
+ ".legend",
+ ".map",
+ ".mapbox",
+ ".newselection",
+ ".newshape",
+ ".polar",
+ ".scene",
+ ".selection",
+ ".shape",
+ ".slider",
+ ".smith",
+ ".template",
+ ".ternary",
+ ".title",
+ ".updatemenu",
+ ".xaxis",
+ ".yaxis",
+ ],
+ [
+ "._activeselection.Activeselection",
+ "._activeshape.Activeshape",
+ "._annotation.Annotation",
+ "._coloraxis.Coloraxis",
+ "._colorscale.Colorscale",
+ "._font.Font",
+ "._geo.Geo",
+ "._grid.Grid",
+ "._hoverlabel.Hoverlabel",
+ "._image.Image",
+ "._legend.Legend",
+ "._map.Map",
+ "._mapbox.Mapbox",
+ "._margin.Margin",
+ "._modebar.Modebar",
+ "._newselection.Newselection",
+ "._newshape.Newshape",
+ "._polar.Polar",
+ "._scene.Scene",
+ "._selection.Selection",
+ "._shape.Shape",
+ "._slider.Slider",
+ "._smith.Smith",
+ "._template.Template",
+ "._ternary.Ternary",
+ "._title.Title",
+ "._transition.Transition",
+ "._uniformtext.Uniformtext",
+ "._updatemenu.Updatemenu",
+ "._xaxis.XAxis",
+ "._yaxis.YAxis",
+ ],
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_activeselection.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_activeselection.py
new file mode 100644
index 0000000..df89476
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_activeselection.py
@@ -0,0 +1,104 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Activeselection(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.activeselection"
+ _valid_props = {"fillcolor", "opacity"}
+
+ @property
+ def fillcolor(self):
+ """
+ Sets the color filling the active selection' interior.
+
+ The 'fillcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["fillcolor"]
+
+ @fillcolor.setter
+ def fillcolor(self, val):
+ self["fillcolor"] = val
+
+ @property
+ def opacity(self):
+ """
+ Sets the opacity of the active selection.
+
+ The 'opacity' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["opacity"]
+
+ @opacity.setter
+ def opacity(self, val):
+ self["opacity"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ fillcolor
+ Sets the color filling the active selection' interior.
+ opacity
+ Sets the opacity of the active selection.
+ """
+
+ def __init__(self, arg=None, fillcolor=None, opacity=None, **kwargs):
+ """
+ Construct a new Activeselection object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.Activeselection`
+ fillcolor
+ Sets the color filling the active selection' interior.
+ opacity
+ Sets the opacity of the active selection.
+
+ Returns
+ -------
+ Activeselection
+ """
+ super().__init__("activeselection")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Activeselection
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.Activeselection`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("fillcolor", arg, fillcolor)
+ self._set_property("opacity", arg, opacity)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_activeshape.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_activeshape.py
new file mode 100644
index 0000000..e350187
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_activeshape.py
@@ -0,0 +1,104 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Activeshape(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.activeshape"
+ _valid_props = {"fillcolor", "opacity"}
+
+ @property
+ def fillcolor(self):
+ """
+ Sets the color filling the active shape' interior.
+
+ The 'fillcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["fillcolor"]
+
+ @fillcolor.setter
+ def fillcolor(self, val):
+ self["fillcolor"] = val
+
+ @property
+ def opacity(self):
+ """
+ Sets the opacity of the active shape.
+
+ The 'opacity' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["opacity"]
+
+ @opacity.setter
+ def opacity(self, val):
+ self["opacity"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ fillcolor
+ Sets the color filling the active shape' interior.
+ opacity
+ Sets the opacity of the active shape.
+ """
+
+ def __init__(self, arg=None, fillcolor=None, opacity=None, **kwargs):
+ """
+ Construct a new Activeshape object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.Activeshape`
+ fillcolor
+ Sets the color filling the active shape' interior.
+ opacity
+ Sets the opacity of the active shape.
+
+ Returns
+ -------
+ Activeshape
+ """
+ super().__init__("activeshape")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Activeshape
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.Activeshape`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("fillcolor", arg, fillcolor)
+ self._set_property("opacity", arg, opacity)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_annotation.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_annotation.py
new file mode 100644
index 0000000..5be9964
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_annotation.py
@@ -0,0 +1,1714 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Annotation(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.annotation"
+ _valid_props = {
+ "align",
+ "arrowcolor",
+ "arrowhead",
+ "arrowside",
+ "arrowsize",
+ "arrowwidth",
+ "ax",
+ "axref",
+ "ay",
+ "ayref",
+ "bgcolor",
+ "bordercolor",
+ "borderpad",
+ "borderwidth",
+ "captureevents",
+ "clicktoshow",
+ "font",
+ "height",
+ "hoverlabel",
+ "hovertext",
+ "name",
+ "opacity",
+ "showarrow",
+ "standoff",
+ "startarrowhead",
+ "startarrowsize",
+ "startstandoff",
+ "templateitemname",
+ "text",
+ "textangle",
+ "valign",
+ "visible",
+ "width",
+ "x",
+ "xanchor",
+ "xclick",
+ "xref",
+ "xshift",
+ "y",
+ "yanchor",
+ "yclick",
+ "yref",
+ "yshift",
+ }
+
+ @property
+ def align(self):
+ """
+ Sets the horizontal alignment of the `text` within the box. Has
+ an effect only if `text` spans two or more lines (i.e. `text`
+ contains one or more <br> HTML tags) or if an explicit width is
+ set to override the text width.
+
+ The 'align' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['left', 'center', 'right']
+
+ Returns
+ -------
+ Any
+ """
+ return self["align"]
+
+ @align.setter
+ def align(self, val):
+ self["align"] = val
+
+ @property
+ def arrowcolor(self):
+ """
+ Sets the color of the annotation arrow.
+
+ The 'arrowcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["arrowcolor"]
+
+ @arrowcolor.setter
+ def arrowcolor(self, val):
+ self["arrowcolor"] = val
+
+ @property
+ def arrowhead(self):
+ """
+ Sets the end annotation arrow head style.
+
+ The 'arrowhead' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [0, 8]
+
+ Returns
+ -------
+ int
+ """
+ return self["arrowhead"]
+
+ @arrowhead.setter
+ def arrowhead(self, val):
+ self["arrowhead"] = val
+
+ @property
+ def arrowside(self):
+ """
+ Sets the annotation arrow head position.
+
+ The 'arrowside' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['end', 'start'] joined with '+' characters
+ (e.g. 'end+start')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["arrowside"]
+
+ @arrowside.setter
+ def arrowside(self, val):
+ self["arrowside"] = val
+
+ @property
+ def arrowsize(self):
+ """
+ Sets the size of the end annotation arrow head, relative to
+ `arrowwidth`. A value of 1 (default) gives a head about 3x as
+ wide as the line.
+
+ The 'arrowsize' property is a number and may be specified as:
+ - An int or float in the interval [0.3, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["arrowsize"]
+
+ @arrowsize.setter
+ def arrowsize(self, val):
+ self["arrowsize"] = val
+
+ @property
+ def arrowwidth(self):
+ """
+ Sets the width (in px) of annotation arrow line.
+
+ The 'arrowwidth' property is a number and may be specified as:
+ - An int or float in the interval [0.1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["arrowwidth"]
+
+ @arrowwidth.setter
+ def arrowwidth(self, val):
+ self["arrowwidth"] = val
+
+ @property
+ def ax(self):
+ """
+ Sets the x component of the arrow tail about the arrow head. If
+ `axref` is `pixel`, a positive (negative) component corresponds
+ to an arrow pointing from right to left (left to right). If
+ `axref` is not `pixel` and is exactly the same as `xref`, this
+ is an absolute value on that axis, like `x`, specified in the
+ same coordinates as `xref`.
+
+ The 'ax' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["ax"]
+
+ @ax.setter
+ def ax(self, val):
+ self["ax"] = val
+
+ @property
+ def axref(self):
+ """
+ Indicates in what coordinates the tail of the annotation
+ (ax,ay) is specified. If set to a x axis id (e.g. "x" or "x2"),
+ the `x` position refers to a x coordinate. If set to "paper",
+ the `x` position refers to the distance from the left of the
+ plotting area in normalized coordinates where 0 (1) corresponds
+ to the left (right). If set to a x axis ID followed by "domain"
+ (separated by a space), the position behaves like for "paper",
+ but refers to the distance in fractions of the domain length
+ from the left of the domain of that axis: e.g., *x2 domain*
+ refers to the domain of the second x axis and a x position of
+ 0.5 refers to the point between the left and the right of the
+ domain of the second x axis. In order for absolute positioning
+ of the arrow to work, "axref" must be exactly the same as
+ "xref", otherwise "axref" will revert to "pixel" (explained
+ next). For relative positioning, "axref" can be set to "pixel",
+ in which case the "ax" value is specified in pixels relative to
+ "x". Absolute positioning is useful for trendline annotations
+ which should continue to indicate the correct trend when
+ zoomed. Relative positioning is useful for specifying the text
+ offset for an annotated point.
+
+ The 'axref' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['pixel']
+ - A string that matches one of the following regular expressions:
+ ['^x([2-9]|[1-9][0-9]+)?( domain)?$']
+
+ Returns
+ -------
+ Any
+ """
+ return self["axref"]
+
+ @axref.setter
+ def axref(self, val):
+ self["axref"] = val
+
+ @property
+ def ay(self):
+ """
+ Sets the y component of the arrow tail about the arrow head. If
+ `ayref` is `pixel`, a positive (negative) component corresponds
+ to an arrow pointing from bottom to top (top to bottom). If
+ `ayref` is not `pixel` and is exactly the same as `yref`, this
+ is an absolute value on that axis, like `y`, specified in the
+ same coordinates as `yref`.
+
+ The 'ay' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["ay"]
+
+ @ay.setter
+ def ay(self, val):
+ self["ay"] = val
+
+ @property
+ def ayref(self):
+ """
+ Indicates in what coordinates the tail of the annotation
+ (ax,ay) is specified. If set to a y axis id (e.g. "y" or "y2"),
+ the `y` position refers to a y coordinate. If set to "paper",
+ the `y` position refers to the distance from the bottom of the
+ plotting area in normalized coordinates where 0 (1) corresponds
+ to the bottom (top). If set to a y axis ID followed by "domain"
+ (separated by a space), the position behaves like for "paper",
+ but refers to the distance in fractions of the domain length
+ from the bottom of the domain of that axis: e.g., *y2 domain*
+ refers to the domain of the second y axis and a y position of
+ 0.5 refers to the point between the bottom and the top of the
+ domain of the second y axis. In order for absolute positioning
+ of the arrow to work, "ayref" must be exactly the same as
+ "yref", otherwise "ayref" will revert to "pixel" (explained
+ next). For relative positioning, "ayref" can be set to "pixel",
+ in which case the "ay" value is specified in pixels relative to
+ "y". Absolute positioning is useful for trendline annotations
+ which should continue to indicate the correct trend when
+ zoomed. Relative positioning is useful for specifying the text
+ offset for an annotated point.
+
+ The 'ayref' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['pixel']
+ - A string that matches one of the following regular expressions:
+ ['^y([2-9]|[1-9][0-9]+)?( domain)?$']
+
+ Returns
+ -------
+ Any
+ """
+ return self["ayref"]
+
+ @ayref.setter
+ def ayref(self, val):
+ self["ayref"] = val
+
+ @property
+ def bgcolor(self):
+ """
+ Sets the background color of the annotation.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["bgcolor"]
+
+ @bgcolor.setter
+ def bgcolor(self, val):
+ self["bgcolor"] = val
+
+ @property
+ def bordercolor(self):
+ """
+ Sets the color of the border enclosing the annotation `text`.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["bordercolor"]
+
+ @bordercolor.setter
+ def bordercolor(self, val):
+ self["bordercolor"] = val
+
+ @property
+ def borderpad(self):
+ """
+ Sets the padding (in px) between the `text` and the enclosing
+ border.
+
+ The 'borderpad' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["borderpad"]
+
+ @borderpad.setter
+ def borderpad(self, val):
+ self["borderpad"] = val
+
+ @property
+ def borderwidth(self):
+ """
+ Sets the width (in px) of the border enclosing the annotation
+ `text`.
+
+ 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
+
+ @property
+ def captureevents(self):
+ """
+ Determines whether the annotation text box captures mouse move
+ and click events, or allows those events to pass through to
+ data points in the plot that may be behind the annotation. By
+ default `captureevents` is False unless `hovertext` is
+ provided. If you use the event `plotly_clickannotation` without
+ `hovertext` you must explicitly enable `captureevents`.
+
+ The 'captureevents' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["captureevents"]
+
+ @captureevents.setter
+ def captureevents(self, val):
+ self["captureevents"] = val
+
+ @property
+ def clicktoshow(self):
+ """
+ Makes this annotation respond to clicks on the plot. If you
+ click a data point that exactly matches the `x` and `y` values
+ of this annotation, and it is hidden (visible: false), it will
+ appear. In "onoff" mode, you must click the same point again to
+ make it disappear, so if you click multiple points, you can
+ show multiple annotations. In "onout" mode, a click anywhere
+ else in the plot (on another data point or not) will hide this
+ annotation. If you need to show/hide this annotation in
+ response to different `x` or `y` values, you can set `xclick`
+ and/or `yclick`. This is useful for example to label the side
+ of a bar. To label markers though, `standoff` is preferred over
+ `xclick` and `yclick`.
+
+ The 'clicktoshow' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ [False, 'onoff', 'onout']
+
+ Returns
+ -------
+ Any
+ """
+ return self["clicktoshow"]
+
+ @clicktoshow.setter
+ def clicktoshow(self, val):
+ self["clicktoshow"] = val
+
+ @property
+ def font(self):
+ """
+ Sets the annotation text font.
+
+ The 'font' property is an instance of Font
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.annotation.Font`
+ - A dict of string/value properties that will be passed
+ to the Font constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.annotation.Font
+ """
+ return self["font"]
+
+ @font.setter
+ def font(self, val):
+ self["font"] = val
+
+ @property
+ def height(self):
+ """
+ Sets an explicit height for the text box. null (default) lets
+ the text set the box height. Taller text will be clipped.
+
+ The 'height' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["height"]
+
+ @height.setter
+ def height(self, val):
+ self["height"] = val
+
+ @property
+ def hoverlabel(self):
+ """
+ The 'hoverlabel' property is an instance of Hoverlabel
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.annotation.Hoverlabel`
+ - A dict of string/value properties that will be passed
+ to the Hoverlabel constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.annotation.Hoverlabel
+ """
+ return self["hoverlabel"]
+
+ @hoverlabel.setter
+ def hoverlabel(self, val):
+ self["hoverlabel"] = val
+
+ @property
+ def hovertext(self):
+ """
+ Sets text to appear when hovering over this annotation. If
+ omitted or blank, no hover label will appear.
+
+ The 'hovertext' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["hovertext"]
+
+ @hovertext.setter
+ def hovertext(self, val):
+ self["hovertext"] = val
+
+ @property
+ def name(self):
+ """
+ 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.
+
+ The 'name' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["name"]
+
+ @name.setter
+ def name(self, val):
+ self["name"] = val
+
+ @property
+ def opacity(self):
+ """
+ Sets the opacity of the annotation (text + arrow).
+
+ The 'opacity' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["opacity"]
+
+ @opacity.setter
+ def opacity(self, val):
+ self["opacity"] = val
+
+ @property
+ def showarrow(self):
+ """
+ Determines whether or not the annotation is drawn with an
+ arrow. If True, `text` is placed near the arrow's tail. If
+ False, `text` lines up with the `x` and `y` provided.
+
+ The 'showarrow' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showarrow"]
+
+ @showarrow.setter
+ def showarrow(self, val):
+ self["showarrow"] = val
+
+ @property
+ def standoff(self):
+ """
+ Sets a distance, in pixels, to move the end arrowhead away from
+ the position it is pointing at, for example to point at the
+ edge of a marker independent of zoom. Note that this shortens
+ the arrow from the `ax` / `ay` vector, in contrast to `xshift`
+ / `yshift` which moves everything by this amount.
+
+ The 'standoff' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["standoff"]
+
+ @standoff.setter
+ def standoff(self, val):
+ self["standoff"] = val
+
+ @property
+ def startarrowhead(self):
+ """
+ Sets the start annotation arrow head style.
+
+ The 'startarrowhead' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [0, 8]
+
+ Returns
+ -------
+ int
+ """
+ return self["startarrowhead"]
+
+ @startarrowhead.setter
+ def startarrowhead(self, val):
+ self["startarrowhead"] = val
+
+ @property
+ def startarrowsize(self):
+ """
+ Sets the size of the start annotation arrow head, relative to
+ `arrowwidth`. A value of 1 (default) gives a head about 3x as
+ wide as the line.
+
+ The 'startarrowsize' property is a number and may be specified as:
+ - An int or float in the interval [0.3, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["startarrowsize"]
+
+ @startarrowsize.setter
+ def startarrowsize(self, val):
+ self["startarrowsize"] = val
+
+ @property
+ def startstandoff(self):
+ """
+ Sets a distance, in pixels, to move the start arrowhead away
+ from the position it is pointing at, for example to point at
+ the edge of a marker independent of zoom. Note that this
+ shortens the arrow from the `ax` / `ay` vector, in contrast to
+ `xshift` / `yshift` which moves everything by this amount.
+
+ The 'startstandoff' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["startstandoff"]
+
+ @startstandoff.setter
+ def startstandoff(self, val):
+ self["startstandoff"] = val
+
+ @property
+ def templateitemname(self):
+ """
+ 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`.
+
+ The 'templateitemname' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["templateitemname"]
+
+ @templateitemname.setter
+ def templateitemname(self, val):
+ self["templateitemname"] = val
+
+ @property
+ def text(self):
+ """
+ Sets the text associated with this annotation. Plotly uses a
+ subset of HTML tags to do things like newline (<br>), bold
+ (<b></b>), italics (<i></i>), hyperlinks (<a href='...'></a>).
+ Tags <em>, <sup>, <sub>, <s>, <u> <span> are also supported.
+
+ 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
+
+ @property
+ def textangle(self):
+ """
+ Sets the angle at which the `text` is drawn with respect to the
+ horizontal.
+
+ The 'textangle' property is a angle (in degrees) that may be
+ specified as a number between -180 and 180.
+ Numeric values outside this range are converted to the equivalent value
+ (e.g. 270 is converted to -90).
+
+ Returns
+ -------
+ int|float
+ """
+ return self["textangle"]
+
+ @textangle.setter
+ def textangle(self, val):
+ self["textangle"] = val
+
+ @property
+ def valign(self):
+ """
+ Sets the vertical alignment of the `text` within the box. Has
+ an effect only if an explicit height is set to override the
+ text height.
+
+ 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
+
+ @property
+ def visible(self):
+ """
+ Determines whether or not this annotation is visible.
+
+ The 'visible' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["visible"]
+
+ @visible.setter
+ def visible(self, val):
+ self["visible"] = val
+
+ @property
+ def width(self):
+ """
+ Sets an explicit width for the text box. null (default) lets
+ the text set the box width. Wider text will be clipped. There
+ is no automatic wrapping; use <br> to start a new line.
+
+ The 'width' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["width"]
+
+ @width.setter
+ def width(self, val):
+ self["width"] = val
+
+ @property
+ def x(self):
+ """
+ Sets the annotation's x position. If the axis `type` is "log",
+ then you must take the log of your desired range. If the axis
+ `type` is "date", it should be date strings, like date data,
+ though Date objects and unix milliseconds will be accepted and
+ converted to strings. If the axis `type` is "category", it
+ should be numbers, using the scale where each category is
+ assigned a serial number from zero in the order it appears.
+
+ The 'x' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["x"]
+
+ @x.setter
+ def x(self, val):
+ self["x"] = val
+
+ @property
+ def xanchor(self):
+ """
+ Sets the text box's horizontal position anchor This anchor
+ binds the `x` position to the "left", "center" or "right" of
+ the annotation. For example, if `x` is set to 1, `xref` to
+ "paper" and `xanchor` to "right" then the right-most portion of
+ the annotation lines up with the right-most edge of the
+ plotting area. If "auto", the anchor is equivalent to "center"
+ for data-referenced annotations or if there is an arrow,
+ whereas for paper-referenced with no arrow, the anchor picked
+ corresponds to the closest side.
+
+ 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
+
+ @property
+ def xclick(self):
+ """
+ Toggle this annotation when clicking a data point whose `x`
+ value is `xclick` rather than the annotation's `x` value.
+
+ The 'xclick' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["xclick"]
+
+ @xclick.setter
+ def xclick(self, val):
+ self["xclick"] = val
+
+ @property
+ def xref(self):
+ """
+ Sets the annotation's x coordinate axis. If set to a x axis id
+ (e.g. "x" or "x2"), the `x` position refers to a x coordinate.
+ If set to "paper", the `x` position refers to the distance from
+ the left of the plotting area in normalized coordinates where 0
+ (1) corresponds to the left (right). If set to a x axis ID
+ followed by "domain" (separated by a space), the position
+ behaves like for "paper", but refers to the distance in
+ fractions of the domain length from the left of the domain of
+ that axis: e.g., *x2 domain* refers to the domain of the second
+ x axis and a x position of 0.5 refers to the point between the
+ left and the right of the domain of the second x axis.
+
+ The 'xref' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['paper']
+ - A string that matches one of the following regular expressions:
+ ['^x([2-9]|[1-9][0-9]+)?( domain)?$']
+
+ Returns
+ -------
+ Any
+ """
+ return self["xref"]
+
+ @xref.setter
+ def xref(self, val):
+ self["xref"] = val
+
+ @property
+ def xshift(self):
+ """
+ Shifts the position of the whole annotation and arrow to the
+ right (positive) or left (negative) by this many pixels.
+
+ The 'xshift' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["xshift"]
+
+ @xshift.setter
+ def xshift(self, val):
+ self["xshift"] = val
+
+ @property
+ def y(self):
+ """
+ Sets the annotation's y position. If the axis `type` is "log",
+ then you must take the log of your desired range. If the axis
+ `type` is "date", it should be date strings, like date data,
+ though Date objects and unix milliseconds will be accepted and
+ converted to strings. If the axis `type` is "category", it
+ should be numbers, using the scale where each category is
+ assigned a serial number from zero in the order it appears.
+
+ The 'y' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["y"]
+
+ @y.setter
+ def y(self, val):
+ self["y"] = val
+
+ @property
+ def yanchor(self):
+ """
+ Sets the text box's vertical position anchor This anchor binds
+ the `y` position to the "top", "middle" or "bottom" of the
+ annotation. For example, if `y` is set to 1, `yref` to "paper"
+ and `yanchor` to "top" then the top-most portion of the
+ annotation lines up with the top-most edge of the plotting
+ area. If "auto", the anchor is equivalent to "middle" for data-
+ referenced annotations or if there is an arrow, whereas for
+ paper-referenced with no arrow, the anchor picked corresponds
+ to the closest side.
+
+ 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
+
+ @property
+ def yclick(self):
+ """
+ Toggle this annotation when clicking a data point whose `y`
+ value is `yclick` rather than the annotation's `y` value.
+
+ The 'yclick' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["yclick"]
+
+ @yclick.setter
+ def yclick(self, val):
+ self["yclick"] = val
+
+ @property
+ def yref(self):
+ """
+ Sets the annotation's y coordinate axis. If set to a y axis id
+ (e.g. "y" or "y2"), the `y` position refers to a y coordinate.
+ If set to "paper", the `y` position refers to the distance from
+ the bottom of the plotting area in normalized coordinates where
+ 0 (1) corresponds to the bottom (top). If set to a y axis ID
+ followed by "domain" (separated by a space), the position
+ behaves like for "paper", but refers to the distance in
+ fractions of the domain length from the bottom of the domain of
+ that axis: e.g., *y2 domain* refers to the domain of the second
+ y axis and a y position of 0.5 refers to the point between the
+ bottom and the top of the domain of the second y axis.
+
+ The 'yref' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['paper']
+ - A string that matches one of the following regular expressions:
+ ['^y([2-9]|[1-9][0-9]+)?( domain)?$']
+
+ Returns
+ -------
+ Any
+ """
+ return self["yref"]
+
+ @yref.setter
+ def yref(self, val):
+ self["yref"] = val
+
+ @property
+ def yshift(self):
+ """
+ Shifts the position of the whole annotation and arrow up
+ (positive) or down (negative) by this many pixels.
+
+ The 'yshift' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["yshift"]
+
+ @yshift.setter
+ def yshift(self, val):
+ self["yshift"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ align
+ Sets the horizontal alignment of the `text` within the
+ box. Has an effect only if `text` spans two or more
+ lines (i.e. `text` contains one or more <br> HTML tags)
+ or if an explicit width is set to override the text
+ width.
+ arrowcolor
+ Sets the color of the annotation arrow.
+ arrowhead
+ Sets the end annotation arrow head style.
+ arrowside
+ Sets the annotation arrow head position.
+ arrowsize
+ Sets the size of the end annotation arrow head,
+ relative to `arrowwidth`. A value of 1 (default) gives
+ a head about 3x as wide as the line.
+ arrowwidth
+ Sets the width (in px) of annotation arrow line.
+ ax
+ Sets the x component of the arrow tail about the arrow
+ head. If `axref` is `pixel`, a positive (negative)
+ component corresponds to an arrow pointing from right
+ to left (left to right). If `axref` is not `pixel` and
+ is exactly the same as `xref`, this is an absolute
+ value on that axis, like `x`, specified in the same
+ coordinates as `xref`.
+ axref
+ Indicates in what coordinates the tail of the
+ annotation (ax,ay) is specified. If set to a x axis id
+ (e.g. "x" or "x2"), the `x` position refers to a x
+ coordinate. If set to "paper", the `x` position refers
+ to the distance from the left of the plotting area in
+ normalized coordinates where 0 (1) corresponds to the
+ left (right). If set to a x axis ID followed by
+ "domain" (separated by a space), the position behaves
+ like for "paper", but refers to the distance in
+ fractions of the domain length from the left of the
+ domain of that axis: e.g., *x2 domain* refers to the
+ domain of the second x axis and a x position of 0.5
+ refers to the point between the left and the right of
+ the domain of the second x axis. In order for absolute
+ positioning of the arrow to work, "axref" must be
+ exactly the same as "xref", otherwise "axref" will
+ revert to "pixel" (explained next). For relative
+ positioning, "axref" can be set to "pixel", in which
+ case the "ax" value is specified in pixels relative to
+ "x". Absolute positioning is useful for trendline
+ annotations which should continue to indicate the
+ correct trend when zoomed. Relative positioning is
+ useful for specifying the text offset for an annotated
+ point.
+ ay
+ Sets the y component of the arrow tail about the arrow
+ head. If `ayref` is `pixel`, a positive (negative)
+ component corresponds to an arrow pointing from bottom
+ to top (top to bottom). If `ayref` is not `pixel` and
+ is exactly the same as `yref`, this is an absolute
+ value on that axis, like `y`, specified in the same
+ coordinates as `yref`.
+ ayref
+ Indicates in what coordinates the tail of the
+ annotation (ax,ay) is specified. If set to a y axis id
+ (e.g. "y" or "y2"), the `y` position refers to a y
+ coordinate. If set to "paper", the `y` position refers
+ to the distance from the bottom of the plotting area in
+ normalized coordinates where 0 (1) corresponds to the
+ bottom (top). If set to a y axis ID followed by
+ "domain" (separated by a space), the position behaves
+ like for "paper", but refers to the distance in
+ fractions of the domain length from the bottom of the
+ domain of that axis: e.g., *y2 domain* refers to the
+ domain of the second y axis and a y position of 0.5
+ refers to the point between the bottom and the top of
+ the domain of the second y axis. In order for absolute
+ positioning of the arrow to work, "ayref" must be
+ exactly the same as "yref", otherwise "ayref" will
+ revert to "pixel" (explained next). For relative
+ positioning, "ayref" can be set to "pixel", in which
+ case the "ay" value is specified in pixels relative to
+ "y". Absolute positioning is useful for trendline
+ annotations which should continue to indicate the
+ correct trend when zoomed. Relative positioning is
+ useful for specifying the text offset for an annotated
+ point.
+ bgcolor
+ Sets the background color of the annotation.
+ bordercolor
+ Sets the color of the border enclosing the annotation
+ `text`.
+ borderpad
+ Sets the padding (in px) between the `text` and the
+ enclosing border.
+ borderwidth
+ Sets the width (in px) of the border enclosing the
+ annotation `text`.
+ captureevents
+ Determines whether the annotation text box captures
+ mouse move and click events, or allows those events to
+ pass through to data points in the plot that may be
+ behind the annotation. By default `captureevents` is
+ False unless `hovertext` is provided. If you use the
+ event `plotly_clickannotation` without `hovertext` you
+ must explicitly enable `captureevents`.
+ clicktoshow
+ Makes this annotation respond to clicks on the plot. If
+ you click a data point that exactly matches the `x` and
+ `y` values of this annotation, and it is hidden
+ (visible: false), it will appear. In "onoff" mode, you
+ must click the same point again to make it disappear,
+ so if you click multiple points, you can show multiple
+ annotations. In "onout" mode, a click anywhere else in
+ the plot (on another data point or not) will hide this
+ annotation. If you need to show/hide this annotation in
+ response to different `x` or `y` values, you can set
+ `xclick` and/or `yclick`. This is useful for example to
+ label the side of a bar. To label markers though,
+ `standoff` is preferred over `xclick` and `yclick`.
+ font
+ Sets the annotation text font.
+ height
+ Sets an explicit height for the text box. null
+ (default) lets the text set the box height. Taller text
+ will be clipped.
+ hoverlabel
+ :class:`plotly.graph_objects.layout.annotation.Hoverlab
+ el` instance or dict with compatible properties
+ hovertext
+ Sets text to appear when hovering over this annotation.
+ If omitted or blank, no hover label will appear.
+ 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.
+ opacity
+ Sets the opacity of the annotation (text + arrow).
+ showarrow
+ Determines whether or not the annotation is drawn with
+ an arrow. If True, `text` is placed near the arrow's
+ tail. If False, `text` lines up with the `x` and `y`
+ provided.
+ standoff
+ Sets a distance, in pixels, to move the end arrowhead
+ away from the position it is pointing at, for example
+ to point at the edge of a marker independent of zoom.
+ Note that this shortens the arrow from the `ax` / `ay`
+ vector, in contrast to `xshift` / `yshift` which moves
+ everything by this amount.
+ startarrowhead
+ Sets the start annotation arrow head style.
+ startarrowsize
+ Sets the size of the start annotation arrow head,
+ relative to `arrowwidth`. A value of 1 (default) gives
+ a head about 3x as wide as the line.
+ startstandoff
+ Sets a distance, in pixels, to move the start arrowhead
+ away from the position it is pointing at, for example
+ to point at the edge of a marker independent of zoom.
+ Note that this shortens the arrow from the `ax` / `ay`
+ vector, in contrast to `xshift` / `yshift` which moves
+ everything by this amount.
+ 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`.
+ text
+ Sets the text associated with this annotation. Plotly
+ uses a subset of HTML tags to do things like newline
+ (<br>), bold (<b></b>), italics (<i></i>), hyperlinks
+ (<a href='...'></a>). Tags <em>, <sup>, <sub>, <s>, <u>
+ <span> are also supported.
+ textangle
+ Sets the angle at which the `text` is drawn with
+ respect to the horizontal.
+ valign
+ Sets the vertical alignment of the `text` within the
+ box. Has an effect only if an explicit height is set to
+ override the text height.
+ visible
+ Determines whether or not this annotation is visible.
+ width
+ Sets an explicit width for the text box. null (default)
+ lets the text set the box width. Wider text will be
+ clipped. There is no automatic wrapping; use <br> to
+ start a new line.
+ x
+ Sets the annotation's x position. If the axis `type` is
+ "log", then you must take the log of your desired
+ range. If the axis `type` is "date", it should be date
+ strings, like date data, though Date objects and unix
+ milliseconds will be accepted and converted to strings.
+ If the axis `type` is "category", it should be numbers,
+ using the scale where each category is assigned a
+ serial number from zero in the order it appears.
+ xanchor
+ Sets the text box's horizontal position anchor This
+ anchor binds the `x` position to the "left", "center"
+ or "right" of the annotation. For example, if `x` is
+ set to 1, `xref` to "paper" and `xanchor` to "right"
+ then the right-most portion of the annotation lines up
+ with the right-most edge of the plotting area. If
+ "auto", the anchor is equivalent to "center" for data-
+ referenced annotations or if there is an arrow, whereas
+ for paper-referenced with no arrow, the anchor picked
+ corresponds to the closest side.
+ xclick
+ Toggle this annotation when clicking a data point whose
+ `x` value is `xclick` rather than the annotation's `x`
+ value.
+ xref
+ Sets the annotation's x coordinate axis. If set to a x
+ axis id (e.g. "x" or "x2"), the `x` position refers to
+ a x coordinate. If set to "paper", the `x` position
+ refers to the distance from the left of the plotting
+ area in normalized coordinates where 0 (1) corresponds
+ to the left (right). If set to a x axis ID followed by
+ "domain" (separated by a space), the position behaves
+ like for "paper", but refers to the distance in
+ fractions of the domain length from the left of the
+ domain of that axis: e.g., *x2 domain* refers to the
+ domain of the second x axis and a x position of 0.5
+ refers to the point between the left and the right of
+ the domain of the second x axis.
+ xshift
+ Shifts the position of the whole annotation and arrow
+ to the right (positive) or left (negative) by this many
+ pixels.
+ y
+ Sets the annotation's y position. If the axis `type` is
+ "log", then you must take the log of your desired
+ range. If the axis `type` is "date", it should be date
+ strings, like date data, though Date objects and unix
+ milliseconds will be accepted and converted to strings.
+ If the axis `type` is "category", it should be numbers,
+ using the scale where each category is assigned a
+ serial number from zero in the order it appears.
+ yanchor
+ Sets the text box's vertical position anchor This
+ anchor binds the `y` position to the "top", "middle" or
+ "bottom" of the annotation. For example, if `y` is set
+ to 1, `yref` to "paper" and `yanchor` to "top" then the
+ top-most portion of the annotation lines up with the
+ top-most edge of the plotting area. If "auto", the
+ anchor is equivalent to "middle" for data-referenced
+ annotations or if there is an arrow, whereas for paper-
+ referenced with no arrow, the anchor picked corresponds
+ to the closest side.
+ yclick
+ Toggle this annotation when clicking a data point whose
+ `y` value is `yclick` rather than the annotation's `y`
+ value.
+ yref
+ Sets the annotation's y coordinate axis. If set to a y
+ axis id (e.g. "y" or "y2"), the `y` position refers to
+ a y coordinate. If set to "paper", the `y` position
+ refers to the distance from the bottom of the plotting
+ area in normalized coordinates where 0 (1) corresponds
+ to the bottom (top). If set to a y axis ID followed by
+ "domain" (separated by a space), the position behaves
+ like for "paper", but refers to the distance in
+ fractions of the domain length from the bottom of the
+ domain of that axis: e.g., *y2 domain* refers to the
+ domain of the second y axis and a y position of 0.5
+ refers to the point between the bottom and the top of
+ the domain of the second y axis.
+ yshift
+ Shifts the position of the whole annotation and arrow
+ up (positive) or down (negative) by this many pixels.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ align=None,
+ arrowcolor=None,
+ arrowhead=None,
+ arrowside=None,
+ arrowsize=None,
+ arrowwidth=None,
+ ax=None,
+ axref=None,
+ ay=None,
+ ayref=None,
+ bgcolor=None,
+ bordercolor=None,
+ borderpad=None,
+ borderwidth=None,
+ captureevents=None,
+ clicktoshow=None,
+ font=None,
+ height=None,
+ hoverlabel=None,
+ hovertext=None,
+ name=None,
+ opacity=None,
+ showarrow=None,
+ standoff=None,
+ startarrowhead=None,
+ startarrowsize=None,
+ startstandoff=None,
+ templateitemname=None,
+ text=None,
+ textangle=None,
+ valign=None,
+ visible=None,
+ width=None,
+ x=None,
+ xanchor=None,
+ xclick=None,
+ xref=None,
+ xshift=None,
+ y=None,
+ yanchor=None,
+ yclick=None,
+ yref=None,
+ yshift=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Annotation object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.Annotation`
+ align
+ Sets the horizontal alignment of the `text` within the
+ box. Has an effect only if `text` spans two or more
+ lines (i.e. `text` contains one or more <br> HTML tags)
+ or if an explicit width is set to override the text
+ width.
+ arrowcolor
+ Sets the color of the annotation arrow.
+ arrowhead
+ Sets the end annotation arrow head style.
+ arrowside
+ Sets the annotation arrow head position.
+ arrowsize
+ Sets the size of the end annotation arrow head,
+ relative to `arrowwidth`. A value of 1 (default) gives
+ a head about 3x as wide as the line.
+ arrowwidth
+ Sets the width (in px) of annotation arrow line.
+ ax
+ Sets the x component of the arrow tail about the arrow
+ head. If `axref` is `pixel`, a positive (negative)
+ component corresponds to an arrow pointing from right
+ to left (left to right). If `axref` is not `pixel` and
+ is exactly the same as `xref`, this is an absolute
+ value on that axis, like `x`, specified in the same
+ coordinates as `xref`.
+ axref
+ Indicates in what coordinates the tail of the
+ annotation (ax,ay) is specified. If set to a x axis id
+ (e.g. "x" or "x2"), the `x` position refers to a x
+ coordinate. If set to "paper", the `x` position refers
+ to the distance from the left of the plotting area in
+ normalized coordinates where 0 (1) corresponds to the
+ left (right). If set to a x axis ID followed by
+ "domain" (separated by a space), the position behaves
+ like for "paper", but refers to the distance in
+ fractions of the domain length from the left of the
+ domain of that axis: e.g., *x2 domain* refers to the
+ domain of the second x axis and a x position of 0.5
+ refers to the point between the left and the right of
+ the domain of the second x axis. In order for absolute
+ positioning of the arrow to work, "axref" must be
+ exactly the same as "xref", otherwise "axref" will
+ revert to "pixel" (explained next). For relative
+ positioning, "axref" can be set to "pixel", in which
+ case the "ax" value is specified in pixels relative to
+ "x". Absolute positioning is useful for trendline
+ annotations which should continue to indicate the
+ correct trend when zoomed. Relative positioning is
+ useful for specifying the text offset for an annotated
+ point.
+ ay
+ Sets the y component of the arrow tail about the arrow
+ head. If `ayref` is `pixel`, a positive (negative)
+ component corresponds to an arrow pointing from bottom
+ to top (top to bottom). If `ayref` is not `pixel` and
+ is exactly the same as `yref`, this is an absolute
+ value on that axis, like `y`, specified in the same
+ coordinates as `yref`.
+ ayref
+ Indicates in what coordinates the tail of the
+ annotation (ax,ay) is specified. If set to a y axis id
+ (e.g. "y" or "y2"), the `y` position refers to a y
+ coordinate. If set to "paper", the `y` position refers
+ to the distance from the bottom of the plotting area in
+ normalized coordinates where 0 (1) corresponds to the
+ bottom (top). If set to a y axis ID followed by
+ "domain" (separated by a space), the position behaves
+ like for "paper", but refers to the distance in
+ fractions of the domain length from the bottom of the
+ domain of that axis: e.g., *y2 domain* refers to the
+ domain of the second y axis and a y position of 0.5
+ refers to the point between the bottom and the top of
+ the domain of the second y axis. In order for absolute
+ positioning of the arrow to work, "ayref" must be
+ exactly the same as "yref", otherwise "ayref" will
+ revert to "pixel" (explained next). For relative
+ positioning, "ayref" can be set to "pixel", in which
+ case the "ay" value is specified in pixels relative to
+ "y". Absolute positioning is useful for trendline
+ annotations which should continue to indicate the
+ correct trend when zoomed. Relative positioning is
+ useful for specifying the text offset for an annotated
+ point.
+ bgcolor
+ Sets the background color of the annotation.
+ bordercolor
+ Sets the color of the border enclosing the annotation
+ `text`.
+ borderpad
+ Sets the padding (in px) between the `text` and the
+ enclosing border.
+ borderwidth
+ Sets the width (in px) of the border enclosing the
+ annotation `text`.
+ captureevents
+ Determines whether the annotation text box captures
+ mouse move and click events, or allows those events to
+ pass through to data points in the plot that may be
+ behind the annotation. By default `captureevents` is
+ False unless `hovertext` is provided. If you use the
+ event `plotly_clickannotation` without `hovertext` you
+ must explicitly enable `captureevents`.
+ clicktoshow
+ Makes this annotation respond to clicks on the plot. If
+ you click a data point that exactly matches the `x` and
+ `y` values of this annotation, and it is hidden
+ (visible: false), it will appear. In "onoff" mode, you
+ must click the same point again to make it disappear,
+ so if you click multiple points, you can show multiple
+ annotations. In "onout" mode, a click anywhere else in
+ the plot (on another data point or not) will hide this
+ annotation. If you need to show/hide this annotation in
+ response to different `x` or `y` values, you can set
+ `xclick` and/or `yclick`. This is useful for example to
+ label the side of a bar. To label markers though,
+ `standoff` is preferred over `xclick` and `yclick`.
+ font
+ Sets the annotation text font.
+ height
+ Sets an explicit height for the text box. null
+ (default) lets the text set the box height. Taller text
+ will be clipped.
+ hoverlabel
+ :class:`plotly.graph_objects.layout.annotation.Hoverlab
+ el` instance or dict with compatible properties
+ hovertext
+ Sets text to appear when hovering over this annotation.
+ If omitted or blank, no hover label will appear.
+ 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.
+ opacity
+ Sets the opacity of the annotation (text + arrow).
+ showarrow
+ Determines whether or not the annotation is drawn with
+ an arrow. If True, `text` is placed near the arrow's
+ tail. If False, `text` lines up with the `x` and `y`
+ provided.
+ standoff
+ Sets a distance, in pixels, to move the end arrowhead
+ away from the position it is pointing at, for example
+ to point at the edge of a marker independent of zoom.
+ Note that this shortens the arrow from the `ax` / `ay`
+ vector, in contrast to `xshift` / `yshift` which moves
+ everything by this amount.
+ startarrowhead
+ Sets the start annotation arrow head style.
+ startarrowsize
+ Sets the size of the start annotation arrow head,
+ relative to `arrowwidth`. A value of 1 (default) gives
+ a head about 3x as wide as the line.
+ startstandoff
+ Sets a distance, in pixels, to move the start arrowhead
+ away from the position it is pointing at, for example
+ to point at the edge of a marker independent of zoom.
+ Note that this shortens the arrow from the `ax` / `ay`
+ vector, in contrast to `xshift` / `yshift` which moves
+ everything by this amount.
+ 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`.
+ text
+ Sets the text associated with this annotation. Plotly
+ uses a subset of HTML tags to do things like newline
+ (<br>), bold (<b></b>), italics (<i></i>), hyperlinks
+ (<a href='...'></a>). Tags <em>, <sup>, <sub>, <s>, <u>
+ <span> are also supported.
+ textangle
+ Sets the angle at which the `text` is drawn with
+ respect to the horizontal.
+ valign
+ Sets the vertical alignment of the `text` within the
+ box. Has an effect only if an explicit height is set to
+ override the text height.
+ visible
+ Determines whether or not this annotation is visible.
+ width
+ Sets an explicit width for the text box. null (default)
+ lets the text set the box width. Wider text will be
+ clipped. There is no automatic wrapping; use <br> to
+ start a new line.
+ x
+ Sets the annotation's x position. If the axis `type` is
+ "log", then you must take the log of your desired
+ range. If the axis `type` is "date", it should be date
+ strings, like date data, though Date objects and unix
+ milliseconds will be accepted and converted to strings.
+ If the axis `type` is "category", it should be numbers,
+ using the scale where each category is assigned a
+ serial number from zero in the order it appears.
+ xanchor
+ Sets the text box's horizontal position anchor This
+ anchor binds the `x` position to the "left", "center"
+ or "right" of the annotation. For example, if `x` is
+ set to 1, `xref` to "paper" and `xanchor` to "right"
+ then the right-most portion of the annotation lines up
+ with the right-most edge of the plotting area. If
+ "auto", the anchor is equivalent to "center" for data-
+ referenced annotations or if there is an arrow, whereas
+ for paper-referenced with no arrow, the anchor picked
+ corresponds to the closest side.
+ xclick
+ Toggle this annotation when clicking a data point whose
+ `x` value is `xclick` rather than the annotation's `x`
+ value.
+ xref
+ Sets the annotation's x coordinate axis. If set to a x
+ axis id (e.g. "x" or "x2"), the `x` position refers to
+ a x coordinate. If set to "paper", the `x` position
+ refers to the distance from the left of the plotting
+ area in normalized coordinates where 0 (1) corresponds
+ to the left (right). If set to a x axis ID followed by
+ "domain" (separated by a space), the position behaves
+ like for "paper", but refers to the distance in
+ fractions of the domain length from the left of the
+ domain of that axis: e.g., *x2 domain* refers to the
+ domain of the second x axis and a x position of 0.5
+ refers to the point between the left and the right of
+ the domain of the second x axis.
+ xshift
+ Shifts the position of the whole annotation and arrow
+ to the right (positive) or left (negative) by this many
+ pixels.
+ y
+ Sets the annotation's y position. If the axis `type` is
+ "log", then you must take the log of your desired
+ range. If the axis `type` is "date", it should be date
+ strings, like date data, though Date objects and unix
+ milliseconds will be accepted and converted to strings.
+ If the axis `type` is "category", it should be numbers,
+ using the scale where each category is assigned a
+ serial number from zero in the order it appears.
+ yanchor
+ Sets the text box's vertical position anchor This
+ anchor binds the `y` position to the "top", "middle" or
+ "bottom" of the annotation. For example, if `y` is set
+ to 1, `yref` to "paper" and `yanchor` to "top" then the
+ top-most portion of the annotation lines up with the
+ top-most edge of the plotting area. If "auto", the
+ anchor is equivalent to "middle" for data-referenced
+ annotations or if there is an arrow, whereas for paper-
+ referenced with no arrow, the anchor picked corresponds
+ to the closest side.
+ yclick
+ Toggle this annotation when clicking a data point whose
+ `y` value is `yclick` rather than the annotation's `y`
+ value.
+ yref
+ Sets the annotation's y coordinate axis. If set to a y
+ axis id (e.g. "y" or "y2"), the `y` position refers to
+ a y coordinate. If set to "paper", the `y` position
+ refers to the distance from the bottom of the plotting
+ area in normalized coordinates where 0 (1) corresponds
+ to the bottom (top). If set to a y axis ID followed by
+ "domain" (separated by a space), the position behaves
+ like for "paper", but refers to the distance in
+ fractions of the domain length from the bottom of the
+ domain of that axis: e.g., *y2 domain* refers to the
+ domain of the second y axis and a y position of 0.5
+ refers to the point between the bottom and the top of
+ the domain of the second y axis.
+ yshift
+ Shifts the position of the whole annotation and arrow
+ up (positive) or down (negative) by this many pixels.
+
+ Returns
+ -------
+ Annotation
+ """
+ super().__init__("annotations")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Annotation
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.Annotation`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("align", arg, align)
+ self._set_property("arrowcolor", arg, arrowcolor)
+ self._set_property("arrowhead", arg, arrowhead)
+ self._set_property("arrowside", arg, arrowside)
+ self._set_property("arrowsize", arg, arrowsize)
+ self._set_property("arrowwidth", arg, arrowwidth)
+ self._set_property("ax", arg, ax)
+ self._set_property("axref", arg, axref)
+ self._set_property("ay", arg, ay)
+ self._set_property("ayref", arg, ayref)
+ self._set_property("bgcolor", arg, bgcolor)
+ self._set_property("bordercolor", arg, bordercolor)
+ self._set_property("borderpad", arg, borderpad)
+ self._set_property("borderwidth", arg, borderwidth)
+ self._set_property("captureevents", arg, captureevents)
+ self._set_property("clicktoshow", arg, clicktoshow)
+ self._set_property("font", arg, font)
+ self._set_property("height", arg, height)
+ self._set_property("hoverlabel", arg, hoverlabel)
+ self._set_property("hovertext", arg, hovertext)
+ self._set_property("name", arg, name)
+ self._set_property("opacity", arg, opacity)
+ self._set_property("showarrow", arg, showarrow)
+ self._set_property("standoff", arg, standoff)
+ self._set_property("startarrowhead", arg, startarrowhead)
+ self._set_property("startarrowsize", arg, startarrowsize)
+ self._set_property("startstandoff", arg, startstandoff)
+ self._set_property("templateitemname", arg, templateitemname)
+ self._set_property("text", arg, text)
+ self._set_property("textangle", arg, textangle)
+ self._set_property("valign", arg, valign)
+ self._set_property("visible", arg, visible)
+ self._set_property("width", arg, width)
+ self._set_property("x", arg, x)
+ self._set_property("xanchor", arg, xanchor)
+ self._set_property("xclick", arg, xclick)
+ self._set_property("xref", arg, xref)
+ self._set_property("xshift", arg, xshift)
+ self._set_property("y", arg, y)
+ self._set_property("yanchor", arg, yanchor)
+ self._set_property("yclick", arg, yclick)
+ self._set_property("yref", arg, yref)
+ self._set_property("yshift", arg, yshift)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_coloraxis.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_coloraxis.py
new file mode 100644
index 0000000..4606c7a
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_coloraxis.py
@@ -0,0 +1,396 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Coloraxis(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.coloraxis"
+ _valid_props = {
+ "autocolorscale",
+ "cauto",
+ "cmax",
+ "cmid",
+ "cmin",
+ "colorbar",
+ "colorscale",
+ "reversescale",
+ "showscale",
+ }
+
+ @property
+ def autocolorscale(self):
+ """
+ Determines whether the colorscale is a default palette
+ (`autocolorscale: true`) or the palette determined by
+ `colorscale`. In case `colorscale` is unspecified or
+ `autocolorscale` is true, the default palette will be chosen
+ according to whether numbers in the `color` array are all
+ positive, all negative or mixed.
+
+ The 'autocolorscale' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["autocolorscale"]
+
+ @autocolorscale.setter
+ def autocolorscale(self, val):
+ self["autocolorscale"] = val
+
+ @property
+ def cauto(self):
+ """
+ Determines whether or not the color domain is computed with
+ respect to the input data (here corresponding trace color
+ array(s)) or the bounds set in `cmin` and `cmax` Defaults to
+ `false` when `cmin` and `cmax` are set by the user.
+
+ The 'cauto' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["cauto"]
+
+ @cauto.setter
+ def cauto(self, val):
+ self["cauto"] = val
+
+ @property
+ def cmax(self):
+ """
+ Sets the upper bound of the color domain. Value should have the
+ same units as corresponding trace color array(s) and if set,
+ `cmin` must be set as well.
+
+ The 'cmax' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["cmax"]
+
+ @cmax.setter
+ def cmax(self, val):
+ self["cmax"] = val
+
+ @property
+ def cmid(self):
+ """
+ Sets the mid-point of the color domain by scaling `cmin` and/or
+ `cmax` to be equidistant to this point. Value should have the
+ same units as corresponding trace color array(s). Has no effect
+ when `cauto` is `false`.
+
+ The 'cmid' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["cmid"]
+
+ @cmid.setter
+ def cmid(self, val):
+ self["cmid"] = val
+
+ @property
+ def cmin(self):
+ """
+ Sets the lower bound of the color domain. Value should have the
+ same units as corresponding trace color array(s) and if set,
+ `cmax` must be set as well.
+
+ The 'cmin' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["cmin"]
+
+ @cmin.setter
+ def cmin(self, val):
+ self["cmin"] = val
+
+ @property
+ def colorbar(self):
+ """
+ The 'colorbar' property is an instance of ColorBar
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.coloraxis.ColorBar`
+ - A dict of string/value properties that will be passed
+ to the ColorBar constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.coloraxis.ColorBar
+ """
+ return self["colorbar"]
+
+ @colorbar.setter
+ def colorbar(self, val):
+ self["colorbar"] = val
+
+ @property
+ def colorscale(self):
+ """
+ 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: Blackbody,Bluered,Blues,Cividis,Earth,Electric,
+ Greens,Greys,Hot,Jet,Picnic,Portland,Rainbow,RdBu,Reds,Viridis,
+ YlGnBu,YlOrRd.
+
+ 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
+
+ @property
+ def reversescale(self):
+ """
+ Reverses the color mapping if true. If true, `cmin` will
+ correspond to the last color in the array and `cmax` will
+ correspond to the first color.
+
+ The 'reversescale' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["reversescale"]
+
+ @reversescale.setter
+ def reversescale(self, val):
+ self["reversescale"] = val
+
+ @property
+ def showscale(self):
+ """
+ Determines whether or not a colorbar is displayed for this
+ trace.
+
+ The 'showscale' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showscale"]
+
+ @showscale.setter
+ def showscale(self, val):
+ self["showscale"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ autocolorscale
+ Determines whether the colorscale is a default palette
+ (`autocolorscale: true`) or the palette determined by
+ `colorscale`. In case `colorscale` is unspecified or
+ `autocolorscale` is true, the default palette will be
+ chosen according to whether numbers in the `color`
+ array are all positive, all negative or mixed.
+ cauto
+ Determines whether or not the color domain is computed
+ with respect to the input data (here corresponding
+ trace color array(s)) or the bounds set in `cmin` and
+ `cmax` Defaults to `false` when `cmin` and `cmax` are
+ set by the user.
+ cmax
+ Sets the upper bound of the color domain. Value should
+ have the same units as corresponding trace color
+ array(s) and if set, `cmin` must be set as well.
+ cmid
+ Sets the mid-point of the color domain by scaling
+ `cmin` and/or `cmax` to be equidistant to this point.
+ Value should have the same units as corresponding trace
+ color array(s). Has no effect when `cauto` is `false`.
+ cmin
+ Sets the lower bound of the color domain. Value should
+ have the same units as corresponding trace color
+ array(s) and if set, `cmax` must be set as well.
+ colorbar
+ :class:`plotly.graph_objects.layout.coloraxis.ColorBar`
+ instance or dict with compatible properties
+ 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: Blackbody,Bluered,Blues,C
+ ividis,Earth,Electric,Greens,Greys,Hot,Jet,Picnic,Portl
+ and,Rainbow,RdBu,Reds,Viridis,YlGnBu,YlOrRd.
+ reversescale
+ Reverses the color mapping if true. If true, `cmin`
+ will correspond to the last color in the array and
+ `cmax` will correspond to the first color.
+ showscale
+ Determines whether or not a colorbar is displayed for
+ this trace.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ autocolorscale=None,
+ cauto=None,
+ cmax=None,
+ cmid=None,
+ cmin=None,
+ colorbar=None,
+ colorscale=None,
+ reversescale=None,
+ showscale=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Coloraxis object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.Coloraxis`
+ autocolorscale
+ Determines whether the colorscale is a default palette
+ (`autocolorscale: true`) or the palette determined by
+ `colorscale`. In case `colorscale` is unspecified or
+ `autocolorscale` is true, the default palette will be
+ chosen according to whether numbers in the `color`
+ array are all positive, all negative or mixed.
+ cauto
+ Determines whether or not the color domain is computed
+ with respect to the input data (here corresponding
+ trace color array(s)) or the bounds set in `cmin` and
+ `cmax` Defaults to `false` when `cmin` and `cmax` are
+ set by the user.
+ cmax
+ Sets the upper bound of the color domain. Value should
+ have the same units as corresponding trace color
+ array(s) and if set, `cmin` must be set as well.
+ cmid
+ Sets the mid-point of the color domain by scaling
+ `cmin` and/or `cmax` to be equidistant to this point.
+ Value should have the same units as corresponding trace
+ color array(s). Has no effect when `cauto` is `false`.
+ cmin
+ Sets the lower bound of the color domain. Value should
+ have the same units as corresponding trace color
+ array(s) and if set, `cmax` must be set as well.
+ colorbar
+ :class:`plotly.graph_objects.layout.coloraxis.ColorBar`
+ instance or dict with compatible properties
+ 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: Blackbody,Bluered,Blues,C
+ ividis,Earth,Electric,Greens,Greys,Hot,Jet,Picnic,Portl
+ and,Rainbow,RdBu,Reds,Viridis,YlGnBu,YlOrRd.
+ reversescale
+ Reverses the color mapping if true. If true, `cmin`
+ will correspond to the last color in the array and
+ `cmax` will correspond to the first color.
+ showscale
+ Determines whether or not a colorbar is displayed for
+ this trace.
+
+ Returns
+ -------
+ Coloraxis
+ """
+ super().__init__("coloraxis")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Coloraxis
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.Coloraxis`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("autocolorscale", arg, autocolorscale)
+ self._set_property("cauto", arg, cauto)
+ self._set_property("cmax", arg, cmax)
+ self._set_property("cmid", arg, cmid)
+ self._set_property("cmin", arg, cmin)
+ self._set_property("colorbar", arg, colorbar)
+ self._set_property("colorscale", arg, colorscale)
+ self._set_property("reversescale", arg, reversescale)
+ self._set_property("showscale", arg, showscale)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_colorscale.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_colorscale.py
new file mode 100644
index 0000000..b65ed87
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_colorscale.py
@@ -0,0 +1,214 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Colorscale(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.colorscale"
+ _valid_props = {"diverging", "sequential", "sequentialminus"}
+
+ @property
+ def diverging(self):
+ """
+ Sets the default diverging colorscale. Note that
+ `autocolorscale` must be true for this attribute to work.
+
+ The 'diverging' 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["diverging"]
+
+ @diverging.setter
+ def diverging(self, val):
+ self["diverging"] = val
+
+ @property
+ def sequential(self):
+ """
+ Sets the default sequential colorscale for positive values.
+ Note that `autocolorscale` must be true for this attribute to
+ work.
+
+ The 'sequential' 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["sequential"]
+
+ @sequential.setter
+ def sequential(self, val):
+ self["sequential"] = val
+
+ @property
+ def sequentialminus(self):
+ """
+ Sets the default sequential colorscale for negative values.
+ Note that `autocolorscale` must be true for this attribute to
+ work.
+
+ The 'sequentialminus' 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["sequentialminus"]
+
+ @sequentialminus.setter
+ def sequentialminus(self, val):
+ self["sequentialminus"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ diverging
+ Sets the default diverging colorscale. Note that
+ `autocolorscale` must be true for this attribute to
+ work.
+ sequential
+ Sets the default sequential colorscale for positive
+ values. Note that `autocolorscale` must be true for
+ this attribute to work.
+ sequentialminus
+ Sets the default sequential colorscale for negative
+ values. Note that `autocolorscale` must be true for
+ this attribute to work.
+ """
+
+ def __init__(
+ self, arg=None, diverging=None, sequential=None, sequentialminus=None, **kwargs
+ ):
+ """
+ Construct a new Colorscale object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.Colorscale`
+ diverging
+ Sets the default diverging colorscale. Note that
+ `autocolorscale` must be true for this attribute to
+ work.
+ sequential
+ Sets the default sequential colorscale for positive
+ values. Note that `autocolorscale` must be true for
+ this attribute to work.
+ sequentialminus
+ Sets the default sequential colorscale for negative
+ values. Note that `autocolorscale` must be true for
+ this attribute to work.
+
+ Returns
+ -------
+ Colorscale
+ """
+ super().__init__("colorscale")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Colorscale
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.Colorscale`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("diverging", arg, diverging)
+ self._set_property("sequential", arg, sequential)
+ self._set_property("sequentialminus", arg, sequentialminus)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_font.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_font.py
new file mode 100644
index 0000000..c691e70
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_font.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Font(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.font"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Font object
+
+ Sets the global font. Note that fonts used in traces and other
+ layout components inherit from the global font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.Font`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Font
+ """
+ super().__init__("font")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Font
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.Font`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_geo.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_geo.py
new file mode 100644
index 0000000..40fba3a
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_geo.py
@@ -0,0 +1,968 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Geo(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.geo"
+ _valid_props = {
+ "bgcolor",
+ "center",
+ "coastlinecolor",
+ "coastlinewidth",
+ "countrycolor",
+ "countrywidth",
+ "domain",
+ "fitbounds",
+ "framecolor",
+ "framewidth",
+ "lakecolor",
+ "landcolor",
+ "lataxis",
+ "lonaxis",
+ "oceancolor",
+ "projection",
+ "resolution",
+ "rivercolor",
+ "riverwidth",
+ "scope",
+ "showcoastlines",
+ "showcountries",
+ "showframe",
+ "showlakes",
+ "showland",
+ "showocean",
+ "showrivers",
+ "showsubunits",
+ "subunitcolor",
+ "subunitwidth",
+ "uirevision",
+ "visible",
+ }
+
+ @property
+ def bgcolor(self):
+ """
+ Set the background color of the map
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["bgcolor"]
+
+ @bgcolor.setter
+ def bgcolor(self, val):
+ self["bgcolor"] = val
+
+ @property
+ def center(self):
+ """
+ The 'center' property is an instance of Center
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.geo.Center`
+ - A dict of string/value properties that will be passed
+ to the Center constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.geo.Center
+ """
+ return self["center"]
+
+ @center.setter
+ def center(self, val):
+ self["center"] = val
+
+ @property
+ def coastlinecolor(self):
+ """
+ Sets the coastline color.
+
+ The 'coastlinecolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["coastlinecolor"]
+
+ @coastlinecolor.setter
+ def coastlinecolor(self, val):
+ self["coastlinecolor"] = val
+
+ @property
+ def coastlinewidth(self):
+ """
+ Sets the coastline stroke width (in px).
+
+ The 'coastlinewidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["coastlinewidth"]
+
+ @coastlinewidth.setter
+ def coastlinewidth(self, val):
+ self["coastlinewidth"] = val
+
+ @property
+ def countrycolor(self):
+ """
+ Sets line color of the country boundaries.
+
+ The 'countrycolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["countrycolor"]
+
+ @countrycolor.setter
+ def countrycolor(self, val):
+ self["countrycolor"] = val
+
+ @property
+ def countrywidth(self):
+ """
+ Sets line width (in px) of the country boundaries.
+
+ The 'countrywidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["countrywidth"]
+
+ @countrywidth.setter
+ def countrywidth(self, val):
+ self["countrywidth"] = val
+
+ @property
+ def domain(self):
+ """
+ The 'domain' property is an instance of Domain
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.geo.Domain`
+ - A dict of string/value properties that will be passed
+ to the Domain constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.geo.Domain
+ """
+ return self["domain"]
+
+ @domain.setter
+ def domain(self, val):
+ self["domain"] = val
+
+ @property
+ def fitbounds(self):
+ """
+ Determines if this subplot's view settings are auto-computed to
+ fit trace data. On scoped maps, setting `fitbounds` leads to
+ `center.lon` and `center.lat` getting auto-filled. On maps with
+ a non-clipped projection, setting `fitbounds` leads to
+ `center.lon`, `center.lat`, and `projection.rotation.lon`
+ getting auto-filled. On maps with a clipped projection, setting
+ `fitbounds` leads to `center.lon`, `center.lat`,
+ `projection.rotation.lon`, `projection.rotation.lat`,
+ `lonaxis.range` and `lataxis.range` getting auto-filled. If
+ "locations", only the trace's visible locations are considered
+ in the `fitbounds` computations. If "geojson", the entire trace
+ input `geojson` (if provided) is considered in the `fitbounds`
+ computations, Defaults to False.
+
+ The 'fitbounds' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ [False, 'locations', 'geojson']
+
+ Returns
+ -------
+ Any
+ """
+ return self["fitbounds"]
+
+ @fitbounds.setter
+ def fitbounds(self, val):
+ self["fitbounds"] = val
+
+ @property
+ def framecolor(self):
+ """
+ Sets the color the frame.
+
+ The 'framecolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["framecolor"]
+
+ @framecolor.setter
+ def framecolor(self, val):
+ self["framecolor"] = val
+
+ @property
+ def framewidth(self):
+ """
+ Sets the stroke width (in px) of the frame.
+
+ The 'framewidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["framewidth"]
+
+ @framewidth.setter
+ def framewidth(self, val):
+ self["framewidth"] = val
+
+ @property
+ def lakecolor(self):
+ """
+ Sets the color of the lakes.
+
+ The 'lakecolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["lakecolor"]
+
+ @lakecolor.setter
+ def lakecolor(self, val):
+ self["lakecolor"] = val
+
+ @property
+ def landcolor(self):
+ """
+ Sets the land mass color.
+
+ The 'landcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["landcolor"]
+
+ @landcolor.setter
+ def landcolor(self, val):
+ self["landcolor"] = val
+
+ @property
+ def lataxis(self):
+ """
+ The 'lataxis' property is an instance of Lataxis
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.geo.Lataxis`
+ - A dict of string/value properties that will be passed
+ to the Lataxis constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.geo.Lataxis
+ """
+ return self["lataxis"]
+
+ @lataxis.setter
+ def lataxis(self, val):
+ self["lataxis"] = val
+
+ @property
+ def lonaxis(self):
+ """
+ The 'lonaxis' property is an instance of Lonaxis
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.geo.Lonaxis`
+ - A dict of string/value properties that will be passed
+ to the Lonaxis constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.geo.Lonaxis
+ """
+ return self["lonaxis"]
+
+ @lonaxis.setter
+ def lonaxis(self, val):
+ self["lonaxis"] = val
+
+ @property
+ def oceancolor(self):
+ """
+ Sets the ocean color
+
+ The 'oceancolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["oceancolor"]
+
+ @oceancolor.setter
+ def oceancolor(self, val):
+ self["oceancolor"] = val
+
+ @property
+ def projection(self):
+ """
+ The 'projection' property is an instance of Projection
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.geo.Projection`
+ - A dict of string/value properties that will be passed
+ to the Projection constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.geo.Projection
+ """
+ return self["projection"]
+
+ @projection.setter
+ def projection(self, val):
+ self["projection"] = val
+
+ @property
+ def resolution(self):
+ """
+ Sets the resolution of the base layers. The values have units
+ of km/mm e.g. 110 corresponds to a scale ratio of
+ 1:110,000,000.
+
+ The 'resolution' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ [110, 50]
+
+ Returns
+ -------
+ Any
+ """
+ return self["resolution"]
+
+ @resolution.setter
+ def resolution(self, val):
+ self["resolution"] = val
+
+ @property
+ def rivercolor(self):
+ """
+ Sets color of the rivers.
+
+ The 'rivercolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["rivercolor"]
+
+ @rivercolor.setter
+ def rivercolor(self, val):
+ self["rivercolor"] = val
+
+ @property
+ def riverwidth(self):
+ """
+ Sets the stroke width (in px) of the rivers.
+
+ The 'riverwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["riverwidth"]
+
+ @riverwidth.setter
+ def riverwidth(self, val):
+ self["riverwidth"] = val
+
+ @property
+ def scope(self):
+ """
+ Set the scope of the map.
+
+ The 'scope' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['africa', 'asia', 'europe', 'north america', 'south
+ america', 'usa', 'world']
+
+ Returns
+ -------
+ Any
+ """
+ return self["scope"]
+
+ @scope.setter
+ def scope(self, val):
+ self["scope"] = val
+
+ @property
+ def showcoastlines(self):
+ """
+ Sets whether or not the coastlines are drawn.
+
+ The 'showcoastlines' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showcoastlines"]
+
+ @showcoastlines.setter
+ def showcoastlines(self, val):
+ self["showcoastlines"] = val
+
+ @property
+ def showcountries(self):
+ """
+ Sets whether or not country boundaries are drawn.
+
+ The 'showcountries' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showcountries"]
+
+ @showcountries.setter
+ def showcountries(self, val):
+ self["showcountries"] = val
+
+ @property
+ def showframe(self):
+ """
+ Sets whether or not a frame is drawn around the map.
+
+ The 'showframe' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showframe"]
+
+ @showframe.setter
+ def showframe(self, val):
+ self["showframe"] = val
+
+ @property
+ def showlakes(self):
+ """
+ Sets whether or not lakes are drawn.
+
+ The 'showlakes' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showlakes"]
+
+ @showlakes.setter
+ def showlakes(self, val):
+ self["showlakes"] = val
+
+ @property
+ def showland(self):
+ """
+ Sets whether or not land masses are filled in color.
+
+ The 'showland' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showland"]
+
+ @showland.setter
+ def showland(self, val):
+ self["showland"] = val
+
+ @property
+ def showocean(self):
+ """
+ Sets whether or not oceans are filled in color.
+
+ The 'showocean' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showocean"]
+
+ @showocean.setter
+ def showocean(self, val):
+ self["showocean"] = val
+
+ @property
+ def showrivers(self):
+ """
+ Sets whether or not rivers are drawn.
+
+ The 'showrivers' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showrivers"]
+
+ @showrivers.setter
+ def showrivers(self, val):
+ self["showrivers"] = val
+
+ @property
+ def showsubunits(self):
+ """
+ Sets whether or not boundaries of subunits within countries
+ (e.g. states, provinces) are drawn.
+
+ The 'showsubunits' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showsubunits"]
+
+ @showsubunits.setter
+ def showsubunits(self, val):
+ self["showsubunits"] = val
+
+ @property
+ def subunitcolor(self):
+ """
+ Sets the color of the subunits boundaries.
+
+ The 'subunitcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["subunitcolor"]
+
+ @subunitcolor.setter
+ def subunitcolor(self, val):
+ self["subunitcolor"] = val
+
+ @property
+ def subunitwidth(self):
+ """
+ Sets the stroke width (in px) of the subunits boundaries.
+
+ The 'subunitwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["subunitwidth"]
+
+ @subunitwidth.setter
+ def subunitwidth(self, val):
+ self["subunitwidth"] = val
+
+ @property
+ def uirevision(self):
+ """
+ Controls persistence of user-driven changes in the view
+ (projection and center). 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
+
+ @property
+ def visible(self):
+ """
+ Sets the default visibility of the base layers.
+
+ The 'visible' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["visible"]
+
+ @visible.setter
+ def visible(self, val):
+ self["visible"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ bgcolor
+ Set the background color of the map
+ center
+ :class:`plotly.graph_objects.layout.geo.Center`
+ instance or dict with compatible properties
+ coastlinecolor
+ Sets the coastline color.
+ coastlinewidth
+ Sets the coastline stroke width (in px).
+ countrycolor
+ Sets line color of the country boundaries.
+ countrywidth
+ Sets line width (in px) of the country boundaries.
+ domain
+ :class:`plotly.graph_objects.layout.geo.Domain`
+ instance or dict with compatible properties
+ fitbounds
+ Determines if this subplot's view settings are auto-
+ computed to fit trace data. On scoped maps, setting
+ `fitbounds` leads to `center.lon` and `center.lat`
+ getting auto-filled. On maps with a non-clipped
+ projection, setting `fitbounds` leads to `center.lon`,
+ `center.lat`, and `projection.rotation.lon` getting
+ auto-filled. On maps with a clipped projection, setting
+ `fitbounds` leads to `center.lon`, `center.lat`,
+ `projection.rotation.lon`, `projection.rotation.lat`,
+ `lonaxis.range` and `lataxis.range` getting auto-
+ filled. If "locations", only the trace's visible
+ locations are considered in the `fitbounds`
+ computations. If "geojson", the entire trace input
+ `geojson` (if provided) is considered in the
+ `fitbounds` computations, Defaults to False.
+ framecolor
+ Sets the color the frame.
+ framewidth
+ Sets the stroke width (in px) of the frame.
+ lakecolor
+ Sets the color of the lakes.
+ landcolor
+ Sets the land mass color.
+ lataxis
+ :class:`plotly.graph_objects.layout.geo.Lataxis`
+ instance or dict with compatible properties
+ lonaxis
+ :class:`plotly.graph_objects.layout.geo.Lonaxis`
+ instance or dict with compatible properties
+ oceancolor
+ Sets the ocean color
+ projection
+ :class:`plotly.graph_objects.layout.geo.Projection`
+ instance or dict with compatible properties
+ resolution
+ Sets the resolution of the base layers. The values have
+ units of km/mm e.g. 110 corresponds to a scale ratio of
+ 1:110,000,000.
+ rivercolor
+ Sets color of the rivers.
+ riverwidth
+ Sets the stroke width (in px) of the rivers.
+ scope
+ Set the scope of the map.
+ showcoastlines
+ Sets whether or not the coastlines are drawn.
+ showcountries
+ Sets whether or not country boundaries are drawn.
+ showframe
+ Sets whether or not a frame is drawn around the map.
+ showlakes
+ Sets whether or not lakes are drawn.
+ showland
+ Sets whether or not land masses are filled in color.
+ showocean
+ Sets whether or not oceans are filled in color.
+ showrivers
+ Sets whether or not rivers are drawn.
+ showsubunits
+ Sets whether or not boundaries of subunits within
+ countries (e.g. states, provinces) are drawn.
+ subunitcolor
+ Sets the color of the subunits boundaries.
+ subunitwidth
+ Sets the stroke width (in px) of the subunits
+ boundaries.
+ uirevision
+ Controls persistence of user-driven changes in the view
+ (projection and center). Defaults to
+ `layout.uirevision`.
+ visible
+ Sets the default visibility of the base layers.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ bgcolor=None,
+ center=None,
+ coastlinecolor=None,
+ coastlinewidth=None,
+ countrycolor=None,
+ countrywidth=None,
+ domain=None,
+ fitbounds=None,
+ framecolor=None,
+ framewidth=None,
+ lakecolor=None,
+ landcolor=None,
+ lataxis=None,
+ lonaxis=None,
+ oceancolor=None,
+ projection=None,
+ resolution=None,
+ rivercolor=None,
+ riverwidth=None,
+ scope=None,
+ showcoastlines=None,
+ showcountries=None,
+ showframe=None,
+ showlakes=None,
+ showland=None,
+ showocean=None,
+ showrivers=None,
+ showsubunits=None,
+ subunitcolor=None,
+ subunitwidth=None,
+ uirevision=None,
+ visible=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Geo object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.Geo`
+ bgcolor
+ Set the background color of the map
+ center
+ :class:`plotly.graph_objects.layout.geo.Center`
+ instance or dict with compatible properties
+ coastlinecolor
+ Sets the coastline color.
+ coastlinewidth
+ Sets the coastline stroke width (in px).
+ countrycolor
+ Sets line color of the country boundaries.
+ countrywidth
+ Sets line width (in px) of the country boundaries.
+ domain
+ :class:`plotly.graph_objects.layout.geo.Domain`
+ instance or dict with compatible properties
+ fitbounds
+ Determines if this subplot's view settings are auto-
+ computed to fit trace data. On scoped maps, setting
+ `fitbounds` leads to `center.lon` and `center.lat`
+ getting auto-filled. On maps with a non-clipped
+ projection, setting `fitbounds` leads to `center.lon`,
+ `center.lat`, and `projection.rotation.lon` getting
+ auto-filled. On maps with a clipped projection, setting
+ `fitbounds` leads to `center.lon`, `center.lat`,
+ `projection.rotation.lon`, `projection.rotation.lat`,
+ `lonaxis.range` and `lataxis.range` getting auto-
+ filled. If "locations", only the trace's visible
+ locations are considered in the `fitbounds`
+ computations. If "geojson", the entire trace input
+ `geojson` (if provided) is considered in the
+ `fitbounds` computations, Defaults to False.
+ framecolor
+ Sets the color the frame.
+ framewidth
+ Sets the stroke width (in px) of the frame.
+ lakecolor
+ Sets the color of the lakes.
+ landcolor
+ Sets the land mass color.
+ lataxis
+ :class:`plotly.graph_objects.layout.geo.Lataxis`
+ instance or dict with compatible properties
+ lonaxis
+ :class:`plotly.graph_objects.layout.geo.Lonaxis`
+ instance or dict with compatible properties
+ oceancolor
+ Sets the ocean color
+ projection
+ :class:`plotly.graph_objects.layout.geo.Projection`
+ instance or dict with compatible properties
+ resolution
+ Sets the resolution of the base layers. The values have
+ units of km/mm e.g. 110 corresponds to a scale ratio of
+ 1:110,000,000.
+ rivercolor
+ Sets color of the rivers.
+ riverwidth
+ Sets the stroke width (in px) of the rivers.
+ scope
+ Set the scope of the map.
+ showcoastlines
+ Sets whether or not the coastlines are drawn.
+ showcountries
+ Sets whether or not country boundaries are drawn.
+ showframe
+ Sets whether or not a frame is drawn around the map.
+ showlakes
+ Sets whether or not lakes are drawn.
+ showland
+ Sets whether or not land masses are filled in color.
+ showocean
+ Sets whether or not oceans are filled in color.
+ showrivers
+ Sets whether or not rivers are drawn.
+ showsubunits
+ Sets whether or not boundaries of subunits within
+ countries (e.g. states, provinces) are drawn.
+ subunitcolor
+ Sets the color of the subunits boundaries.
+ subunitwidth
+ Sets the stroke width (in px) of the subunits
+ boundaries.
+ uirevision
+ Controls persistence of user-driven changes in the view
+ (projection and center). Defaults to
+ `layout.uirevision`.
+ visible
+ Sets the default visibility of the base layers.
+
+ Returns
+ -------
+ Geo
+ """
+ super().__init__("geo")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Geo
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.Geo`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("bgcolor", arg, bgcolor)
+ self._set_property("center", arg, center)
+ self._set_property("coastlinecolor", arg, coastlinecolor)
+ self._set_property("coastlinewidth", arg, coastlinewidth)
+ self._set_property("countrycolor", arg, countrycolor)
+ self._set_property("countrywidth", arg, countrywidth)
+ self._set_property("domain", arg, domain)
+ self._set_property("fitbounds", arg, fitbounds)
+ self._set_property("framecolor", arg, framecolor)
+ self._set_property("framewidth", arg, framewidth)
+ self._set_property("lakecolor", arg, lakecolor)
+ self._set_property("landcolor", arg, landcolor)
+ self._set_property("lataxis", arg, lataxis)
+ self._set_property("lonaxis", arg, lonaxis)
+ self._set_property("oceancolor", arg, oceancolor)
+ self._set_property("projection", arg, projection)
+ self._set_property("resolution", arg, resolution)
+ self._set_property("rivercolor", arg, rivercolor)
+ self._set_property("riverwidth", arg, riverwidth)
+ self._set_property("scope", arg, scope)
+ self._set_property("showcoastlines", arg, showcoastlines)
+ self._set_property("showcountries", arg, showcountries)
+ self._set_property("showframe", arg, showframe)
+ self._set_property("showlakes", arg, showlakes)
+ self._set_property("showland", arg, showland)
+ self._set_property("showocean", arg, showocean)
+ self._set_property("showrivers", arg, showrivers)
+ self._set_property("showsubunits", arg, showsubunits)
+ self._set_property("subunitcolor", arg, subunitcolor)
+ self._set_property("subunitwidth", arg, subunitwidth)
+ self._set_property("uirevision", arg, uirevision)
+ self._set_property("visible", arg, visible)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_grid.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_grid.py
new file mode 100644
index 0000000..8788027
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_grid.py
@@ -0,0 +1,511 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Grid(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.grid"
+ _valid_props = {
+ "columns",
+ "domain",
+ "pattern",
+ "roworder",
+ "rows",
+ "subplots",
+ "xaxes",
+ "xgap",
+ "xside",
+ "yaxes",
+ "ygap",
+ "yside",
+ }
+
+ @property
+ def columns(self):
+ """
+ The number of columns in the grid. If you provide a 2D
+ `subplots` array, the length of its longest row is used as the
+ default. If you give an `xaxes` array, its length is used as
+ the default. But it's also possible to have a different length,
+ if you want to leave a row at the end for non-cartesian
+ subplots.
+
+ The 'columns' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["columns"]
+
+ @columns.setter
+ def columns(self, val):
+ self["columns"] = val
+
+ @property
+ def domain(self):
+ """
+ The 'domain' property is an instance of Domain
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.grid.Domain`
+ - A dict of string/value properties that will be passed
+ to the Domain constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.grid.Domain
+ """
+ return self["domain"]
+
+ @domain.setter
+ def domain(self, val):
+ self["domain"] = val
+
+ @property
+ def pattern(self):
+ """
+ If no `subplots`, `xaxes`, or `yaxes` are given but we do have
+ `rows` and `columns`, we can generate defaults using
+ consecutive axis IDs, in two ways: "coupled" gives one x axis
+ per column and one y axis per row. "independent" uses a new xy
+ pair for each cell, left-to-right across each row then
+ iterating rows according to `roworder`.
+
+ The 'pattern' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['independent', 'coupled']
+
+ Returns
+ -------
+ Any
+ """
+ return self["pattern"]
+
+ @pattern.setter
+ def pattern(self, val):
+ self["pattern"] = val
+
+ @property
+ def roworder(self):
+ """
+ Is the first row the top or the bottom? Note that columns are
+ always enumerated from left to right.
+
+ The 'roworder' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['top to bottom', 'bottom to top']
+
+ Returns
+ -------
+ Any
+ """
+ return self["roworder"]
+
+ @roworder.setter
+ def roworder(self, val):
+ self["roworder"] = val
+
+ @property
+ def rows(self):
+ """
+ The number of rows in the grid. If you provide a 2D `subplots`
+ array or a `yaxes` array, its length is used as the default.
+ But it's also possible to have a different length, if you want
+ to leave a row at the end for non-cartesian subplots.
+
+ The 'rows' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["rows"]
+
+ @rows.setter
+ def rows(self, val):
+ self["rows"] = val
+
+ @property
+ def subplots(self):
+ """
+ Used for freeform grids, where some axes may be shared across
+ subplots but others are not. Each entry should be a cartesian
+ subplot id, like "xy" or "x3y2", or "" to leave that cell
+ empty. You may reuse x axes within the same column, and y axes
+ within the same row. Non-cartesian subplots and traces that
+ support `domain` can place themselves in this grid separately
+ using the `gridcell` attribute.
+
+ The 'subplots' property is an info array that may be specified as:
+ * a 2D list where:
+ The 'subplots[i][j]' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['']
+ - A string that matches one of the following regular expressions:
+ ['^x([2-9]|[1-9][0-9]+)?y([2-9]|[1-9][0-9]+)?$']
+
+ Returns
+ -------
+ list
+ """
+ return self["subplots"]
+
+ @subplots.setter
+ def subplots(self, val):
+ self["subplots"] = val
+
+ @property
+ def xaxes(self):
+ """
+ Used with `yaxes` when the x and y axes are shared across
+ columns and rows. Each entry should be an x axis id like "x",
+ "x2", etc., or "" to not put an x axis in that column. Entries
+ other than "" must be unique. Ignored if `subplots` is present.
+ If missing but `yaxes` is present, will generate consecutive
+ IDs.
+
+ The 'xaxes' property is an info array that may be specified as:
+ * a list of elements where:
+ The 'xaxes[i]' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['']
+ - A string that matches one of the following regular expressions:
+ ['^x([2-9]|[1-9][0-9]+)?( domain)?$']
+
+ Returns
+ -------
+ list
+ """
+ return self["xaxes"]
+
+ @xaxes.setter
+ def xaxes(self, val):
+ self["xaxes"] = val
+
+ @property
+ def xgap(self):
+ """
+ Horizontal space between grid cells, expressed as a fraction of
+ the total width available to one cell. Defaults to 0.1 for
+ coupled-axes grids and 0.2 for independent grids.
+
+ The 'xgap' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["xgap"]
+
+ @xgap.setter
+ def xgap(self, val):
+ self["xgap"] = val
+
+ @property
+ def xside(self):
+ """
+ Sets where the x axis labels and titles go. "bottom" means the
+ very bottom of the grid. "bottom plot" is the lowest plot that
+ each x axis is used in. "top" and "top plot" are similar.
+
+ The 'xside' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['bottom', 'bottom plot', 'top plot', 'top']
+
+ Returns
+ -------
+ Any
+ """
+ return self["xside"]
+
+ @xside.setter
+ def xside(self, val):
+ self["xside"] = val
+
+ @property
+ def yaxes(self):
+ """
+ Used with `yaxes` when the x and y axes are shared across
+ columns and rows. Each entry should be an y axis id like "y",
+ "y2", etc., or "" to not put a y axis in that row. Entries
+ other than "" must be unique. Ignored if `subplots` is present.
+ If missing but `xaxes` is present, will generate consecutive
+ IDs.
+
+ The 'yaxes' property is an info array that may be specified as:
+ * a list of elements where:
+ The 'yaxes[i]' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['']
+ - A string that matches one of the following regular expressions:
+ ['^y([2-9]|[1-9][0-9]+)?( domain)?$']
+
+ Returns
+ -------
+ list
+ """
+ return self["yaxes"]
+
+ @yaxes.setter
+ def yaxes(self, val):
+ self["yaxes"] = val
+
+ @property
+ def ygap(self):
+ """
+ Vertical space between grid cells, expressed as a fraction of
+ the total height available to one cell. Defaults to 0.1 for
+ coupled-axes grids and 0.3 for independent grids.
+
+ The 'ygap' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["ygap"]
+
+ @ygap.setter
+ def ygap(self, val):
+ self["ygap"] = val
+
+ @property
+ def yside(self):
+ """
+ Sets where the y axis labels and titles go. "left" means the
+ very left edge of the grid. *left plot* is the leftmost plot
+ that each y axis is used in. "right" and *right plot* are
+ similar.
+
+ The 'yside' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['left', 'left plot', 'right plot', 'right']
+
+ Returns
+ -------
+ Any
+ """
+ return self["yside"]
+
+ @yside.setter
+ def yside(self, val):
+ self["yside"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ columns
+ The number of columns in the grid. If you provide a 2D
+ `subplots` array, the length of its longest row is used
+ as the default. If you give an `xaxes` array, its
+ length is used as the default. But it's also possible
+ to have a different length, if you want to leave a row
+ at the end for non-cartesian subplots.
+ domain
+ :class:`plotly.graph_objects.layout.grid.Domain`
+ instance or dict with compatible properties
+ pattern
+ If no `subplots`, `xaxes`, or `yaxes` are given but we
+ do have `rows` and `columns`, we can generate defaults
+ using consecutive axis IDs, in two ways: "coupled"
+ gives one x axis per column and one y axis per row.
+ "independent" uses a new xy pair for each cell, left-
+ to-right across each row then iterating rows according
+ to `roworder`.
+ roworder
+ Is the first row the top or the bottom? Note that
+ columns are always enumerated from left to right.
+ rows
+ The number of rows in the grid. If you provide a 2D
+ `subplots` array or a `yaxes` array, its length is used
+ as the default. But it's also possible to have a
+ different length, if you want to leave a row at the end
+ for non-cartesian subplots.
+ subplots
+ Used for freeform grids, where some axes may be shared
+ across subplots but others are not. Each entry should
+ be a cartesian subplot id, like "xy" or "x3y2", or ""
+ to leave that cell empty. You may reuse x axes within
+ the same column, and y axes within the same row. Non-
+ cartesian subplots and traces that support `domain` can
+ place themselves in this grid separately using the
+ `gridcell` attribute.
+ xaxes
+ Used with `yaxes` when the x and y axes are shared
+ across columns and rows. Each entry should be an x axis
+ id like "x", "x2", etc., or "" to not put an x axis in
+ that column. Entries other than "" must be unique.
+ Ignored if `subplots` is present. If missing but
+ `yaxes` is present, will generate consecutive IDs.
+ xgap
+ Horizontal space between grid cells, expressed as a
+ fraction of the total width available to one cell.
+ Defaults to 0.1 for coupled-axes grids and 0.2 for
+ independent grids.
+ xside
+ Sets where the x axis labels and titles go. "bottom"
+ means the very bottom of the grid. "bottom plot" is the
+ lowest plot that each x axis is used in. "top" and "top
+ plot" are similar.
+ yaxes
+ Used with `yaxes` when the x and y axes are shared
+ across columns and rows. Each entry should be an y axis
+ id like "y", "y2", etc., or "" to not put a y axis in
+ that row. Entries other than "" must be unique. Ignored
+ if `subplots` is present. If missing but `xaxes` is
+ present, will generate consecutive IDs.
+ ygap
+ Vertical space between grid cells, expressed as a
+ fraction of the total height available to one cell.
+ Defaults to 0.1 for coupled-axes grids and 0.3 for
+ independent grids.
+ yside
+ Sets where the y axis labels and titles go. "left"
+ means the very left edge of the grid. *left plot* is
+ the leftmost plot that each y axis is used in. "right"
+ and *right plot* are similar.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ columns=None,
+ domain=None,
+ pattern=None,
+ roworder=None,
+ rows=None,
+ subplots=None,
+ xaxes=None,
+ xgap=None,
+ xside=None,
+ yaxes=None,
+ ygap=None,
+ yside=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Grid object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.Grid`
+ columns
+ The number of columns in the grid. If you provide a 2D
+ `subplots` array, the length of its longest row is used
+ as the default. If you give an `xaxes` array, its
+ length is used as the default. But it's also possible
+ to have a different length, if you want to leave a row
+ at the end for non-cartesian subplots.
+ domain
+ :class:`plotly.graph_objects.layout.grid.Domain`
+ instance or dict with compatible properties
+ pattern
+ If no `subplots`, `xaxes`, or `yaxes` are given but we
+ do have `rows` and `columns`, we can generate defaults
+ using consecutive axis IDs, in two ways: "coupled"
+ gives one x axis per column and one y axis per row.
+ "independent" uses a new xy pair for each cell, left-
+ to-right across each row then iterating rows according
+ to `roworder`.
+ roworder
+ Is the first row the top or the bottom? Note that
+ columns are always enumerated from left to right.
+ rows
+ The number of rows in the grid. If you provide a 2D
+ `subplots` array or a `yaxes` array, its length is used
+ as the default. But it's also possible to have a
+ different length, if you want to leave a row at the end
+ for non-cartesian subplots.
+ subplots
+ Used for freeform grids, where some axes may be shared
+ across subplots but others are not. Each entry should
+ be a cartesian subplot id, like "xy" or "x3y2", or ""
+ to leave that cell empty. You may reuse x axes within
+ the same column, and y axes within the same row. Non-
+ cartesian subplots and traces that support `domain` can
+ place themselves in this grid separately using the
+ `gridcell` attribute.
+ xaxes
+ Used with `yaxes` when the x and y axes are shared
+ across columns and rows. Each entry should be an x axis
+ id like "x", "x2", etc., or "" to not put an x axis in
+ that column. Entries other than "" must be unique.
+ Ignored if `subplots` is present. If missing but
+ `yaxes` is present, will generate consecutive IDs.
+ xgap
+ Horizontal space between grid cells, expressed as a
+ fraction of the total width available to one cell.
+ Defaults to 0.1 for coupled-axes grids and 0.2 for
+ independent grids.
+ xside
+ Sets where the x axis labels and titles go. "bottom"
+ means the very bottom of the grid. "bottom plot" is the
+ lowest plot that each x axis is used in. "top" and "top
+ plot" are similar.
+ yaxes
+ Used with `yaxes` when the x and y axes are shared
+ across columns and rows. Each entry should be an y axis
+ id like "y", "y2", etc., or "" to not put a y axis in
+ that row. Entries other than "" must be unique. Ignored
+ if `subplots` is present. If missing but `xaxes` is
+ present, will generate consecutive IDs.
+ ygap
+ Vertical space between grid cells, expressed as a
+ fraction of the total height available to one cell.
+ Defaults to 0.1 for coupled-axes grids and 0.3 for
+ independent grids.
+ yside
+ Sets where the y axis labels and titles go. "left"
+ means the very left edge of the grid. *left plot* is
+ the leftmost plot that each y axis is used in. "right"
+ and *right plot* are similar.
+
+ Returns
+ -------
+ Grid
+ """
+ super().__init__("grid")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Grid
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.Grid`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("columns", arg, columns)
+ self._set_property("domain", arg, domain)
+ self._set_property("pattern", arg, pattern)
+ self._set_property("roworder", arg, roworder)
+ self._set_property("rows", arg, rows)
+ self._set_property("subplots", arg, subplots)
+ self._set_property("xaxes", arg, xaxes)
+ self._set_property("xgap", arg, xgap)
+ self._set_property("xside", arg, xside)
+ self._set_property("yaxes", arg, yaxes)
+ self._set_property("ygap", arg, ygap)
+ self._set_property("yside", arg, yside)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_hoverlabel.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_hoverlabel.py
new file mode 100644
index 0000000..867d356
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_hoverlabel.py
@@ -0,0 +1,254 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Hoverlabel(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.hoverlabel"
+ _valid_props = {
+ "align",
+ "bgcolor",
+ "bordercolor",
+ "font",
+ "grouptitlefont",
+ "namelength",
+ }
+
+ @property
+ def align(self):
+ """
+ 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
+
+ The 'align' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['left', 'right', 'auto']
+
+ Returns
+ -------
+ Any
+ """
+ return self["align"]
+
+ @align.setter
+ def align(self, val):
+ self["align"] = val
+
+ @property
+ def bgcolor(self):
+ """
+ Sets the background color of all hover labels on graph
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["bgcolor"]
+
+ @bgcolor.setter
+ def bgcolor(self, val):
+ self["bgcolor"] = val
+
+ @property
+ def bordercolor(self):
+ """
+ Sets the border color of all hover labels on graph.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["bordercolor"]
+
+ @bordercolor.setter
+ def bordercolor(self, val):
+ self["bordercolor"] = val
+
+ @property
+ def font(self):
+ """
+ Sets the default hover label font used by all traces on the
+ graph.
+
+ The 'font' property is an instance of Font
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.hoverlabel.Font`
+ - A dict of string/value properties that will be passed
+ to the Font constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.hoverlabel.Font
+ """
+ return self["font"]
+
+ @font.setter
+ def font(self, val):
+ self["font"] = val
+
+ @property
+ def grouptitlefont(self):
+ """
+ Sets the font for group titles in hover (unified modes).
+ Defaults to `hoverlabel.font`.
+
+ The 'grouptitlefont' property is an instance of Grouptitlefont
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.hoverlabel.Grouptitlefont`
+ - A dict of string/value properties that will be passed
+ to the Grouptitlefont constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.hoverlabel.Grouptitlefont
+ """
+ return self["grouptitlefont"]
+
+ @grouptitlefont.setter
+ def grouptitlefont(self, val):
+ self["grouptitlefont"] = val
+
+ @property
+ def namelength(self):
+ """
+ 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.
+
+ The 'namelength' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [-1, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["namelength"]
+
+ @namelength.setter
+ def namelength(self, val):
+ self["namelength"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ 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
+ bgcolor
+ Sets the background color of all hover labels on graph
+ bordercolor
+ Sets the border color of all hover labels on graph.
+ font
+ Sets the default hover label font used by all traces on
+ the graph.
+ grouptitlefont
+ Sets the font for group titles in hover (unified
+ modes). Defaults to `hoverlabel.font`.
+ 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.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ align=None,
+ bgcolor=None,
+ bordercolor=None,
+ font=None,
+ grouptitlefont=None,
+ namelength=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Hoverlabel object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.Hoverlabel`
+ 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
+ bgcolor
+ Sets the background color of all hover labels on graph
+ bordercolor
+ Sets the border color of all hover labels on graph.
+ font
+ Sets the default hover label font used by all traces on
+ the graph.
+ grouptitlefont
+ Sets the font for group titles in hover (unified
+ modes). Defaults to `hoverlabel.font`.
+ 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.
+
+ Returns
+ -------
+ Hoverlabel
+ """
+ super().__init__("hoverlabel")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Hoverlabel
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.Hoverlabel`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("align", arg, align)
+ self._set_property("bgcolor", arg, bgcolor)
+ self._set_property("bordercolor", arg, bordercolor)
+ self._set_property("font", arg, font)
+ self._set_property("grouptitlefont", arg, grouptitlefont)
+ self._set_property("namelength", arg, namelength)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_image.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_image.py
new file mode 100644
index 0000000..33865e4
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_image.py
@@ -0,0 +1,608 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Image(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.image"
+ _valid_props = {
+ "layer",
+ "name",
+ "opacity",
+ "sizex",
+ "sizey",
+ "sizing",
+ "source",
+ "templateitemname",
+ "visible",
+ "x",
+ "xanchor",
+ "xref",
+ "y",
+ "yanchor",
+ "yref",
+ }
+
+ @property
+ def layer(self):
+ """
+ Specifies whether images are drawn below or above traces. When
+ `xref` and `yref` are both set to `paper`, image is drawn below
+ the entire plot area.
+
+ The 'layer' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['below', 'above']
+
+ Returns
+ -------
+ Any
+ """
+ return self["layer"]
+
+ @layer.setter
+ def layer(self, val):
+ self["layer"] = val
+
+ @property
+ def name(self):
+ """
+ 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.
+
+ The 'name' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["name"]
+
+ @name.setter
+ def name(self, val):
+ self["name"] = val
+
+ @property
+ def opacity(self):
+ """
+ Sets the opacity of the image.
+
+ The 'opacity' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["opacity"]
+
+ @opacity.setter
+ def opacity(self, val):
+ self["opacity"] = val
+
+ @property
+ def sizex(self):
+ """
+ Sets the image container size horizontally. The image will be
+ sized based on the `position` value. When `xref` is set to
+ `paper`, units are sized relative to the plot width. When
+ `xref` ends with ` domain`, units are sized relative to the
+ axis width.
+
+ The 'sizex' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["sizex"]
+
+ @sizex.setter
+ def sizex(self, val):
+ self["sizex"] = val
+
+ @property
+ def sizey(self):
+ """
+ Sets the image container size vertically. The image will be
+ sized based on the `position` value. When `yref` is set to
+ `paper`, units are sized relative to the plot height. When
+ `yref` ends with ` domain`, units are sized relative to the
+ axis height.
+
+ The 'sizey' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["sizey"]
+
+ @sizey.setter
+ def sizey(self, val):
+ self["sizey"] = val
+
+ @property
+ def sizing(self):
+ """
+ Specifies which dimension of the image to constrain.
+
+ The 'sizing' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['fill', 'contain', 'stretch']
+
+ Returns
+ -------
+ Any
+ """
+ return self["sizing"]
+
+ @sizing.setter
+ def sizing(self, val):
+ self["sizing"] = val
+
+ @property
+ def source(self):
+ """
+ Specifies the URL of the image to be used. The URL must be
+ accessible from the domain where the plot code is run, and can
+ be either relative or absolute.
+
+ The 'source' property is an image URI that may be specified as:
+ - A remote image URI string
+ (e.g. 'http://www.somewhere.com/image.png')
+ - A data URI image string
+ (e.g. 'data:image/png;base64,iVBORw0KGgoAAAANSU')
+ - A PIL.Image.Image object which will be immediately converted
+ to a data URI image string
+ See http://pillow.readthedocs.io/en/latest/reference/Image.html
+
+ Returns
+ -------
+ str
+ """
+ return self["source"]
+
+ @source.setter
+ def source(self, val):
+ self["source"] = val
+
+ @property
+ def templateitemname(self):
+ """
+ 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`.
+
+ The 'templateitemname' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["templateitemname"]
+
+ @templateitemname.setter
+ def templateitemname(self, val):
+ self["templateitemname"] = val
+
+ @property
+ def visible(self):
+ """
+ Determines whether or not this image is visible.
+
+ The 'visible' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["visible"]
+
+ @visible.setter
+ def visible(self, val):
+ self["visible"] = val
+
+ @property
+ def x(self):
+ """
+ Sets the image's x position. When `xref` is set to `paper`,
+ units are sized relative to the plot height. See `xref` for
+ more info
+
+ The 'x' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["x"]
+
+ @x.setter
+ def x(self, val):
+ self["x"] = val
+
+ @property
+ def xanchor(self):
+ """
+ Sets the anchor for the x position
+
+ The 'xanchor' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['left', 'center', 'right']
+
+ Returns
+ -------
+ Any
+ """
+ return self["xanchor"]
+
+ @xanchor.setter
+ def xanchor(self, val):
+ self["xanchor"] = val
+
+ @property
+ def xref(self):
+ """
+ Sets the images's x coordinate axis. If set to a x axis id
+ (e.g. "x" or "x2"), the `x` position refers to a x coordinate.
+ If set to "paper", the `x` position refers to the distance from
+ the left of the plotting area in normalized coordinates where 0
+ (1) corresponds to the left (right). If set to a x axis ID
+ followed by "domain" (separated by a space), the position
+ behaves like for "paper", but refers to the distance in
+ fractions of the domain length from the left of the domain of
+ that axis: e.g., *x2 domain* refers to the domain of the second
+ x axis and a x position of 0.5 refers to the point between the
+ left and the right of the domain of the second x axis.
+
+ The 'xref' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['paper']
+ - A string that matches one of the following regular expressions:
+ ['^x([2-9]|[1-9][0-9]+)?( domain)?$']
+
+ Returns
+ -------
+ Any
+ """
+ return self["xref"]
+
+ @xref.setter
+ def xref(self, val):
+ self["xref"] = val
+
+ @property
+ def y(self):
+ """
+ Sets the image's y position. When `yref` is set to `paper`,
+ units are sized relative to the plot height. See `yref` for
+ more info
+
+ The 'y' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["y"]
+
+ @y.setter
+ def y(self, val):
+ self["y"] = val
+
+ @property
+ def yanchor(self):
+ """
+ Sets the anchor for the y position.
+
+ The 'yanchor' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['top', 'middle', 'bottom']
+
+ Returns
+ -------
+ Any
+ """
+ return self["yanchor"]
+
+ @yanchor.setter
+ def yanchor(self, val):
+ self["yanchor"] = val
+
+ @property
+ def yref(self):
+ """
+ Sets the images's y coordinate axis. If set to a y axis id
+ (e.g. "y" or "y2"), the `y` position refers to a y coordinate.
+ If set to "paper", the `y` position refers to the distance from
+ the bottom of the plotting area in normalized coordinates where
+ 0 (1) corresponds to the bottom (top). If set to a y axis ID
+ followed by "domain" (separated by a space), the position
+ behaves like for "paper", but refers to the distance in
+ fractions of the domain length from the bottom of the domain of
+ that axis: e.g., *y2 domain* refers to the domain of the second
+ y axis and a y position of 0.5 refers to the point between the
+ bottom and the top of the domain of the second y axis.
+
+ The 'yref' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['paper']
+ - A string that matches one of the following regular expressions:
+ ['^y([2-9]|[1-9][0-9]+)?( domain)?$']
+
+ Returns
+ -------
+ Any
+ """
+ return self["yref"]
+
+ @yref.setter
+ def yref(self, val):
+ self["yref"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ layer
+ Specifies whether images are drawn below or above
+ traces. When `xref` and `yref` are both set to `paper`,
+ image is drawn below the entire plot area.
+ 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.
+ opacity
+ Sets the opacity of the image.
+ sizex
+ Sets the image container size horizontally. The image
+ will be sized based on the `position` value. When
+ `xref` is set to `paper`, units are sized relative to
+ the plot width. When `xref` ends with ` domain`, units
+ are sized relative to the axis width.
+ sizey
+ Sets the image container size vertically. The image
+ will be sized based on the `position` value. When
+ `yref` is set to `paper`, units are sized relative to
+ the plot height. When `yref` ends with ` domain`, units
+ are sized relative to the axis height.
+ sizing
+ Specifies which dimension of the image to constrain.
+ source
+ Specifies the URL of the image to be used. The URL must
+ be accessible from the domain where the plot code is
+ run, and can be either relative or absolute.
+ 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`.
+ visible
+ Determines whether or not this image is visible.
+ x
+ Sets the image's x position. When `xref` is set to
+ `paper`, units are sized relative to the plot height.
+ See `xref` for more info
+ xanchor
+ Sets the anchor for the x position
+ xref
+ Sets the images's x coordinate axis. If set to a x axis
+ id (e.g. "x" or "x2"), the `x` position refers to a x
+ coordinate. If set to "paper", the `x` position refers
+ to the distance from the left of the plotting area in
+ normalized coordinates where 0 (1) corresponds to the
+ left (right). If set to a x axis ID followed by
+ "domain" (separated by a space), the position behaves
+ like for "paper", but refers to the distance in
+ fractions of the domain length from the left of the
+ domain of that axis: e.g., *x2 domain* refers to the
+ domain of the second x axis and a x position of 0.5
+ refers to the point between the left and the right of
+ the domain of the second x axis.
+ y
+ Sets the image's y position. When `yref` is set to
+ `paper`, units are sized relative to the plot height.
+ See `yref` for more info
+ yanchor
+ Sets the anchor for the y position.
+ yref
+ Sets the images's y coordinate axis. If set to a y axis
+ id (e.g. "y" or "y2"), the `y` position refers to a y
+ coordinate. If set to "paper", the `y` position refers
+ to the distance from the bottom of the plotting area in
+ normalized coordinates where 0 (1) corresponds to the
+ bottom (top). If set to a y axis ID followed by
+ "domain" (separated by a space), the position behaves
+ like for "paper", but refers to the distance in
+ fractions of the domain length from the bottom of the
+ domain of that axis: e.g., *y2 domain* refers to the
+ domain of the second y axis and a y position of 0.5
+ refers to the point between the bottom and the top of
+ the domain of the second y axis.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ layer=None,
+ name=None,
+ opacity=None,
+ sizex=None,
+ sizey=None,
+ sizing=None,
+ source=None,
+ templateitemname=None,
+ visible=None,
+ x=None,
+ xanchor=None,
+ xref=None,
+ y=None,
+ yanchor=None,
+ yref=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Image object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.Image`
+ layer
+ Specifies whether images are drawn below or above
+ traces. When `xref` and `yref` are both set to `paper`,
+ image is drawn below the entire plot area.
+ 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.
+ opacity
+ Sets the opacity of the image.
+ sizex
+ Sets the image container size horizontally. The image
+ will be sized based on the `position` value. When
+ `xref` is set to `paper`, units are sized relative to
+ the plot width. When `xref` ends with ` domain`, units
+ are sized relative to the axis width.
+ sizey
+ Sets the image container size vertically. The image
+ will be sized based on the `position` value. When
+ `yref` is set to `paper`, units are sized relative to
+ the plot height. When `yref` ends with ` domain`, units
+ are sized relative to the axis height.
+ sizing
+ Specifies which dimension of the image to constrain.
+ source
+ Specifies the URL of the image to be used. The URL must
+ be accessible from the domain where the plot code is
+ run, and can be either relative or absolute.
+ 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`.
+ visible
+ Determines whether or not this image is visible.
+ x
+ Sets the image's x position. When `xref` is set to
+ `paper`, units are sized relative to the plot height.
+ See `xref` for more info
+ xanchor
+ Sets the anchor for the x position
+ xref
+ Sets the images's x coordinate axis. If set to a x axis
+ id (e.g. "x" or "x2"), the `x` position refers to a x
+ coordinate. If set to "paper", the `x` position refers
+ to the distance from the left of the plotting area in
+ normalized coordinates where 0 (1) corresponds to the
+ left (right). If set to a x axis ID followed by
+ "domain" (separated by a space), the position behaves
+ like for "paper", but refers to the distance in
+ fractions of the domain length from the left of the
+ domain of that axis: e.g., *x2 domain* refers to the
+ domain of the second x axis and a x position of 0.5
+ refers to the point between the left and the right of
+ the domain of the second x axis.
+ y
+ Sets the image's y position. When `yref` is set to
+ `paper`, units are sized relative to the plot height.
+ See `yref` for more info
+ yanchor
+ Sets the anchor for the y position.
+ yref
+ Sets the images's y coordinate axis. If set to a y axis
+ id (e.g. "y" or "y2"), the `y` position refers to a y
+ coordinate. If set to "paper", the `y` position refers
+ to the distance from the bottom of the plotting area in
+ normalized coordinates where 0 (1) corresponds to the
+ bottom (top). If set to a y axis ID followed by
+ "domain" (separated by a space), the position behaves
+ like for "paper", but refers to the distance in
+ fractions of the domain length from the bottom of the
+ domain of that axis: e.g., *y2 domain* refers to the
+ domain of the second y axis and a y position of 0.5
+ refers to the point between the bottom and the top of
+ the domain of the second y axis.
+
+ Returns
+ -------
+ Image
+ """
+ super().__init__("images")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Image
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.Image`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("layer", arg, layer)
+ self._set_property("name", arg, name)
+ self._set_property("opacity", arg, opacity)
+ self._set_property("sizex", arg, sizex)
+ self._set_property("sizey", arg, sizey)
+ self._set_property("sizing", arg, sizing)
+ self._set_property("source", arg, source)
+ self._set_property("templateitemname", arg, templateitemname)
+ self._set_property("visible", arg, visible)
+ self._set_property("x", arg, x)
+ self._set_property("xanchor", arg, xanchor)
+ self._set_property("xref", arg, xref)
+ self._set_property("y", arg, y)
+ self._set_property("yanchor", arg, yanchor)
+ self._set_property("yref", arg, yref)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_legend.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_legend.py
new file mode 100644
index 0000000..7df6dad
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_legend.py
@@ -0,0 +1,916 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Legend(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.legend"
+ _valid_props = {
+ "bgcolor",
+ "bordercolor",
+ "borderwidth",
+ "entrywidth",
+ "entrywidthmode",
+ "font",
+ "groupclick",
+ "grouptitlefont",
+ "indentation",
+ "itemclick",
+ "itemdoubleclick",
+ "itemsizing",
+ "itemwidth",
+ "orientation",
+ "title",
+ "tracegroupgap",
+ "traceorder",
+ "uirevision",
+ "valign",
+ "visible",
+ "x",
+ "xanchor",
+ "xref",
+ "y",
+ "yanchor",
+ "yref",
+ }
+
+ @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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["bgcolor"]
+
+ @bgcolor.setter
+ def bgcolor(self, val):
+ self["bgcolor"] = val
+
+ @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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["bordercolor"]
+
+ @bordercolor.setter
+ def bordercolor(self, val):
+ self["bordercolor"] = val
+
+ @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
+
+ @property
+ def entrywidth(self):
+ """
+ Sets the width (in px or fraction) of the legend. Use 0 to size
+ the entry based on the text width, when `entrywidthmode` is set
+ to "pixels".
+
+ The 'entrywidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["entrywidth"]
+
+ @entrywidth.setter
+ def entrywidth(self, val):
+ self["entrywidth"] = val
+
+ @property
+ def entrywidthmode(self):
+ """
+ Determines what entrywidth means.
+
+ The 'entrywidthmode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['fraction', 'pixels']
+
+ Returns
+ -------
+ Any
+ """
+ return self["entrywidthmode"]
+
+ @entrywidthmode.setter
+ def entrywidthmode(self, val):
+ self["entrywidthmode"] = val
+
+ @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
+
+ Returns
+ -------
+ plotly.graph_objs.layout.legend.Font
+ """
+ return self["font"]
+
+ @font.setter
+ def font(self, val):
+ self["font"] = val
+
+ @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
+
+ @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
+
+ Returns
+ -------
+ plotly.graph_objs.layout.legend.Grouptitlefont
+ """
+ return self["grouptitlefont"]
+
+ @grouptitlefont.setter
+ def grouptitlefont(self, val):
+ self["grouptitlefont"] = val
+
+ @property
+ def indentation(self):
+ """
+ Sets the indentation (in px) of the legend entries.
+
+ The 'indentation' property is a number and may be specified as:
+ - An int or float in the interval [-15, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["indentation"]
+
+ @indentation.setter
+ def indentation(self, val):
+ self["indentation"] = val
+
+ @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
+
+ @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
+
+ @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
+
+ @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
+
+ @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
+
+ @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
+
+ Returns
+ -------
+ plotly.graph_objs.layout.legend.Title
+ """
+ return self["title"]
+
+ @title.setter
+ def title(self, val):
+ self["title"] = val
+
+ @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
+
+ @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
+
+ @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
+
+ @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
+
+ @property
+ def visible(self):
+ """
+ Determines whether or not this legend is visible.
+
+ The 'visible' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["visible"]
+
+ @visible.setter
+ def visible(self, val):
+ self["visible"] = val
+
+ @property
+ def x(self):
+ """
+ Sets the x position with respect to `xref` (in normalized
+ coordinates) of the legend. When `xref` is "paper", defaults to
+ 1.02 for vertical legends and defaults to 0 for horizontal
+ legends. When `xref` is "container", defaults to 1 for vertical
+ legends and defaults to 0 for horizontal legends. Must be
+ between 0 and 1 if `xref` is "container". and between "-2" and
+ 3 if `xref` is "paper".
+
+ The 'x' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["x"]
+
+ @x.setter
+ def x(self, val):
+ self["x"] = val
+
+ @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
+
+ @property
+ def xref(self):
+ """
+ Sets the container `x` refers to. "container" spans the entire
+ `width` of the plot. "paper" refers to the width of the
+ plotting area only.
+
+ The 'xref' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['container', 'paper']
+
+ Returns
+ -------
+ Any
+ """
+ return self["xref"]
+
+ @xref.setter
+ def xref(self, val):
+ self["xref"] = val
+
+ @property
+ def y(self):
+ """
+ Sets the y position with respect to `yref` (in normalized
+ coordinates) of the legend. When `yref` is "paper", 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.
+ When `yref` is "container", defaults to 1. Must be between 0
+ and 1 if `yref` is "container" and between "-2" and 3 if `yref`
+ is "paper".
+
+ The 'y' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["y"]
+
+ @y.setter
+ def y(self, val):
+ self["y"] = val
+
+ @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
+
+ @property
+ def yref(self):
+ """
+ Sets the container `y` refers to. "container" spans the entire
+ `height` of the plot. "paper" refers to the height of the
+ plotting area only.
+
+ The 'yref' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['container', 'paper']
+
+ Returns
+ -------
+ Any
+ """
+ return self["yref"]
+
+ @yref.setter
+ def yref(self, val):
+ self["yref"] = val
+
+ @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.
+ entrywidth
+ Sets the width (in px or fraction) of the legend. Use 0
+ to size the entry based on the text width, when
+ `entrywidthmode` is set to "pixels".
+ entrywidthmode
+ Determines what entrywidth means.
+ 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%.
+ indentation
+ Sets the indentation (in px) of the legend entries.
+ 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.
+ visible
+ Determines whether or not this legend is visible.
+ x
+ Sets the x position with respect to `xref` (in
+ normalized coordinates) of the legend. When `xref` is
+ "paper", defaults to 1.02 for vertical legends and
+ defaults to 0 for horizontal legends. When `xref` is
+ "container", defaults to 1 for vertical legends and
+ defaults to 0 for horizontal legends. Must be between 0
+ and 1 if `xref` is "container". and between "-2" and 3
+ if `xref` is "paper".
+ 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.
+ xref
+ Sets the container `x` refers to. "container" spans the
+ entire `width` of the plot. "paper" refers to the width
+ of the plotting area only.
+ y
+ Sets the y position with respect to `yref` (in
+ normalized coordinates) of the legend. When `yref` is
+ "paper", 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. When `yref`
+ is "container", defaults to 1. Must be between 0 and 1
+ if `yref` is "container" and between "-2" and 3 if
+ `yref` is "paper".
+ 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.
+ yref
+ Sets the container `y` refers to. "container" spans the
+ entire `height` of the plot. "paper" refers to the
+ height of the plotting area only.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ bgcolor=None,
+ bordercolor=None,
+ borderwidth=None,
+ entrywidth=None,
+ entrywidthmode=None,
+ font=None,
+ groupclick=None,
+ grouptitlefont=None,
+ indentation=None,
+ itemclick=None,
+ itemdoubleclick=None,
+ itemsizing=None,
+ itemwidth=None,
+ orientation=None,
+ title=None,
+ tracegroupgap=None,
+ traceorder=None,
+ uirevision=None,
+ valign=None,
+ visible=None,
+ x=None,
+ xanchor=None,
+ xref=None,
+ y=None,
+ yanchor=None,
+ yref=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.
+ entrywidth
+ Sets the width (in px or fraction) of the legend. Use 0
+ to size the entry based on the text width, when
+ `entrywidthmode` is set to "pixels".
+ entrywidthmode
+ Determines what entrywidth means.
+ 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%.
+ indentation
+ Sets the indentation (in px) of the legend entries.
+ 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.
+ visible
+ Determines whether or not this legend is visible.
+ x
+ Sets the x position with respect to `xref` (in
+ normalized coordinates) of the legend. When `xref` is
+ "paper", defaults to 1.02 for vertical legends and
+ defaults to 0 for horizontal legends. When `xref` is
+ "container", defaults to 1 for vertical legends and
+ defaults to 0 for horizontal legends. Must be between 0
+ and 1 if `xref` is "container". and between "-2" and 3
+ if `xref` is "paper".
+ 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.
+ xref
+ Sets the container `x` refers to. "container" spans the
+ entire `width` of the plot. "paper" refers to the width
+ of the plotting area only.
+ y
+ Sets the y position with respect to `yref` (in
+ normalized coordinates) of the legend. When `yref` is
+ "paper", 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. When `yref`
+ is "container", defaults to 1. Must be between 0 and 1
+ if `yref` is "container" and between "-2" and 3 if
+ `yref` is "paper".
+ 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.
+ yref
+ Sets the container `y` refers to. "container" spans the
+ entire `height` of the plot. "paper" refers to the
+ height of the plotting area only.
+
+ Returns
+ -------
+ Legend
+ """
+ super().__init__("legend")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("bgcolor", arg, bgcolor)
+ self._set_property("bordercolor", arg, bordercolor)
+ self._set_property("borderwidth", arg, borderwidth)
+ self._set_property("entrywidth", arg, entrywidth)
+ self._set_property("entrywidthmode", arg, entrywidthmode)
+ self._set_property("font", arg, font)
+ self._set_property("groupclick", arg, groupclick)
+ self._set_property("grouptitlefont", arg, grouptitlefont)
+ self._set_property("indentation", arg, indentation)
+ self._set_property("itemclick", arg, itemclick)
+ self._set_property("itemdoubleclick", arg, itemdoubleclick)
+ self._set_property("itemsizing", arg, itemsizing)
+ self._set_property("itemwidth", arg, itemwidth)
+ self._set_property("orientation", arg, orientation)
+ self._set_property("title", arg, title)
+ self._set_property("tracegroupgap", arg, tracegroupgap)
+ self._set_property("traceorder", arg, traceorder)
+ self._set_property("uirevision", arg, uirevision)
+ self._set_property("valign", arg, valign)
+ self._set_property("visible", arg, visible)
+ self._set_property("x", arg, x)
+ self._set_property("xanchor", arg, xanchor)
+ self._set_property("xref", arg, xref)
+ self._set_property("y", arg, y)
+ self._set_property("yanchor", arg, yanchor)
+ self._set_property("yref", arg, yref)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_map.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_map.py
new file mode 100644
index 0000000..f54257c
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_map.py
@@ -0,0 +1,392 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Map(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.map"
+ _valid_props = {
+ "bearing",
+ "bounds",
+ "center",
+ "domain",
+ "layerdefaults",
+ "layers",
+ "pitch",
+ "style",
+ "uirevision",
+ "zoom",
+ }
+
+ @property
+ def bearing(self):
+ """
+ Sets the bearing angle of the map in degrees counter-clockwise
+ from North (map.bearing).
+
+ The 'bearing' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["bearing"]
+
+ @bearing.setter
+ def bearing(self, val):
+ self["bearing"] = val
+
+ @property
+ def bounds(self):
+ """
+ The 'bounds' property is an instance of Bounds
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.map.Bounds`
+ - A dict of string/value properties that will be passed
+ to the Bounds constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.map.Bounds
+ """
+ return self["bounds"]
+
+ @bounds.setter
+ def bounds(self, val):
+ self["bounds"] = val
+
+ @property
+ def center(self):
+ """
+ The 'center' property is an instance of Center
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.map.Center`
+ - A dict of string/value properties that will be passed
+ to the Center constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.map.Center
+ """
+ return self["center"]
+
+ @center.setter
+ def center(self, val):
+ self["center"] = val
+
+ @property
+ def domain(self):
+ """
+ The 'domain' property is an instance of Domain
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.map.Domain`
+ - A dict of string/value properties that will be passed
+ to the Domain constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.map.Domain
+ """
+ return self["domain"]
+
+ @domain.setter
+ def domain(self, val):
+ self["domain"] = val
+
+ @property
+ def layers(self):
+ """
+ The 'layers' property is a tuple of instances of
+ Layer that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.map.Layer
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Layer constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.map.Layer]
+ """
+ return self["layers"]
+
+ @layers.setter
+ def layers(self, val):
+ self["layers"] = val
+
+ @property
+ def layerdefaults(self):
+ """
+ When used in a template (as
+ layout.template.layout.map.layerdefaults), sets the default
+ property values to use for elements of layout.map.layers
+
+ The 'layerdefaults' property is an instance of Layer
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.map.Layer`
+ - A dict of string/value properties that will be passed
+ to the Layer constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.map.Layer
+ """
+ return self["layerdefaults"]
+
+ @layerdefaults.setter
+ def layerdefaults(self, val):
+ self["layerdefaults"] = val
+
+ @property
+ def pitch(self):
+ """
+ Sets the pitch angle of the map (in degrees, where 0 means
+ perpendicular to the surface of the map) (map.pitch).
+
+ The 'pitch' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["pitch"]
+
+ @pitch.setter
+ def pitch(self, val):
+ self["pitch"] = val
+
+ @property
+ def style(self):
+ """
+ Defines the map layers that are rendered by default below the
+ trace layers defined in `data`, which are themselves by default
+ rendered below the layers defined in `layout.map.layers`.
+ These layers can be defined either explicitly as a Map Style
+ object which can contain multiple layer definitions that load
+ data from any public or private Tile Map Service (TMS or XYZ)
+ or Web Map Service (WMS) or implicitly by using one of the
+ built-in style objects which use WMSes or by using a custom
+ style URL Map Style objects are of the form described in the
+ MapLibre GL JS documentation available at
+ https://maplibre.org/maplibre-style-spec/ The built-in
+ plotly.js styles objects are: basic, carto-darkmatter, carto-
+ darkmatter-nolabels, carto-positron, carto-positron-nolabels,
+ carto-voyager, carto-voyager-nolabels, dark, light, open-
+ street-map, outdoors, satellite, satellite-streets, streets,
+ white-bg.
+
+ The 'style' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def uirevision(self):
+ """
+ Controls persistence of user-driven changes in the view:
+ `center`, `zoom`, `bearing`, `pitch`. 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
+
+ @property
+ def zoom(self):
+ """
+ Sets the zoom level of the map (map.zoom).
+
+ The 'zoom' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["zoom"]
+
+ @zoom.setter
+ def zoom(self, val):
+ self["zoom"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ bearing
+ Sets the bearing angle of the map in degrees counter-
+ clockwise from North (map.bearing).
+ bounds
+ :class:`plotly.graph_objects.layout.map.Bounds`
+ instance or dict with compatible properties
+ center
+ :class:`plotly.graph_objects.layout.map.Center`
+ instance or dict with compatible properties
+ domain
+ :class:`plotly.graph_objects.layout.map.Domain`
+ instance or dict with compatible properties
+ layers
+ A tuple of
+ :class:`plotly.graph_objects.layout.map.Layer`
+ instances or dicts with compatible properties
+ layerdefaults
+ When used in a template (as
+ layout.template.layout.map.layerdefaults), sets the
+ default property values to use for elements of
+ layout.map.layers
+ pitch
+ Sets the pitch angle of the map (in degrees, where 0
+ means perpendicular to the surface of the map)
+ (map.pitch).
+ style
+ Defines the map layers that are rendered by default
+ below the trace layers defined in `data`, which are
+ themselves by default rendered below the layers defined
+ in `layout.map.layers`. These layers can be defined
+ either explicitly as a Map Style object which can
+ contain multiple layer definitions that load data from
+ any public or private Tile Map Service (TMS or XYZ) or
+ Web Map Service (WMS) or implicitly by using one of the
+ built-in style objects which use WMSes or by using a
+ custom style URL Map Style objects are of the form
+ described in the MapLibre GL JS documentation available
+ at https://maplibre.org/maplibre-style-spec/ The
+ built-in plotly.js styles objects are: basic, carto-
+ darkmatter, carto-darkmatter-nolabels, carto-positron,
+ carto-positron-nolabels, carto-voyager, carto-voyager-
+ nolabels, dark, light, open-street-map, outdoors,
+ satellite, satellite-streets, streets, white-bg.
+ uirevision
+ Controls persistence of user-driven changes in the
+ view: `center`, `zoom`, `bearing`, `pitch`. Defaults to
+ `layout.uirevision`.
+ zoom
+ Sets the zoom level of the map (map.zoom).
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ bearing=None,
+ bounds=None,
+ center=None,
+ domain=None,
+ layers=None,
+ layerdefaults=None,
+ pitch=None,
+ style=None,
+ uirevision=None,
+ zoom=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Map object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.Map`
+ bearing
+ Sets the bearing angle of the map in degrees counter-
+ clockwise from North (map.bearing).
+ bounds
+ :class:`plotly.graph_objects.layout.map.Bounds`
+ instance or dict with compatible properties
+ center
+ :class:`plotly.graph_objects.layout.map.Center`
+ instance or dict with compatible properties
+ domain
+ :class:`plotly.graph_objects.layout.map.Domain`
+ instance or dict with compatible properties
+ layers
+ A tuple of
+ :class:`plotly.graph_objects.layout.map.Layer`
+ instances or dicts with compatible properties
+ layerdefaults
+ When used in a template (as
+ layout.template.layout.map.layerdefaults), sets the
+ default property values to use for elements of
+ layout.map.layers
+ pitch
+ Sets the pitch angle of the map (in degrees, where 0
+ means perpendicular to the surface of the map)
+ (map.pitch).
+ style
+ Defines the map layers that are rendered by default
+ below the trace layers defined in `data`, which are
+ themselves by default rendered below the layers defined
+ in `layout.map.layers`. These layers can be defined
+ either explicitly as a Map Style object which can
+ contain multiple layer definitions that load data from
+ any public or private Tile Map Service (TMS or XYZ) or
+ Web Map Service (WMS) or implicitly by using one of the
+ built-in style objects which use WMSes or by using a
+ custom style URL Map Style objects are of the form
+ described in the MapLibre GL JS documentation available
+ at https://maplibre.org/maplibre-style-spec/ The
+ built-in plotly.js styles objects are: basic, carto-
+ darkmatter, carto-darkmatter-nolabels, carto-positron,
+ carto-positron-nolabels, carto-voyager, carto-voyager-
+ nolabels, dark, light, open-street-map, outdoors,
+ satellite, satellite-streets, streets, white-bg.
+ uirevision
+ Controls persistence of user-driven changes in the
+ view: `center`, `zoom`, `bearing`, `pitch`. Defaults to
+ `layout.uirevision`.
+ zoom
+ Sets the zoom level of the map (map.zoom).
+
+ Returns
+ -------
+ Map
+ """
+ super().__init__("map")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Map
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.Map`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("bearing", arg, bearing)
+ self._set_property("bounds", arg, bounds)
+ self._set_property("center", arg, center)
+ self._set_property("domain", arg, domain)
+ self._set_property("layers", arg, layers)
+ self._set_property("layerdefaults", arg, layerdefaults)
+ self._set_property("pitch", arg, pitch)
+ self._set_property("style", arg, style)
+ self._set_property("uirevision", arg, uirevision)
+ self._set_property("zoom", arg, zoom)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_mapbox.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_mapbox.py
new file mode 100644
index 0000000..b0f5e4e
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_mapbox.py
@@ -0,0 +1,452 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Mapbox(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.mapbox"
+ _valid_props = {
+ "accesstoken",
+ "bearing",
+ "bounds",
+ "center",
+ "domain",
+ "layerdefaults",
+ "layers",
+ "pitch",
+ "style",
+ "uirevision",
+ "zoom",
+ }
+
+ @property
+ def accesstoken(self):
+ """
+ Sets the mapbox access token to be used for this mapbox map.
+ Alternatively, the mapbox access token can be set in the
+ configuration options under `mapboxAccessToken`. Note that
+ accessToken are only required when `style` (e.g with values :
+ basic, streets, outdoors, light, dark, satellite, satellite-
+ streets ) and/or a layout layer references the Mapbox server.
+
+ The 'accesstoken' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["accesstoken"]
+
+ @accesstoken.setter
+ def accesstoken(self, val):
+ self["accesstoken"] = val
+
+ @property
+ def bearing(self):
+ """
+ Sets the bearing angle of the map in degrees counter-clockwise
+ from North (mapbox.bearing).
+
+ The 'bearing' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["bearing"]
+
+ @bearing.setter
+ def bearing(self, val):
+ self["bearing"] = val
+
+ @property
+ def bounds(self):
+ """
+ The 'bounds' property is an instance of Bounds
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.mapbox.Bounds`
+ - A dict of string/value properties that will be passed
+ to the Bounds constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.mapbox.Bounds
+ """
+ return self["bounds"]
+
+ @bounds.setter
+ def bounds(self, val):
+ self["bounds"] = val
+
+ @property
+ def center(self):
+ """
+ The 'center' property is an instance of Center
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.mapbox.Center`
+ - A dict of string/value properties that will be passed
+ to the Center constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.mapbox.Center
+ """
+ return self["center"]
+
+ @center.setter
+ def center(self, val):
+ self["center"] = val
+
+ @property
+ def domain(self):
+ """
+ The 'domain' property is an instance of Domain
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.mapbox.Domain`
+ - A dict of string/value properties that will be passed
+ to the Domain constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.mapbox.Domain
+ """
+ return self["domain"]
+
+ @domain.setter
+ def domain(self, val):
+ self["domain"] = val
+
+ @property
+ def layers(self):
+ """
+ The 'layers' property is a tuple of instances of
+ Layer that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.mapbox.Layer
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Layer constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.mapbox.Layer]
+ """
+ return self["layers"]
+
+ @layers.setter
+ def layers(self, val):
+ self["layers"] = val
+
+ @property
+ def layerdefaults(self):
+ """
+ When used in a template (as
+ layout.template.layout.mapbox.layerdefaults), sets the default
+ property values to use for elements of layout.mapbox.layers
+
+ The 'layerdefaults' property is an instance of Layer
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.mapbox.Layer`
+ - A dict of string/value properties that will be passed
+ to the Layer constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.mapbox.Layer
+ """
+ return self["layerdefaults"]
+
+ @layerdefaults.setter
+ def layerdefaults(self, val):
+ self["layerdefaults"] = val
+
+ @property
+ def pitch(self):
+ """
+ Sets the pitch angle of the map (in degrees, where 0 means
+ perpendicular to the surface of the map) (mapbox.pitch).
+
+ The 'pitch' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["pitch"]
+
+ @pitch.setter
+ def pitch(self, val):
+ self["pitch"] = val
+
+ @property
+ def style(self):
+ """
+ Defines the map layers that are rendered by default below the
+ trace layers defined in `data`, which are themselves by default
+ rendered below the layers defined in `layout.mapbox.layers`.
+ These layers can be defined either explicitly as a Mapbox Style
+ object which can contain multiple layer definitions that load
+ data from any public or private Tile Map Service (TMS or XYZ)
+ or Web Map Service (WMS) or implicitly by using one of the
+ built-in style objects which use WMSes which do not require any
+ access tokens, or by using a default Mapbox style or custom
+ Mapbox style URL, both of which require a Mapbox access token
+ Note that Mapbox access token can be set in the `accesstoken`
+ attribute or in the `mapboxAccessToken` config option. Mapbox
+ Style objects are of the form described in the Mapbox GL JS
+ documentation available at https://docs.mapbox.com/mapbox-gl-
+ js/style-spec The built-in plotly.js styles objects are:
+ carto-darkmatter, carto-positron, open-street-map, stamen-
+ terrain, stamen-toner, stamen-watercolor, white-bg The built-
+ in Mapbox styles are: basic, streets, outdoors, light, dark,
+ satellite, satellite-streets Mapbox style URLs are of the
+ form: mapbox://mapbox.mapbox-<name>-<version>
+
+ The 'style' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def uirevision(self):
+ """
+ Controls persistence of user-driven changes in the view:
+ `center`, `zoom`, `bearing`, `pitch`. 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
+
+ @property
+ def zoom(self):
+ """
+ Sets the zoom level of the map (mapbox.zoom).
+
+ The 'zoom' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["zoom"]
+
+ @zoom.setter
+ def zoom(self, val):
+ self["zoom"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ accesstoken
+ Sets the mapbox access token to be used for this mapbox
+ map. Alternatively, the mapbox access token can be set
+ in the configuration options under `mapboxAccessToken`.
+ Note that accessToken are only required when `style`
+ (e.g with values : basic, streets, outdoors, light,
+ dark, satellite, satellite-streets ) and/or a layout
+ layer references the Mapbox server.
+ bearing
+ Sets the bearing angle of the map in degrees counter-
+ clockwise from North (mapbox.bearing).
+ bounds
+ :class:`plotly.graph_objects.layout.mapbox.Bounds`
+ instance or dict with compatible properties
+ center
+ :class:`plotly.graph_objects.layout.mapbox.Center`
+ instance or dict with compatible properties
+ domain
+ :class:`plotly.graph_objects.layout.mapbox.Domain`
+ instance or dict with compatible properties
+ layers
+ A tuple of
+ :class:`plotly.graph_objects.layout.mapbox.Layer`
+ instances or dicts with compatible properties
+ layerdefaults
+ When used in a template (as
+ layout.template.layout.mapbox.layerdefaults), sets the
+ default property values to use for elements of
+ layout.mapbox.layers
+ pitch
+ Sets the pitch angle of the map (in degrees, where 0
+ means perpendicular to the surface of the map)
+ (mapbox.pitch).
+ style
+ Defines the map layers that are rendered by default
+ below the trace layers defined in `data`, which are
+ themselves by default rendered below the layers defined
+ in `layout.mapbox.layers`. These layers can be defined
+ either explicitly as a Mapbox Style object which can
+ contain multiple layer definitions that load data from
+ any public or private Tile Map Service (TMS or XYZ) or
+ Web Map Service (WMS) or implicitly by using one of the
+ built-in style objects which use WMSes which do not
+ require any access tokens, or by using a default Mapbox
+ style or custom Mapbox style URL, both of which require
+ a Mapbox access token Note that Mapbox access token
+ can be set in the `accesstoken` attribute or in the
+ `mapboxAccessToken` config option. Mapbox Style
+ objects are of the form described in the Mapbox GL JS
+ documentation available at
+ https://docs.mapbox.com/mapbox-gl-js/style-spec The
+ built-in plotly.js styles objects are: carto-
+ darkmatter, carto-positron, open-street-map, stamen-
+ terrain, stamen-toner, stamen-watercolor, white-bg The
+ built-in Mapbox styles are: basic, streets, outdoors,
+ light, dark, satellite, satellite-streets Mapbox style
+ URLs are of the form:
+ mapbox://mapbox.mapbox-<name>-<version>
+ uirevision
+ Controls persistence of user-driven changes in the
+ view: `center`, `zoom`, `bearing`, `pitch`. Defaults to
+ `layout.uirevision`.
+ zoom
+ Sets the zoom level of the map (mapbox.zoom).
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ accesstoken=None,
+ bearing=None,
+ bounds=None,
+ center=None,
+ domain=None,
+ layers=None,
+ layerdefaults=None,
+ pitch=None,
+ style=None,
+ uirevision=None,
+ zoom=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Mapbox object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.Mapbox`
+ accesstoken
+ Sets the mapbox access token to be used for this mapbox
+ map. Alternatively, the mapbox access token can be set
+ in the configuration options under `mapboxAccessToken`.
+ Note that accessToken are only required when `style`
+ (e.g with values : basic, streets, outdoors, light,
+ dark, satellite, satellite-streets ) and/or a layout
+ layer references the Mapbox server.
+ bearing
+ Sets the bearing angle of the map in degrees counter-
+ clockwise from North (mapbox.bearing).
+ bounds
+ :class:`plotly.graph_objects.layout.mapbox.Bounds`
+ instance or dict with compatible properties
+ center
+ :class:`plotly.graph_objects.layout.mapbox.Center`
+ instance or dict with compatible properties
+ domain
+ :class:`plotly.graph_objects.layout.mapbox.Domain`
+ instance or dict with compatible properties
+ layers
+ A tuple of
+ :class:`plotly.graph_objects.layout.mapbox.Layer`
+ instances or dicts with compatible properties
+ layerdefaults
+ When used in a template (as
+ layout.template.layout.mapbox.layerdefaults), sets the
+ default property values to use for elements of
+ layout.mapbox.layers
+ pitch
+ Sets the pitch angle of the map (in degrees, where 0
+ means perpendicular to the surface of the map)
+ (mapbox.pitch).
+ style
+ Defines the map layers that are rendered by default
+ below the trace layers defined in `data`, which are
+ themselves by default rendered below the layers defined
+ in `layout.mapbox.layers`. These layers can be defined
+ either explicitly as a Mapbox Style object which can
+ contain multiple layer definitions that load data from
+ any public or private Tile Map Service (TMS or XYZ) or
+ Web Map Service (WMS) or implicitly by using one of the
+ built-in style objects which use WMSes which do not
+ require any access tokens, or by using a default Mapbox
+ style or custom Mapbox style URL, both of which require
+ a Mapbox access token Note that Mapbox access token
+ can be set in the `accesstoken` attribute or in the
+ `mapboxAccessToken` config option. Mapbox Style
+ objects are of the form described in the Mapbox GL JS
+ documentation available at
+ https://docs.mapbox.com/mapbox-gl-js/style-spec The
+ built-in plotly.js styles objects are: carto-
+ darkmatter, carto-positron, open-street-map, stamen-
+ terrain, stamen-toner, stamen-watercolor, white-bg The
+ built-in Mapbox styles are: basic, streets, outdoors,
+ light, dark, satellite, satellite-streets Mapbox style
+ URLs are of the form:
+ mapbox://mapbox.mapbox-<name>-<version>
+ uirevision
+ Controls persistence of user-driven changes in the
+ view: `center`, `zoom`, `bearing`, `pitch`. Defaults to
+ `layout.uirevision`.
+ zoom
+ Sets the zoom level of the map (mapbox.zoom).
+
+ Returns
+ -------
+ Mapbox
+ """
+ super().__init__("mapbox")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.Mapbox`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("accesstoken", arg, accesstoken)
+ self._set_property("bearing", arg, bearing)
+ self._set_property("bounds", arg, bounds)
+ self._set_property("center", arg, center)
+ self._set_property("domain", arg, domain)
+ self._set_property("layers", arg, layers)
+ self._set_property("layerdefaults", arg, layerdefaults)
+ self._set_property("pitch", arg, pitch)
+ self._set_property("style", arg, style)
+ self._set_property("uirevision", arg, uirevision)
+ self._set_property("zoom", arg, zoom)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_margin.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_margin.py
new file mode 100644
index 0000000..2af6048
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_margin.py
@@ -0,0 +1,212 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Margin(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.margin"
+ _valid_props = {"autoexpand", "b", "l", "pad", "r", "t"}
+
+ @property
+ def autoexpand(self):
+ """
+ Turns on/off margin expansion computations. Legends, colorbars,
+ updatemenus, sliders, axis rangeselector and rangeslider are
+ allowed to push the margins by defaults.
+
+ The 'autoexpand' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["autoexpand"]
+
+ @autoexpand.setter
+ def autoexpand(self, val):
+ self["autoexpand"] = val
+
+ @property
+ def b(self):
+ """
+ Sets the bottom margin (in px).
+
+ The 'b' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["b"]
+
+ @b.setter
+ def b(self, val):
+ self["b"] = val
+
+ @property
+ def l(self):
+ """
+ Sets the left margin (in px).
+
+ The 'l' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["l"]
+
+ @l.setter
+ def l(self, val):
+ self["l"] = val
+
+ @property
+ def pad(self):
+ """
+ Sets the amount of padding (in px) between the plotting area
+ and the axis lines
+
+ The 'pad' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["pad"]
+
+ @pad.setter
+ def pad(self, val):
+ self["pad"] = val
+
+ @property
+ def r(self):
+ """
+ Sets the right margin (in px).
+
+ The 'r' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["r"]
+
+ @r.setter
+ def r(self, val):
+ self["r"] = val
+
+ @property
+ def t(self):
+ """
+ Sets the top margin (in px).
+
+ The 't' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["t"]
+
+ @t.setter
+ def t(self, val):
+ self["t"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ autoexpand
+ Turns on/off margin expansion computations. Legends,
+ colorbars, updatemenus, sliders, axis rangeselector and
+ rangeslider are allowed to push the margins by
+ defaults.
+ b
+ Sets the bottom margin (in px).
+ l
+ Sets the left margin (in px).
+ pad
+ Sets the amount of padding (in px) between the plotting
+ area and the axis lines
+ r
+ Sets the right margin (in px).
+ t
+ Sets the top margin (in px).
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ autoexpand=None,
+ b=None,
+ l=None,
+ pad=None,
+ r=None,
+ t=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Margin object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.Margin`
+ autoexpand
+ Turns on/off margin expansion computations. Legends,
+ colorbars, updatemenus, sliders, axis rangeselector and
+ rangeslider are allowed to push the margins by
+ defaults.
+ b
+ Sets the bottom margin (in px).
+ l
+ Sets the left margin (in px).
+ pad
+ Sets the amount of padding (in px) between the plotting
+ area and the axis lines
+ r
+ Sets the right margin (in px).
+ t
+ Sets the top margin (in px).
+
+ Returns
+ -------
+ Margin
+ """
+ super().__init__("margin")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Margin
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.Margin`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("autoexpand", arg, autoexpand)
+ self._set_property("b", arg, b)
+ self._set_property("l", arg, l)
+ self._set_property("pad", arg, pad)
+ self._set_property("r", arg, r)
+ self._set_property("t", arg, t)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_modebar.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_modebar.py
new file mode 100644
index 0000000..34b9180
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_modebar.py
@@ -0,0 +1,387 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Modebar(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.modebar"
+ _valid_props = {
+ "activecolor",
+ "add",
+ "addsrc",
+ "bgcolor",
+ "color",
+ "orientation",
+ "remove",
+ "removesrc",
+ "uirevision",
+ }
+
+ @property
+ def activecolor(self):
+ """
+ Sets the color of the active or hovered on icons in the
+ modebar.
+
+ The 'activecolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["activecolor"]
+
+ @activecolor.setter
+ def activecolor(self, val):
+ self["activecolor"] = val
+
+ @property
+ def add(self):
+ """
+ Determines which predefined modebar buttons to add. Please note
+ that these buttons will only be shown if they are compatible
+ with all trace types used in a graph. Similar to
+ `config.modeBarButtonsToAdd` option. This may include
+ "v1hovermode", "hoverclosest", "hovercompare", "togglehover",
+ "togglespikelines", "drawline", "drawopenpath",
+ "drawclosedpath", "drawcircle", "drawrect", "eraseshape".
+
+ The 'add' 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["add"]
+
+ @add.setter
+ def add(self, val):
+ self["add"] = val
+
+ @property
+ def addsrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `add`.
+
+ The 'addsrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["addsrc"]
+
+ @addsrc.setter
+ def addsrc(self, val):
+ self["addsrc"] = val
+
+ @property
+ def bgcolor(self):
+ """
+ Sets the background color of the modebar.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["bgcolor"]
+
+ @bgcolor.setter
+ def bgcolor(self, val):
+ self["bgcolor"] = val
+
+ @property
+ def color(self):
+ """
+ Sets the color of the icons in the modebar.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def orientation(self):
+ """
+ Sets the orientation of the modebar.
+
+ 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
+
+ @property
+ def remove(self):
+ """
+ Determines which predefined modebar buttons to remove. Similar
+ to `config.modeBarButtonsToRemove` option. This may include
+ "autoScale2d", "autoscale", "editInChartStudio",
+ "editinchartstudio", "hoverCompareCartesian", "hovercompare",
+ "lasso", "lasso2d", "orbitRotation", "orbitrotation", "pan",
+ "pan2d", "pan3d", "reset", "resetCameraDefault3d",
+ "resetCameraLastSave3d", "resetGeo", "resetSankeyGroup",
+ "resetScale2d", "resetViewMap", "resetViewMapbox",
+ "resetViews", "resetcameradefault", "resetcameralastsave",
+ "resetsankeygroup", "resetscale", "resetview", "resetviews",
+ "select", "select2d", "sendDataToCloud", "senddatatocloud",
+ "tableRotation", "tablerotation", "toImage", "toggleHover",
+ "toggleSpikelines", "togglehover", "togglespikelines",
+ "toimage", "zoom", "zoom2d", "zoom3d", "zoomIn2d", "zoomInGeo",
+ "zoomInMap", "zoomInMapbox", "zoomOut2d", "zoomOutGeo",
+ "zoomOutMap", "zoomOutMapbox", "zoomin", "zoomout".
+
+ The 'remove' 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["remove"]
+
+ @remove.setter
+ def remove(self, val):
+ self["remove"] = val
+
+ @property
+ def removesrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `remove`.
+
+ The 'removesrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["removesrc"]
+
+ @removesrc.setter
+ def removesrc(self, val):
+ self["removesrc"] = val
+
+ @property
+ def uirevision(self):
+ """
+ Controls persistence of user-driven changes related to the
+ modebar, including `hovermode`, `dragmode`, and `showspikes` at
+ both the root level and inside subplots. 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
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ activecolor
+ Sets the color of the active or hovered on icons in the
+ modebar.
+ add
+ Determines which predefined modebar buttons to add.
+ Please note that these buttons will only be shown if
+ they are compatible with all trace types used in a
+ graph. Similar to `config.modeBarButtonsToAdd` option.
+ This may include "v1hovermode", "hoverclosest",
+ "hovercompare", "togglehover", "togglespikelines",
+ "drawline", "drawopenpath", "drawclosedpath",
+ "drawcircle", "drawrect", "eraseshape".
+ addsrc
+ Sets the source reference on Chart Studio Cloud for
+ `add`.
+ bgcolor
+ Sets the background color of the modebar.
+ color
+ Sets the color of the icons in the modebar.
+ orientation
+ Sets the orientation of the modebar.
+ remove
+ Determines which predefined modebar buttons to remove.
+ Similar to `config.modeBarButtonsToRemove` option. This
+ may include "autoScale2d", "autoscale",
+ "editInChartStudio", "editinchartstudio",
+ "hoverCompareCartesian", "hovercompare", "lasso",
+ "lasso2d", "orbitRotation", "orbitrotation", "pan",
+ "pan2d", "pan3d", "reset", "resetCameraDefault3d",
+ "resetCameraLastSave3d", "resetGeo",
+ "resetSankeyGroup", "resetScale2d", "resetViewMap",
+ "resetViewMapbox", "resetViews", "resetcameradefault",
+ "resetcameralastsave", "resetsankeygroup",
+ "resetscale", "resetview", "resetviews", "select",
+ "select2d", "sendDataToCloud", "senddatatocloud",
+ "tableRotation", "tablerotation", "toImage",
+ "toggleHover", "toggleSpikelines", "togglehover",
+ "togglespikelines", "toimage", "zoom", "zoom2d",
+ "zoom3d", "zoomIn2d", "zoomInGeo", "zoomInMap",
+ "zoomInMapbox", "zoomOut2d", "zoomOutGeo",
+ "zoomOutMap", "zoomOutMapbox", "zoomin", "zoomout".
+ removesrc
+ Sets the source reference on Chart Studio Cloud for
+ `remove`.
+ uirevision
+ Controls persistence of user-driven changes related to
+ the modebar, including `hovermode`, `dragmode`, and
+ `showspikes` at both the root level and inside
+ subplots. Defaults to `layout.uirevision`.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ activecolor=None,
+ add=None,
+ addsrc=None,
+ bgcolor=None,
+ color=None,
+ orientation=None,
+ remove=None,
+ removesrc=None,
+ uirevision=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Modebar object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.Modebar`
+ activecolor
+ Sets the color of the active or hovered on icons in the
+ modebar.
+ add
+ Determines which predefined modebar buttons to add.
+ Please note that these buttons will only be shown if
+ they are compatible with all trace types used in a
+ graph. Similar to `config.modeBarButtonsToAdd` option.
+ This may include "v1hovermode", "hoverclosest",
+ "hovercompare", "togglehover", "togglespikelines",
+ "drawline", "drawopenpath", "drawclosedpath",
+ "drawcircle", "drawrect", "eraseshape".
+ addsrc
+ Sets the source reference on Chart Studio Cloud for
+ `add`.
+ bgcolor
+ Sets the background color of the modebar.
+ color
+ Sets the color of the icons in the modebar.
+ orientation
+ Sets the orientation of the modebar.
+ remove
+ Determines which predefined modebar buttons to remove.
+ Similar to `config.modeBarButtonsToRemove` option. This
+ may include "autoScale2d", "autoscale",
+ "editInChartStudio", "editinchartstudio",
+ "hoverCompareCartesian", "hovercompare", "lasso",
+ "lasso2d", "orbitRotation", "orbitrotation", "pan",
+ "pan2d", "pan3d", "reset", "resetCameraDefault3d",
+ "resetCameraLastSave3d", "resetGeo",
+ "resetSankeyGroup", "resetScale2d", "resetViewMap",
+ "resetViewMapbox", "resetViews", "resetcameradefault",
+ "resetcameralastsave", "resetsankeygroup",
+ "resetscale", "resetview", "resetviews", "select",
+ "select2d", "sendDataToCloud", "senddatatocloud",
+ "tableRotation", "tablerotation", "toImage",
+ "toggleHover", "toggleSpikelines", "togglehover",
+ "togglespikelines", "toimage", "zoom", "zoom2d",
+ "zoom3d", "zoomIn2d", "zoomInGeo", "zoomInMap",
+ "zoomInMapbox", "zoomOut2d", "zoomOutGeo",
+ "zoomOutMap", "zoomOutMapbox", "zoomin", "zoomout".
+ removesrc
+ Sets the source reference on Chart Studio Cloud for
+ `remove`.
+ uirevision
+ Controls persistence of user-driven changes related to
+ the modebar, including `hovermode`, `dragmode`, and
+ `showspikes` at both the root level and inside
+ subplots. Defaults to `layout.uirevision`.
+
+ Returns
+ -------
+ Modebar
+ """
+ super().__init__("modebar")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Modebar
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.Modebar`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("activecolor", arg, activecolor)
+ self._set_property("add", arg, add)
+ self._set_property("addsrc", arg, addsrc)
+ self._set_property("bgcolor", arg, bgcolor)
+ self._set_property("color", arg, color)
+ self._set_property("orientation", arg, orientation)
+ self._set_property("remove", arg, remove)
+ self._set_property("removesrc", arg, removesrc)
+ self._set_property("uirevision", arg, uirevision)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_newselection.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_newselection.py
new file mode 100644
index 0000000..4f06571
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_newselection.py
@@ -0,0 +1,118 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Newselection(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.newselection"
+ _valid_props = {"line", "mode"}
+
+ @property
+ def line(self):
+ """
+ The 'line' property is an instance of Line
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.newselection.Line`
+ - A dict of string/value properties that will be passed
+ to the Line constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.newselection.Line
+ """
+ return self["line"]
+
+ @line.setter
+ def line(self, val):
+ self["line"] = val
+
+ @property
+ def mode(self):
+ """
+ Describes how a new selection is created. If `immediate`, a new
+ selection is created after first mouse up. If `gradual`, a new
+ selection is not created after first mouse. By adding to and
+ subtracting from the initial selection, this option allows
+ declaring extra outlines of the selection.
+
+ The 'mode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['immediate', 'gradual']
+
+ Returns
+ -------
+ Any
+ """
+ return self["mode"]
+
+ @mode.setter
+ def mode(self, val):
+ self["mode"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ line
+ :class:`plotly.graph_objects.layout.newselection.Line`
+ instance or dict with compatible properties
+ mode
+ Describes how a new selection is created. If
+ `immediate`, a new selection is created after first
+ mouse up. If `gradual`, a new selection is not created
+ after first mouse. By adding to and subtracting from
+ the initial selection, this option allows declaring
+ extra outlines of the selection.
+ """
+
+ def __init__(self, arg=None, line=None, mode=None, **kwargs):
+ """
+ Construct a new Newselection object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.Newselection`
+ line
+ :class:`plotly.graph_objects.layout.newselection.Line`
+ instance or dict with compatible properties
+ mode
+ Describes how a new selection is created. If
+ `immediate`, a new selection is created after first
+ mouse up. If `gradual`, a new selection is not created
+ after first mouse. By adding to and subtracting from
+ the initial selection, this option allows declaring
+ extra outlines of the selection.
+
+ Returns
+ -------
+ Newselection
+ """
+ super().__init__("newselection")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Newselection
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.Newselection`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("line", arg, line)
+ self._set_property("mode", arg, mode)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_newshape.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_newshape.py
new file mode 100644
index 0000000..05710a1
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_newshape.py
@@ -0,0 +1,543 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Newshape(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.newshape"
+ _valid_props = {
+ "drawdirection",
+ "fillcolor",
+ "fillrule",
+ "label",
+ "layer",
+ "legend",
+ "legendgroup",
+ "legendgrouptitle",
+ "legendrank",
+ "legendwidth",
+ "line",
+ "name",
+ "opacity",
+ "showlegend",
+ "visible",
+ }
+
+ @property
+ def drawdirection(self):
+ """
+ When `dragmode` is set to "drawrect", "drawline" or
+ "drawcircle" this limits the drag to be horizontal, vertical or
+ diagonal. Using "diagonal" there is no limit e.g. in drawing
+ lines in any direction. "ortho" limits the draw to be either
+ horizontal or vertical. "horizontal" allows horizontal extend.
+ "vertical" allows vertical extend.
+
+ The 'drawdirection' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['ortho', 'horizontal', 'vertical', 'diagonal']
+
+ Returns
+ -------
+ Any
+ """
+ return self["drawdirection"]
+
+ @drawdirection.setter
+ def drawdirection(self, val):
+ self["drawdirection"] = val
+
+ @property
+ def fillcolor(self):
+ """
+ Sets the color filling new shapes' interior. Please note that
+ if using a fillcolor with alpha greater than half, drag inside
+ the active shape starts moving the shape underneath, otherwise
+ a new shape could be started over.
+
+ The 'fillcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["fillcolor"]
+
+ @fillcolor.setter
+ def fillcolor(self, val):
+ self["fillcolor"] = val
+
+ @property
+ def fillrule(self):
+ """
+ Determines the path's interior. For more info please visit
+ https://developer.mozilla.org/en-
+ US/docs/Web/SVG/Attribute/fill-rule
+
+ The 'fillrule' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['evenodd', 'nonzero']
+
+ Returns
+ -------
+ Any
+ """
+ return self["fillrule"]
+
+ @fillrule.setter
+ def fillrule(self, val):
+ self["fillrule"] = val
+
+ @property
+ def label(self):
+ """
+ The 'label' property is an instance of Label
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.newshape.Label`
+ - A dict of string/value properties that will be passed
+ to the Label constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.newshape.Label
+ """
+ return self["label"]
+
+ @label.setter
+ def label(self, val):
+ self["label"] = val
+
+ @property
+ def layer(self):
+ """
+ Specifies whether new shapes are drawn below gridlines
+ ("below"), between gridlines and traces ("between") or above
+ traces ("above").
+
+ The 'layer' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['below', 'above', 'between']
+
+ Returns
+ -------
+ Any
+ """
+ return self["layer"]
+
+ @layer.setter
+ def layer(self, val):
+ self["layer"] = val
+
+ @property
+ def legend(self):
+ """
+ Sets the reference to a legend to show new shape in. References
+ to these legends are "legend", "legend2", "legend3", etc.
+ Settings for these legends are set in the layout, under
+ `layout.legend`, `layout.legend2`, etc.
+
+ The 'legend' property is an identifier of a particular
+ subplot, of type 'legend', that may be specified as the string 'legend'
+ optionally followed by an integer >= 1
+ (e.g. 'legend', 'legend1', 'legend2', 'legend3', etc.)
+
+ Returns
+ -------
+ str
+ """
+ return self["legend"]
+
+ @legend.setter
+ def legend(self, val):
+ self["legend"] = val
+
+ @property
+ def legendgroup(self):
+ """
+ Sets the legend group for new shape. Traces and shapes part of
+ the same legend group hide/show at the same time when toggling
+ legend items.
+
+ The 'legendgroup' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["legendgroup"]
+
+ @legendgroup.setter
+ def legendgroup(self, val):
+ self["legendgroup"] = val
+
+ @property
+ def legendgrouptitle(self):
+ """
+ The 'legendgrouptitle' property is an instance of Legendgrouptitle
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.newshape.Legendgrouptitle`
+ - A dict of string/value properties that will be passed
+ to the Legendgrouptitle constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.newshape.Legendgrouptitle
+ """
+ return self["legendgrouptitle"]
+
+ @legendgrouptitle.setter
+ def legendgrouptitle(self, val):
+ self["legendgrouptitle"] = val
+
+ @property
+ def legendrank(self):
+ """
+ Sets the legend rank for new shape. Items and groups with
+ smaller ranks are presented on top/left side while with
+ "reversed" `legend.traceorder` they are on bottom/right side.
+ The default legendrank is 1000, so that you can use ranks less
+ than 1000 to place certain items before all unranked items, and
+ ranks greater than 1000 to go after all unranked items.
+
+ The 'legendrank' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["legendrank"]
+
+ @legendrank.setter
+ def legendrank(self, val):
+ self["legendrank"] = val
+
+ @property
+ def legendwidth(self):
+ """
+ Sets the width (in px or fraction) of the legend for new shape.
+
+ The 'legendwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["legendwidth"]
+
+ @legendwidth.setter
+ def legendwidth(self, val):
+ self["legendwidth"] = val
+
+ @property
+ def line(self):
+ """
+ The 'line' property is an instance of Line
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.newshape.Line`
+ - A dict of string/value properties that will be passed
+ to the Line constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.newshape.Line
+ """
+ return self["line"]
+
+ @line.setter
+ def line(self, val):
+ self["line"] = val
+
+ @property
+ def name(self):
+ """
+ Sets new shape name. The name appears as the legend item.
+
+ The 'name' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["name"]
+
+ @name.setter
+ def name(self, val):
+ self["name"] = val
+
+ @property
+ def opacity(self):
+ """
+ Sets the opacity of new shapes.
+
+ The 'opacity' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["opacity"]
+
+ @opacity.setter
+ def opacity(self, val):
+ self["opacity"] = val
+
+ @property
+ def showlegend(self):
+ """
+ Determines whether or not new shape is shown in the legend.
+
+ The 'showlegend' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showlegend"]
+
+ @showlegend.setter
+ def showlegend(self, val):
+ self["showlegend"] = val
+
+ @property
+ def visible(self):
+ """
+ Determines whether or not new shape is visible. If
+ "legendonly", the shape is not drawn, but can appear as a
+ legend item (provided that the legend itself is visible).
+
+ The 'visible' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ [True, False, 'legendonly']
+
+ Returns
+ -------
+ Any
+ """
+ return self["visible"]
+
+ @visible.setter
+ def visible(self, val):
+ self["visible"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ drawdirection
+ When `dragmode` is set to "drawrect", "drawline" or
+ "drawcircle" this limits the drag to be horizontal,
+ vertical or diagonal. Using "diagonal" there is no
+ limit e.g. in drawing lines in any direction. "ortho"
+ limits the draw to be either horizontal or vertical.
+ "horizontal" allows horizontal extend. "vertical"
+ allows vertical extend.
+ fillcolor
+ Sets the color filling new shapes' interior. Please
+ note that if using a fillcolor with alpha greater than
+ half, drag inside the active shape starts moving the
+ shape underneath, otherwise a new shape could be
+ started over.
+ fillrule
+ Determines the path's interior. For more info please
+ visit https://developer.mozilla.org/en-
+ US/docs/Web/SVG/Attribute/fill-rule
+ label
+ :class:`plotly.graph_objects.layout.newshape.Label`
+ instance or dict with compatible properties
+ layer
+ Specifies whether new shapes are drawn below gridlines
+ ("below"), between gridlines and traces ("between") or
+ above traces ("above").
+ legend
+ Sets the reference to a legend to show new shape in.
+ References to these legends are "legend", "legend2",
+ "legend3", etc. Settings for these legends are set in
+ the layout, under `layout.legend`, `layout.legend2`,
+ etc.
+ legendgroup
+ Sets the legend group for new shape. Traces and shapes
+ part of the same legend group hide/show at the same
+ time when toggling legend items.
+ legendgrouptitle
+ :class:`plotly.graph_objects.layout.newshape.Legendgrou
+ ptitle` instance or dict with compatible properties
+ legendrank
+ Sets the legend rank for new shape. Items and groups
+ with smaller ranks are presented on top/left side while
+ with "reversed" `legend.traceorder` they are on
+ bottom/right side. The default legendrank is 1000, so
+ that you can use ranks less than 1000 to place certain
+ items before all unranked items, and ranks greater than
+ 1000 to go after all unranked items.
+ legendwidth
+ Sets the width (in px or fraction) of the legend for
+ new shape.
+ line
+ :class:`plotly.graph_objects.layout.newshape.Line`
+ instance or dict with compatible properties
+ name
+ Sets new shape name. The name appears as the legend
+ item.
+ opacity
+ Sets the opacity of new shapes.
+ showlegend
+ Determines whether or not new shape is shown in the
+ legend.
+ visible
+ Determines whether or not new shape is visible. If
+ "legendonly", the shape is not drawn, but can appear as
+ a legend item (provided that the legend itself is
+ visible).
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ drawdirection=None,
+ fillcolor=None,
+ fillrule=None,
+ label=None,
+ layer=None,
+ legend=None,
+ legendgroup=None,
+ legendgrouptitle=None,
+ legendrank=None,
+ legendwidth=None,
+ line=None,
+ name=None,
+ opacity=None,
+ showlegend=None,
+ visible=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Newshape object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.Newshape`
+ drawdirection
+ When `dragmode` is set to "drawrect", "drawline" or
+ "drawcircle" this limits the drag to be horizontal,
+ vertical or diagonal. Using "diagonal" there is no
+ limit e.g. in drawing lines in any direction. "ortho"
+ limits the draw to be either horizontal or vertical.
+ "horizontal" allows horizontal extend. "vertical"
+ allows vertical extend.
+ fillcolor
+ Sets the color filling new shapes' interior. Please
+ note that if using a fillcolor with alpha greater than
+ half, drag inside the active shape starts moving the
+ shape underneath, otherwise a new shape could be
+ started over.
+ fillrule
+ Determines the path's interior. For more info please
+ visit https://developer.mozilla.org/en-
+ US/docs/Web/SVG/Attribute/fill-rule
+ label
+ :class:`plotly.graph_objects.layout.newshape.Label`
+ instance or dict with compatible properties
+ layer
+ Specifies whether new shapes are drawn below gridlines
+ ("below"), between gridlines and traces ("between") or
+ above traces ("above").
+ legend
+ Sets the reference to a legend to show new shape in.
+ References to these legends are "legend", "legend2",
+ "legend3", etc. Settings for these legends are set in
+ the layout, under `layout.legend`, `layout.legend2`,
+ etc.
+ legendgroup
+ Sets the legend group for new shape. Traces and shapes
+ part of the same legend group hide/show at the same
+ time when toggling legend items.
+ legendgrouptitle
+ :class:`plotly.graph_objects.layout.newshape.Legendgrou
+ ptitle` instance or dict with compatible properties
+ legendrank
+ Sets the legend rank for new shape. Items and groups
+ with smaller ranks are presented on top/left side while
+ with "reversed" `legend.traceorder` they are on
+ bottom/right side. The default legendrank is 1000, so
+ that you can use ranks less than 1000 to place certain
+ items before all unranked items, and ranks greater than
+ 1000 to go after all unranked items.
+ legendwidth
+ Sets the width (in px or fraction) of the legend for
+ new shape.
+ line
+ :class:`plotly.graph_objects.layout.newshape.Line`
+ instance or dict with compatible properties
+ name
+ Sets new shape name. The name appears as the legend
+ item.
+ opacity
+ Sets the opacity of new shapes.
+ showlegend
+ Determines whether or not new shape is shown in the
+ legend.
+ visible
+ Determines whether or not new shape is visible. If
+ "legendonly", the shape is not drawn, but can appear as
+ a legend item (provided that the legend itself is
+ visible).
+
+ Returns
+ -------
+ Newshape
+ """
+ super().__init__("newshape")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Newshape
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.Newshape`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("drawdirection", arg, drawdirection)
+ self._set_property("fillcolor", arg, fillcolor)
+ self._set_property("fillrule", arg, fillrule)
+ self._set_property("label", arg, label)
+ self._set_property("layer", arg, layer)
+ self._set_property("legend", arg, legend)
+ self._set_property("legendgroup", arg, legendgroup)
+ self._set_property("legendgrouptitle", arg, legendgrouptitle)
+ self._set_property("legendrank", arg, legendrank)
+ self._set_property("legendwidth", arg, legendwidth)
+ self._set_property("line", arg, line)
+ self._set_property("name", arg, name)
+ self._set_property("opacity", arg, opacity)
+ self._set_property("showlegend", arg, showlegend)
+ self._set_property("visible", arg, visible)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_polar.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_polar.py
new file mode 100644
index 0000000..51d7620
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_polar.py
@@ -0,0 +1,382 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Polar(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.polar"
+ _valid_props = {
+ "angularaxis",
+ "bargap",
+ "barmode",
+ "bgcolor",
+ "domain",
+ "gridshape",
+ "hole",
+ "radialaxis",
+ "sector",
+ "uirevision",
+ }
+
+ @property
+ def angularaxis(self):
+ """
+ The 'angularaxis' property is an instance of AngularAxis
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.polar.AngularAxis`
+ - A dict of string/value properties that will be passed
+ to the AngularAxis constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.polar.AngularAxis
+ """
+ return self["angularaxis"]
+
+ @angularaxis.setter
+ def angularaxis(self, val):
+ self["angularaxis"] = val
+
+ @property
+ def bargap(self):
+ """
+ Sets the gap between bars of adjacent location coordinates.
+ Values are unitless, they represent fractions of the minimum
+ difference in bar positions in the data.
+
+ The 'bargap' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["bargap"]
+
+ @bargap.setter
+ def bargap(self, val):
+ self["bargap"] = val
+
+ @property
+ def barmode(self):
+ """
+ Determines how bars at the same location coordinate are
+ displayed on the graph. With "stack", the bars are stacked on
+ top of one another With "overlay", the bars are plotted over
+ one another, you might need to reduce "opacity" to see multiple
+ bars.
+
+ The 'barmode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['stack', 'overlay']
+
+ Returns
+ -------
+ Any
+ """
+ return self["barmode"]
+
+ @barmode.setter
+ def barmode(self, val):
+ self["barmode"] = val
+
+ @property
+ def bgcolor(self):
+ """
+ Set the background color of the subplot
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["bgcolor"]
+
+ @bgcolor.setter
+ def bgcolor(self, val):
+ self["bgcolor"] = val
+
+ @property
+ def domain(self):
+ """
+ The 'domain' property is an instance of Domain
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.polar.Domain`
+ - A dict of string/value properties that will be passed
+ to the Domain constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.polar.Domain
+ """
+ return self["domain"]
+
+ @domain.setter
+ def domain(self, val):
+ self["domain"] = val
+
+ @property
+ def gridshape(self):
+ """
+ Determines if the radial axis grid lines and angular axis line
+ are drawn as "circular" sectors or as "linear" (polygon)
+ sectors. Has an effect only when the angular axis has `type`
+ "category". Note that `radialaxis.angle` is snapped to the
+ angle of the closest vertex when `gridshape` is "circular" (so
+ that radial axis scale is the same as the data scale).
+
+ The 'gridshape' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['circular', 'linear']
+
+ Returns
+ -------
+ Any
+ """
+ return self["gridshape"]
+
+ @gridshape.setter
+ def gridshape(self, val):
+ self["gridshape"] = val
+
+ @property
+ def hole(self):
+ """
+ Sets the fraction of the radius to cut out of the polar
+ subplot.
+
+ The 'hole' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["hole"]
+
+ @hole.setter
+ def hole(self, val):
+ self["hole"] = val
+
+ @property
+ def radialaxis(self):
+ """
+ The 'radialaxis' property is an instance of RadialAxis
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.polar.RadialAxis`
+ - A dict of string/value properties that will be passed
+ to the RadialAxis constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.polar.RadialAxis
+ """
+ return self["radialaxis"]
+
+ @radialaxis.setter
+ def radialaxis(self, val):
+ self["radialaxis"] = val
+
+ @property
+ def sector(self):
+ """
+ Sets angular span of this polar subplot with two angles (in
+ degrees). Sector are assumed to be spanned in the
+ counterclockwise direction with 0 corresponding to rightmost
+ limit of the polar subplot.
+
+ The 'sector' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'sector[0]' property is a number and may be specified as:
+ - An int or float
+ (1) The 'sector[1]' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ list
+ """
+ return self["sector"]
+
+ @sector.setter
+ def sector(self, val):
+ self["sector"] = val
+
+ @property
+ def uirevision(self):
+ """
+ Controls persistence of user-driven changes in axis attributes,
+ if not overridden in the individual axes. 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
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ angularaxis
+ :class:`plotly.graph_objects.layout.polar.AngularAxis`
+ instance or dict with compatible properties
+ bargap
+ Sets the gap between bars of adjacent location
+ coordinates. Values are unitless, they represent
+ fractions of the minimum difference in bar positions in
+ the data.
+ barmode
+ Determines how bars at the same location coordinate are
+ displayed on the graph. With "stack", the bars are
+ stacked on top of one another With "overlay", the bars
+ are plotted over one another, you might need to reduce
+ "opacity" to see multiple bars.
+ bgcolor
+ Set the background color of the subplot
+ domain
+ :class:`plotly.graph_objects.layout.polar.Domain`
+ instance or dict with compatible properties
+ gridshape
+ Determines if the radial axis grid lines and angular
+ axis line are drawn as "circular" sectors or as
+ "linear" (polygon) sectors. Has an effect only when the
+ angular axis has `type` "category". Note that
+ `radialaxis.angle` is snapped to the angle of the
+ closest vertex when `gridshape` is "circular" (so that
+ radial axis scale is the same as the data scale).
+ hole
+ Sets the fraction of the radius to cut out of the polar
+ subplot.
+ radialaxis
+ :class:`plotly.graph_objects.layout.polar.RadialAxis`
+ instance or dict with compatible properties
+ sector
+ Sets angular span of this polar subplot with two angles
+ (in degrees). Sector are assumed to be spanned in the
+ counterclockwise direction with 0 corresponding to
+ rightmost limit of the polar subplot.
+ uirevision
+ Controls persistence of user-driven changes in axis
+ attributes, if not overridden in the individual axes.
+ Defaults to `layout.uirevision`.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ angularaxis=None,
+ bargap=None,
+ barmode=None,
+ bgcolor=None,
+ domain=None,
+ gridshape=None,
+ hole=None,
+ radialaxis=None,
+ sector=None,
+ uirevision=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Polar object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.Polar`
+ angularaxis
+ :class:`plotly.graph_objects.layout.polar.AngularAxis`
+ instance or dict with compatible properties
+ bargap
+ Sets the gap between bars of adjacent location
+ coordinates. Values are unitless, they represent
+ fractions of the minimum difference in bar positions in
+ the data.
+ barmode
+ Determines how bars at the same location coordinate are
+ displayed on the graph. With "stack", the bars are
+ stacked on top of one another With "overlay", the bars
+ are plotted over one another, you might need to reduce
+ "opacity" to see multiple bars.
+ bgcolor
+ Set the background color of the subplot
+ domain
+ :class:`plotly.graph_objects.layout.polar.Domain`
+ instance or dict with compatible properties
+ gridshape
+ Determines if the radial axis grid lines and angular
+ axis line are drawn as "circular" sectors or as
+ "linear" (polygon) sectors. Has an effect only when the
+ angular axis has `type` "category". Note that
+ `radialaxis.angle` is snapped to the angle of the
+ closest vertex when `gridshape` is "circular" (so that
+ radial axis scale is the same as the data scale).
+ hole
+ Sets the fraction of the radius to cut out of the polar
+ subplot.
+ radialaxis
+ :class:`plotly.graph_objects.layout.polar.RadialAxis`
+ instance or dict with compatible properties
+ sector
+ Sets angular span of this polar subplot with two angles
+ (in degrees). Sector are assumed to be spanned in the
+ counterclockwise direction with 0 corresponding to
+ rightmost limit of the polar subplot.
+ uirevision
+ Controls persistence of user-driven changes in axis
+ attributes, if not overridden in the individual axes.
+ Defaults to `layout.uirevision`.
+
+ Returns
+ -------
+ Polar
+ """
+ super().__init__("polar")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Polar
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.Polar`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("angularaxis", arg, angularaxis)
+ self._set_property("bargap", arg, bargap)
+ self._set_property("barmode", arg, barmode)
+ self._set_property("bgcolor", arg, bgcolor)
+ self._set_property("domain", arg, domain)
+ self._set_property("gridshape", arg, gridshape)
+ self._set_property("hole", arg, hole)
+ self._set_property("radialaxis", arg, radialaxis)
+ self._set_property("sector", arg, sector)
+ self._set_property("uirevision", arg, uirevision)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_scene.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_scene.py
new file mode 100644
index 0000000..2d08ae1
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_scene.py
@@ -0,0 +1,454 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Scene(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.scene"
+ _valid_props = {
+ "annotationdefaults",
+ "annotations",
+ "aspectmode",
+ "aspectratio",
+ "bgcolor",
+ "camera",
+ "domain",
+ "dragmode",
+ "hovermode",
+ "uirevision",
+ "xaxis",
+ "yaxis",
+ "zaxis",
+ }
+
+ @property
+ def annotations(self):
+ """
+ The 'annotations' property is a tuple of instances of
+ Annotation that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.scene.Annotation
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Annotation constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.scene.Annotation]
+ """
+ return self["annotations"]
+
+ @annotations.setter
+ def annotations(self, val):
+ self["annotations"] = val
+
+ @property
+ def annotationdefaults(self):
+ """
+ When used in a template (as
+ layout.template.layout.scene.annotationdefaults), sets the
+ default property values to use for elements of
+ layout.scene.annotations
+
+ The 'annotationdefaults' property is an instance of Annotation
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.scene.Annotation`
+ - A dict of string/value properties that will be passed
+ to the Annotation constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.scene.Annotation
+ """
+ return self["annotationdefaults"]
+
+ @annotationdefaults.setter
+ def annotationdefaults(self, val):
+ self["annotationdefaults"] = val
+
+ @property
+ def aspectmode(self):
+ """
+ If "cube", this scene's axes are drawn as a cube, regardless of
+ the axes' ranges. If "data", this scene's axes are drawn in
+ proportion with the axes' ranges. If "manual", this scene's
+ axes are drawn in proportion with the input of "aspectratio"
+ (the default behavior if "aspectratio" is provided). If "auto",
+ this scene's axes are drawn using the results of "data" except
+ when one axis is more than four times the size of the two
+ others, where in that case the results of "cube" are used.
+
+ The 'aspectmode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['auto', 'cube', 'data', 'manual']
+
+ Returns
+ -------
+ Any
+ """
+ return self["aspectmode"]
+
+ @aspectmode.setter
+ def aspectmode(self, val):
+ self["aspectmode"] = val
+
+ @property
+ def aspectratio(self):
+ """
+ Sets this scene's axis aspectratio.
+
+ The 'aspectratio' property is an instance of Aspectratio
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.scene.Aspectratio`
+ - A dict of string/value properties that will be passed
+ to the Aspectratio constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.scene.Aspectratio
+ """
+ return self["aspectratio"]
+
+ @aspectratio.setter
+ def aspectratio(self, val):
+ self["aspectratio"] = val
+
+ @property
+ def bgcolor(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["bgcolor"]
+
+ @bgcolor.setter
+ def bgcolor(self, val):
+ self["bgcolor"] = val
+
+ @property
+ def camera(self):
+ """
+ The 'camera' property is an instance of Camera
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.scene.Camera`
+ - A dict of string/value properties that will be passed
+ to the Camera constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.scene.Camera
+ """
+ return self["camera"]
+
+ @camera.setter
+ def camera(self, val):
+ self["camera"] = val
+
+ @property
+ def domain(self):
+ """
+ The 'domain' property is an instance of Domain
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.scene.Domain`
+ - A dict of string/value properties that will be passed
+ to the Domain constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.scene.Domain
+ """
+ return self["domain"]
+
+ @domain.setter
+ def domain(self, val):
+ self["domain"] = val
+
+ @property
+ def dragmode(self):
+ """
+ Determines the mode of drag interactions for this scene.
+
+ The 'dragmode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['orbit', 'turntable', 'zoom', 'pan', False]
+
+ Returns
+ -------
+ Any
+ """
+ return self["dragmode"]
+
+ @dragmode.setter
+ def dragmode(self, val):
+ self["dragmode"] = val
+
+ @property
+ def hovermode(self):
+ """
+ Determines the mode of hover interactions for this scene.
+
+ The 'hovermode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['closest', False]
+
+ Returns
+ -------
+ Any
+ """
+ return self["hovermode"]
+
+ @hovermode.setter
+ def hovermode(self, val):
+ self["hovermode"] = val
+
+ @property
+ def uirevision(self):
+ """
+ Controls persistence of user-driven changes in camera
+ attributes. 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
+
+ @property
+ def xaxis(self):
+ """
+ The 'xaxis' property is an instance of XAxis
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.scene.XAxis`
+ - A dict of string/value properties that will be passed
+ to the XAxis constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.scene.XAxis
+ """
+ return self["xaxis"]
+
+ @xaxis.setter
+ def xaxis(self, val):
+ self["xaxis"] = val
+
+ @property
+ def yaxis(self):
+ """
+ The 'yaxis' property is an instance of YAxis
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.scene.YAxis`
+ - A dict of string/value properties that will be passed
+ to the YAxis constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.scene.YAxis
+ """
+ return self["yaxis"]
+
+ @yaxis.setter
+ def yaxis(self, val):
+ self["yaxis"] = val
+
+ @property
+ def zaxis(self):
+ """
+ The 'zaxis' property is an instance of ZAxis
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.scene.ZAxis`
+ - A dict of string/value properties that will be passed
+ to the ZAxis constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.scene.ZAxis
+ """
+ return self["zaxis"]
+
+ @zaxis.setter
+ def zaxis(self, val):
+ self["zaxis"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ annotations
+ A tuple of
+ :class:`plotly.graph_objects.layout.scene.Annotation`
+ instances or dicts with compatible properties
+ annotationdefaults
+ When used in a template (as
+ layout.template.layout.scene.annotationdefaults), sets
+ the default property values to use for elements of
+ layout.scene.annotations
+ aspectmode
+ If "cube", this scene's axes are drawn as a cube,
+ regardless of the axes' ranges. If "data", this scene's
+ axes are drawn in proportion with the axes' ranges. If
+ "manual", this scene's axes are drawn in proportion
+ with the input of "aspectratio" (the default behavior
+ if "aspectratio" is provided). If "auto", this scene's
+ axes are drawn using the results of "data" except when
+ one axis is more than four times the size of the two
+ others, where in that case the results of "cube" are
+ used.
+ aspectratio
+ Sets this scene's axis aspectratio.
+ bgcolor
+
+ camera
+ :class:`plotly.graph_objects.layout.scene.Camera`
+ instance or dict with compatible properties
+ domain
+ :class:`plotly.graph_objects.layout.scene.Domain`
+ instance or dict with compatible properties
+ dragmode
+ Determines the mode of drag interactions for this
+ scene.
+ hovermode
+ Determines the mode of hover interactions for this
+ scene.
+ uirevision
+ Controls persistence of user-driven changes in camera
+ attributes. Defaults to `layout.uirevision`.
+ xaxis
+ :class:`plotly.graph_objects.layout.scene.XAxis`
+ instance or dict with compatible properties
+ yaxis
+ :class:`plotly.graph_objects.layout.scene.YAxis`
+ instance or dict with compatible properties
+ zaxis
+ :class:`plotly.graph_objects.layout.scene.ZAxis`
+ instance or dict with compatible properties
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ annotations=None,
+ annotationdefaults=None,
+ aspectmode=None,
+ aspectratio=None,
+ bgcolor=None,
+ camera=None,
+ domain=None,
+ dragmode=None,
+ hovermode=None,
+ uirevision=None,
+ xaxis=None,
+ yaxis=None,
+ zaxis=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Scene object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.Scene`
+ annotations
+ A tuple of
+ :class:`plotly.graph_objects.layout.scene.Annotation`
+ instances or dicts with compatible properties
+ annotationdefaults
+ When used in a template (as
+ layout.template.layout.scene.annotationdefaults), sets
+ the default property values to use for elements of
+ layout.scene.annotations
+ aspectmode
+ If "cube", this scene's axes are drawn as a cube,
+ regardless of the axes' ranges. If "data", this scene's
+ axes are drawn in proportion with the axes' ranges. If
+ "manual", this scene's axes are drawn in proportion
+ with the input of "aspectratio" (the default behavior
+ if "aspectratio" is provided). If "auto", this scene's
+ axes are drawn using the results of "data" except when
+ one axis is more than four times the size of the two
+ others, where in that case the results of "cube" are
+ used.
+ aspectratio
+ Sets this scene's axis aspectratio.
+ bgcolor
+
+ camera
+ :class:`plotly.graph_objects.layout.scene.Camera`
+ instance or dict with compatible properties
+ domain
+ :class:`plotly.graph_objects.layout.scene.Domain`
+ instance or dict with compatible properties
+ dragmode
+ Determines the mode of drag interactions for this
+ scene.
+ hovermode
+ Determines the mode of hover interactions for this
+ scene.
+ uirevision
+ Controls persistence of user-driven changes in camera
+ attributes. Defaults to `layout.uirevision`.
+ xaxis
+ :class:`plotly.graph_objects.layout.scene.XAxis`
+ instance or dict with compatible properties
+ yaxis
+ :class:`plotly.graph_objects.layout.scene.YAxis`
+ instance or dict with compatible properties
+ zaxis
+ :class:`plotly.graph_objects.layout.scene.ZAxis`
+ instance or dict with compatible properties
+
+ Returns
+ -------
+ Scene
+ """
+ super().__init__("scene")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Scene
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.Scene`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("annotations", arg, annotations)
+ self._set_property("annotationdefaults", arg, annotationdefaults)
+ self._set_property("aspectmode", arg, aspectmode)
+ self._set_property("aspectratio", arg, aspectratio)
+ self._set_property("bgcolor", arg, bgcolor)
+ self._set_property("camera", arg, camera)
+ self._set_property("domain", arg, domain)
+ self._set_property("dragmode", arg, dragmode)
+ self._set_property("hovermode", arg, hovermode)
+ self._set_property("uirevision", arg, uirevision)
+ self._set_property("xaxis", arg, xaxis)
+ self._set_property("yaxis", arg, yaxis)
+ self._set_property("zaxis", arg, zaxis)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_selection.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_selection.py
new file mode 100644
index 0000000..3ebf741
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_selection.py
@@ -0,0 +1,493 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Selection(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.selection"
+ _valid_props = {
+ "line",
+ "name",
+ "opacity",
+ "path",
+ "templateitemname",
+ "type",
+ "x0",
+ "x1",
+ "xref",
+ "y0",
+ "y1",
+ "yref",
+ }
+
+ @property
+ def line(self):
+ """
+ The 'line' property is an instance of Line
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.selection.Line`
+ - A dict of string/value properties that will be passed
+ to the Line constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.selection.Line
+ """
+ return self["line"]
+
+ @line.setter
+ def line(self, val):
+ self["line"] = val
+
+ @property
+ def name(self):
+ """
+ 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.
+
+ The 'name' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["name"]
+
+ @name.setter
+ def name(self, val):
+ self["name"] = val
+
+ @property
+ def opacity(self):
+ """
+ Sets the opacity of the selection.
+
+ The 'opacity' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["opacity"]
+
+ @opacity.setter
+ def opacity(self, val):
+ self["opacity"] = val
+
+ @property
+ def path(self):
+ """
+ For `type` "path" - a valid SVG path similar to `shapes.path`
+ in data coordinates. Allowed segments are: M, L and Z.
+
+ The 'path' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["path"]
+
+ @path.setter
+ def path(self, val):
+ self["path"] = val
+
+ @property
+ def templateitemname(self):
+ """
+ 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`.
+
+ The 'templateitemname' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["templateitemname"]
+
+ @templateitemname.setter
+ def templateitemname(self, val):
+ self["templateitemname"] = val
+
+ @property
+ def type(self):
+ """
+ Specifies the selection type to be drawn. If "rect", a
+ rectangle is drawn linking (`x0`,`y0`), (`x1`,`y0`),
+ (`x1`,`y1`) and (`x0`,`y1`). If "path", draw a custom SVG path
+ using `path`.
+
+ The 'type' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['rect', 'path']
+
+ Returns
+ -------
+ Any
+ """
+ return self["type"]
+
+ @type.setter
+ def type(self, val):
+ self["type"] = val
+
+ @property
+ def x0(self):
+ """
+ Sets the selection's starting x position.
+
+ The 'x0' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["x0"]
+
+ @x0.setter
+ def x0(self, val):
+ self["x0"] = val
+
+ @property
+ def x1(self):
+ """
+ Sets the selection's end x position.
+
+ The 'x1' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["x1"]
+
+ @x1.setter
+ def x1(self, val):
+ self["x1"] = val
+
+ @property
+ def xref(self):
+ """
+ Sets the selection's x coordinate axis. If set to a x axis id
+ (e.g. "x" or "x2"), the `x` position refers to a x coordinate.
+ If set to "paper", the `x` position refers to the distance from
+ the left of the plotting area in normalized coordinates where 0
+ (1) corresponds to the left (right). If set to a x axis ID
+ followed by "domain" (separated by a space), the position
+ behaves like for "paper", but refers to the distance in
+ fractions of the domain length from the left of the domain of
+ that axis: e.g., *x2 domain* refers to the domain of the second
+ x axis and a x position of 0.5 refers to the point between the
+ left and the right of the domain of the second x axis.
+
+ The 'xref' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['paper']
+ - A string that matches one of the following regular expressions:
+ ['^x([2-9]|[1-9][0-9]+)?( domain)?$']
+
+ Returns
+ -------
+ Any
+ """
+ return self["xref"]
+
+ @xref.setter
+ def xref(self, val):
+ self["xref"] = val
+
+ @property
+ def y0(self):
+ """
+ Sets the selection's starting y position.
+
+ The 'y0' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["y0"]
+
+ @y0.setter
+ def y0(self, val):
+ self["y0"] = val
+
+ @property
+ def y1(self):
+ """
+ Sets the selection's end y position.
+
+ The 'y1' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["y1"]
+
+ @y1.setter
+ def y1(self, val):
+ self["y1"] = val
+
+ @property
+ def yref(self):
+ """
+ Sets the selection's x coordinate axis. If set to a y axis id
+ (e.g. "y" or "y2"), the `y` position refers to a y coordinate.
+ If set to "paper", the `y` position refers to the distance from
+ the bottom of the plotting area in normalized coordinates where
+ 0 (1) corresponds to the bottom (top). If set to a y axis ID
+ followed by "domain" (separated by a space), the position
+ behaves like for "paper", but refers to the distance in
+ fractions of the domain length from the bottom of the domain of
+ that axis: e.g., *y2 domain* refers to the domain of the second
+ y axis and a y position of 0.5 refers to the point between the
+ bottom and the top of the domain of the second y axis.
+
+ The 'yref' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['paper']
+ - A string that matches one of the following regular expressions:
+ ['^y([2-9]|[1-9][0-9]+)?( domain)?$']
+
+ Returns
+ -------
+ Any
+ """
+ return self["yref"]
+
+ @yref.setter
+ def yref(self, val):
+ self["yref"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ line
+ :class:`plotly.graph_objects.layout.selection.Line`
+ instance or dict with compatible properties
+ 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.
+ opacity
+ Sets the opacity of the selection.
+ path
+ For `type` "path" - a valid SVG path similar to
+ `shapes.path` in data coordinates. Allowed segments
+ are: M, L and Z.
+ 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`.
+ type
+ Specifies the selection type to be drawn. If "rect", a
+ rectangle is drawn linking (`x0`,`y0`), (`x1`,`y0`),
+ (`x1`,`y1`) and (`x0`,`y1`). If "path", draw a custom
+ SVG path using `path`.
+ x0
+ Sets the selection's starting x position.
+ x1
+ Sets the selection's end x position.
+ xref
+ Sets the selection's x coordinate axis. If set to a x
+ axis id (e.g. "x" or "x2"), the `x` position refers to
+ a x coordinate. If set to "paper", the `x` position
+ refers to the distance from the left of the plotting
+ area in normalized coordinates where 0 (1) corresponds
+ to the left (right). If set to a x axis ID followed by
+ "domain" (separated by a space), the position behaves
+ like for "paper", but refers to the distance in
+ fractions of the domain length from the left of the
+ domain of that axis: e.g., *x2 domain* refers to the
+ domain of the second x axis and a x position of 0.5
+ refers to the point between the left and the right of
+ the domain of the second x axis.
+ y0
+ Sets the selection's starting y position.
+ y1
+ Sets the selection's end y position.
+ yref
+ Sets the selection's x coordinate axis. If set to a y
+ axis id (e.g. "y" or "y2"), the `y` position refers to
+ a y coordinate. If set to "paper", the `y` position
+ refers to the distance from the bottom of the plotting
+ area in normalized coordinates where 0 (1) corresponds
+ to the bottom (top). If set to a y axis ID followed by
+ "domain" (separated by a space), the position behaves
+ like for "paper", but refers to the distance in
+ fractions of the domain length from the bottom of the
+ domain of that axis: e.g., *y2 domain* refers to the
+ domain of the second y axis and a y position of 0.5
+ refers to the point between the bottom and the top of
+ the domain of the second y axis.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ line=None,
+ name=None,
+ opacity=None,
+ path=None,
+ templateitemname=None,
+ type=None,
+ x0=None,
+ x1=None,
+ xref=None,
+ y0=None,
+ y1=None,
+ yref=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Selection object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.Selection`
+ line
+ :class:`plotly.graph_objects.layout.selection.Line`
+ instance or dict with compatible properties
+ 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.
+ opacity
+ Sets the opacity of the selection.
+ path
+ For `type` "path" - a valid SVG path similar to
+ `shapes.path` in data coordinates. Allowed segments
+ are: M, L and Z.
+ 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`.
+ type
+ Specifies the selection type to be drawn. If "rect", a
+ rectangle is drawn linking (`x0`,`y0`), (`x1`,`y0`),
+ (`x1`,`y1`) and (`x0`,`y1`). If "path", draw a custom
+ SVG path using `path`.
+ x0
+ Sets the selection's starting x position.
+ x1
+ Sets the selection's end x position.
+ xref
+ Sets the selection's x coordinate axis. If set to a x
+ axis id (e.g. "x" or "x2"), the `x` position refers to
+ a x coordinate. If set to "paper", the `x` position
+ refers to the distance from the left of the plotting
+ area in normalized coordinates where 0 (1) corresponds
+ to the left (right). If set to a x axis ID followed by
+ "domain" (separated by a space), the position behaves
+ like for "paper", but refers to the distance in
+ fractions of the domain length from the left of the
+ domain of that axis: e.g., *x2 domain* refers to the
+ domain of the second x axis and a x position of 0.5
+ refers to the point between the left and the right of
+ the domain of the second x axis.
+ y0
+ Sets the selection's starting y position.
+ y1
+ Sets the selection's end y position.
+ yref
+ Sets the selection's x coordinate axis. If set to a y
+ axis id (e.g. "y" or "y2"), the `y` position refers to
+ a y coordinate. If set to "paper", the `y` position
+ refers to the distance from the bottom of the plotting
+ area in normalized coordinates where 0 (1) corresponds
+ to the bottom (top). If set to a y axis ID followed by
+ "domain" (separated by a space), the position behaves
+ like for "paper", but refers to the distance in
+ fractions of the domain length from the bottom of the
+ domain of that axis: e.g., *y2 domain* refers to the
+ domain of the second y axis and a y position of 0.5
+ refers to the point between the bottom and the top of
+ the domain of the second y axis.
+
+ Returns
+ -------
+ Selection
+ """
+ super().__init__("selections")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Selection
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.Selection`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("line", arg, line)
+ self._set_property("name", arg, name)
+ self._set_property("opacity", arg, opacity)
+ self._set_property("path", arg, path)
+ self._set_property("templateitemname", arg, templateitemname)
+ self._set_property("type", arg, type)
+ self._set_property("x0", arg, x0)
+ self._set_property("x1", arg, x1)
+ self._set_property("xref", arg, xref)
+ self._set_property("y0", arg, y0)
+ self._set_property("y1", arg, y1)
+ self._set_property("yref", arg, yref)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_shape.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_shape.py
new file mode 100644
index 0000000..8923d1c
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_shape.py
@@ -0,0 +1,1287 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Shape(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.shape"
+ _valid_props = {
+ "editable",
+ "fillcolor",
+ "fillrule",
+ "label",
+ "layer",
+ "legend",
+ "legendgroup",
+ "legendgrouptitle",
+ "legendrank",
+ "legendwidth",
+ "line",
+ "name",
+ "opacity",
+ "path",
+ "showlegend",
+ "templateitemname",
+ "type",
+ "visible",
+ "x0",
+ "x0shift",
+ "x1",
+ "x1shift",
+ "xanchor",
+ "xref",
+ "xsizemode",
+ "y0",
+ "y0shift",
+ "y1",
+ "y1shift",
+ "yanchor",
+ "yref",
+ "ysizemode",
+ }
+
+ @property
+ def editable(self):
+ """
+ Determines whether the shape could be activated for edit or
+ not. Has no effect when the older editable shapes mode is
+ enabled via `config.editable` or `config.edits.shapePosition`.
+
+ The 'editable' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["editable"]
+
+ @editable.setter
+ def editable(self, val):
+ self["editable"] = val
+
+ @property
+ def fillcolor(self):
+ """
+ Sets the color filling the shape's interior. Only applies to
+ closed shapes.
+
+ The 'fillcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["fillcolor"]
+
+ @fillcolor.setter
+ def fillcolor(self, val):
+ self["fillcolor"] = val
+
+ @property
+ def fillrule(self):
+ """
+ Determines which regions of complex paths constitute the
+ interior. For more info please visit
+ https://developer.mozilla.org/en-
+ US/docs/Web/SVG/Attribute/fill-rule
+
+ The 'fillrule' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['evenodd', 'nonzero']
+
+ Returns
+ -------
+ Any
+ """
+ return self["fillrule"]
+
+ @fillrule.setter
+ def fillrule(self, val):
+ self["fillrule"] = val
+
+ @property
+ def label(self):
+ """
+ The 'label' property is an instance of Label
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.shape.Label`
+ - A dict of string/value properties that will be passed
+ to the Label constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.shape.Label
+ """
+ return self["label"]
+
+ @label.setter
+ def label(self, val):
+ self["label"] = val
+
+ @property
+ def layer(self):
+ """
+ Specifies whether shapes are drawn below gridlines ("below"),
+ between gridlines and traces ("between") or above traces
+ ("above").
+
+ The 'layer' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['below', 'above', 'between']
+
+ Returns
+ -------
+ Any
+ """
+ return self["layer"]
+
+ @layer.setter
+ def layer(self, val):
+ self["layer"] = val
+
+ @property
+ def legend(self):
+ """
+ Sets the reference to a legend to show this shape in.
+ References to these legends are "legend", "legend2", "legend3",
+ etc. Settings for these legends are set in the layout, under
+ `layout.legend`, `layout.legend2`, etc.
+
+ The 'legend' property is an identifier of a particular
+ subplot, of type 'legend', that may be specified as the string 'legend'
+ optionally followed by an integer >= 1
+ (e.g. 'legend', 'legend1', 'legend2', 'legend3', etc.)
+
+ Returns
+ -------
+ str
+ """
+ return self["legend"]
+
+ @legend.setter
+ def legend(self, val):
+ self["legend"] = val
+
+ @property
+ def legendgroup(self):
+ """
+ Sets the legend group for this shape. Traces and shapes part of
+ the same legend group hide/show at the same time when toggling
+ legend items.
+
+ The 'legendgroup' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["legendgroup"]
+
+ @legendgroup.setter
+ def legendgroup(self, val):
+ self["legendgroup"] = val
+
+ @property
+ def legendgrouptitle(self):
+ """
+ The 'legendgrouptitle' property is an instance of Legendgrouptitle
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.shape.Legendgrouptitle`
+ - A dict of string/value properties that will be passed
+ to the Legendgrouptitle constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.shape.Legendgrouptitle
+ """
+ return self["legendgrouptitle"]
+
+ @legendgrouptitle.setter
+ def legendgrouptitle(self, val):
+ self["legendgrouptitle"] = val
+
+ @property
+ def legendrank(self):
+ """
+ Sets the legend rank for this shape. Items and groups with
+ smaller ranks are presented on top/left side while with
+ "reversed" `legend.traceorder` they are on bottom/right side.
+ The default legendrank is 1000, so that you can use ranks less
+ than 1000 to place certain items before all unranked items, and
+ ranks greater than 1000 to go after all unranked items. When
+ having unranked or equal rank items shapes would be displayed
+ after traces i.e. according to their order in data and layout.
+
+ The 'legendrank' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["legendrank"]
+
+ @legendrank.setter
+ def legendrank(self, val):
+ self["legendrank"] = val
+
+ @property
+ def legendwidth(self):
+ """
+ Sets the width (in px or fraction) of the legend for this
+ shape.
+
+ The 'legendwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["legendwidth"]
+
+ @legendwidth.setter
+ def legendwidth(self, val):
+ self["legendwidth"] = val
+
+ @property
+ def line(self):
+ """
+ The 'line' property is an instance of Line
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.shape.Line`
+ - A dict of string/value properties that will be passed
+ to the Line constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.shape.Line
+ """
+ return self["line"]
+
+ @line.setter
+ def line(self, val):
+ self["line"] = val
+
+ @property
+ def name(self):
+ """
+ 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.
+
+ The 'name' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["name"]
+
+ @name.setter
+ def name(self, val):
+ self["name"] = val
+
+ @property
+ def opacity(self):
+ """
+ Sets the opacity of the shape.
+
+ The 'opacity' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["opacity"]
+
+ @opacity.setter
+ def opacity(self, val):
+ self["opacity"] = val
+
+ @property
+ def path(self):
+ """
+ For `type` "path" - a valid SVG path with the pixel values
+ replaced by data values in `xsizemode`/`ysizemode` being
+ "scaled" and taken unmodified as pixels relative to `xanchor`
+ and `yanchor` in case of "pixel" size mode. There are a few
+ restrictions / quirks only absolute instructions, not relative.
+ So the allowed segments are: M, L, H, V, Q, C, T, S, and Z arcs
+ (A) are not allowed because radius rx and ry are relative. In
+ the future we could consider supporting relative commands, but
+ we would have to decide on how to handle date and log axes.
+ Note that even as is, Q and C Bezier paths that are smooth on
+ linear axes may not be smooth on log, and vice versa. no
+ chained "polybezier" commands - specify the segment type for
+ each one. On category axes, values are numbers scaled to the
+ serial numbers of categories because using the categories
+ themselves there would be no way to describe fractional
+ positions On data axes: because space and T are both normal
+ components of path strings, we can't use either to separate
+ date from time parts. Therefore we'll use underscore for this
+ purpose: 2015-02-21_13:45:56.789
+
+ The 'path' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["path"]
+
+ @path.setter
+ def path(self, val):
+ self["path"] = val
+
+ @property
+ def showlegend(self):
+ """
+ Determines whether or not this shape is shown in the legend.
+
+ The 'showlegend' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showlegend"]
+
+ @showlegend.setter
+ def showlegend(self, val):
+ self["showlegend"] = val
+
+ @property
+ def templateitemname(self):
+ """
+ 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`.
+
+ The 'templateitemname' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["templateitemname"]
+
+ @templateitemname.setter
+ def templateitemname(self, val):
+ self["templateitemname"] = val
+
+ @property
+ def type(self):
+ """
+ Specifies the shape type to be drawn. If "line", a line is
+ drawn from (`x0`,`y0`) to (`x1`,`y1`) with respect to the axes'
+ sizing mode. If "circle", a circle is drawn from
+ ((`x0`+`x1`)/2, (`y0`+`y1`)/2)) with radius (|(`x0`+`x1`)/2 -
+ `x0`|, |(`y0`+`y1`)/2 -`y0`)|) with respect to the axes' sizing
+ mode. If "rect", a rectangle is drawn linking (`x0`,`y0`),
+ (`x1`,`y0`), (`x1`,`y1`), (`x0`,`y1`), (`x0`,`y0`) with respect
+ to the axes' sizing mode. If "path", draw a custom SVG path
+ using `path`. with respect to the axes' sizing mode.
+
+ The 'type' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['circle', 'rect', 'path', 'line']
+
+ Returns
+ -------
+ Any
+ """
+ return self["type"]
+
+ @type.setter
+ def type(self, val):
+ self["type"] = val
+
+ @property
+ def visible(self):
+ """
+ Determines whether or not this shape is visible. If
+ "legendonly", the shape is not drawn, but can appear as a
+ legend item (provided that the legend itself is visible).
+
+ The 'visible' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ [True, False, 'legendonly']
+
+ Returns
+ -------
+ Any
+ """
+ return self["visible"]
+
+ @visible.setter
+ def visible(self, val):
+ self["visible"] = val
+
+ @property
+ def x0(self):
+ """
+ Sets the shape's starting x position. See `type` and
+ `xsizemode` for more info.
+
+ The 'x0' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["x0"]
+
+ @x0.setter
+ def x0(self, val):
+ self["x0"] = val
+
+ @property
+ def x0shift(self):
+ """
+ Shifts `x0` away from the center of the category when `xref` is
+ a "category" or "multicategory" axis. -0.5 corresponds to the
+ start of the category and 0.5 corresponds to the end of the
+ category.
+
+ The 'x0shift' property is a number and may be specified as:
+ - An int or float in the interval [-1, 1]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["x0shift"]
+
+ @x0shift.setter
+ def x0shift(self, val):
+ self["x0shift"] = val
+
+ @property
+ def x1(self):
+ """
+ Sets the shape's end x position. See `type` and `xsizemode` for
+ more info.
+
+ The 'x1' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["x1"]
+
+ @x1.setter
+ def x1(self, val):
+ self["x1"] = val
+
+ @property
+ def x1shift(self):
+ """
+ Shifts `x1` away from the center of the category when `xref` is
+ a "category" or "multicategory" axis. -0.5 corresponds to the
+ start of the category and 0.5 corresponds to the end of the
+ category.
+
+ The 'x1shift' property is a number and may be specified as:
+ - An int or float in the interval [-1, 1]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["x1shift"]
+
+ @x1shift.setter
+ def x1shift(self, val):
+ self["x1shift"] = val
+
+ @property
+ def xanchor(self):
+ """
+ Only relevant in conjunction with `xsizemode` set to "pixel".
+ Specifies the anchor point on the x axis to which `x0`, `x1`
+ and x coordinates within `path` are relative to. E.g. useful to
+ attach a pixel sized shape to a certain data value. No effect
+ when `xsizemode` not set to "pixel".
+
+ The 'xanchor' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["xanchor"]
+
+ @xanchor.setter
+ def xanchor(self, val):
+ self["xanchor"] = val
+
+ @property
+ def xref(self):
+ """
+ Sets the shape's x coordinate axis. If set to a x axis id (e.g.
+ "x" or "x2"), the `x` position refers to a x coordinate. If set
+ to "paper", the `x` position refers to the distance from the
+ left of the plotting area in normalized coordinates where 0 (1)
+ corresponds to the left (right). If set to a x axis ID followed
+ by "domain" (separated by a space), the position behaves like
+ for "paper", but refers to the distance in fractions of the
+ domain length from the left of the domain of that axis: e.g.,
+ *x2 domain* refers to the domain of the second x axis and a x
+ position of 0.5 refers to the point between the left and the
+ right of the domain of the second x axis.
+
+ The 'xref' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['paper']
+ - A string that matches one of the following regular expressions:
+ ['^x([2-9]|[1-9][0-9]+)?( domain)?$']
+
+ Returns
+ -------
+ Any
+ """
+ return self["xref"]
+
+ @xref.setter
+ def xref(self, val):
+ self["xref"] = val
+
+ @property
+ def xsizemode(self):
+ """
+ Sets the shapes's sizing mode along the x axis. If set to
+ "scaled", `x0`, `x1` and x coordinates within `path` refer to
+ data values on the x axis or a fraction of the plot area's
+ width (`xref` set to "paper"). If set to "pixel", `xanchor`
+ specifies the x position in terms of data or plot fraction but
+ `x0`, `x1` and x coordinates within `path` are pixels relative
+ to `xanchor`. This way, the shape can have a fixed width while
+ maintaining a position relative to data or plot fraction.
+
+ The 'xsizemode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['scaled', 'pixel']
+
+ Returns
+ -------
+ Any
+ """
+ return self["xsizemode"]
+
+ @xsizemode.setter
+ def xsizemode(self, val):
+ self["xsizemode"] = val
+
+ @property
+ def y0(self):
+ """
+ Sets the shape's starting y position. See `type` and
+ `ysizemode` for more info.
+
+ The 'y0' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["y0"]
+
+ @y0.setter
+ def y0(self, val):
+ self["y0"] = val
+
+ @property
+ def y0shift(self):
+ """
+ Shifts `y0` away from the center of the category when `yref` is
+ a "category" or "multicategory" axis. -0.5 corresponds to the
+ start of the category and 0.5 corresponds to the end of the
+ category.
+
+ The 'y0shift' property is a number and may be specified as:
+ - An int or float in the interval [-1, 1]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["y0shift"]
+
+ @y0shift.setter
+ def y0shift(self, val):
+ self["y0shift"] = val
+
+ @property
+ def y1(self):
+ """
+ Sets the shape's end y position. See `type` and `ysizemode` for
+ more info.
+
+ The 'y1' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["y1"]
+
+ @y1.setter
+ def y1(self, val):
+ self["y1"] = val
+
+ @property
+ def y1shift(self):
+ """
+ Shifts `y1` away from the center of the category when `yref` is
+ a "category" or "multicategory" axis. -0.5 corresponds to the
+ start of the category and 0.5 corresponds to the end of the
+ category.
+
+ The 'y1shift' property is a number and may be specified as:
+ - An int or float in the interval [-1, 1]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["y1shift"]
+
+ @y1shift.setter
+ def y1shift(self, val):
+ self["y1shift"] = val
+
+ @property
+ def yanchor(self):
+ """
+ Only relevant in conjunction with `ysizemode` set to "pixel".
+ Specifies the anchor point on the y axis to which `y0`, `y1`
+ and y coordinates within `path` are relative to. E.g. useful to
+ attach a pixel sized shape to a certain data value. No effect
+ when `ysizemode` not set to "pixel".
+
+ The 'yanchor' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["yanchor"]
+
+ @yanchor.setter
+ def yanchor(self, val):
+ self["yanchor"] = val
+
+ @property
+ def yref(self):
+ """
+ Sets the shape's y coordinate axis. If set to a y axis id (e.g.
+ "y" or "y2"), the `y` position refers to a y coordinate. If set
+ to "paper", the `y` position refers to the distance from the
+ bottom of the plotting area in normalized coordinates where 0
+ (1) corresponds to the bottom (top). If set to a y axis ID
+ followed by "domain" (separated by a space), the position
+ behaves like for "paper", but refers to the distance in
+ fractions of the domain length from the bottom of the domain of
+ that axis: e.g., *y2 domain* refers to the domain of the second
+ y axis and a y position of 0.5 refers to the point between the
+ bottom and the top of the domain of the second y axis.
+
+ The 'yref' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['paper']
+ - A string that matches one of the following regular expressions:
+ ['^y([2-9]|[1-9][0-9]+)?( domain)?$']
+
+ Returns
+ -------
+ Any
+ """
+ return self["yref"]
+
+ @yref.setter
+ def yref(self, val):
+ self["yref"] = val
+
+ @property
+ def ysizemode(self):
+ """
+ Sets the shapes's sizing mode along the y axis. If set to
+ "scaled", `y0`, `y1` and y coordinates within `path` refer to
+ data values on the y axis or a fraction of the plot area's
+ height (`yref` set to "paper"). If set to "pixel", `yanchor`
+ specifies the y position in terms of data or plot fraction but
+ `y0`, `y1` and y coordinates within `path` are pixels relative
+ to `yanchor`. This way, the shape can have a fixed height while
+ maintaining a position relative to data or plot fraction.
+
+ The 'ysizemode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['scaled', 'pixel']
+
+ Returns
+ -------
+ Any
+ """
+ return self["ysizemode"]
+
+ @ysizemode.setter
+ def ysizemode(self, val):
+ self["ysizemode"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ editable
+ Determines whether the shape could be activated for
+ edit or not. Has no effect when the older editable
+ shapes mode is enabled via `config.editable` or
+ `config.edits.shapePosition`.
+ fillcolor
+ Sets the color filling the shape's interior. Only
+ applies to closed shapes.
+ fillrule
+ Determines which regions of complex paths constitute
+ the interior. For more info please visit
+ https://developer.mozilla.org/en-
+ US/docs/Web/SVG/Attribute/fill-rule
+ label
+ :class:`plotly.graph_objects.layout.shape.Label`
+ instance or dict with compatible properties
+ layer
+ Specifies whether shapes are drawn below gridlines
+ ("below"), between gridlines and traces ("between") or
+ above traces ("above").
+ legend
+ Sets the reference to a legend to show this shape in.
+ References to these legends are "legend", "legend2",
+ "legend3", etc. Settings for these legends are set in
+ the layout, under `layout.legend`, `layout.legend2`,
+ etc.
+ legendgroup
+ Sets the legend group for this shape. Traces and shapes
+ part of the same legend group hide/show at the same
+ time when toggling legend items.
+ legendgrouptitle
+ :class:`plotly.graph_objects.layout.shape.Legendgroupti
+ tle` instance or dict with compatible properties
+ legendrank
+ Sets the legend rank for this shape. Items and groups
+ with smaller ranks are presented on top/left side while
+ with "reversed" `legend.traceorder` they are on
+ bottom/right side. The default legendrank is 1000, so
+ that you can use ranks less than 1000 to place certain
+ items before all unranked items, and ranks greater than
+ 1000 to go after all unranked items. When having
+ unranked or equal rank items shapes would be displayed
+ after traces i.e. according to their order in data and
+ layout.
+ legendwidth
+ Sets the width (in px or fraction) of the legend for
+ this shape.
+ line
+ :class:`plotly.graph_objects.layout.shape.Line`
+ instance or dict with compatible properties
+ 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.
+ opacity
+ Sets the opacity of the shape.
+ path
+ For `type` "path" - a valid SVG path with the pixel
+ values replaced by data values in
+ `xsizemode`/`ysizemode` being "scaled" and taken
+ unmodified as pixels relative to `xanchor` and
+ `yanchor` in case of "pixel" size mode. There are a few
+ restrictions / quirks only absolute instructions, not
+ relative. So the allowed segments are: M, L, H, V, Q,
+ C, T, S, and Z arcs (A) are not allowed because radius
+ rx and ry are relative. In the future we could consider
+ supporting relative commands, but we would have to
+ decide on how to handle date and log axes. Note that
+ even as is, Q and C Bezier paths that are smooth on
+ linear axes may not be smooth on log, and vice versa.
+ no chained "polybezier" commands - specify the segment
+ type for each one. On category axes, values are numbers
+ scaled to the serial numbers of categories because
+ using the categories themselves there would be no way
+ to describe fractional positions On data axes: because
+ space and T are both normal components of path strings,
+ we can't use either to separate date from time parts.
+ Therefore we'll use underscore for this purpose:
+ 2015-02-21_13:45:56.789
+ showlegend
+ Determines whether or not this shape is shown in the
+ legend.
+ 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`.
+ type
+ Specifies the shape type to be drawn. If "line", a line
+ is drawn from (`x0`,`y0`) to (`x1`,`y1`) with respect
+ to the axes' sizing mode. If "circle", a circle is
+ drawn from ((`x0`+`x1`)/2, (`y0`+`y1`)/2)) with radius
+ (|(`x0`+`x1`)/2 - `x0`|, |(`y0`+`y1`)/2 -`y0`)|) with
+ respect to the axes' sizing mode. If "rect", a
+ rectangle is drawn linking (`x0`,`y0`), (`x1`,`y0`),
+ (`x1`,`y1`), (`x0`,`y1`), (`x0`,`y0`) with respect to
+ the axes' sizing mode. If "path", draw a custom SVG
+ path using `path`. with respect to the axes' sizing
+ mode.
+ visible
+ Determines whether or not this shape is visible. If
+ "legendonly", the shape is not drawn, but can appear as
+ a legend item (provided that the legend itself is
+ visible).
+ x0
+ Sets the shape's starting x position. See `type` and
+ `xsizemode` for more info.
+ x0shift
+ Shifts `x0` away from the center of the category when
+ `xref` is a "category" or "multicategory" axis. -0.5
+ corresponds to the start of the category and 0.5
+ corresponds to the end of the category.
+ x1
+ Sets the shape's end x position. See `type` and
+ `xsizemode` for more info.
+ x1shift
+ Shifts `x1` away from the center of the category when
+ `xref` is a "category" or "multicategory" axis. -0.5
+ corresponds to the start of the category and 0.5
+ corresponds to the end of the category.
+ xanchor
+ Only relevant in conjunction with `xsizemode` set to
+ "pixel". Specifies the anchor point on the x axis to
+ which `x0`, `x1` and x coordinates within `path` are
+ relative to. E.g. useful to attach a pixel sized shape
+ to a certain data value. No effect when `xsizemode` not
+ set to "pixel".
+ xref
+ Sets the shape's x coordinate axis. If set to a x axis
+ id (e.g. "x" or "x2"), the `x` position refers to a x
+ coordinate. If set to "paper", the `x` position refers
+ to the distance from the left of the plotting area in
+ normalized coordinates where 0 (1) corresponds to the
+ left (right). If set to a x axis ID followed by
+ "domain" (separated by a space), the position behaves
+ like for "paper", but refers to the distance in
+ fractions of the domain length from the left of the
+ domain of that axis: e.g., *x2 domain* refers to the
+ domain of the second x axis and a x position of 0.5
+ refers to the point between the left and the right of
+ the domain of the second x axis.
+ xsizemode
+ Sets the shapes's sizing mode along the x axis. If set
+ to "scaled", `x0`, `x1` and x coordinates within `path`
+ refer to data values on the x axis or a fraction of the
+ plot area's width (`xref` set to "paper"). If set to
+ "pixel", `xanchor` specifies the x position in terms of
+ data or plot fraction but `x0`, `x1` and x coordinates
+ within `path` are pixels relative to `xanchor`. This
+ way, the shape can have a fixed width while maintaining
+ a position relative to data or plot fraction.
+ y0
+ Sets the shape's starting y position. See `type` and
+ `ysizemode` for more info.
+ y0shift
+ Shifts `y0` away from the center of the category when
+ `yref` is a "category" or "multicategory" axis. -0.5
+ corresponds to the start of the category and 0.5
+ corresponds to the end of the category.
+ y1
+ Sets the shape's end y position. See `type` and
+ `ysizemode` for more info.
+ y1shift
+ Shifts `y1` away from the center of the category when
+ `yref` is a "category" or "multicategory" axis. -0.5
+ corresponds to the start of the category and 0.5
+ corresponds to the end of the category.
+ yanchor
+ Only relevant in conjunction with `ysizemode` set to
+ "pixel". Specifies the anchor point on the y axis to
+ which `y0`, `y1` and y coordinates within `path` are
+ relative to. E.g. useful to attach a pixel sized shape
+ to a certain data value. No effect when `ysizemode` not
+ set to "pixel".
+ yref
+ Sets the shape's y coordinate axis. If set to a y axis
+ id (e.g. "y" or "y2"), the `y` position refers to a y
+ coordinate. If set to "paper", the `y` position refers
+ to the distance from the bottom of the plotting area in
+ normalized coordinates where 0 (1) corresponds to the
+ bottom (top). If set to a y axis ID followed by
+ "domain" (separated by a space), the position behaves
+ like for "paper", but refers to the distance in
+ fractions of the domain length from the bottom of the
+ domain of that axis: e.g., *y2 domain* refers to the
+ domain of the second y axis and a y position of 0.5
+ refers to the point between the bottom and the top of
+ the domain of the second y axis.
+ ysizemode
+ Sets the shapes's sizing mode along the y axis. If set
+ to "scaled", `y0`, `y1` and y coordinates within `path`
+ refer to data values on the y axis or a fraction of the
+ plot area's height (`yref` set to "paper"). If set to
+ "pixel", `yanchor` specifies the y position in terms of
+ data or plot fraction but `y0`, `y1` and y coordinates
+ within `path` are pixels relative to `yanchor`. This
+ way, the shape can have a fixed height while
+ maintaining a position relative to data or plot
+ fraction.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ editable=None,
+ fillcolor=None,
+ fillrule=None,
+ label=None,
+ layer=None,
+ legend=None,
+ legendgroup=None,
+ legendgrouptitle=None,
+ legendrank=None,
+ legendwidth=None,
+ line=None,
+ name=None,
+ opacity=None,
+ path=None,
+ showlegend=None,
+ templateitemname=None,
+ type=None,
+ visible=None,
+ x0=None,
+ x0shift=None,
+ x1=None,
+ x1shift=None,
+ xanchor=None,
+ xref=None,
+ xsizemode=None,
+ y0=None,
+ y0shift=None,
+ y1=None,
+ y1shift=None,
+ yanchor=None,
+ yref=None,
+ ysizemode=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Shape object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.Shape`
+ editable
+ Determines whether the shape could be activated for
+ edit or not. Has no effect when the older editable
+ shapes mode is enabled via `config.editable` or
+ `config.edits.shapePosition`.
+ fillcolor
+ Sets the color filling the shape's interior. Only
+ applies to closed shapes.
+ fillrule
+ Determines which regions of complex paths constitute
+ the interior. For more info please visit
+ https://developer.mozilla.org/en-
+ US/docs/Web/SVG/Attribute/fill-rule
+ label
+ :class:`plotly.graph_objects.layout.shape.Label`
+ instance or dict with compatible properties
+ layer
+ Specifies whether shapes are drawn below gridlines
+ ("below"), between gridlines and traces ("between") or
+ above traces ("above").
+ legend
+ Sets the reference to a legend to show this shape in.
+ References to these legends are "legend", "legend2",
+ "legend3", etc. Settings for these legends are set in
+ the layout, under `layout.legend`, `layout.legend2`,
+ etc.
+ legendgroup
+ Sets the legend group for this shape. Traces and shapes
+ part of the same legend group hide/show at the same
+ time when toggling legend items.
+ legendgrouptitle
+ :class:`plotly.graph_objects.layout.shape.Legendgroupti
+ tle` instance or dict with compatible properties
+ legendrank
+ Sets the legend rank for this shape. Items and groups
+ with smaller ranks are presented on top/left side while
+ with "reversed" `legend.traceorder` they are on
+ bottom/right side. The default legendrank is 1000, so
+ that you can use ranks less than 1000 to place certain
+ items before all unranked items, and ranks greater than
+ 1000 to go after all unranked items. When having
+ unranked or equal rank items shapes would be displayed
+ after traces i.e. according to their order in data and
+ layout.
+ legendwidth
+ Sets the width (in px or fraction) of the legend for
+ this shape.
+ line
+ :class:`plotly.graph_objects.layout.shape.Line`
+ instance or dict with compatible properties
+ 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.
+ opacity
+ Sets the opacity of the shape.
+ path
+ For `type` "path" - a valid SVG path with the pixel
+ values replaced by data values in
+ `xsizemode`/`ysizemode` being "scaled" and taken
+ unmodified as pixels relative to `xanchor` and
+ `yanchor` in case of "pixel" size mode. There are a few
+ restrictions / quirks only absolute instructions, not
+ relative. So the allowed segments are: M, L, H, V, Q,
+ C, T, S, and Z arcs (A) are not allowed because radius
+ rx and ry are relative. In the future we could consider
+ supporting relative commands, but we would have to
+ decide on how to handle date and log axes. Note that
+ even as is, Q and C Bezier paths that are smooth on
+ linear axes may not be smooth on log, and vice versa.
+ no chained "polybezier" commands - specify the segment
+ type for each one. On category axes, values are numbers
+ scaled to the serial numbers of categories because
+ using the categories themselves there would be no way
+ to describe fractional positions On data axes: because
+ space and T are both normal components of path strings,
+ we can't use either to separate date from time parts.
+ Therefore we'll use underscore for this purpose:
+ 2015-02-21_13:45:56.789
+ showlegend
+ Determines whether or not this shape is shown in the
+ legend.
+ 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`.
+ type
+ Specifies the shape type to be drawn. If "line", a line
+ is drawn from (`x0`,`y0`) to (`x1`,`y1`) with respect
+ to the axes' sizing mode. If "circle", a circle is
+ drawn from ((`x0`+`x1`)/2, (`y0`+`y1`)/2)) with radius
+ (|(`x0`+`x1`)/2 - `x0`|, |(`y0`+`y1`)/2 -`y0`)|) with
+ respect to the axes' sizing mode. If "rect", a
+ rectangle is drawn linking (`x0`,`y0`), (`x1`,`y0`),
+ (`x1`,`y1`), (`x0`,`y1`), (`x0`,`y0`) with respect to
+ the axes' sizing mode. If "path", draw a custom SVG
+ path using `path`. with respect to the axes' sizing
+ mode.
+ visible
+ Determines whether or not this shape is visible. If
+ "legendonly", the shape is not drawn, but can appear as
+ a legend item (provided that the legend itself is
+ visible).
+ x0
+ Sets the shape's starting x position. See `type` and
+ `xsizemode` for more info.
+ x0shift
+ Shifts `x0` away from the center of the category when
+ `xref` is a "category" or "multicategory" axis. -0.5
+ corresponds to the start of the category and 0.5
+ corresponds to the end of the category.
+ x1
+ Sets the shape's end x position. See `type` and
+ `xsizemode` for more info.
+ x1shift
+ Shifts `x1` away from the center of the category when
+ `xref` is a "category" or "multicategory" axis. -0.5
+ corresponds to the start of the category and 0.5
+ corresponds to the end of the category.
+ xanchor
+ Only relevant in conjunction with `xsizemode` set to
+ "pixel". Specifies the anchor point on the x axis to
+ which `x0`, `x1` and x coordinates within `path` are
+ relative to. E.g. useful to attach a pixel sized shape
+ to a certain data value. No effect when `xsizemode` not
+ set to "pixel".
+ xref
+ Sets the shape's x coordinate axis. If set to a x axis
+ id (e.g. "x" or "x2"), the `x` position refers to a x
+ coordinate. If set to "paper", the `x` position refers
+ to the distance from the left of the plotting area in
+ normalized coordinates where 0 (1) corresponds to the
+ left (right). If set to a x axis ID followed by
+ "domain" (separated by a space), the position behaves
+ like for "paper", but refers to the distance in
+ fractions of the domain length from the left of the
+ domain of that axis: e.g., *x2 domain* refers to the
+ domain of the second x axis and a x position of 0.5
+ refers to the point between the left and the right of
+ the domain of the second x axis.
+ xsizemode
+ Sets the shapes's sizing mode along the x axis. If set
+ to "scaled", `x0`, `x1` and x coordinates within `path`
+ refer to data values on the x axis or a fraction of the
+ plot area's width (`xref` set to "paper"). If set to
+ "pixel", `xanchor` specifies the x position in terms of
+ data or plot fraction but `x0`, `x1` and x coordinates
+ within `path` are pixels relative to `xanchor`. This
+ way, the shape can have a fixed width while maintaining
+ a position relative to data or plot fraction.
+ y0
+ Sets the shape's starting y position. See `type` and
+ `ysizemode` for more info.
+ y0shift
+ Shifts `y0` away from the center of the category when
+ `yref` is a "category" or "multicategory" axis. -0.5
+ corresponds to the start of the category and 0.5
+ corresponds to the end of the category.
+ y1
+ Sets the shape's end y position. See `type` and
+ `ysizemode` for more info.
+ y1shift
+ Shifts `y1` away from the center of the category when
+ `yref` is a "category" or "multicategory" axis. -0.5
+ corresponds to the start of the category and 0.5
+ corresponds to the end of the category.
+ yanchor
+ Only relevant in conjunction with `ysizemode` set to
+ "pixel". Specifies the anchor point on the y axis to
+ which `y0`, `y1` and y coordinates within `path` are
+ relative to. E.g. useful to attach a pixel sized shape
+ to a certain data value. No effect when `ysizemode` not
+ set to "pixel".
+ yref
+ Sets the shape's y coordinate axis. If set to a y axis
+ id (e.g. "y" or "y2"), the `y` position refers to a y
+ coordinate. If set to "paper", the `y` position refers
+ to the distance from the bottom of the plotting area in
+ normalized coordinates where 0 (1) corresponds to the
+ bottom (top). If set to a y axis ID followed by
+ "domain" (separated by a space), the position behaves
+ like for "paper", but refers to the distance in
+ fractions of the domain length from the bottom of the
+ domain of that axis: e.g., *y2 domain* refers to the
+ domain of the second y axis and a y position of 0.5
+ refers to the point between the bottom and the top of
+ the domain of the second y axis.
+ ysizemode
+ Sets the shapes's sizing mode along the y axis. If set
+ to "scaled", `y0`, `y1` and y coordinates within `path`
+ refer to data values on the y axis or a fraction of the
+ plot area's height (`yref` set to "paper"). If set to
+ "pixel", `yanchor` specifies the y position in terms of
+ data or plot fraction but `y0`, `y1` and y coordinates
+ within `path` are pixels relative to `yanchor`. This
+ way, the shape can have a fixed height while
+ maintaining a position relative to data or plot
+ fraction.
+
+ Returns
+ -------
+ Shape
+ """
+ super().__init__("shapes")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Shape
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.Shape`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("editable", arg, editable)
+ self._set_property("fillcolor", arg, fillcolor)
+ self._set_property("fillrule", arg, fillrule)
+ self._set_property("label", arg, label)
+ self._set_property("layer", arg, layer)
+ self._set_property("legend", arg, legend)
+ self._set_property("legendgroup", arg, legendgroup)
+ self._set_property("legendgrouptitle", arg, legendgrouptitle)
+ self._set_property("legendrank", arg, legendrank)
+ self._set_property("legendwidth", arg, legendwidth)
+ self._set_property("line", arg, line)
+ self._set_property("name", arg, name)
+ self._set_property("opacity", arg, opacity)
+ self._set_property("path", arg, path)
+ self._set_property("showlegend", arg, showlegend)
+ self._set_property("templateitemname", arg, templateitemname)
+ self._set_property("type", arg, type)
+ self._set_property("visible", arg, visible)
+ self._set_property("x0", arg, x0)
+ self._set_property("x0shift", arg, x0shift)
+ self._set_property("x1", arg, x1)
+ self._set_property("x1shift", arg, x1shift)
+ self._set_property("xanchor", arg, xanchor)
+ self._set_property("xref", arg, xref)
+ self._set_property("xsizemode", arg, xsizemode)
+ self._set_property("y0", arg, y0)
+ self._set_property("y0shift", arg, y0shift)
+ self._set_property("y1", arg, y1)
+ self._set_property("y1shift", arg, y1shift)
+ self._set_property("yanchor", arg, yanchor)
+ self._set_property("yref", arg, yref)
+ self._set_property("ysizemode", arg, ysizemode)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_slider.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_slider.py
new file mode 100644
index 0000000..e6d0a2f
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_slider.py
@@ -0,0 +1,786 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Slider(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.slider"
+ _valid_props = {
+ "active",
+ "activebgcolor",
+ "bgcolor",
+ "bordercolor",
+ "borderwidth",
+ "currentvalue",
+ "font",
+ "len",
+ "lenmode",
+ "minorticklen",
+ "name",
+ "pad",
+ "stepdefaults",
+ "steps",
+ "templateitemname",
+ "tickcolor",
+ "ticklen",
+ "tickwidth",
+ "transition",
+ "visible",
+ "x",
+ "xanchor",
+ "y",
+ "yanchor",
+ }
+
+ @property
+ def active(self):
+ """
+ Determines which button (by index starting from 0) is
+ considered active.
+
+ The 'active' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["active"]
+
+ @active.setter
+ def active(self, val):
+ self["active"] = val
+
+ @property
+ def activebgcolor(self):
+ """
+ Sets the background color of the slider grip while dragging.
+
+ The 'activebgcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["activebgcolor"]
+
+ @activebgcolor.setter
+ def activebgcolor(self, val):
+ self["activebgcolor"] = val
+
+ @property
+ def bgcolor(self):
+ """
+ Sets the background color of the slider.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["bgcolor"]
+
+ @bgcolor.setter
+ def bgcolor(self, val):
+ self["bgcolor"] = val
+
+ @property
+ def bordercolor(self):
+ """
+ Sets the color of the border enclosing the slider.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["bordercolor"]
+
+ @bordercolor.setter
+ def bordercolor(self, val):
+ self["bordercolor"] = val
+
+ @property
+ def borderwidth(self):
+ """
+ Sets the width (in px) of the border enclosing the slider.
+
+ 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
+
+ @property
+ def currentvalue(self):
+ """
+ The 'currentvalue' property is an instance of Currentvalue
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.slider.Currentvalue`
+ - A dict of string/value properties that will be passed
+ to the Currentvalue constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.slider.Currentvalue
+ """
+ return self["currentvalue"]
+
+ @currentvalue.setter
+ def currentvalue(self, val):
+ self["currentvalue"] = val
+
+ @property
+ def font(self):
+ """
+ Sets the font of the slider step labels.
+
+ The 'font' property is an instance of Font
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.slider.Font`
+ - A dict of string/value properties that will be passed
+ to the Font constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.slider.Font
+ """
+ return self["font"]
+
+ @font.setter
+ def font(self, val):
+ self["font"] = val
+
+ @property
+ def len(self):
+ """
+ Sets the length of the slider This measure excludes the padding
+ of both ends. That is, the slider's length is this length minus
+ the padding on both ends.
+
+ The 'len' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["len"]
+
+ @len.setter
+ def len(self, val):
+ self["len"] = val
+
+ @property
+ def lenmode(self):
+ """
+ Determines whether this slider length is set in units of plot
+ "fraction" or in *pixels. Use `len` to set the value.
+
+ The 'lenmode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['fraction', 'pixels']
+
+ Returns
+ -------
+ Any
+ """
+ return self["lenmode"]
+
+ @lenmode.setter
+ def lenmode(self, val):
+ self["lenmode"] = val
+
+ @property
+ def minorticklen(self):
+ """
+ Sets the length in pixels of minor step tick marks
+
+ The 'minorticklen' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["minorticklen"]
+
+ @minorticklen.setter
+ def minorticklen(self, val):
+ self["minorticklen"] = val
+
+ @property
+ def name(self):
+ """
+ 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.
+
+ The 'name' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["name"]
+
+ @name.setter
+ def name(self, val):
+ self["name"] = val
+
+ @property
+ def pad(self):
+ """
+ Set the padding of the slider component along each side.
+
+ The 'pad' property is an instance of Pad
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.slider.Pad`
+ - A dict of string/value properties that will be passed
+ to the Pad constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.slider.Pad
+ """
+ return self["pad"]
+
+ @pad.setter
+ def pad(self, val):
+ self["pad"] = val
+
+ @property
+ def steps(self):
+ """
+ The 'steps' property is a tuple of instances of
+ Step that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.slider.Step
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Step constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.slider.Step]
+ """
+ return self["steps"]
+
+ @steps.setter
+ def steps(self, val):
+ self["steps"] = val
+
+ @property
+ def stepdefaults(self):
+ """
+ When used in a template (as
+ layout.template.layout.slider.stepdefaults), sets the default
+ property values to use for elements of layout.slider.steps
+
+ The 'stepdefaults' property is an instance of Step
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.slider.Step`
+ - A dict of string/value properties that will be passed
+ to the Step constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.slider.Step
+ """
+ return self["stepdefaults"]
+
+ @stepdefaults.setter
+ def stepdefaults(self, val):
+ self["stepdefaults"] = val
+
+ @property
+ def templateitemname(self):
+ """
+ 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`.
+
+ The 'templateitemname' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["templateitemname"]
+
+ @templateitemname.setter
+ def templateitemname(self, val):
+ self["templateitemname"] = val
+
+ @property
+ def tickcolor(self):
+ """
+ Sets the color of the border enclosing the slider.
+
+ The 'tickcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["tickcolor"]
+
+ @tickcolor.setter
+ def tickcolor(self, val):
+ self["tickcolor"] = val
+
+ @property
+ def ticklen(self):
+ """
+ Sets the length in pixels of step tick marks
+
+ The 'ticklen' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["ticklen"]
+
+ @ticklen.setter
+ def ticklen(self, val):
+ self["ticklen"] = val
+
+ @property
+ def tickwidth(self):
+ """
+ Sets the tick width (in px).
+
+ The 'tickwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tickwidth"]
+
+ @tickwidth.setter
+ def tickwidth(self, val):
+ self["tickwidth"] = val
+
+ @property
+ def transition(self):
+ """
+ The 'transition' property is an instance of Transition
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.slider.Transition`
+ - A dict of string/value properties that will be passed
+ to the Transition constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.slider.Transition
+ """
+ return self["transition"]
+
+ @transition.setter
+ def transition(self, val):
+ self["transition"] = val
+
+ @property
+ def visible(self):
+ """
+ Determines whether or not the slider is visible.
+
+ The 'visible' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["visible"]
+
+ @visible.setter
+ def visible(self, val):
+ self["visible"] = val
+
+ @property
+ def x(self):
+ """
+ Sets the x position (in normalized coordinates) of the slider.
+
+ 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
+
+ @property
+ def xanchor(self):
+ """
+ Sets the slider's horizontal position anchor. This anchor binds
+ the `x` position to the "left", "center" or "right" of the
+ range selector.
+
+ 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
+
+ @property
+ def y(self):
+ """
+ Sets the y position (in normalized coordinates) of the slider.
+
+ 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
+
+ @property
+ def yanchor(self):
+ """
+ Sets the slider's vertical position anchor This anchor binds
+ the `y` position to the "top", "middle" or "bottom" of the
+ range selector.
+
+ 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
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ active
+ Determines which button (by index starting from 0) is
+ considered active.
+ activebgcolor
+ Sets the background color of the slider grip while
+ dragging.
+ bgcolor
+ Sets the background color of the slider.
+ bordercolor
+ Sets the color of the border enclosing the slider.
+ borderwidth
+ Sets the width (in px) of the border enclosing the
+ slider.
+ currentvalue
+ :class:`plotly.graph_objects.layout.slider.Currentvalue
+ ` instance or dict with compatible properties
+ font
+ Sets the font of the slider step labels.
+ len
+ Sets the length of the slider This measure excludes the
+ padding of both ends. That is, the slider's length is
+ this length minus the padding on both ends.
+ lenmode
+ Determines whether this slider length is set in units
+ of plot "fraction" or in *pixels. Use `len` to set the
+ value.
+ minorticklen
+ Sets the length in pixels of minor step tick marks
+ 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.
+ pad
+ Set the padding of the slider component along each
+ side.
+ steps
+ A tuple of
+ :class:`plotly.graph_objects.layout.slider.Step`
+ instances or dicts with compatible properties
+ stepdefaults
+ When used in a template (as
+ layout.template.layout.slider.stepdefaults), sets the
+ default property values to use for elements of
+ layout.slider.steps
+ 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`.
+ tickcolor
+ Sets the color of the border enclosing the slider.
+ ticklen
+ Sets the length in pixels of step tick marks
+ tickwidth
+ Sets the tick width (in px).
+ transition
+ :class:`plotly.graph_objects.layout.slider.Transition`
+ instance or dict with compatible properties
+ visible
+ Determines whether or not the slider is visible.
+ x
+ Sets the x position (in normalized coordinates) of the
+ slider.
+ xanchor
+ Sets the slider's horizontal position anchor. This
+ anchor binds the `x` position to the "left", "center"
+ or "right" of the range selector.
+ y
+ Sets the y position (in normalized coordinates) of the
+ slider.
+ yanchor
+ Sets the slider's vertical position anchor This anchor
+ binds the `y` position to the "top", "middle" or
+ "bottom" of the range selector.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ active=None,
+ activebgcolor=None,
+ bgcolor=None,
+ bordercolor=None,
+ borderwidth=None,
+ currentvalue=None,
+ font=None,
+ len=None,
+ lenmode=None,
+ minorticklen=None,
+ name=None,
+ pad=None,
+ steps=None,
+ stepdefaults=None,
+ templateitemname=None,
+ tickcolor=None,
+ ticklen=None,
+ tickwidth=None,
+ transition=None,
+ visible=None,
+ x=None,
+ xanchor=None,
+ y=None,
+ yanchor=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Slider object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.Slider`
+ active
+ Determines which button (by index starting from 0) is
+ considered active.
+ activebgcolor
+ Sets the background color of the slider grip while
+ dragging.
+ bgcolor
+ Sets the background color of the slider.
+ bordercolor
+ Sets the color of the border enclosing the slider.
+ borderwidth
+ Sets the width (in px) of the border enclosing the
+ slider.
+ currentvalue
+ :class:`plotly.graph_objects.layout.slider.Currentvalue
+ ` instance or dict with compatible properties
+ font
+ Sets the font of the slider step labels.
+ len
+ Sets the length of the slider This measure excludes the
+ padding of both ends. That is, the slider's length is
+ this length minus the padding on both ends.
+ lenmode
+ Determines whether this slider length is set in units
+ of plot "fraction" or in *pixels. Use `len` to set the
+ value.
+ minorticklen
+ Sets the length in pixels of minor step tick marks
+ 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.
+ pad
+ Set the padding of the slider component along each
+ side.
+ steps
+ A tuple of
+ :class:`plotly.graph_objects.layout.slider.Step`
+ instances or dicts with compatible properties
+ stepdefaults
+ When used in a template (as
+ layout.template.layout.slider.stepdefaults), sets the
+ default property values to use for elements of
+ layout.slider.steps
+ 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`.
+ tickcolor
+ Sets the color of the border enclosing the slider.
+ ticklen
+ Sets the length in pixels of step tick marks
+ tickwidth
+ Sets the tick width (in px).
+ transition
+ :class:`plotly.graph_objects.layout.slider.Transition`
+ instance or dict with compatible properties
+ visible
+ Determines whether or not the slider is visible.
+ x
+ Sets the x position (in normalized coordinates) of the
+ slider.
+ xanchor
+ Sets the slider's horizontal position anchor. This
+ anchor binds the `x` position to the "left", "center"
+ or "right" of the range selector.
+ y
+ Sets the y position (in normalized coordinates) of the
+ slider.
+ yanchor
+ Sets the slider's vertical position anchor This anchor
+ binds the `y` position to the "top", "middle" or
+ "bottom" of the range selector.
+
+ Returns
+ -------
+ Slider
+ """
+ super().__init__("sliders")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Slider
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.Slider`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("active", arg, active)
+ self._set_property("activebgcolor", arg, activebgcolor)
+ self._set_property("bgcolor", arg, bgcolor)
+ self._set_property("bordercolor", arg, bordercolor)
+ self._set_property("borderwidth", arg, borderwidth)
+ self._set_property("currentvalue", arg, currentvalue)
+ self._set_property("font", arg, font)
+ self._set_property("len", arg, len)
+ self._set_property("lenmode", arg, lenmode)
+ self._set_property("minorticklen", arg, minorticklen)
+ self._set_property("name", arg, name)
+ self._set_property("pad", arg, pad)
+ self._set_property("steps", arg, steps)
+ self._set_property("stepdefaults", arg, stepdefaults)
+ self._set_property("templateitemname", arg, templateitemname)
+ self._set_property("tickcolor", arg, tickcolor)
+ self._set_property("ticklen", arg, ticklen)
+ self._set_property("tickwidth", arg, tickwidth)
+ self._set_property("transition", arg, transition)
+ self._set_property("visible", arg, visible)
+ self._set_property("x", arg, x)
+ self._set_property("xanchor", arg, xanchor)
+ self._set_property("y", arg, y)
+ self._set_property("yanchor", arg, yanchor)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_smith.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_smith.py
new file mode 100644
index 0000000..061e679
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_smith.py
@@ -0,0 +1,166 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Smith(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.smith"
+ _valid_props = {"bgcolor", "domain", "imaginaryaxis", "realaxis"}
+
+ @property
+ def bgcolor(self):
+ """
+ Set the background color of the subplot
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["bgcolor"]
+
+ @bgcolor.setter
+ def bgcolor(self, val):
+ self["bgcolor"] = val
+
+ @property
+ def domain(self):
+ """
+ The 'domain' property is an instance of Domain
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.smith.Domain`
+ - A dict of string/value properties that will be passed
+ to the Domain constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.smith.Domain
+ """
+ return self["domain"]
+
+ @domain.setter
+ def domain(self, val):
+ self["domain"] = val
+
+ @property
+ def imaginaryaxis(self):
+ """
+ The 'imaginaryaxis' property is an instance of Imaginaryaxis
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.smith.Imaginaryaxis`
+ - A dict of string/value properties that will be passed
+ to the Imaginaryaxis constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.smith.Imaginaryaxis
+ """
+ return self["imaginaryaxis"]
+
+ @imaginaryaxis.setter
+ def imaginaryaxis(self, val):
+ self["imaginaryaxis"] = val
+
+ @property
+ def realaxis(self):
+ """
+ The 'realaxis' property is an instance of Realaxis
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.smith.Realaxis`
+ - A dict of string/value properties that will be passed
+ to the Realaxis constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.smith.Realaxis
+ """
+ return self["realaxis"]
+
+ @realaxis.setter
+ def realaxis(self, val):
+ self["realaxis"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ bgcolor
+ Set the background color of the subplot
+ domain
+ :class:`plotly.graph_objects.layout.smith.Domain`
+ instance or dict with compatible properties
+ imaginaryaxis
+ :class:`plotly.graph_objects.layout.smith.Imaginaryaxis
+ ` instance or dict with compatible properties
+ realaxis
+ :class:`plotly.graph_objects.layout.smith.Realaxis`
+ instance or dict with compatible properties
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ bgcolor=None,
+ domain=None,
+ imaginaryaxis=None,
+ realaxis=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Smith object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.Smith`
+ bgcolor
+ Set the background color of the subplot
+ domain
+ :class:`plotly.graph_objects.layout.smith.Domain`
+ instance or dict with compatible properties
+ imaginaryaxis
+ :class:`plotly.graph_objects.layout.smith.Imaginaryaxis
+ ` instance or dict with compatible properties
+ realaxis
+ :class:`plotly.graph_objects.layout.smith.Realaxis`
+ instance or dict with compatible properties
+
+ Returns
+ -------
+ Smith
+ """
+ super().__init__("smith")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Smith
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.Smith`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("bgcolor", arg, bgcolor)
+ self._set_property("domain", arg, domain)
+ self._set_property("imaginaryaxis", arg, imaginaryaxis)
+ self._set_property("realaxis", arg, realaxis)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_template.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_template.py
new file mode 100644
index 0000000..90eb3f6
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_template.py
@@ -0,0 +1,133 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+import warnings
+
+
+class Template(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.template"
+ _valid_props = {"data", "layout"}
+
+ @property
+ def data(self):
+ """
+ The 'data' property is an instance of Data
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.template.Data`
+ - A dict of string/value properties that will be passed
+ to the Data constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.template.Data
+ """
+ return self["data"]
+
+ @data.setter
+ def data(self, val):
+ self["data"] = val
+
+ @property
+ def layout(self):
+ """
+ The 'layout' property is an instance of Layout
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.Layout`
+ - A dict of string/value properties that will be passed
+ to the Layout constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.template.Layout
+ """
+ return self["layout"]
+
+ @layout.setter
+ def layout(self, val):
+ self["layout"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ data
+ :class:`plotly.graph_objects.layout.template.Data`
+ instance or dict with compatible properties
+ layout
+ :class:`plotly.graph_objects.Layout` instance or dict
+ with compatible properties
+ """
+
+ def __init__(self, arg=None, data=None, layout=None, **kwargs):
+ """
+ Construct a new Template object
+
+ Default attributes to be applied to the plot. This should be a
+ dict with format: `{'layout': layoutTemplate, 'data':
+ {trace_type: [traceTemplate, ...], ...}}` where
+ `layoutTemplate` is a dict matching the structure of
+ `figure.layout` and `traceTemplate` is a dict matching the
+ structure of the trace with type `trace_type` (e.g. 'scatter').
+ Alternatively, this may be specified as an instance of
+ plotly.graph_objs.layout.Template. Trace templates are applied
+ cyclically to traces of each type. Container arrays (eg
+ `annotations`) have special handling: An object ending in
+ `defaults` (eg `annotationdefaults`) is applied to each array
+ item. But if an item has a `templateitemname` key we look in
+ the template array for an item with matching `name` and apply
+ that instead. If no matching `name` is found we mark the item
+ invisible. Any named template item not referenced is appended
+ to the end of the array, so this can be used to add a watermark
+ annotation or a logo image, for example. To omit one of these
+ items on the plot, make an item with matching
+ `templateitemname` and `visible: false`.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.Template`
+ data
+ :class:`plotly.graph_objects.layout.template.Data`
+ instance or dict with compatible properties
+ layout
+ :class:`plotly.graph_objects.Layout` instance or dict
+ with compatible properties
+
+ Returns
+ -------
+ Template
+ """
+ super().__init__("template")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Template
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.Template`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ # Template.data contains a 'scattermapbox' key, which causes a
+ # go.Scattermapbox trace object to be created during validation.
+ # In order to prevent false deprecation warnings from surfacing,
+ # we suppress deprecation warnings for this line only.
+ with warnings.catch_warnings():
+ warnings.filterwarnings("ignore", category=DeprecationWarning)
+ self._set_property("data", arg, data)
+ self._set_property("layout", arg, layout)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_ternary.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_ternary.py
new file mode 100644
index 0000000..c8cb58f
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_ternary.py
@@ -0,0 +1,250 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Ternary(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.ternary"
+ _valid_props = {"aaxis", "baxis", "bgcolor", "caxis", "domain", "sum", "uirevision"}
+
+ @property
+ def aaxis(self):
+ """
+ The 'aaxis' property is an instance of Aaxis
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.ternary.Aaxis`
+ - A dict of string/value properties that will be passed
+ to the Aaxis constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.ternary.Aaxis
+ """
+ return self["aaxis"]
+
+ @aaxis.setter
+ def aaxis(self, val):
+ self["aaxis"] = val
+
+ @property
+ def baxis(self):
+ """
+ The 'baxis' property is an instance of Baxis
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.ternary.Baxis`
+ - A dict of string/value properties that will be passed
+ to the Baxis constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.ternary.Baxis
+ """
+ return self["baxis"]
+
+ @baxis.setter
+ def baxis(self, val):
+ self["baxis"] = val
+
+ @property
+ def bgcolor(self):
+ """
+ Set the background color of the subplot
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["bgcolor"]
+
+ @bgcolor.setter
+ def bgcolor(self, val):
+ self["bgcolor"] = val
+
+ @property
+ def caxis(self):
+ """
+ The 'caxis' property is an instance of Caxis
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.ternary.Caxis`
+ - A dict of string/value properties that will be passed
+ to the Caxis constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.ternary.Caxis
+ """
+ return self["caxis"]
+
+ @caxis.setter
+ def caxis(self, val):
+ self["caxis"] = val
+
+ @property
+ def domain(self):
+ """
+ The 'domain' property is an instance of Domain
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.ternary.Domain`
+ - A dict of string/value properties that will be passed
+ to the Domain constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.ternary.Domain
+ """
+ return self["domain"]
+
+ @domain.setter
+ def domain(self, val):
+ self["domain"] = val
+
+ @property
+ def sum(self):
+ """
+ The number each triplet should sum to, and the maximum range of
+ each axis
+
+ The 'sum' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["sum"]
+
+ @sum.setter
+ def sum(self, val):
+ self["sum"] = val
+
+ @property
+ def uirevision(self):
+ """
+ Controls persistence of user-driven changes in axis `min` and
+ `title`, if not overridden in the individual axes. 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
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ aaxis
+ :class:`plotly.graph_objects.layout.ternary.Aaxis`
+ instance or dict with compatible properties
+ baxis
+ :class:`plotly.graph_objects.layout.ternary.Baxis`
+ instance or dict with compatible properties
+ bgcolor
+ Set the background color of the subplot
+ caxis
+ :class:`plotly.graph_objects.layout.ternary.Caxis`
+ instance or dict with compatible properties
+ domain
+ :class:`plotly.graph_objects.layout.ternary.Domain`
+ instance or dict with compatible properties
+ sum
+ The number each triplet should sum to, and the maximum
+ range of each axis
+ uirevision
+ Controls persistence of user-driven changes in axis
+ `min` and `title`, if not overridden in the individual
+ axes. Defaults to `layout.uirevision`.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ aaxis=None,
+ baxis=None,
+ bgcolor=None,
+ caxis=None,
+ domain=None,
+ sum=None,
+ uirevision=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Ternary object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.Ternary`
+ aaxis
+ :class:`plotly.graph_objects.layout.ternary.Aaxis`
+ instance or dict with compatible properties
+ baxis
+ :class:`plotly.graph_objects.layout.ternary.Baxis`
+ instance or dict with compatible properties
+ bgcolor
+ Set the background color of the subplot
+ caxis
+ :class:`plotly.graph_objects.layout.ternary.Caxis`
+ instance or dict with compatible properties
+ domain
+ :class:`plotly.graph_objects.layout.ternary.Domain`
+ instance or dict with compatible properties
+ sum
+ The number each triplet should sum to, and the maximum
+ range of each axis
+ uirevision
+ Controls persistence of user-driven changes in axis
+ `min` and `title`, if not overridden in the individual
+ axes. Defaults to `layout.uirevision`.
+
+ Returns
+ -------
+ Ternary
+ """
+ super().__init__("ternary")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Ternary
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.Ternary`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("aaxis", arg, aaxis)
+ self._set_property("baxis", arg, baxis)
+ self._set_property("bgcolor", arg, bgcolor)
+ self._set_property("caxis", arg, caxis)
+ self._set_property("domain", arg, domain)
+ self._set_property("sum", arg, sum)
+ self._set_property("uirevision", arg, uirevision)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_title.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_title.py
new file mode 100644
index 0000000..47301d8
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_title.py
@@ -0,0 +1,450 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Title(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.title"
+ _valid_props = {
+ "automargin",
+ "font",
+ "pad",
+ "subtitle",
+ "text",
+ "x",
+ "xanchor",
+ "xref",
+ "y",
+ "yanchor",
+ "yref",
+ }
+
+ @property
+ def automargin(self):
+ """
+ Determines whether the title can automatically push the figure
+ margins. If `yref='paper'` then the margin will expand to
+ ensure that the title doesn’t overlap with the edges of the
+ container. If `yref='container'` then the margins will ensure
+ that the title doesn’t overlap with the plot area, tick labels,
+ and axis titles. If `automargin=true` and the margins need to
+ be expanded, then y will be set to a default 1 and yanchor will
+ be set to an appropriate default to ensure that minimal margin
+ space is needed. Note that when `yref='paper'`, only 1 or 0 are
+ allowed y values. Invalid values will be reset to the default
+ 1.
+
+ The 'automargin' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["automargin"]
+
+ @automargin.setter
+ def automargin(self, val):
+ self["automargin"] = val
+
+ @property
+ def font(self):
+ """
+ Sets the title font.
+
+ The 'font' property is an instance of Font
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.title.Font`
+ - A dict of string/value properties that will be passed
+ to the Font constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.title.Font
+ """
+ return self["font"]
+
+ @font.setter
+ def font(self, val):
+ self["font"] = val
+
+ @property
+ def pad(self):
+ """
+ Sets the padding of the title. Each padding value only applies
+ when the corresponding `xanchor`/`yanchor` value is set
+ accordingly. E.g. for left padding to take effect, `xanchor`
+ must be set to "left". The same rule applies if
+ `xanchor`/`yanchor` is determined automatically. Padding is
+ muted if the respective anchor value is "middle*/*center".
+
+ The 'pad' property is an instance of Pad
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.title.Pad`
+ - A dict of string/value properties that will be passed
+ to the Pad constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.title.Pad
+ """
+ return self["pad"]
+
+ @pad.setter
+ def pad(self, val):
+ self["pad"] = val
+
+ @property
+ def subtitle(self):
+ """
+ The 'subtitle' property is an instance of Subtitle
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.title.Subtitle`
+ - A dict of string/value properties that will be passed
+ to the Subtitle constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.title.Subtitle
+ """
+ return self["subtitle"]
+
+ @subtitle.setter
+ def subtitle(self, val):
+ self["subtitle"] = val
+
+ @property
+ def text(self):
+ """
+ Sets the plot's title.
+
+ 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
+
+ @property
+ def x(self):
+ """
+ Sets the x position with respect to `xref` in normalized
+ coordinates from 0 (left) to 1 (right).
+
+ The 'x' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["x"]
+
+ @x.setter
+ def x(self, val):
+ self["x"] = val
+
+ @property
+ def xanchor(self):
+ """
+ Sets the title's horizontal alignment with respect to its x
+ position. "left" means that the title starts at x, "right"
+ means that the title ends at x and "center" means that the
+ title's center is at x. "auto" divides `xref` by three and
+ calculates the `xanchor` value automatically based on the value
+ of `x`.
+
+ 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
+
+ @property
+ def xref(self):
+ """
+ Sets the container `x` refers to. "container" spans the entire
+ `width` of the plot. "paper" refers to the width of the
+ plotting area only.
+
+ The 'xref' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['container', 'paper']
+
+ Returns
+ -------
+ Any
+ """
+ return self["xref"]
+
+ @xref.setter
+ def xref(self, val):
+ self["xref"] = val
+
+ @property
+ def y(self):
+ """
+ Sets the y position with respect to `yref` in normalized
+ coordinates from 0 (bottom) to 1 (top). "auto" places the
+ baseline of the title onto the vertical center of the top
+ margin.
+
+ The 'y' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["y"]
+
+ @y.setter
+ def y(self, val):
+ self["y"] = val
+
+ @property
+ def yanchor(self):
+ """
+ Sets the title's vertical alignment with respect to its y
+ position. "top" means that the title's cap line is at y,
+ "bottom" means that the title's baseline is at y and "middle"
+ means that the title's midline is at y. "auto" divides `yref`
+ by three and calculates the `yanchor` value automatically based
+ on the value of `y`.
+
+ 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
+
+ @property
+ def yref(self):
+ """
+ Sets the container `y` refers to. "container" spans the entire
+ `height` of the plot. "paper" refers to the height of the
+ plotting area only.
+
+ The 'yref' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['container', 'paper']
+
+ Returns
+ -------
+ Any
+ """
+ return self["yref"]
+
+ @yref.setter
+ def yref(self, val):
+ self["yref"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ automargin
+ Determines whether the title can automatically push the
+ figure margins. If `yref='paper'` then the margin will
+ expand to ensure that the title doesn’t overlap with
+ the edges of the container. If `yref='container'` then
+ the margins will ensure that the title doesn’t overlap
+ with the plot area, tick labels, and axis titles. If
+ `automargin=true` and the margins need to be expanded,
+ then y will be set to a default 1 and yanchor will be
+ set to an appropriate default to ensure that minimal
+ margin space is needed. Note that when `yref='paper'`,
+ only 1 or 0 are allowed y values. Invalid values will
+ be reset to the default 1.
+ font
+ Sets the title font.
+ pad
+ Sets the padding of the title. Each padding value only
+ applies when the corresponding `xanchor`/`yanchor`
+ value is set accordingly. E.g. for left padding to take
+ effect, `xanchor` must be set to "left". The same rule
+ applies if `xanchor`/`yanchor` is determined
+ automatically. Padding is muted if the respective
+ anchor value is "middle*/*center".
+ subtitle
+ :class:`plotly.graph_objects.layout.title.Subtitle`
+ instance or dict with compatible properties
+ text
+ Sets the plot's title.
+ x
+ Sets the x position with respect to `xref` in
+ normalized coordinates from 0 (left) to 1 (right).
+ xanchor
+ Sets the title's horizontal alignment with respect to
+ its x position. "left" means that the title starts at
+ x, "right" means that the title ends at x and "center"
+ means that the title's center is at x. "auto" divides
+ `xref` by three and calculates the `xanchor` value
+ automatically based on the value of `x`.
+ xref
+ Sets the container `x` refers to. "container" spans the
+ entire `width` of the plot. "paper" refers to the width
+ of the plotting area only.
+ y
+ Sets the y position with respect to `yref` in
+ normalized coordinates from 0 (bottom) to 1 (top).
+ "auto" places the baseline of the title onto the
+ vertical center of the top margin.
+ yanchor
+ Sets the title's vertical alignment with respect to its
+ y position. "top" means that the title's cap line is at
+ y, "bottom" means that the title's baseline is at y and
+ "middle" means that the title's midline is at y. "auto"
+ divides `yref` by three and calculates the `yanchor`
+ value automatically based on the value of `y`.
+ yref
+ Sets the container `y` refers to. "container" spans the
+ entire `height` of the plot. "paper" refers to the
+ height of the plotting area only.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ automargin=None,
+ font=None,
+ pad=None,
+ subtitle=None,
+ text=None,
+ x=None,
+ xanchor=None,
+ xref=None,
+ y=None,
+ yanchor=None,
+ yref=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Title object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.Title`
+ automargin
+ Determines whether the title can automatically push the
+ figure margins. If `yref='paper'` then the margin will
+ expand to ensure that the title doesn’t overlap with
+ the edges of the container. If `yref='container'` then
+ the margins will ensure that the title doesn’t overlap
+ with the plot area, tick labels, and axis titles. If
+ `automargin=true` and the margins need to be expanded,
+ then y will be set to a default 1 and yanchor will be
+ set to an appropriate default to ensure that minimal
+ margin space is needed. Note that when `yref='paper'`,
+ only 1 or 0 are allowed y values. Invalid values will
+ be reset to the default 1.
+ font
+ Sets the title font.
+ pad
+ Sets the padding of the title. Each padding value only
+ applies when the corresponding `xanchor`/`yanchor`
+ value is set accordingly. E.g. for left padding to take
+ effect, `xanchor` must be set to "left". The same rule
+ applies if `xanchor`/`yanchor` is determined
+ automatically. Padding is muted if the respective
+ anchor value is "middle*/*center".
+ subtitle
+ :class:`plotly.graph_objects.layout.title.Subtitle`
+ instance or dict with compatible properties
+ text
+ Sets the plot's title.
+ x
+ Sets the x position with respect to `xref` in
+ normalized coordinates from 0 (left) to 1 (right).
+ xanchor
+ Sets the title's horizontal alignment with respect to
+ its x position. "left" means that the title starts at
+ x, "right" means that the title ends at x and "center"
+ means that the title's center is at x. "auto" divides
+ `xref` by three and calculates the `xanchor` value
+ automatically based on the value of `x`.
+ xref
+ Sets the container `x` refers to. "container" spans the
+ entire `width` of the plot. "paper" refers to the width
+ of the plotting area only.
+ y
+ Sets the y position with respect to `yref` in
+ normalized coordinates from 0 (bottom) to 1 (top).
+ "auto" places the baseline of the title onto the
+ vertical center of the top margin.
+ yanchor
+ Sets the title's vertical alignment with respect to its
+ y position. "top" means that the title's cap line is at
+ y, "bottom" means that the title's baseline is at y and
+ "middle" means that the title's midline is at y. "auto"
+ divides `yref` by three and calculates the `yanchor`
+ value automatically based on the value of `y`.
+ yref
+ Sets the container `y` refers to. "container" spans the
+ entire `height` of the plot. "paper" refers to the
+ height of the plotting area only.
+
+ Returns
+ -------
+ Title
+ """
+ super().__init__("title")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Title
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.Title`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("automargin", arg, automargin)
+ self._set_property("font", arg, font)
+ self._set_property("pad", arg, pad)
+ self._set_property("subtitle", arg, subtitle)
+ self._set_property("text", arg, text)
+ self._set_property("x", arg, x)
+ self._set_property("xanchor", arg, xanchor)
+ self._set_property("xref", arg, xref)
+ self._set_property("y", arg, y)
+ self._set_property("yanchor", arg, yanchor)
+ self._set_property("yref", arg, yref)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_transition.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_transition.py
new file mode 100644
index 0000000..fec6a28
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_transition.py
@@ -0,0 +1,144 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Transition(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.transition"
+ _valid_props = {"duration", "easing", "ordering"}
+
+ @property
+ def duration(self):
+ """
+ The duration of the transition, in milliseconds. If equal to
+ zero, updates are synchronous.
+
+ The 'duration' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["duration"]
+
+ @duration.setter
+ def duration(self, val):
+ self["duration"] = val
+
+ @property
+ def easing(self):
+ """
+ The easing function used for the transition
+
+ The 'easing' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['linear', 'quad', 'cubic', 'sin', 'exp', 'circle',
+ 'elastic', 'back', 'bounce', 'linear-in', 'quad-in',
+ 'cubic-in', 'sin-in', 'exp-in', 'circle-in', 'elastic-in',
+ 'back-in', 'bounce-in', 'linear-out', 'quad-out',
+ 'cubic-out', 'sin-out', 'exp-out', 'circle-out',
+ 'elastic-out', 'back-out', 'bounce-out', 'linear-in-out',
+ 'quad-in-out', 'cubic-in-out', 'sin-in-out', 'exp-in-out',
+ 'circle-in-out', 'elastic-in-out', 'back-in-out',
+ 'bounce-in-out']
+
+ Returns
+ -------
+ Any
+ """
+ return self["easing"]
+
+ @easing.setter
+ def easing(self, val):
+ self["easing"] = val
+
+ @property
+ def ordering(self):
+ """
+ Determines whether the figure's layout or traces smoothly
+ transitions during updates that make both traces and layout
+ change.
+
+ The 'ordering' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['layout first', 'traces first']
+
+ Returns
+ -------
+ Any
+ """
+ return self["ordering"]
+
+ @ordering.setter
+ def ordering(self, val):
+ self["ordering"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ duration
+ The duration of the transition, in milliseconds. If
+ equal to zero, updates are synchronous.
+ easing
+ The easing function used for the transition
+ ordering
+ Determines whether the figure's layout or traces
+ smoothly transitions during updates that make both
+ traces and layout change.
+ """
+
+ def __init__(self, arg=None, duration=None, easing=None, ordering=None, **kwargs):
+ """
+ Construct a new Transition object
+
+ Sets transition options used during Plotly.react updates.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.Transition`
+ duration
+ The duration of the transition, in milliseconds. If
+ equal to zero, updates are synchronous.
+ easing
+ The easing function used for the transition
+ ordering
+ Determines whether the figure's layout or traces
+ smoothly transitions during updates that make both
+ traces and layout change.
+
+ Returns
+ -------
+ Transition
+ """
+ super().__init__("transition")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Transition
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.Transition`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("duration", arg, duration)
+ self._set_property("easing", arg, easing)
+ self._set_property("ordering", arg, ordering)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_uniformtext.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_uniformtext.py
new file mode 100644
index 0000000..a47da28
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_uniformtext.py
@@ -0,0 +1,124 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Uniformtext(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.uniformtext"
+ _valid_props = {"minsize", "mode"}
+
+ @property
+ def minsize(self):
+ """
+ Sets the minimum text size between traces of the same type.
+
+ The 'minsize' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["minsize"]
+
+ @minsize.setter
+ def minsize(self, val):
+ self["minsize"] = val
+
+ @property
+ def mode(self):
+ """
+ Determines how the font size for various text elements are
+ uniformed between each trace type. If the computed text sizes
+ were smaller than the minimum size defined by
+ `uniformtext.minsize` using "hide" option hides the text; and
+ using "show" option shows the text without further downscaling.
+ Please note that if the size defined by `minsize` is greater
+ than the font size defined by trace, then the `minsize` is
+ used.
+
+ The 'mode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ [False, 'hide', 'show']
+
+ Returns
+ -------
+ Any
+ """
+ return self["mode"]
+
+ @mode.setter
+ def mode(self, val):
+ self["mode"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ minsize
+ Sets the minimum text size between traces of the same
+ type.
+ mode
+ Determines how the font size for various text elements
+ are uniformed between each trace type. If the computed
+ text sizes were smaller than the minimum size defined
+ by `uniformtext.minsize` using "hide" option hides the
+ text; and using "show" option shows the text without
+ further downscaling. Please note that if the size
+ defined by `minsize` is greater than the font size
+ defined by trace, then the `minsize` is used.
+ """
+
+ def __init__(self, arg=None, minsize=None, mode=None, **kwargs):
+ """
+ Construct a new Uniformtext object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.Uniformtext`
+ minsize
+ Sets the minimum text size between traces of the same
+ type.
+ mode
+ Determines how the font size for various text elements
+ are uniformed between each trace type. If the computed
+ text sizes were smaller than the minimum size defined
+ by `uniformtext.minsize` using "hide" option hides the
+ text; and using "show" option shows the text without
+ further downscaling. Please note that if the size
+ defined by `minsize` is greater than the font size
+ defined by trace, then the `minsize` is used.
+
+ Returns
+ -------
+ Uniformtext
+ """
+ super().__init__("uniformtext")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Uniformtext
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.Uniformtext`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("minsize", arg, minsize)
+ self._set_property("mode", arg, mode)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_updatemenu.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_updatemenu.py
new file mode 100644
index 0000000..ebd1e67
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_updatemenu.py
@@ -0,0 +1,632 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Updatemenu(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.updatemenu"
+ _valid_props = {
+ "active",
+ "bgcolor",
+ "bordercolor",
+ "borderwidth",
+ "buttondefaults",
+ "buttons",
+ "direction",
+ "font",
+ "name",
+ "pad",
+ "showactive",
+ "templateitemname",
+ "type",
+ "visible",
+ "x",
+ "xanchor",
+ "y",
+ "yanchor",
+ }
+
+ @property
+ def active(self):
+ """
+ Determines which button (by index starting from 0) is
+ considered active.
+
+ The 'active' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [-1, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["active"]
+
+ @active.setter
+ def active(self, val):
+ self["active"] = val
+
+ @property
+ def bgcolor(self):
+ """
+ Sets the background color of the update menu buttons.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["bgcolor"]
+
+ @bgcolor.setter
+ def bgcolor(self, val):
+ self["bgcolor"] = val
+
+ @property
+ def bordercolor(self):
+ """
+ Sets the color of the border enclosing the update menu.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["bordercolor"]
+
+ @bordercolor.setter
+ def bordercolor(self, val):
+ self["bordercolor"] = val
+
+ @property
+ def borderwidth(self):
+ """
+ Sets the width (in px) of the border enclosing the update menu.
+
+ 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
+
+ @property
+ def buttons(self):
+ """
+ The 'buttons' property is a tuple of instances of
+ Button that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.updatemenu.Button
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Button constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.updatemenu.Button]
+ """
+ return self["buttons"]
+
+ @buttons.setter
+ def buttons(self, val):
+ self["buttons"] = val
+
+ @property
+ def buttondefaults(self):
+ """
+ When used in a template (as
+ layout.template.layout.updatemenu.buttondefaults), sets the
+ default property values to use for elements of
+ layout.updatemenu.buttons
+
+ The 'buttondefaults' property is an instance of Button
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.updatemenu.Button`
+ - A dict of string/value properties that will be passed
+ to the Button constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.updatemenu.Button
+ """
+ return self["buttondefaults"]
+
+ @buttondefaults.setter
+ def buttondefaults(self, val):
+ self["buttondefaults"] = val
+
+ @property
+ def direction(self):
+ """
+ Determines the direction in which the buttons are laid out,
+ whether in a dropdown menu or a row/column of buttons. For
+ `left` and `up`, the buttons will still appear in left-to-right
+ or top-to-bottom order respectively.
+
+ The 'direction' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['left', 'right', 'up', 'down']
+
+ Returns
+ -------
+ Any
+ """
+ return self["direction"]
+
+ @direction.setter
+ def direction(self, val):
+ self["direction"] = val
+
+ @property
+ def font(self):
+ """
+ Sets the font of the update menu button text.
+
+ The 'font' property is an instance of Font
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.updatemenu.Font`
+ - A dict of string/value properties that will be passed
+ to the Font constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.updatemenu.Font
+ """
+ return self["font"]
+
+ @font.setter
+ def font(self, val):
+ self["font"] = val
+
+ @property
+ def name(self):
+ """
+ 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.
+
+ The 'name' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["name"]
+
+ @name.setter
+ def name(self, val):
+ self["name"] = val
+
+ @property
+ def pad(self):
+ """
+ Sets the padding around the buttons or dropdown menu.
+
+ The 'pad' property is an instance of Pad
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.updatemenu.Pad`
+ - A dict of string/value properties that will be passed
+ to the Pad constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.updatemenu.Pad
+ """
+ return self["pad"]
+
+ @pad.setter
+ def pad(self, val):
+ self["pad"] = val
+
+ @property
+ def showactive(self):
+ """
+ Highlights active dropdown item or active button if true.
+
+ The 'showactive' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showactive"]
+
+ @showactive.setter
+ def showactive(self, val):
+ self["showactive"] = val
+
+ @property
+ def templateitemname(self):
+ """
+ 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`.
+
+ The 'templateitemname' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["templateitemname"]
+
+ @templateitemname.setter
+ def templateitemname(self, val):
+ self["templateitemname"] = val
+
+ @property
+ def type(self):
+ """
+ Determines whether the buttons are accessible via a dropdown
+ menu or whether the buttons are stacked horizontally or
+ vertically
+
+ The 'type' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['dropdown', 'buttons']
+
+ Returns
+ -------
+ Any
+ """
+ return self["type"]
+
+ @type.setter
+ def type(self, val):
+ self["type"] = val
+
+ @property
+ def visible(self):
+ """
+ Determines whether or not the update menu is visible.
+
+ The 'visible' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["visible"]
+
+ @visible.setter
+ def visible(self, val):
+ self["visible"] = val
+
+ @property
+ def x(self):
+ """
+ Sets the x position (in normalized coordinates) of the update
+ menu.
+
+ 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
+
+ @property
+ def xanchor(self):
+ """
+ Sets the update menu's horizontal position anchor. This anchor
+ binds the `x` position to the "left", "center" or "right" of
+ the range selector.
+
+ 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
+
+ @property
+ def y(self):
+ """
+ Sets the y position (in normalized coordinates) of the update
+ menu.
+
+ 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
+
+ @property
+ def yanchor(self):
+ """
+ Sets the update menu's vertical position anchor This anchor
+ binds the `y` position to the "top", "middle" or "bottom" of
+ the range selector.
+
+ 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
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ active
+ Determines which button (by index starting from 0) is
+ considered active.
+ bgcolor
+ Sets the background color of the update menu buttons.
+ bordercolor
+ Sets the color of the border enclosing the update menu.
+ borderwidth
+ Sets the width (in px) of the border enclosing the
+ update menu.
+ buttons
+ A tuple of
+ :class:`plotly.graph_objects.layout.updatemenu.Button`
+ instances or dicts with compatible properties
+ buttondefaults
+ When used in a template (as
+ layout.template.layout.updatemenu.buttondefaults), sets
+ the default property values to use for elements of
+ layout.updatemenu.buttons
+ direction
+ Determines the direction in which the buttons are laid
+ out, whether in a dropdown menu or a row/column of
+ buttons. For `left` and `up`, the buttons will still
+ appear in left-to-right or top-to-bottom order
+ respectively.
+ font
+ Sets the font of the update menu button text.
+ 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.
+ pad
+ Sets the padding around the buttons or dropdown menu.
+ showactive
+ Highlights active dropdown item or active button if
+ true.
+ 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`.
+ type
+ Determines whether the buttons are accessible via a
+ dropdown menu or whether the buttons are stacked
+ horizontally or vertically
+ visible
+ Determines whether or not the update menu is visible.
+ x
+ Sets the x position (in normalized coordinates) of the
+ update menu.
+ xanchor
+ Sets the update menu's horizontal position anchor. This
+ anchor binds the `x` position to the "left", "center"
+ or "right" of the range selector.
+ y
+ Sets the y position (in normalized coordinates) of the
+ update menu.
+ yanchor
+ Sets the update menu's vertical position anchor This
+ anchor binds the `y` position to the "top", "middle" or
+ "bottom" of the range selector.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ active=None,
+ bgcolor=None,
+ bordercolor=None,
+ borderwidth=None,
+ buttons=None,
+ buttondefaults=None,
+ direction=None,
+ font=None,
+ name=None,
+ pad=None,
+ showactive=None,
+ templateitemname=None,
+ type=None,
+ visible=None,
+ x=None,
+ xanchor=None,
+ y=None,
+ yanchor=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Updatemenu object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.Updatemenu`
+ active
+ Determines which button (by index starting from 0) is
+ considered active.
+ bgcolor
+ Sets the background color of the update menu buttons.
+ bordercolor
+ Sets the color of the border enclosing the update menu.
+ borderwidth
+ Sets the width (in px) of the border enclosing the
+ update menu.
+ buttons
+ A tuple of
+ :class:`plotly.graph_objects.layout.updatemenu.Button`
+ instances or dicts with compatible properties
+ buttondefaults
+ When used in a template (as
+ layout.template.layout.updatemenu.buttondefaults), sets
+ the default property values to use for elements of
+ layout.updatemenu.buttons
+ direction
+ Determines the direction in which the buttons are laid
+ out, whether in a dropdown menu or a row/column of
+ buttons. For `left` and `up`, the buttons will still
+ appear in left-to-right or top-to-bottom order
+ respectively.
+ font
+ Sets the font of the update menu button text.
+ 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.
+ pad
+ Sets the padding around the buttons or dropdown menu.
+ showactive
+ Highlights active dropdown item or active button if
+ true.
+ 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`.
+ type
+ Determines whether the buttons are accessible via a
+ dropdown menu or whether the buttons are stacked
+ horizontally or vertically
+ visible
+ Determines whether or not the update menu is visible.
+ x
+ Sets the x position (in normalized coordinates) of the
+ update menu.
+ xanchor
+ Sets the update menu's horizontal position anchor. This
+ anchor binds the `x` position to the "left", "center"
+ or "right" of the range selector.
+ y
+ Sets the y position (in normalized coordinates) of the
+ update menu.
+ yanchor
+ Sets the update menu's vertical position anchor This
+ anchor binds the `y` position to the "top", "middle" or
+ "bottom" of the range selector.
+
+ Returns
+ -------
+ Updatemenu
+ """
+ super().__init__("updatemenus")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Updatemenu
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.Updatemenu`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("active", arg, active)
+ self._set_property("bgcolor", arg, bgcolor)
+ self._set_property("bordercolor", arg, bordercolor)
+ self._set_property("borderwidth", arg, borderwidth)
+ self._set_property("buttons", arg, buttons)
+ self._set_property("buttondefaults", arg, buttondefaults)
+ self._set_property("direction", arg, direction)
+ self._set_property("font", arg, font)
+ self._set_property("name", arg, name)
+ self._set_property("pad", arg, pad)
+ self._set_property("showactive", arg, showactive)
+ self._set_property("templateitemname", arg, templateitemname)
+ self._set_property("type", arg, type)
+ self._set_property("visible", arg, visible)
+ self._set_property("x", arg, x)
+ self._set_property("xanchor", arg, xanchor)
+ self._set_property("y", arg, y)
+ self._set_property("yanchor", arg, yanchor)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_xaxis.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_xaxis.py
new file mode 100644
index 0000000..901e418
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_xaxis.py
@@ -0,0 +1,3415 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class XAxis(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.xaxis"
+ _valid_props = {
+ "anchor",
+ "automargin",
+ "autorange",
+ "autorangeoptions",
+ "autotickangles",
+ "autotypenumbers",
+ "calendar",
+ "categoryarray",
+ "categoryarraysrc",
+ "categoryorder",
+ "color",
+ "constrain",
+ "constraintoward",
+ "dividercolor",
+ "dividerwidth",
+ "domain",
+ "dtick",
+ "exponentformat",
+ "fixedrange",
+ "gridcolor",
+ "griddash",
+ "gridwidth",
+ "hoverformat",
+ "insiderange",
+ "labelalias",
+ "layer",
+ "linecolor",
+ "linewidth",
+ "matches",
+ "maxallowed",
+ "minallowed",
+ "minexponent",
+ "minor",
+ "mirror",
+ "nticks",
+ "overlaying",
+ "position",
+ "range",
+ "rangebreakdefaults",
+ "rangebreaks",
+ "rangemode",
+ "rangeselector",
+ "rangeslider",
+ "scaleanchor",
+ "scaleratio",
+ "separatethousands",
+ "showdividers",
+ "showexponent",
+ "showgrid",
+ "showline",
+ "showspikes",
+ "showticklabels",
+ "showtickprefix",
+ "showticksuffix",
+ "side",
+ "spikecolor",
+ "spikedash",
+ "spikemode",
+ "spikesnap",
+ "spikethickness",
+ "tick0",
+ "tickangle",
+ "tickcolor",
+ "tickfont",
+ "tickformat",
+ "tickformatstopdefaults",
+ "tickformatstops",
+ "ticklabelindex",
+ "ticklabelindexsrc",
+ "ticklabelmode",
+ "ticklabeloverflow",
+ "ticklabelposition",
+ "ticklabelshift",
+ "ticklabelstandoff",
+ "ticklabelstep",
+ "ticklen",
+ "tickmode",
+ "tickprefix",
+ "ticks",
+ "tickson",
+ "ticksuffix",
+ "ticktext",
+ "ticktextsrc",
+ "tickvals",
+ "tickvalssrc",
+ "tickwidth",
+ "title",
+ "type",
+ "uirevision",
+ "visible",
+ "zeroline",
+ "zerolinecolor",
+ "zerolinewidth",
+ }
+
+ @property
+ def anchor(self):
+ """
+ If set to an opposite-letter axis id (e.g. `x2`, `y`), this
+ axis is bound to the corresponding opposite-letter axis. If set
+ to "free", this axis' position is determined by `position`.
+
+ The 'anchor' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['free']
+ - A string that matches one of the following regular expressions:
+ ['^x([2-9]|[1-9][0-9]+)?( domain)?$',
+ '^y([2-9]|[1-9][0-9]+)?( domain)?$']
+
+ Returns
+ -------
+ Any
+ """
+ return self["anchor"]
+
+ @anchor.setter
+ def anchor(self, val):
+ self["anchor"] = val
+
+ @property
+ def automargin(self):
+ """
+ Determines whether long tick labels automatically grow the
+ figure margins.
+
+ The 'automargin' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['height', 'width', 'left', 'right', 'top', 'bottom'] joined with '+' characters
+ (e.g. 'height+width')
+ OR exactly one of [True, False] (e.g. 'False')
+
+ Returns
+ -------
+ Any
+ """
+ return self["automargin"]
+
+ @automargin.setter
+ def automargin(self, val):
+ self["automargin"] = val
+
+ @property
+ def autorange(self):
+ """
+ Determines whether or not the range of this axis is computed in
+ relation to the input data. See `rangemode` for more info. If
+ `range` is provided and it has a value for both the lower and
+ upper bound, `autorange` is set to False. Using "min" applies
+ autorange only to set the minimum. Using "max" applies
+ autorange only to set the maximum. Using *min reversed* applies
+ autorange only to set the minimum on a reversed axis. Using
+ *max reversed* applies autorange only to set the maximum on a
+ reversed axis. Using "reversed" applies autorange on both ends
+ and reverses the axis direction.
+
+ The 'autorange' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ [True, False, 'reversed', 'min reversed', 'max reversed',
+ 'min', 'max']
+
+ Returns
+ -------
+ Any
+ """
+ return self["autorange"]
+
+ @autorange.setter
+ def autorange(self, val):
+ self["autorange"] = val
+
+ @property
+ def autorangeoptions(self):
+ """
+ The 'autorangeoptions' property is an instance of Autorangeoptions
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.xaxis.Autorangeoptions`
+ - A dict of string/value properties that will be passed
+ to the Autorangeoptions constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.xaxis.Autorangeoptions
+ """
+ return self["autorangeoptions"]
+
+ @autorangeoptions.setter
+ def autorangeoptions(self, val):
+ self["autorangeoptions"] = val
+
+ @property
+ def autotickangles(self):
+ """
+ When `tickangle` is set to "auto", it will be set to the first
+ angle in this array that is large enough to prevent label
+ overlap.
+
+ The 'autotickangles' property is an info array that may be specified as:
+ * a list of elements where:
+ The 'autotickangles[i]' property is a angle (in degrees) that may be
+ specified as a number between -180 and 180.
+ Numeric values outside this range are converted to the equivalent value
+ (e.g. 270 is converted to -90).
+
+ Returns
+ -------
+ list
+ """
+ return self["autotickangles"]
+
+ @autotickangles.setter
+ def autotickangles(self, val):
+ self["autotickangles"] = val
+
+ @property
+ def autotypenumbers(self):
+ """
+ Using "strict" a numeric string in trace data is not converted
+ to a number. Using *convert types* a numeric string in trace
+ data may be treated as a number during automatic axis `type`
+ detection. Defaults to layout.autotypenumbers.
+
+ The 'autotypenumbers' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['convert types', 'strict']
+
+ Returns
+ -------
+ Any
+ """
+ return self["autotypenumbers"]
+
+ @autotypenumbers.setter
+ def autotypenumbers(self, val):
+ self["autotypenumbers"] = val
+
+ @property
+ def calendar(self):
+ """
+ Sets the calendar system to use for `range` and `tick0` if this
+ is a date axis. This does not set the calendar for interpreting
+ data on this axis, that's specified in the trace or via the
+ global `layout.calendar`
+
+ The 'calendar' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['chinese', 'coptic', 'discworld', 'ethiopian',
+ 'gregorian', 'hebrew', 'islamic', 'jalali', 'julian',
+ 'mayan', 'nanakshahi', 'nepali', 'persian', 'taiwan',
+ 'thai', 'ummalqura']
+
+ Returns
+ -------
+ Any
+ """
+ return self["calendar"]
+
+ @calendar.setter
+ def calendar(self, val):
+ self["calendar"] = val
+
+ @property
+ def categoryarray(self):
+ """
+ Sets the order in which categories on this axis appear. Only
+ has an effect if `categoryorder` is set to "array". Used with
+ `categoryorder`.
+
+ The 'categoryarray' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["categoryarray"]
+
+ @categoryarray.setter
+ def categoryarray(self, val):
+ self["categoryarray"] = val
+
+ @property
+ def categoryarraysrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for
+ `categoryarray`.
+
+ The 'categoryarraysrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["categoryarraysrc"]
+
+ @categoryarraysrc.setter
+ def categoryarraysrc(self, val):
+ self["categoryarraysrc"] = val
+
+ @property
+ def categoryorder(self):
+ """
+ Specifies the ordering logic for the case of categorical
+ variables. By default, plotly uses "trace", which specifies the
+ order that is present in the data supplied. Set `categoryorder`
+ to *category ascending* or *category descending* if order
+ should be determined by the alphanumerical order of the
+ category names. Set `categoryorder` to "array" to derive the
+ ordering from the attribute `categoryarray`. If a category is
+ not found in the `categoryarray` array, the sorting behavior
+ for that attribute will be identical to the "trace" mode. The
+ unspecified categories will follow the categories in
+ `categoryarray`. Set `categoryorder` to *total ascending* or
+ *total descending* if order should be determined by the
+ numerical order of the values. Similarly, the order can be
+ determined by the min, max, sum, mean, geometric mean or median
+ of all the values.
+
+ The 'categoryorder' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['trace', 'category ascending', 'category descending',
+ 'array', 'total ascending', 'total descending', 'min
+ ascending', 'min descending', 'max ascending', 'max
+ descending', 'sum ascending', 'sum descending', 'mean
+ ascending', 'mean descending', 'geometric mean ascending',
+ 'geometric mean descending', 'median ascending', 'median
+ descending']
+
+ Returns
+ -------
+ Any
+ """
+ return self["categoryorder"]
+
+ @categoryorder.setter
+ def categoryorder(self, val):
+ self["categoryorder"] = val
+
+ @property
+ def color(self):
+ """
+ Sets default for all colors associated with this axis all at
+ once: line, font, tick, and grid colors. Grid color is
+ lightened by blending this with the plot background Individual
+ pieces can override this.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def constrain(self):
+ """
+ If this axis needs to be compressed (either due to its own
+ `scaleanchor` and `scaleratio` or those of the other axis),
+ determines how that happens: by increasing the "range", or by
+ decreasing the "domain". Default is "domain" for axes
+ containing image traces, "range" otherwise.
+
+ The 'constrain' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['range', 'domain']
+
+ Returns
+ -------
+ Any
+ """
+ return self["constrain"]
+
+ @constrain.setter
+ def constrain(self, val):
+ self["constrain"] = val
+
+ @property
+ def constraintoward(self):
+ """
+ If this axis needs to be compressed (either due to its own
+ `scaleanchor` and `scaleratio` or those of the other axis),
+ determines which direction we push the originally specified
+ plot area. Options are "left", "center" (default), and "right"
+ for x axes, and "top", "middle" (default), and "bottom" for y
+ axes.
+
+ The 'constraintoward' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['left', 'center', 'right', 'top', 'middle', 'bottom']
+
+ Returns
+ -------
+ Any
+ """
+ return self["constraintoward"]
+
+ @constraintoward.setter
+ def constraintoward(self, val):
+ self["constraintoward"] = val
+
+ @property
+ def dividercolor(self):
+ """
+ Sets the color of the dividers Only has an effect on
+ "multicategory" axes.
+
+ The 'dividercolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["dividercolor"]
+
+ @dividercolor.setter
+ def dividercolor(self, val):
+ self["dividercolor"] = val
+
+ @property
+ def dividerwidth(self):
+ """
+ Sets the width (in px) of the dividers Only has an effect on
+ "multicategory" axes.
+
+ The 'dividerwidth' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["dividerwidth"]
+
+ @dividerwidth.setter
+ def dividerwidth(self, val):
+ self["dividerwidth"] = val
+
+ @property
+ def domain(self):
+ """
+ Sets the domain of this axis (in plot fraction).
+
+ The 'domain' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'domain[0]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+ (1) The 'domain[1]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ list
+ """
+ return self["domain"]
+
+ @domain.setter
+ def domain(self, val):
+ self["domain"] = val
+
+ @property
+ def dtick(self):
+ """
+ Sets the step in-between ticks on this axis. Use with `tick0`.
+ Must be a positive number, or special strings available to
+ "log" and "date" axes. If the axis `type` is "log", then ticks
+ are set every 10^(n*dtick) where n is the tick number. For
+ example, to set a tick mark at 1, 10, 100, 1000, ... set dtick
+ to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2.
+ To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special values;
+ "L<f>", where `f` is a positive number, gives ticks linearly
+ spaced in value (but not position). For example `tick0` = 0.1,
+ `dtick` = "L0.5" will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To
+ show powers of 10 plus small digits between, use "D1" (all
+ digits) or "D2" (only 2 and 5). `tick0` is ignored for "D1" and
+ "D2". If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval between
+ ticks to one day, set `dtick` to 86400000.0. "date" also has
+ special values "M<n>" gives ticks spaced by a number of months.
+ `n` must be a positive integer. To set ticks on the 15th of
+ every third month, set `tick0` to "2000-01-15" and `dtick` to
+ "M3". To set ticks every 4 years, set `dtick` to "M48"
+
+ The 'dtick' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["dtick"]
+
+ @dtick.setter
+ def dtick(self, val):
+ self["dtick"] = val
+
+ @property
+ def exponentformat(self):
+ """
+ Determines a formatting rule for the tick exponents. For
+ example, consider the number 1,000,000,000. If "none", it
+ appears as 1,000,000,000. If "e", 1e+9. If "E", 1E+9. If
+ "power", 1x10^9 (with 9 in a super script). If "SI", 1G. If
+ "B", 1B.
+
+ The 'exponentformat' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['none', 'e', 'E', 'power', 'SI', 'B']
+
+ Returns
+ -------
+ Any
+ """
+ return self["exponentformat"]
+
+ @exponentformat.setter
+ def exponentformat(self, val):
+ self["exponentformat"] = val
+
+ @property
+ def fixedrange(self):
+ """
+ Determines whether or not this axis is zoom-able. If true, then
+ zoom is disabled.
+
+ The 'fixedrange' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["fixedrange"]
+
+ @fixedrange.setter
+ def fixedrange(self, val):
+ self["fixedrange"] = val
+
+ @property
+ def gridcolor(self):
+ """
+ Sets the color of the grid lines.
+
+ The 'gridcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["gridcolor"]
+
+ @gridcolor.setter
+ def gridcolor(self, val):
+ self["gridcolor"] = val
+
+ @property
+ def griddash(self):
+ """
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+
+ The 'griddash' property is an enumeration that may be specified as:
+ - One of the following dash styles:
+ ['solid', 'dot', 'dash', 'longdash', 'dashdot', 'longdashdot']
+ - A string containing a dash length list in pixels or percentages
+ (e.g. '5px 10px 2px 2px', '5, 10, 2, 2', '10% 20% 40%', etc.)
+
+ Returns
+ -------
+ str
+ """
+ return self["griddash"]
+
+ @griddash.setter
+ def griddash(self, val):
+ self["griddash"] = val
+
+ @property
+ def gridwidth(self):
+ """
+ Sets the width (in px) of the grid lines.
+
+ The 'gridwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["gridwidth"]
+
+ @gridwidth.setter
+ def gridwidth(self, val):
+ self["gridwidth"] = val
+
+ @property
+ def hoverformat(self):
+ """
+ Sets the hover text formatting rule using d3 formatting mini-
+ languages which are very similar to those in Python. For
+ numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format. And for
+ dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to d3's date
+ formatter: "%h" for half of the year as a decimal number as
+ well as "%{n}f" for fractional seconds with n digits. For
+ example, *2016-10-13 09:15:23.456* with tickformat
+ "%H~%M~%S.%2f" would display "09~15~23.46"
+
+ The 'hoverformat' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["hoverformat"]
+
+ @hoverformat.setter
+ def hoverformat(self, val):
+ self["hoverformat"] = val
+
+ @property
+ def insiderange(self):
+ """
+ Could be used to set the desired inside range of this axis
+ (excluding the labels) when `ticklabelposition` of the anchored
+ axis has "inside". Not implemented for axes with `type` "log".
+ This would be ignored when `range` is provided.
+
+ The 'insiderange' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'insiderange[0]' property accepts values of any type
+ (1) The 'insiderange[1]' property accepts values of any type
+
+ Returns
+ -------
+ list
+ """
+ return self["insiderange"]
+
+ @insiderange.setter
+ def insiderange(self, val):
+ self["insiderange"] = val
+
+ @property
+ def labelalias(self):
+ """
+ Replacement text for specific tick or hover labels. For example
+ using {US: 'USA', CA: 'Canada'} changes US to USA and CA to
+ Canada. The labels we would have shown must match the keys
+ exactly, after adding any tickprefix or ticksuffix. For
+ negative numbers the minus sign symbol used (U+2212) is wider
+ than the regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis type, and
+ both keys (if needed) and values (if desired) can include html-
+ like tags or MathJax.
+
+ The 'labelalias' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["labelalias"]
+
+ @labelalias.setter
+ def labelalias(self, val):
+ self["labelalias"] = val
+
+ @property
+ def layer(self):
+ """
+ Sets the layer on which this axis is displayed. If *above
+ traces*, this axis is displayed above all the subplot's traces
+ If *below traces*, this axis is displayed below all the
+ subplot's traces, but above the grid lines. Useful when used
+ together with scatter-like traces with `cliponaxis` set to
+ False to show markers and/or text nodes above this axis.
+
+ The 'layer' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['above traces', 'below traces']
+
+ Returns
+ -------
+ Any
+ """
+ return self["layer"]
+
+ @layer.setter
+ def layer(self, val):
+ self["layer"] = val
+
+ @property
+ def linecolor(self):
+ """
+ Sets the axis line color.
+
+ The 'linecolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["linecolor"]
+
+ @linecolor.setter
+ def linecolor(self, val):
+ self["linecolor"] = val
+
+ @property
+ def linewidth(self):
+ """
+ Sets the width (in px) of the axis line.
+
+ The 'linewidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["linewidth"]
+
+ @linewidth.setter
+ def linewidth(self, val):
+ self["linewidth"] = val
+
+ @property
+ def matches(self):
+ """
+ If set to another axis id (e.g. `x2`, `y`), the range of this
+ axis will match the range of the corresponding axis in data-
+ coordinates space. Moreover, matching axes share auto-range
+ values, category lists and histogram auto-bins. Note that
+ setting axes simultaneously in both a `scaleanchor` and a
+ `matches` constraint is currently forbidden. Moreover, note
+ that matching axes must have the same `type`.
+
+ The 'matches' property is an enumeration that may be specified as:
+ - A string that matches one of the following regular expressions:
+ ['^x([2-9]|[1-9][0-9]+)?( domain)?$',
+ '^y([2-9]|[1-9][0-9]+)?( domain)?$']
+
+ Returns
+ -------
+ Any
+ """
+ return self["matches"]
+
+ @matches.setter
+ def matches(self, val):
+ self["matches"] = val
+
+ @property
+ def maxallowed(self):
+ """
+ Determines the maximum range of this axis.
+
+ The 'maxallowed' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["maxallowed"]
+
+ @maxallowed.setter
+ def maxallowed(self, val):
+ self["maxallowed"] = val
+
+ @property
+ def minallowed(self):
+ """
+ Determines the minimum range of this axis.
+
+ The 'minallowed' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["minallowed"]
+
+ @minallowed.setter
+ def minallowed(self, val):
+ self["minallowed"] = val
+
+ @property
+ def minexponent(self):
+ """
+ Hide SI prefix for 10^n if |n| is below this number. This only
+ has an effect when `tickformat` is "SI" or "B".
+
+ The 'minexponent' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["minexponent"]
+
+ @minexponent.setter
+ def minexponent(self, val):
+ self["minexponent"] = val
+
+ @property
+ def minor(self):
+ """
+ The 'minor' property is an instance of Minor
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.xaxis.Minor`
+ - A dict of string/value properties that will be passed
+ to the Minor constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.xaxis.Minor
+ """
+ return self["minor"]
+
+ @minor.setter
+ def minor(self, val):
+ self["minor"] = val
+
+ @property
+ def mirror(self):
+ """
+ Determines if the axis lines or/and ticks are mirrored to the
+ opposite side of the plotting area. If True, the axis lines are
+ mirrored. If "ticks", the axis lines and ticks are mirrored. If
+ False, mirroring is disable. If "all", axis lines are mirrored
+ on all shared-axes subplots. If "allticks", axis lines and
+ ticks are mirrored on all shared-axes subplots.
+
+ The 'mirror' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ [True, 'ticks', False, 'all', 'allticks']
+
+ Returns
+ -------
+ Any
+ """
+ return self["mirror"]
+
+ @mirror.setter
+ def mirror(self, val):
+ self["mirror"] = val
+
+ @property
+ def nticks(self):
+ """
+ Specifies the maximum number of ticks for the particular axis.
+ The actual number of ticks will be chosen automatically to be
+ less than or equal to `nticks`. Has an effect only if
+ `tickmode` is set to "auto".
+
+ The 'nticks' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [0, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["nticks"]
+
+ @nticks.setter
+ def nticks(self, val):
+ self["nticks"] = val
+
+ @property
+ def overlaying(self):
+ """
+ If set a same-letter axis id, this axis is overlaid on top of
+ the corresponding same-letter axis, with traces and axes
+ visible for both axes. If False, this axis does not overlay any
+ same-letter axes. In this case, for axes with overlapping
+ domains only the highest-numbered axis will be visible.
+
+ The 'overlaying' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['free']
+ - A string that matches one of the following regular expressions:
+ ['^x([2-9]|[1-9][0-9]+)?( domain)?$',
+ '^y([2-9]|[1-9][0-9]+)?( domain)?$']
+
+ Returns
+ -------
+ Any
+ """
+ return self["overlaying"]
+
+ @overlaying.setter
+ def overlaying(self, val):
+ self["overlaying"] = val
+
+ @property
+ def position(self):
+ """
+ Sets the position of this axis in the plotting space (in
+ normalized coordinates). Only has an effect if `anchor` is set
+ to "free".
+
+ The 'position' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["position"]
+
+ @position.setter
+ def position(self, val):
+ self["position"] = val
+
+ @property
+ def range(self):
+ """
+ Sets the range of this axis. If the axis `type` is "log", then
+ you must take the log of your desired range (e.g. to set the
+ range from 1 to 100, set the range from 0 to 2). If the axis
+ `type` is "date", it should be date strings, like date data,
+ though Date objects and unix milliseconds will be accepted and
+ converted to strings. If the axis `type` is "category", it
+ should be numbers, using the scale where each category is
+ assigned a serial number from zero in the order it appears.
+ Leaving either or both elements `null` impacts the default
+ `autorange`.
+
+ The 'range' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'range[0]' property accepts values of any type
+ (1) The 'range[1]' property accepts values of any type
+
+ Returns
+ -------
+ list
+ """
+ return self["range"]
+
+ @range.setter
+ def range(self, val):
+ self["range"] = val
+
+ @property
+ def rangebreaks(self):
+ """
+ The 'rangebreaks' property is a tuple of instances of
+ Rangebreak that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.xaxis.Rangebreak
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Rangebreak constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.xaxis.Rangebreak]
+ """
+ return self["rangebreaks"]
+
+ @rangebreaks.setter
+ def rangebreaks(self, val):
+ self["rangebreaks"] = val
+
+ @property
+ def rangebreakdefaults(self):
+ """
+ When used in a template (as
+ layout.template.layout.xaxis.rangebreakdefaults), sets the
+ default property values to use for elements of
+ layout.xaxis.rangebreaks
+
+ The 'rangebreakdefaults' property is an instance of Rangebreak
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.xaxis.Rangebreak`
+ - A dict of string/value properties that will be passed
+ to the Rangebreak constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.xaxis.Rangebreak
+ """
+ return self["rangebreakdefaults"]
+
+ @rangebreakdefaults.setter
+ def rangebreakdefaults(self, val):
+ self["rangebreakdefaults"] = val
+
+ @property
+ def rangemode(self):
+ """
+ If "normal", the range is computed in relation to the extrema
+ of the input data. If "tozero", the range extends to 0,
+ regardless of the input data If "nonnegative", the range is
+ non-negative, regardless of the input data. Applies only to
+ linear axes.
+
+ The 'rangemode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'tozero', 'nonnegative']
+
+ Returns
+ -------
+ Any
+ """
+ return self["rangemode"]
+
+ @rangemode.setter
+ def rangemode(self, val):
+ self["rangemode"] = val
+
+ @property
+ def rangeselector(self):
+ """
+ The 'rangeselector' property is an instance of Rangeselector
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.xaxis.Rangeselector`
+ - A dict of string/value properties that will be passed
+ to the Rangeselector constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.xaxis.Rangeselector
+ """
+ return self["rangeselector"]
+
+ @rangeselector.setter
+ def rangeselector(self, val):
+ self["rangeselector"] = val
+
+ @property
+ def rangeslider(self):
+ """
+ The 'rangeslider' property is an instance of Rangeslider
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.xaxis.Rangeslider`
+ - A dict of string/value properties that will be passed
+ to the Rangeslider constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.xaxis.Rangeslider
+ """
+ return self["rangeslider"]
+
+ @rangeslider.setter
+ def rangeslider(self, val):
+ self["rangeslider"] = val
+
+ @property
+ def scaleanchor(self):
+ """
+ If set to another axis id (e.g. `x2`, `y`), the range of this
+ axis changes together with the range of the corresponding axis
+ such that the scale of pixels per unit is in a constant ratio.
+ Both axes are still zoomable, but when you zoom one, the other
+ will zoom the same amount, keeping a fixed midpoint.
+ `constrain` and `constraintoward` determine how we enforce the
+ constraint. You can chain these, ie `yaxis: {scaleanchor: *x*},
+ xaxis2: {scaleanchor: *y*}` but you can only link axes of the
+ same `type`. The linked axis can have the opposite letter (to
+ constrain the aspect ratio) or the same letter (to match scales
+ across subplots). Loops (`yaxis: {scaleanchor: *x*}, xaxis:
+ {scaleanchor: *y*}` or longer) are redundant and the last
+ constraint encountered will be ignored to avoid possible
+ inconsistent constraints via `scaleratio`. Note that setting
+ axes simultaneously in both a `scaleanchor` and a `matches`
+ constraint is currently forbidden. Setting `false` allows to
+ remove a default constraint (occasionally, you may need to
+ prevent a default `scaleanchor` constraint from being applied,
+ eg. when having an image trace `yaxis: {scaleanchor: "x"}` is
+ set automatically in order for pixels to be rendered as
+ squares, setting `yaxis: {scaleanchor: false}` allows to remove
+ the constraint).
+
+ The 'scaleanchor' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ [False]
+ - A string that matches one of the following regular expressions:
+ ['^x([2-9]|[1-9][0-9]+)?( domain)?$',
+ '^y([2-9]|[1-9][0-9]+)?( domain)?$']
+
+ Returns
+ -------
+ Any
+ """
+ return self["scaleanchor"]
+
+ @scaleanchor.setter
+ def scaleanchor(self, val):
+ self["scaleanchor"] = val
+
+ @property
+ def scaleratio(self):
+ """
+ If this axis is linked to another by `scaleanchor`, this
+ determines the pixel to unit scale ratio. For example, if this
+ value is 10, then every unit on this axis spans 10 times the
+ number of pixels as a unit on the linked axis. Use this for
+ example to create an elevation profile where the vertical scale
+ is exaggerated a fixed amount with respect to the horizontal.
+
+ The 'scaleratio' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["scaleratio"]
+
+ @scaleratio.setter
+ def scaleratio(self, val):
+ self["scaleratio"] = val
+
+ @property
+ def separatethousands(self):
+ """
+ If "true", even 4-digit integers are separated
+
+ The 'separatethousands' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["separatethousands"]
+
+ @separatethousands.setter
+ def separatethousands(self, val):
+ self["separatethousands"] = val
+
+ @property
+ def showdividers(self):
+ """
+ Determines whether or not a dividers are drawn between the
+ category levels of this axis. Only has an effect on
+ "multicategory" axes.
+
+ The 'showdividers' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showdividers"]
+
+ @showdividers.setter
+ def showdividers(self, val):
+ self["showdividers"] = val
+
+ @property
+ def showexponent(self):
+ """
+ If "all", all exponents are shown besides their significands.
+ If "first", only the exponent of the first tick is shown. If
+ "last", only the exponent of the last tick is shown. If "none",
+ no exponents appear.
+
+ The 'showexponent' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showexponent"]
+
+ @showexponent.setter
+ def showexponent(self, val):
+ self["showexponent"] = val
+
+ @property
+ def showgrid(self):
+ """
+ Determines whether or not grid lines are drawn. If True, the
+ grid lines are drawn at every tick mark.
+
+ The 'showgrid' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showgrid"]
+
+ @showgrid.setter
+ def showgrid(self, val):
+ self["showgrid"] = val
+
+ @property
+ def showline(self):
+ """
+ Determines whether or not a line bounding this axis is drawn.
+
+ The 'showline' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showline"]
+
+ @showline.setter
+ def showline(self, val):
+ self["showline"] = val
+
+ @property
+ def showspikes(self):
+ """
+ Determines whether or not spikes (aka droplines) are drawn for
+ this axis. Note: This only takes affect when hovermode =
+ closest
+
+ The 'showspikes' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showspikes"]
+
+ @showspikes.setter
+ def showspikes(self, val):
+ self["showspikes"] = val
+
+ @property
+ def showticklabels(self):
+ """
+ Determines whether or not the tick labels are drawn.
+
+ The 'showticklabels' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showticklabels"]
+
+ @showticklabels.setter
+ def showticklabels(self, val):
+ self["showticklabels"] = val
+
+ @property
+ def showtickprefix(self):
+ """
+ If "all", all tick labels are displayed with a prefix. If
+ "first", only the first tick is displayed with a prefix. If
+ "last", only the last tick is displayed with a suffix. If
+ "none", tick prefixes are hidden.
+
+ The 'showtickprefix' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showtickprefix"]
+
+ @showtickprefix.setter
+ def showtickprefix(self, val):
+ self["showtickprefix"] = val
+
+ @property
+ def showticksuffix(self):
+ """
+ Same as `showtickprefix` but for tick suffixes.
+
+ The 'showticksuffix' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showticksuffix"]
+
+ @showticksuffix.setter
+ def showticksuffix(self, val):
+ self["showticksuffix"] = val
+
+ @property
+ def side(self):
+ """
+ Determines whether a x (y) axis is positioned at the "bottom"
+ ("left") or "top" ("right") of the plotting area.
+
+ The 'side' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['top', 'bottom', 'left', 'right']
+
+ Returns
+ -------
+ Any
+ """
+ return self["side"]
+
+ @side.setter
+ def side(self, val):
+ self["side"] = val
+
+ @property
+ def spikecolor(self):
+ """
+ Sets the spike color. If undefined, will use the series color
+
+ The 'spikecolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["spikecolor"]
+
+ @spikecolor.setter
+ def spikecolor(self, val):
+ self["spikecolor"] = val
+
+ @property
+ def spikedash(self):
+ """
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+
+ The 'spikedash' property is an enumeration that may be specified as:
+ - One of the following dash styles:
+ ['solid', 'dot', 'dash', 'longdash', 'dashdot', 'longdashdot']
+ - A string containing a dash length list in pixels or percentages
+ (e.g. '5px 10px 2px 2px', '5, 10, 2, 2', '10% 20% 40%', etc.)
+
+ Returns
+ -------
+ str
+ """
+ return self["spikedash"]
+
+ @spikedash.setter
+ def spikedash(self, val):
+ self["spikedash"] = val
+
+ @property
+ def spikemode(self):
+ """
+ Determines the drawing mode for the spike line If "toaxis", the
+ line is drawn from the data point to the axis the series is
+ plotted on. If "across", the line is drawn across the entire
+ plot area, and supercedes "toaxis". If "marker", then a marker
+ dot is drawn on the axis the series is plotted on
+
+ The 'spikemode' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['toaxis', 'across', 'marker'] joined with '+' characters
+ (e.g. 'toaxis+across')
+
+ Returns
+ -------
+ Any
+ """
+ return self["spikemode"]
+
+ @spikemode.setter
+ def spikemode(self, val):
+ self["spikemode"] = val
+
+ @property
+ def spikesnap(self):
+ """
+ Determines whether spikelines are stuck to the cursor or to the
+ closest datapoints.
+
+ The 'spikesnap' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['data', 'cursor', 'hovered data']
+
+ Returns
+ -------
+ Any
+ """
+ return self["spikesnap"]
+
+ @spikesnap.setter
+ def spikesnap(self, val):
+ self["spikesnap"] = val
+
+ @property
+ def spikethickness(self):
+ """
+ Sets the width (in px) of the zero line.
+
+ The 'spikethickness' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["spikethickness"]
+
+ @spikethickness.setter
+ def spikethickness(self, val):
+ self["spikethickness"] = val
+
+ @property
+ def tick0(self):
+ """
+ Sets the placement of the first tick on this axis. Use with
+ `dtick`. If the axis `type` is "log", then you must take the
+ log of your starting tick (e.g. to set the starting tick to
+ 100, set the `tick0` to 2) except when `dtick`=*L<f>* (see
+ `dtick` for more info). If the axis `type` is "date", it should
+ be a date string, like date data. If the axis `type` is
+ "category", it should be a number, using the scale where each
+ category is assigned a serial number from zero in the order it
+ appears.
+
+ The 'tick0' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["tick0"]
+
+ @tick0.setter
+ def tick0(self, val):
+ self["tick0"] = val
+
+ @property
+ def tickangle(self):
+ """
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the tick
+ labels vertically.
+
+ The 'tickangle' property is a angle (in degrees) that may be
+ specified as a number between -180 and 180.
+ Numeric values outside this range are converted to the equivalent value
+ (e.g. 270 is converted to -90).
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tickangle"]
+
+ @tickangle.setter
+ def tickangle(self, val):
+ self["tickangle"] = val
+
+ @property
+ def tickcolor(self):
+ """
+ Sets the tick color.
+
+ The 'tickcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["tickcolor"]
+
+ @tickcolor.setter
+ def tickcolor(self, val):
+ self["tickcolor"] = val
+
+ @property
+ def tickfont(self):
+ """
+ Sets the tick font.
+
+ The 'tickfont' property is an instance of Tickfont
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.xaxis.Tickfont`
+ - A dict of string/value properties that will be passed
+ to the Tickfont constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.xaxis.Tickfont
+ """
+ return self["tickfont"]
+
+ @tickfont.setter
+ def tickfont(self, val):
+ self["tickfont"] = val
+
+ @property
+ def tickformat(self):
+ """
+ Sets the tick label formatting rule using d3 formatting mini-
+ languages which are very similar to those in Python. For
+ numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format. And for
+ dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to d3's date
+ formatter: "%h" for half of the year as a decimal number as
+ well as "%{n}f" for fractional seconds with n digits. For
+ example, *2016-10-13 09:15:23.456* with tickformat
+ "%H~%M~%S.%2f" would display "09~15~23.46"
+
+ The 'tickformat' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["tickformat"]
+
+ @tickformat.setter
+ def tickformat(self, val):
+ self["tickformat"] = val
+
+ @property
+ def tickformatstops(self):
+ """
+ The 'tickformatstops' property is a tuple of instances of
+ Tickformatstop that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.xaxis.Tickformatstop
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Tickformatstop constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.xaxis.Tickformatstop]
+ """
+ return self["tickformatstops"]
+
+ @tickformatstops.setter
+ def tickformatstops(self, val):
+ self["tickformatstops"] = val
+
+ @property
+ def tickformatstopdefaults(self):
+ """
+ When used in a template (as
+ layout.template.layout.xaxis.tickformatstopdefaults), sets the
+ default property values to use for elements of
+ layout.xaxis.tickformatstops
+
+ The 'tickformatstopdefaults' property is an instance of Tickformatstop
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.xaxis.Tickformatstop`
+ - A dict of string/value properties that will be passed
+ to the Tickformatstop constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.xaxis.Tickformatstop
+ """
+ return self["tickformatstopdefaults"]
+
+ @tickformatstopdefaults.setter
+ def tickformatstopdefaults(self, val):
+ self["tickformatstopdefaults"] = val
+
+ @property
+ def ticklabelindex(self):
+ """
+ Only for axes with `type` "date" or "linear". Instead of
+ drawing the major tick label, draw the label for the minor tick
+ that is n positions away from the major tick. E.g. to always
+ draw the label for the minor tick before each major tick,
+ choose `ticklabelindex` -1. This is useful for date axes with
+ `ticklabelmode` "period" if you want to label the period that
+ ends with each major tick instead of the period that begins
+ there.
+
+ The 'ticklabelindex' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ - A tuple, list, or one-dimensional numpy array of the above
+
+ Returns
+ -------
+ int|numpy.ndarray
+ """
+ return self["ticklabelindex"]
+
+ @ticklabelindex.setter
+ def ticklabelindex(self, val):
+ self["ticklabelindex"] = val
+
+ @property
+ def ticklabelindexsrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for
+ `ticklabelindex`.
+
+ The 'ticklabelindexsrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["ticklabelindexsrc"]
+
+ @ticklabelindexsrc.setter
+ def ticklabelindexsrc(self, val):
+ self["ticklabelindexsrc"] = val
+
+ @property
+ def ticklabelmode(self):
+ """
+ Determines where tick labels are drawn with respect to their
+ corresponding ticks and grid lines. Only has an effect for axes
+ of `type` "date" When set to "period", tick labels are drawn in
+ the middle of the period between ticks.
+
+ The 'ticklabelmode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['instant', 'period']
+
+ Returns
+ -------
+ Any
+ """
+ return self["ticklabelmode"]
+
+ @ticklabelmode.setter
+ def ticklabelmode(self, val):
+ self["ticklabelmode"] = val
+
+ @property
+ def ticklabeloverflow(self):
+ """
+ Determines how we handle tick labels that would overflow either
+ the graph div or the domain of the axis. The default value for
+ inside tick labels is *hide past domain*. Otherwise on
+ "category" and "multicategory" axes the default is "allow". In
+ other cases the default is *hide past div*.
+
+ The 'ticklabeloverflow' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['allow', 'hide past div', 'hide past domain']
+
+ Returns
+ -------
+ Any
+ """
+ return self["ticklabeloverflow"]
+
+ @ticklabeloverflow.setter
+ def ticklabeloverflow(self, val):
+ self["ticklabeloverflow"] = val
+
+ @property
+ def ticklabelposition(self):
+ """
+ Determines where tick labels are drawn with respect to the axis
+ Please note that top or bottom has no effect on x axes or when
+ `ticklabelmode` is set to "period". Similarly left or right has
+ no effect on y axes or when `ticklabelmode` is set to "period".
+ Has no effect on "multicategory" axes or when `tickson` is set
+ to "boundaries". When used on axes linked by `matches` or
+ `scaleanchor`, no extra padding for inside labels would be
+ added by autorange, so that the scales could match.
+
+ The 'ticklabelposition' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['outside', 'inside', 'outside top', 'inside top',
+ 'outside left', 'inside left', 'outside right', 'inside
+ right', 'outside bottom', 'inside bottom']
+
+ Returns
+ -------
+ Any
+ """
+ return self["ticklabelposition"]
+
+ @ticklabelposition.setter
+ def ticklabelposition(self, val):
+ self["ticklabelposition"] = val
+
+ @property
+ def ticklabelshift(self):
+ """
+ Shifts the tick labels by the specified number of pixels in
+ parallel to the axis. Positive values move the labels in the
+ positive direction of the axis.
+
+ The 'ticklabelshift' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+
+ Returns
+ -------
+ int
+ """
+ return self["ticklabelshift"]
+
+ @ticklabelshift.setter
+ def ticklabelshift(self, val):
+ self["ticklabelshift"] = val
+
+ @property
+ def ticklabelstandoff(self):
+ """
+ Sets the standoff distance (in px) between the axis tick labels
+ and their default position. A positive `ticklabelstandoff`
+ moves the labels farther away from the plot area if
+ `ticklabelposition` is "outside", and deeper into the plot area
+ if `ticklabelposition` is "inside". A negative
+ `ticklabelstandoff` works in the opposite direction, moving
+ outside ticks towards the plot area and inside ticks towards
+ the outside. If the negative value is large enough, inside
+ ticks can even end up outside and vice versa.
+
+ The 'ticklabelstandoff' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+
+ Returns
+ -------
+ int
+ """
+ return self["ticklabelstandoff"]
+
+ @ticklabelstandoff.setter
+ def ticklabelstandoff(self, val):
+ self["ticklabelstandoff"] = val
+
+ @property
+ def ticklabelstep(self):
+ """
+ Sets the spacing between tick labels as compared to the spacing
+ between ticks. A value of 1 (default) means each tick gets a
+ label. A value of 2 means shows every 2nd label. A larger value
+ n means only every nth tick is labeled. `tick0` determines
+ which labels are shown. Not implemented for axes with `type`
+ "log" or "multicategory", or when `tickmode` is "array".
+
+ The 'ticklabelstep' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["ticklabelstep"]
+
+ @ticklabelstep.setter
+ def ticklabelstep(self, val):
+ self["ticklabelstep"] = val
+
+ @property
+ def ticklen(self):
+ """
+ Sets the tick length (in px).
+
+ The 'ticklen' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["ticklen"]
+
+ @ticklen.setter
+ def ticklen(self, val):
+ self["ticklen"] = val
+
+ @property
+ def tickmode(self):
+ """
+ Sets the tick mode for this axis. If "auto", the number of
+ ticks is set via `nticks`. If "linear", the placement of the
+ ticks is determined by a starting position `tick0` and a tick
+ step `dtick` ("linear" is the default value if `tick0` and
+ `dtick` are provided). If "array", the placement of the ticks
+ is set via `tickvals` and the tick text is `ticktext`. ("array"
+ is the default value if `tickvals` is provided). If "sync", the
+ number of ticks will sync with the overlayed axis set by
+ `overlaying` property.
+
+ The 'tickmode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['auto', 'linear', 'array', 'sync']
+
+ Returns
+ -------
+ Any
+ """
+ return self["tickmode"]
+
+ @tickmode.setter
+ def tickmode(self, val):
+ self["tickmode"] = val
+
+ @property
+ def tickprefix(self):
+ """
+ Sets a tick label prefix.
+
+ The 'tickprefix' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["tickprefix"]
+
+ @tickprefix.setter
+ def tickprefix(self, val):
+ self["tickprefix"] = val
+
+ @property
+ def ticks(self):
+ """
+ Determines whether ticks are drawn or not. If "", this axis'
+ ticks are not drawn. If "outside" ("inside"), this axis' are
+ drawn outside (inside) the axis lines.
+
+ The 'ticks' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['outside', 'inside', '']
+
+ Returns
+ -------
+ Any
+ """
+ return self["ticks"]
+
+ @ticks.setter
+ def ticks(self, val):
+ self["ticks"] = val
+
+ @property
+ def tickson(self):
+ """
+ Determines where ticks and grid lines are drawn with respect to
+ their corresponding tick labels. Only has an effect for axes of
+ `type` "category" or "multicategory". When set to "boundaries",
+ ticks and grid lines are drawn half a category to the
+ left/bottom of labels.
+
+ The 'tickson' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['labels', 'boundaries']
+
+ Returns
+ -------
+ Any
+ """
+ return self["tickson"]
+
+ @tickson.setter
+ def tickson(self, val):
+ self["tickson"] = val
+
+ @property
+ def ticksuffix(self):
+ """
+ Sets a tick label suffix.
+
+ The 'ticksuffix' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["ticksuffix"]
+
+ @ticksuffix.setter
+ def ticksuffix(self, val):
+ self["ticksuffix"] = val
+
+ @property
+ def ticktext(self):
+ """
+ Sets the text displayed at the ticks position via `tickvals`.
+ Only has an effect if `tickmode` is set to "array". Used with
+ `tickvals`.
+
+ The 'ticktext' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["ticktext"]
+
+ @ticktext.setter
+ def ticktext(self, val):
+ self["ticktext"] = val
+
+ @property
+ def ticktextsrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `ticktext`.
+
+ The 'ticktextsrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["ticktextsrc"]
+
+ @ticktextsrc.setter
+ def ticktextsrc(self, val):
+ self["ticktextsrc"] = val
+
+ @property
+ def tickvals(self):
+ """
+ Sets the values at which ticks on this axis appear. Only has an
+ effect if `tickmode` is set to "array". Used with `ticktext`.
+
+ The 'tickvals' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["tickvals"]
+
+ @tickvals.setter
+ def tickvals(self, val):
+ self["tickvals"] = val
+
+ @property
+ def tickvalssrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `tickvals`.
+
+ The 'tickvalssrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["tickvalssrc"]
+
+ @tickvalssrc.setter
+ def tickvalssrc(self, val):
+ self["tickvalssrc"] = val
+
+ @property
+ def tickwidth(self):
+ """
+ Sets the tick width (in px).
+
+ The 'tickwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tickwidth"]
+
+ @tickwidth.setter
+ def tickwidth(self, val):
+ self["tickwidth"] = val
+
+ @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.xaxis.Title`
+ - A dict of string/value properties that will be passed
+ to the Title constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.xaxis.Title
+ """
+ return self["title"]
+
+ @title.setter
+ def title(self, val):
+ self["title"] = val
+
+ @property
+ def type(self):
+ """
+ Sets the axis type. By default, plotly attempts to determined
+ the axis type by looking into the data of the traces that
+ referenced the axis in question.
+
+ The 'type' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['-', 'linear', 'log', 'date', 'category',
+ 'multicategory']
+
+ Returns
+ -------
+ Any
+ """
+ return self["type"]
+
+ @type.setter
+ def type(self, val):
+ self["type"] = val
+
+ @property
+ def uirevision(self):
+ """
+ Controls persistence of user-driven changes in axis `range`,
+ `autorange`, and `title` if in `editable: true` configuration.
+ 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
+
+ @property
+ def visible(self):
+ """
+ A single toggle to hide the axis while preserving interaction
+ like dragging. Default is true when a cheater plot is present
+ on the axis, otherwise false
+
+ The 'visible' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["visible"]
+
+ @visible.setter
+ def visible(self, val):
+ self["visible"] = val
+
+ @property
+ def zeroline(self):
+ """
+ Determines whether or not a line is drawn at along the 0 value
+ of this axis. If True, the zero line is drawn on top of the
+ grid lines.
+
+ The 'zeroline' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["zeroline"]
+
+ @zeroline.setter
+ def zeroline(self, val):
+ self["zeroline"] = val
+
+ @property
+ def zerolinecolor(self):
+ """
+ Sets the line color of the zero line.
+
+ The 'zerolinecolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["zerolinecolor"]
+
+ @zerolinecolor.setter
+ def zerolinecolor(self, val):
+ self["zerolinecolor"] = val
+
+ @property
+ def zerolinewidth(self):
+ """
+ Sets the width (in px) of the zero line.
+
+ The 'zerolinewidth' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["zerolinewidth"]
+
+ @zerolinewidth.setter
+ def zerolinewidth(self, val):
+ self["zerolinewidth"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ anchor
+ If set to an opposite-letter axis id (e.g. `x2`, `y`),
+ this axis is bound to the corresponding opposite-letter
+ axis. If set to "free", this axis' position is
+ determined by `position`.
+ automargin
+ Determines whether long tick labels automatically grow
+ the figure margins.
+ autorange
+ Determines whether or not the range of this axis is
+ computed in relation to the input data. See `rangemode`
+ for more info. If `range` is provided and it has a
+ value for both the lower and upper bound, `autorange`
+ is set to False. Using "min" applies autorange only to
+ set the minimum. Using "max" applies autorange only to
+ set the maximum. Using *min reversed* applies autorange
+ only to set the minimum on a reversed axis. Using *max
+ reversed* applies autorange only to set the maximum on
+ a reversed axis. Using "reversed" applies autorange on
+ both ends and reverses the axis direction.
+ autorangeoptions
+ :class:`plotly.graph_objects.layout.xaxis.Autorangeopti
+ ons` instance or dict with compatible properties
+ autotickangles
+ When `tickangle` is set to "auto", it will be set to
+ the first angle in this array that is large enough to
+ prevent label overlap.
+ autotypenumbers
+ Using "strict" a numeric string in trace data is not
+ converted to a number. Using *convert types* a numeric
+ string in trace data may be treated as a number during
+ automatic axis `type` detection. Defaults to
+ layout.autotypenumbers.
+ calendar
+ Sets the calendar system to use for `range` and `tick0`
+ if this is a date axis. This does not set the calendar
+ for interpreting data on this axis, that's specified in
+ the trace or via the global `layout.calendar`
+ categoryarray
+ Sets the order in which categories on this axis appear.
+ Only has an effect if `categoryorder` is set to
+ "array". Used with `categoryorder`.
+ categoryarraysrc
+ Sets the source reference on Chart Studio Cloud for
+ `categoryarray`.
+ categoryorder
+ Specifies the ordering logic for the case of
+ categorical variables. By default, plotly uses "trace",
+ which specifies the order that is present in the data
+ supplied. Set `categoryorder` to *category ascending*
+ or *category descending* if order should be determined
+ by the alphanumerical order of the category names. Set
+ `categoryorder` to "array" to derive the ordering from
+ the attribute `categoryarray`. If a category is not
+ found in the `categoryarray` array, the sorting
+ behavior for that attribute will be identical to the
+ "trace" mode. The unspecified categories will follow
+ the categories in `categoryarray`. Set `categoryorder`
+ to *total ascending* or *total descending* if order
+ should be determined by the numerical order of the
+ values. Similarly, the order can be determined by the
+ min, max, sum, mean, geometric mean or median of all
+ the values.
+ color
+ Sets default for all colors associated with this axis
+ all at once: line, font, tick, and grid colors. Grid
+ color is lightened by blending this with the plot
+ background Individual pieces can override this.
+ constrain
+ If this axis needs to be compressed (either due to its
+ own `scaleanchor` and `scaleratio` or those of the
+ other axis), determines how that happens: by increasing
+ the "range", or by decreasing the "domain". Default is
+ "domain" for axes containing image traces, "range"
+ otherwise.
+ constraintoward
+ If this axis needs to be compressed (either due to its
+ own `scaleanchor` and `scaleratio` or those of the
+ other axis), determines which direction we push the
+ originally specified plot area. Options are "left",
+ "center" (default), and "right" for x axes, and "top",
+ "middle" (default), and "bottom" for y axes.
+ dividercolor
+ Sets the color of the dividers Only has an effect on
+ "multicategory" axes.
+ dividerwidth
+ Sets the width (in px) of the dividers Only has an
+ effect on "multicategory" axes.
+ domain
+ Sets the domain of this axis (in plot fraction).
+ dtick
+ Sets the step in-between ticks on this axis. Use with
+ `tick0`. Must be a positive number, or special strings
+ available to "log" and "date" axes. If the axis `type`
+ is "log", then ticks are set every 10^(n*dtick) where n
+ is the tick number. For example, to set a tick mark at
+ 1, 10, 100, 1000, ... set dtick to 1. To set tick marks
+ at 1, 100, 10000, ... set dtick to 2. To set tick marks
+ at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special
+ values; "L<f>", where `f` is a positive number, gives
+ ticks linearly spaced in value (but not position). For
+ example `tick0` = 0.1, `dtick` = "L0.5" will put ticks
+ at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus
+ small digits between, use "D1" (all digits) or "D2"
+ (only 2 and 5). `tick0` is ignored for "D1" and "D2".
+ If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval
+ between ticks to one day, set `dtick` to 86400000.0.
+ "date" also has special values "M<n>" gives ticks
+ spaced by a number of months. `n` must be a positive
+ integer. To set ticks on the 15th of every third month,
+ set `tick0` to "2000-01-15" and `dtick` to "M3". To set
+ ticks every 4 years, set `dtick` to "M48"
+ exponentformat
+ Determines a formatting rule for the tick exponents.
+ For example, consider the number 1,000,000,000. If
+ "none", it appears as 1,000,000,000. If "e", 1e+9. If
+ "E", 1E+9. If "power", 1x10^9 (with 9 in a super
+ script). If "SI", 1G. If "B", 1B.
+ fixedrange
+ Determines whether or not this axis is zoom-able. If
+ true, then zoom is disabled.
+ gridcolor
+ Sets the color of the grid lines.
+ griddash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ gridwidth
+ Sets the width (in px) of the grid lines.
+ hoverformat
+ Sets the hover text formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ insiderange
+ Could be used to set the desired inside range of this
+ axis (excluding the labels) when `ticklabelposition` of
+ the anchored axis has "inside". Not implemented for
+ axes with `type` "log". This would be ignored when
+ `range` is provided.
+ labelalias
+ Replacement text for specific tick or hover labels. For
+ example using {US: 'USA', CA: 'Canada'} changes US to
+ USA and CA to Canada. The labels we would have shown
+ must match the keys exactly, after adding any
+ tickprefix or ticksuffix. For negative numbers the
+ minus sign symbol used (U+2212) is wider than the
+ regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis
+ type, and both keys (if needed) and values (if desired)
+ can include html-like tags or MathJax.
+ layer
+ Sets the layer on which this axis is displayed. If
+ *above traces*, this axis is displayed above all the
+ subplot's traces If *below traces*, this axis is
+ displayed below all the subplot's traces, but above the
+ grid lines. Useful when used together with scatter-like
+ traces with `cliponaxis` set to False to show markers
+ and/or text nodes above this axis.
+ linecolor
+ Sets the axis line color.
+ linewidth
+ Sets the width (in px) of the axis line.
+ matches
+ If set to another axis id (e.g. `x2`, `y`), the range
+ of this axis will match the range of the corresponding
+ axis in data-coordinates space. Moreover, matching axes
+ share auto-range values, category lists and histogram
+ auto-bins. Note that setting axes simultaneously in
+ both a `scaleanchor` and a `matches` constraint is
+ currently forbidden. Moreover, note that matching axes
+ must have the same `type`.
+ maxallowed
+ Determines the maximum range of this axis.
+ minallowed
+ Determines the minimum range of this axis.
+ minexponent
+ Hide SI prefix for 10^n if |n| is below this number.
+ This only has an effect when `tickformat` is "SI" or
+ "B".
+ minor
+ :class:`plotly.graph_objects.layout.xaxis.Minor`
+ instance or dict with compatible properties
+ mirror
+ Determines if the axis lines or/and ticks are mirrored
+ to the opposite side of the plotting area. If True, the
+ axis lines are mirrored. If "ticks", the axis lines and
+ ticks are mirrored. If False, mirroring is disable. If
+ "all", axis lines are mirrored on all shared-axes
+ subplots. If "allticks", axis lines and ticks are
+ mirrored on all shared-axes subplots.
+ nticks
+ Specifies the maximum number of ticks for the
+ particular axis. The actual number of ticks will be
+ chosen automatically to be less than or equal to
+ `nticks`. Has an effect only if `tickmode` is set to
+ "auto".
+ overlaying
+ If set a same-letter axis id, this axis is overlaid on
+ top of the corresponding same-letter axis, with traces
+ and axes visible for both axes. If False, this axis
+ does not overlay any same-letter axes. In this case,
+ for axes with overlapping domains only the highest-
+ numbered axis will be visible.
+ position
+ Sets the position of this axis in the plotting space
+ (in normalized coordinates). Only has an effect if
+ `anchor` is set to "free".
+ range
+ Sets the range of this axis. If the axis `type` is
+ "log", then you must take the log of your desired range
+ (e.g. to set the range from 1 to 100, set the range
+ from 0 to 2). If the axis `type` is "date", it should
+ be date strings, like date data, though Date objects
+ and unix milliseconds will be accepted and converted to
+ strings. If the axis `type` is "category", it should be
+ numbers, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears. Leaving either or both elements `null` impacts
+ the default `autorange`.
+ rangebreaks
+ A tuple of
+ :class:`plotly.graph_objects.layout.xaxis.Rangebreak`
+ instances or dicts with compatible properties
+ rangebreakdefaults
+ When used in a template (as
+ layout.template.layout.xaxis.rangebreakdefaults), sets
+ the default property values to use for elements of
+ layout.xaxis.rangebreaks
+ rangemode
+ If "normal", the range is computed in relation to the
+ extrema of the input data. If "tozero", the range
+ extends to 0, regardless of the input data If
+ "nonnegative", the range is non-negative, regardless of
+ the input data. Applies only to linear axes.
+ rangeselector
+ :class:`plotly.graph_objects.layout.xaxis.Rangeselector
+ ` instance or dict with compatible properties
+ rangeslider
+ :class:`plotly.graph_objects.layout.xaxis.Rangeslider`
+ instance or dict with compatible properties
+ scaleanchor
+ If set to another axis id (e.g. `x2`, `y`), the range
+ of this axis changes together with the range of the
+ corresponding axis such that the scale of pixels per
+ unit is in a constant ratio. Both axes are still
+ zoomable, but when you zoom one, the other will zoom
+ the same amount, keeping a fixed midpoint. `constrain`
+ and `constraintoward` determine how we enforce the
+ constraint. You can chain these, ie `yaxis:
+ {scaleanchor: *x*}, xaxis2: {scaleanchor: *y*}` but you
+ can only link axes of the same `type`. The linked axis
+ can have the opposite letter (to constrain the aspect
+ ratio) or the same letter (to match scales across
+ subplots). Loops (`yaxis: {scaleanchor: *x*}, xaxis:
+ {scaleanchor: *y*}` or longer) are redundant and the
+ last constraint encountered will be ignored to avoid
+ possible inconsistent constraints via `scaleratio`.
+ Note that setting axes simultaneously in both a
+ `scaleanchor` and a `matches` constraint is currently
+ forbidden. Setting `false` allows to remove a default
+ constraint (occasionally, you may need to prevent a
+ default `scaleanchor` constraint from being applied,
+ eg. when having an image trace `yaxis: {scaleanchor:
+ "x"}` is set automatically in order for pixels to be
+ rendered as squares, setting `yaxis: {scaleanchor:
+ false}` allows to remove the constraint).
+ scaleratio
+ If this axis is linked to another by `scaleanchor`,
+ this determines the pixel to unit scale ratio. For
+ example, if this value is 10, then every unit on this
+ axis spans 10 times the number of pixels as a unit on
+ the linked axis. Use this for example to create an
+ elevation profile where the vertical scale is
+ exaggerated a fixed amount with respect to the
+ horizontal.
+ separatethousands
+ If "true", even 4-digit integers are separated
+ showdividers
+ Determines whether or not a dividers are drawn between
+ the category levels of this axis. Only has an effect on
+ "multicategory" axes.
+ showexponent
+ If "all", all exponents are shown besides their
+ significands. If "first", only the exponent of the
+ first tick is shown. If "last", only the exponent of
+ the last tick is shown. If "none", no exponents appear.
+ showgrid
+ Determines whether or not grid lines are drawn. If
+ True, the grid lines are drawn at every tick mark.
+ showline
+ Determines whether or not a line bounding this axis is
+ drawn.
+ showspikes
+ Determines whether or not spikes (aka droplines) are
+ drawn for this axis. Note: This only takes affect when
+ hovermode = closest
+ showticklabels
+ Determines whether or not the tick labels are drawn.
+ showtickprefix
+ If "all", all tick labels are displayed with a prefix.
+ If "first", only the first tick is displayed with a
+ prefix. If "last", only the last tick is displayed with
+ a suffix. If "none", tick prefixes are hidden.
+ showticksuffix
+ Same as `showtickprefix` but for tick suffixes.
+ side
+ Determines whether a x (y) axis is positioned at the
+ "bottom" ("left") or "top" ("right") of the plotting
+ area.
+ spikecolor
+ Sets the spike color. If undefined, will use the series
+ color
+ spikedash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ spikemode
+ Determines the drawing mode for the spike line If
+ "toaxis", the line is drawn from the data point to the
+ axis the series is plotted on. If "across", the line
+ is drawn across the entire plot area, and supercedes
+ "toaxis". If "marker", then a marker dot is drawn on
+ the axis the series is plotted on
+ spikesnap
+ Determines whether spikelines are stuck to the cursor
+ or to the closest datapoints.
+ spikethickness
+ Sets the width (in px) of the zero line.
+ tick0
+ Sets the placement of the first tick on this axis. Use
+ with `dtick`. If the axis `type` is "log", then you
+ must take the log of your starting tick (e.g. to set
+ the starting tick to 100, set the `tick0` to 2) except
+ when `dtick`=*L<f>* (see `dtick` for more info). If the
+ axis `type` is "date", it should be a date string, like
+ date data. If the axis `type` is "category", it should
+ be a number, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears.
+ tickangle
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the
+ tick labels vertically.
+ tickcolor
+ Sets the tick color.
+ tickfont
+ Sets the tick font.
+ tickformat
+ Sets the tick label formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ tickformatstops
+ A tuple of :class:`plotly.graph_objects.layout.xaxis.Ti
+ ckformatstop` instances or dicts with compatible
+ properties
+ tickformatstopdefaults
+ When used in a template (as
+ layout.template.layout.xaxis.tickformatstopdefaults),
+ sets the default property values to use for elements of
+ layout.xaxis.tickformatstops
+ ticklabelindex
+ Only for axes with `type` "date" or "linear". Instead
+ of drawing the major tick label, draw the label for the
+ minor tick that is n positions away from the major
+ tick. E.g. to always draw the label for the minor tick
+ before each major tick, choose `ticklabelindex` -1.
+ This is useful for date axes with `ticklabelmode`
+ "period" if you want to label the period that ends with
+ each major tick instead of the period that begins
+ there.
+ ticklabelindexsrc
+ Sets the source reference on Chart Studio Cloud for
+ `ticklabelindex`.
+ ticklabelmode
+ Determines where tick labels are drawn with respect to
+ their corresponding ticks and grid lines. Only has an
+ effect for axes of `type` "date" When set to "period",
+ tick labels are drawn in the middle of the period
+ between ticks.
+ ticklabeloverflow
+ Determines how we handle tick labels that would
+ overflow either the graph div or the domain of the
+ axis. The default value for inside tick labels is *hide
+ past domain*. Otherwise on "category" and
+ "multicategory" axes the default is "allow". In other
+ cases the default is *hide past div*.
+ ticklabelposition
+ Determines where tick labels are drawn with respect to
+ the axis Please note that top or bottom has no effect
+ on x axes or when `ticklabelmode` is set to "period".
+ Similarly left or right has no effect on y axes or when
+ `ticklabelmode` is set to "period". Has no effect on
+ "multicategory" axes or when `tickson` is set to
+ "boundaries". When used on axes linked by `matches` or
+ `scaleanchor`, no extra padding for inside labels would
+ be added by autorange, so that the scales could match.
+ ticklabelshift
+ Shifts the tick labels by the specified number of
+ pixels in parallel to the axis. Positive values move
+ the labels in the positive direction of the axis.
+ ticklabelstandoff
+ Sets the standoff distance (in px) between the axis
+ tick labels and their default position. A positive
+ `ticklabelstandoff` moves the labels farther away from
+ the plot area if `ticklabelposition` is "outside", and
+ deeper into the plot area if `ticklabelposition` is
+ "inside". A negative `ticklabelstandoff` works in the
+ opposite direction, moving outside ticks towards the
+ plot area and inside ticks towards the outside. If the
+ negative value is large enough, inside ticks can even
+ end up outside and vice versa.
+ ticklabelstep
+ Sets the spacing between tick labels as compared to the
+ spacing between ticks. A value of 1 (default) means
+ each tick gets a label. A value of 2 means shows every
+ 2nd label. A larger value n means only every nth tick
+ is labeled. `tick0` determines which labels are shown.
+ Not implemented for axes with `type` "log" or
+ "multicategory", or when `tickmode` is "array".
+ ticklen
+ Sets the tick length (in px).
+ tickmode
+ Sets the tick mode for this axis. If "auto", the number
+ of ticks is set via `nticks`. If "linear", the
+ placement of the ticks is determined by a starting
+ position `tick0` and a tick step `dtick` ("linear" is
+ the default value if `tick0` and `dtick` are provided).
+ If "array", the placement of the ticks is set via
+ `tickvals` and the tick text is `ticktext`. ("array" is
+ the default value if `tickvals` is provided). If
+ "sync", the number of ticks will sync with the
+ overlayed axis set by `overlaying` property.
+ tickprefix
+ Sets a tick label prefix.
+ ticks
+ Determines whether ticks are drawn or not. If "", this
+ axis' ticks are not drawn. If "outside" ("inside"),
+ this axis' are drawn outside (inside) the axis lines.
+ tickson
+ Determines where ticks and grid lines are drawn with
+ respect to their corresponding tick labels. Only has an
+ effect for axes of `type` "category" or
+ "multicategory". When set to "boundaries", ticks and
+ grid lines are drawn half a category to the left/bottom
+ of labels.
+ ticksuffix
+ Sets a tick label suffix.
+ ticktext
+ Sets the text displayed at the ticks position via
+ `tickvals`. Only has an effect if `tickmode` is set to
+ "array". Used with `tickvals`.
+ ticktextsrc
+ Sets the source reference on Chart Studio Cloud for
+ `ticktext`.
+ tickvals
+ Sets the values at which ticks on this axis appear.
+ Only has an effect if `tickmode` is set to "array".
+ Used with `ticktext`.
+ tickvalssrc
+ Sets the source reference on Chart Studio Cloud for
+ `tickvals`.
+ tickwidth
+ Sets the tick width (in px).
+ title
+ :class:`plotly.graph_objects.layout.xaxis.Title`
+ instance or dict with compatible properties
+ type
+ Sets the axis type. By default, plotly attempts to
+ determined the axis type by looking into the data of
+ the traces that referenced the axis in question.
+ uirevision
+ Controls persistence of user-driven changes in axis
+ `range`, `autorange`, and `title` if in `editable:
+ true` configuration. Defaults to `layout.uirevision`.
+ visible
+ A single toggle to hide the axis while preserving
+ interaction like dragging. Default is true when a
+ cheater plot is present on the axis, otherwise false
+ zeroline
+ Determines whether or not a line is drawn at along the
+ 0 value of this axis. If True, the zero line is drawn
+ on top of the grid lines.
+ zerolinecolor
+ Sets the line color of the zero line.
+ zerolinewidth
+ Sets the width (in px) of the zero line.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ anchor=None,
+ automargin=None,
+ autorange=None,
+ autorangeoptions=None,
+ autotickangles=None,
+ autotypenumbers=None,
+ calendar=None,
+ categoryarray=None,
+ categoryarraysrc=None,
+ categoryorder=None,
+ color=None,
+ constrain=None,
+ constraintoward=None,
+ dividercolor=None,
+ dividerwidth=None,
+ domain=None,
+ dtick=None,
+ exponentformat=None,
+ fixedrange=None,
+ gridcolor=None,
+ griddash=None,
+ gridwidth=None,
+ hoverformat=None,
+ insiderange=None,
+ labelalias=None,
+ layer=None,
+ linecolor=None,
+ linewidth=None,
+ matches=None,
+ maxallowed=None,
+ minallowed=None,
+ minexponent=None,
+ minor=None,
+ mirror=None,
+ nticks=None,
+ overlaying=None,
+ position=None,
+ range=None,
+ rangebreaks=None,
+ rangebreakdefaults=None,
+ rangemode=None,
+ rangeselector=None,
+ rangeslider=None,
+ scaleanchor=None,
+ scaleratio=None,
+ separatethousands=None,
+ showdividers=None,
+ showexponent=None,
+ showgrid=None,
+ showline=None,
+ showspikes=None,
+ showticklabels=None,
+ showtickprefix=None,
+ showticksuffix=None,
+ side=None,
+ spikecolor=None,
+ spikedash=None,
+ spikemode=None,
+ spikesnap=None,
+ spikethickness=None,
+ tick0=None,
+ tickangle=None,
+ tickcolor=None,
+ tickfont=None,
+ tickformat=None,
+ tickformatstops=None,
+ tickformatstopdefaults=None,
+ ticklabelindex=None,
+ ticklabelindexsrc=None,
+ ticklabelmode=None,
+ ticklabeloverflow=None,
+ ticklabelposition=None,
+ ticklabelshift=None,
+ ticklabelstandoff=None,
+ ticklabelstep=None,
+ ticklen=None,
+ tickmode=None,
+ tickprefix=None,
+ ticks=None,
+ tickson=None,
+ ticksuffix=None,
+ ticktext=None,
+ ticktextsrc=None,
+ tickvals=None,
+ tickvalssrc=None,
+ tickwidth=None,
+ title=None,
+ type=None,
+ uirevision=None,
+ visible=None,
+ zeroline=None,
+ zerolinecolor=None,
+ zerolinewidth=None,
+ **kwargs,
+ ):
+ """
+ Construct a new XAxis object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.XAxis`
+ anchor
+ If set to an opposite-letter axis id (e.g. `x2`, `y`),
+ this axis is bound to the corresponding opposite-letter
+ axis. If set to "free", this axis' position is
+ determined by `position`.
+ automargin
+ Determines whether long tick labels automatically grow
+ the figure margins.
+ autorange
+ Determines whether or not the range of this axis is
+ computed in relation to the input data. See `rangemode`
+ for more info. If `range` is provided and it has a
+ value for both the lower and upper bound, `autorange`
+ is set to False. Using "min" applies autorange only to
+ set the minimum. Using "max" applies autorange only to
+ set the maximum. Using *min reversed* applies autorange
+ only to set the minimum on a reversed axis. Using *max
+ reversed* applies autorange only to set the maximum on
+ a reversed axis. Using "reversed" applies autorange on
+ both ends and reverses the axis direction.
+ autorangeoptions
+ :class:`plotly.graph_objects.layout.xaxis.Autorangeopti
+ ons` instance or dict with compatible properties
+ autotickangles
+ When `tickangle` is set to "auto", it will be set to
+ the first angle in this array that is large enough to
+ prevent label overlap.
+ autotypenumbers
+ Using "strict" a numeric string in trace data is not
+ converted to a number. Using *convert types* a numeric
+ string in trace data may be treated as a number during
+ automatic axis `type` detection. Defaults to
+ layout.autotypenumbers.
+ calendar
+ Sets the calendar system to use for `range` and `tick0`
+ if this is a date axis. This does not set the calendar
+ for interpreting data on this axis, that's specified in
+ the trace or via the global `layout.calendar`
+ categoryarray
+ Sets the order in which categories on this axis appear.
+ Only has an effect if `categoryorder` is set to
+ "array". Used with `categoryorder`.
+ categoryarraysrc
+ Sets the source reference on Chart Studio Cloud for
+ `categoryarray`.
+ categoryorder
+ Specifies the ordering logic for the case of
+ categorical variables. By default, plotly uses "trace",
+ which specifies the order that is present in the data
+ supplied. Set `categoryorder` to *category ascending*
+ or *category descending* if order should be determined
+ by the alphanumerical order of the category names. Set
+ `categoryorder` to "array" to derive the ordering from
+ the attribute `categoryarray`. If a category is not
+ found in the `categoryarray` array, the sorting
+ behavior for that attribute will be identical to the
+ "trace" mode. The unspecified categories will follow
+ the categories in `categoryarray`. Set `categoryorder`
+ to *total ascending* or *total descending* if order
+ should be determined by the numerical order of the
+ values. Similarly, the order can be determined by the
+ min, max, sum, mean, geometric mean or median of all
+ the values.
+ color
+ Sets default for all colors associated with this axis
+ all at once: line, font, tick, and grid colors. Grid
+ color is lightened by blending this with the plot
+ background Individual pieces can override this.
+ constrain
+ If this axis needs to be compressed (either due to its
+ own `scaleanchor` and `scaleratio` or those of the
+ other axis), determines how that happens: by increasing
+ the "range", or by decreasing the "domain". Default is
+ "domain" for axes containing image traces, "range"
+ otherwise.
+ constraintoward
+ If this axis needs to be compressed (either due to its
+ own `scaleanchor` and `scaleratio` or those of the
+ other axis), determines which direction we push the
+ originally specified plot area. Options are "left",
+ "center" (default), and "right" for x axes, and "top",
+ "middle" (default), and "bottom" for y axes.
+ dividercolor
+ Sets the color of the dividers Only has an effect on
+ "multicategory" axes.
+ dividerwidth
+ Sets the width (in px) of the dividers Only has an
+ effect on "multicategory" axes.
+ domain
+ Sets the domain of this axis (in plot fraction).
+ dtick
+ Sets the step in-between ticks on this axis. Use with
+ `tick0`. Must be a positive number, or special strings
+ available to "log" and "date" axes. If the axis `type`
+ is "log", then ticks are set every 10^(n*dtick) where n
+ is the tick number. For example, to set a tick mark at
+ 1, 10, 100, 1000, ... set dtick to 1. To set tick marks
+ at 1, 100, 10000, ... set dtick to 2. To set tick marks
+ at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special
+ values; "L<f>", where `f` is a positive number, gives
+ ticks linearly spaced in value (but not position). For
+ example `tick0` = 0.1, `dtick` = "L0.5" will put ticks
+ at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus
+ small digits between, use "D1" (all digits) or "D2"
+ (only 2 and 5). `tick0` is ignored for "D1" and "D2".
+ If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval
+ between ticks to one day, set `dtick` to 86400000.0.
+ "date" also has special values "M<n>" gives ticks
+ spaced by a number of months. `n` must be a positive
+ integer. To set ticks on the 15th of every third month,
+ set `tick0` to "2000-01-15" and `dtick` to "M3". To set
+ ticks every 4 years, set `dtick` to "M48"
+ exponentformat
+ Determines a formatting rule for the tick exponents.
+ For example, consider the number 1,000,000,000. If
+ "none", it appears as 1,000,000,000. If "e", 1e+9. If
+ "E", 1E+9. If "power", 1x10^9 (with 9 in a super
+ script). If "SI", 1G. If "B", 1B.
+ fixedrange
+ Determines whether or not this axis is zoom-able. If
+ true, then zoom is disabled.
+ gridcolor
+ Sets the color of the grid lines.
+ griddash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ gridwidth
+ Sets the width (in px) of the grid lines.
+ hoverformat
+ Sets the hover text formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ insiderange
+ Could be used to set the desired inside range of this
+ axis (excluding the labels) when `ticklabelposition` of
+ the anchored axis has "inside". Not implemented for
+ axes with `type` "log". This would be ignored when
+ `range` is provided.
+ labelalias
+ Replacement text for specific tick or hover labels. For
+ example using {US: 'USA', CA: 'Canada'} changes US to
+ USA and CA to Canada. The labels we would have shown
+ must match the keys exactly, after adding any
+ tickprefix or ticksuffix. For negative numbers the
+ minus sign symbol used (U+2212) is wider than the
+ regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis
+ type, and both keys (if needed) and values (if desired)
+ can include html-like tags or MathJax.
+ layer
+ Sets the layer on which this axis is displayed. If
+ *above traces*, this axis is displayed above all the
+ subplot's traces If *below traces*, this axis is
+ displayed below all the subplot's traces, but above the
+ grid lines. Useful when used together with scatter-like
+ traces with `cliponaxis` set to False to show markers
+ and/or text nodes above this axis.
+ linecolor
+ Sets the axis line color.
+ linewidth
+ Sets the width (in px) of the axis line.
+ matches
+ If set to another axis id (e.g. `x2`, `y`), the range
+ of this axis will match the range of the corresponding
+ axis in data-coordinates space. Moreover, matching axes
+ share auto-range values, category lists and histogram
+ auto-bins. Note that setting axes simultaneously in
+ both a `scaleanchor` and a `matches` constraint is
+ currently forbidden. Moreover, note that matching axes
+ must have the same `type`.
+ maxallowed
+ Determines the maximum range of this axis.
+ minallowed
+ Determines the minimum range of this axis.
+ minexponent
+ Hide SI prefix for 10^n if |n| is below this number.
+ This only has an effect when `tickformat` is "SI" or
+ "B".
+ minor
+ :class:`plotly.graph_objects.layout.xaxis.Minor`
+ instance or dict with compatible properties
+ mirror
+ Determines if the axis lines or/and ticks are mirrored
+ to the opposite side of the plotting area. If True, the
+ axis lines are mirrored. If "ticks", the axis lines and
+ ticks are mirrored. If False, mirroring is disable. If
+ "all", axis lines are mirrored on all shared-axes
+ subplots. If "allticks", axis lines and ticks are
+ mirrored on all shared-axes subplots.
+ nticks
+ Specifies the maximum number of ticks for the
+ particular axis. The actual number of ticks will be
+ chosen automatically to be less than or equal to
+ `nticks`. Has an effect only if `tickmode` is set to
+ "auto".
+ overlaying
+ If set a same-letter axis id, this axis is overlaid on
+ top of the corresponding same-letter axis, with traces
+ and axes visible for both axes. If False, this axis
+ does not overlay any same-letter axes. In this case,
+ for axes with overlapping domains only the highest-
+ numbered axis will be visible.
+ position
+ Sets the position of this axis in the plotting space
+ (in normalized coordinates). Only has an effect if
+ `anchor` is set to "free".
+ range
+ Sets the range of this axis. If the axis `type` is
+ "log", then you must take the log of your desired range
+ (e.g. to set the range from 1 to 100, set the range
+ from 0 to 2). If the axis `type` is "date", it should
+ be date strings, like date data, though Date objects
+ and unix milliseconds will be accepted and converted to
+ strings. If the axis `type` is "category", it should be
+ numbers, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears. Leaving either or both elements `null` impacts
+ the default `autorange`.
+ rangebreaks
+ A tuple of
+ :class:`plotly.graph_objects.layout.xaxis.Rangebreak`
+ instances or dicts with compatible properties
+ rangebreakdefaults
+ When used in a template (as
+ layout.template.layout.xaxis.rangebreakdefaults), sets
+ the default property values to use for elements of
+ layout.xaxis.rangebreaks
+ rangemode
+ If "normal", the range is computed in relation to the
+ extrema of the input data. If "tozero", the range
+ extends to 0, regardless of the input data If
+ "nonnegative", the range is non-negative, regardless of
+ the input data. Applies only to linear axes.
+ rangeselector
+ :class:`plotly.graph_objects.layout.xaxis.Rangeselector
+ ` instance or dict with compatible properties
+ rangeslider
+ :class:`plotly.graph_objects.layout.xaxis.Rangeslider`
+ instance or dict with compatible properties
+ scaleanchor
+ If set to another axis id (e.g. `x2`, `y`), the range
+ of this axis changes together with the range of the
+ corresponding axis such that the scale of pixels per
+ unit is in a constant ratio. Both axes are still
+ zoomable, but when you zoom one, the other will zoom
+ the same amount, keeping a fixed midpoint. `constrain`
+ and `constraintoward` determine how we enforce the
+ constraint. You can chain these, ie `yaxis:
+ {scaleanchor: *x*}, xaxis2: {scaleanchor: *y*}` but you
+ can only link axes of the same `type`. The linked axis
+ can have the opposite letter (to constrain the aspect
+ ratio) or the same letter (to match scales across
+ subplots). Loops (`yaxis: {scaleanchor: *x*}, xaxis:
+ {scaleanchor: *y*}` or longer) are redundant and the
+ last constraint encountered will be ignored to avoid
+ possible inconsistent constraints via `scaleratio`.
+ Note that setting axes simultaneously in both a
+ `scaleanchor` and a `matches` constraint is currently
+ forbidden. Setting `false` allows to remove a default
+ constraint (occasionally, you may need to prevent a
+ default `scaleanchor` constraint from being applied,
+ eg. when having an image trace `yaxis: {scaleanchor:
+ "x"}` is set automatically in order for pixels to be
+ rendered as squares, setting `yaxis: {scaleanchor:
+ false}` allows to remove the constraint).
+ scaleratio
+ If this axis is linked to another by `scaleanchor`,
+ this determines the pixel to unit scale ratio. For
+ example, if this value is 10, then every unit on this
+ axis spans 10 times the number of pixels as a unit on
+ the linked axis. Use this for example to create an
+ elevation profile where the vertical scale is
+ exaggerated a fixed amount with respect to the
+ horizontal.
+ separatethousands
+ If "true", even 4-digit integers are separated
+ showdividers
+ Determines whether or not a dividers are drawn between
+ the category levels of this axis. Only has an effect on
+ "multicategory" axes.
+ showexponent
+ If "all", all exponents are shown besides their
+ significands. If "first", only the exponent of the
+ first tick is shown. If "last", only the exponent of
+ the last tick is shown. If "none", no exponents appear.
+ showgrid
+ Determines whether or not grid lines are drawn. If
+ True, the grid lines are drawn at every tick mark.
+ showline
+ Determines whether or not a line bounding this axis is
+ drawn.
+ showspikes
+ Determines whether or not spikes (aka droplines) are
+ drawn for this axis. Note: This only takes affect when
+ hovermode = closest
+ showticklabels
+ Determines whether or not the tick labels are drawn.
+ showtickprefix
+ If "all", all tick labels are displayed with a prefix.
+ If "first", only the first tick is displayed with a
+ prefix. If "last", only the last tick is displayed with
+ a suffix. If "none", tick prefixes are hidden.
+ showticksuffix
+ Same as `showtickprefix` but for tick suffixes.
+ side
+ Determines whether a x (y) axis is positioned at the
+ "bottom" ("left") or "top" ("right") of the plotting
+ area.
+ spikecolor
+ Sets the spike color. If undefined, will use the series
+ color
+ spikedash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ spikemode
+ Determines the drawing mode for the spike line If
+ "toaxis", the line is drawn from the data point to the
+ axis the series is plotted on. If "across", the line
+ is drawn across the entire plot area, and supercedes
+ "toaxis". If "marker", then a marker dot is drawn on
+ the axis the series is plotted on
+ spikesnap
+ Determines whether spikelines are stuck to the cursor
+ or to the closest datapoints.
+ spikethickness
+ Sets the width (in px) of the zero line.
+ tick0
+ Sets the placement of the first tick on this axis. Use
+ with `dtick`. If the axis `type` is "log", then you
+ must take the log of your starting tick (e.g. to set
+ the starting tick to 100, set the `tick0` to 2) except
+ when `dtick`=*L<f>* (see `dtick` for more info). If the
+ axis `type` is "date", it should be a date string, like
+ date data. If the axis `type` is "category", it should
+ be a number, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears.
+ tickangle
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the
+ tick labels vertically.
+ tickcolor
+ Sets the tick color.
+ tickfont
+ Sets the tick font.
+ tickformat
+ Sets the tick label formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ tickformatstops
+ A tuple of :class:`plotly.graph_objects.layout.xaxis.Ti
+ ckformatstop` instances or dicts with compatible
+ properties
+ tickformatstopdefaults
+ When used in a template (as
+ layout.template.layout.xaxis.tickformatstopdefaults),
+ sets the default property values to use for elements of
+ layout.xaxis.tickformatstops
+ ticklabelindex
+ Only for axes with `type` "date" or "linear". Instead
+ of drawing the major tick label, draw the label for the
+ minor tick that is n positions away from the major
+ tick. E.g. to always draw the label for the minor tick
+ before each major tick, choose `ticklabelindex` -1.
+ This is useful for date axes with `ticklabelmode`
+ "period" if you want to label the period that ends with
+ each major tick instead of the period that begins
+ there.
+ ticklabelindexsrc
+ Sets the source reference on Chart Studio Cloud for
+ `ticklabelindex`.
+ ticklabelmode
+ Determines where tick labels are drawn with respect to
+ their corresponding ticks and grid lines. Only has an
+ effect for axes of `type` "date" When set to "period",
+ tick labels are drawn in the middle of the period
+ between ticks.
+ ticklabeloverflow
+ Determines how we handle tick labels that would
+ overflow either the graph div or the domain of the
+ axis. The default value for inside tick labels is *hide
+ past domain*. Otherwise on "category" and
+ "multicategory" axes the default is "allow". In other
+ cases the default is *hide past div*.
+ ticklabelposition
+ Determines where tick labels are drawn with respect to
+ the axis Please note that top or bottom has no effect
+ on x axes or when `ticklabelmode` is set to "period".
+ Similarly left or right has no effect on y axes or when
+ `ticklabelmode` is set to "period". Has no effect on
+ "multicategory" axes or when `tickson` is set to
+ "boundaries". When used on axes linked by `matches` or
+ `scaleanchor`, no extra padding for inside labels would
+ be added by autorange, so that the scales could match.
+ ticklabelshift
+ Shifts the tick labels by the specified number of
+ pixels in parallel to the axis. Positive values move
+ the labels in the positive direction of the axis.
+ ticklabelstandoff
+ Sets the standoff distance (in px) between the axis
+ tick labels and their default position. A positive
+ `ticklabelstandoff` moves the labels farther away from
+ the plot area if `ticklabelposition` is "outside", and
+ deeper into the plot area if `ticklabelposition` is
+ "inside". A negative `ticklabelstandoff` works in the
+ opposite direction, moving outside ticks towards the
+ plot area and inside ticks towards the outside. If the
+ negative value is large enough, inside ticks can even
+ end up outside and vice versa.
+ ticklabelstep
+ Sets the spacing between tick labels as compared to the
+ spacing between ticks. A value of 1 (default) means
+ each tick gets a label. A value of 2 means shows every
+ 2nd label. A larger value n means only every nth tick
+ is labeled. `tick0` determines which labels are shown.
+ Not implemented for axes with `type` "log" or
+ "multicategory", or when `tickmode` is "array".
+ ticklen
+ Sets the tick length (in px).
+ tickmode
+ Sets the tick mode for this axis. If "auto", the number
+ of ticks is set via `nticks`. If "linear", the
+ placement of the ticks is determined by a starting
+ position `tick0` and a tick step `dtick` ("linear" is
+ the default value if `tick0` and `dtick` are provided).
+ If "array", the placement of the ticks is set via
+ `tickvals` and the tick text is `ticktext`. ("array" is
+ the default value if `tickvals` is provided). If
+ "sync", the number of ticks will sync with the
+ overlayed axis set by `overlaying` property.
+ tickprefix
+ Sets a tick label prefix.
+ ticks
+ Determines whether ticks are drawn or not. If "", this
+ axis' ticks are not drawn. If "outside" ("inside"),
+ this axis' are drawn outside (inside) the axis lines.
+ tickson
+ Determines where ticks and grid lines are drawn with
+ respect to their corresponding tick labels. Only has an
+ effect for axes of `type` "category" or
+ "multicategory". When set to "boundaries", ticks and
+ grid lines are drawn half a category to the left/bottom
+ of labels.
+ ticksuffix
+ Sets a tick label suffix.
+ ticktext
+ Sets the text displayed at the ticks position via
+ `tickvals`. Only has an effect if `tickmode` is set to
+ "array". Used with `tickvals`.
+ ticktextsrc
+ Sets the source reference on Chart Studio Cloud for
+ `ticktext`.
+ tickvals
+ Sets the values at which ticks on this axis appear.
+ Only has an effect if `tickmode` is set to "array".
+ Used with `ticktext`.
+ tickvalssrc
+ Sets the source reference on Chart Studio Cloud for
+ `tickvals`.
+ tickwidth
+ Sets the tick width (in px).
+ title
+ :class:`plotly.graph_objects.layout.xaxis.Title`
+ instance or dict with compatible properties
+ type
+ Sets the axis type. By default, plotly attempts to
+ determined the axis type by looking into the data of
+ the traces that referenced the axis in question.
+ uirevision
+ Controls persistence of user-driven changes in axis
+ `range`, `autorange`, and `title` if in `editable:
+ true` configuration. Defaults to `layout.uirevision`.
+ visible
+ A single toggle to hide the axis while preserving
+ interaction like dragging. Default is true when a
+ cheater plot is present on the axis, otherwise false
+ zeroline
+ Determines whether or not a line is drawn at along the
+ 0 value of this axis. If True, the zero line is drawn
+ on top of the grid lines.
+ zerolinecolor
+ Sets the line color of the zero line.
+ zerolinewidth
+ Sets the width (in px) of the zero line.
+
+ Returns
+ -------
+ XAxis
+ """
+ super().__init__("xaxis")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.XAxis
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.XAxis`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("anchor", arg, anchor)
+ self._set_property("automargin", arg, automargin)
+ self._set_property("autorange", arg, autorange)
+ self._set_property("autorangeoptions", arg, autorangeoptions)
+ self._set_property("autotickangles", arg, autotickangles)
+ self._set_property("autotypenumbers", arg, autotypenumbers)
+ self._set_property("calendar", arg, calendar)
+ self._set_property("categoryarray", arg, categoryarray)
+ self._set_property("categoryarraysrc", arg, categoryarraysrc)
+ self._set_property("categoryorder", arg, categoryorder)
+ self._set_property("color", arg, color)
+ self._set_property("constrain", arg, constrain)
+ self._set_property("constraintoward", arg, constraintoward)
+ self._set_property("dividercolor", arg, dividercolor)
+ self._set_property("dividerwidth", arg, dividerwidth)
+ self._set_property("domain", arg, domain)
+ self._set_property("dtick", arg, dtick)
+ self._set_property("exponentformat", arg, exponentformat)
+ self._set_property("fixedrange", arg, fixedrange)
+ self._set_property("gridcolor", arg, gridcolor)
+ self._set_property("griddash", arg, griddash)
+ self._set_property("gridwidth", arg, gridwidth)
+ self._set_property("hoverformat", arg, hoverformat)
+ self._set_property("insiderange", arg, insiderange)
+ self._set_property("labelalias", arg, labelalias)
+ self._set_property("layer", arg, layer)
+ self._set_property("linecolor", arg, linecolor)
+ self._set_property("linewidth", arg, linewidth)
+ self._set_property("matches", arg, matches)
+ self._set_property("maxallowed", arg, maxallowed)
+ self._set_property("minallowed", arg, minallowed)
+ self._set_property("minexponent", arg, minexponent)
+ self._set_property("minor", arg, minor)
+ self._set_property("mirror", arg, mirror)
+ self._set_property("nticks", arg, nticks)
+ self._set_property("overlaying", arg, overlaying)
+ self._set_property("position", arg, position)
+ self._set_property("range", arg, range)
+ self._set_property("rangebreaks", arg, rangebreaks)
+ self._set_property("rangebreakdefaults", arg, rangebreakdefaults)
+ self._set_property("rangemode", arg, rangemode)
+ self._set_property("rangeselector", arg, rangeselector)
+ self._set_property("rangeslider", arg, rangeslider)
+ self._set_property("scaleanchor", arg, scaleanchor)
+ self._set_property("scaleratio", arg, scaleratio)
+ self._set_property("separatethousands", arg, separatethousands)
+ self._set_property("showdividers", arg, showdividers)
+ self._set_property("showexponent", arg, showexponent)
+ self._set_property("showgrid", arg, showgrid)
+ self._set_property("showline", arg, showline)
+ self._set_property("showspikes", arg, showspikes)
+ self._set_property("showticklabels", arg, showticklabels)
+ self._set_property("showtickprefix", arg, showtickprefix)
+ self._set_property("showticksuffix", arg, showticksuffix)
+ self._set_property("side", arg, side)
+ self._set_property("spikecolor", arg, spikecolor)
+ self._set_property("spikedash", arg, spikedash)
+ self._set_property("spikemode", arg, spikemode)
+ self._set_property("spikesnap", arg, spikesnap)
+ self._set_property("spikethickness", arg, spikethickness)
+ self._set_property("tick0", arg, tick0)
+ self._set_property("tickangle", arg, tickangle)
+ self._set_property("tickcolor", arg, tickcolor)
+ self._set_property("tickfont", arg, tickfont)
+ self._set_property("tickformat", arg, tickformat)
+ self._set_property("tickformatstops", arg, tickformatstops)
+ self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
+ self._set_property("ticklabelindex", arg, ticklabelindex)
+ self._set_property("ticklabelindexsrc", arg, ticklabelindexsrc)
+ self._set_property("ticklabelmode", arg, ticklabelmode)
+ self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
+ self._set_property("ticklabelposition", arg, ticklabelposition)
+ self._set_property("ticklabelshift", arg, ticklabelshift)
+ self._set_property("ticklabelstandoff", arg, ticklabelstandoff)
+ self._set_property("ticklabelstep", arg, ticklabelstep)
+ self._set_property("ticklen", arg, ticklen)
+ self._set_property("tickmode", arg, tickmode)
+ self._set_property("tickprefix", arg, tickprefix)
+ self._set_property("ticks", arg, ticks)
+ self._set_property("tickson", arg, tickson)
+ self._set_property("ticksuffix", arg, ticksuffix)
+ self._set_property("ticktext", arg, ticktext)
+ self._set_property("ticktextsrc", arg, ticktextsrc)
+ self._set_property("tickvals", arg, tickvals)
+ self._set_property("tickvalssrc", arg, tickvalssrc)
+ self._set_property("tickwidth", arg, tickwidth)
+ self._set_property("title", arg, title)
+ self._set_property("type", arg, type)
+ self._set_property("uirevision", arg, uirevision)
+ self._set_property("visible", arg, visible)
+ self._set_property("zeroline", arg, zeroline)
+ self._set_property("zerolinecolor", arg, zerolinecolor)
+ self._set_property("zerolinewidth", arg, zerolinewidth)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_yaxis.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_yaxis.py
new file mode 100644
index 0000000..95cf85f
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/_yaxis.py
@@ -0,0 +1,3443 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class YAxis(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout"
+ _path_str = "layout.yaxis"
+ _valid_props = {
+ "anchor",
+ "automargin",
+ "autorange",
+ "autorangeoptions",
+ "autoshift",
+ "autotickangles",
+ "autotypenumbers",
+ "calendar",
+ "categoryarray",
+ "categoryarraysrc",
+ "categoryorder",
+ "color",
+ "constrain",
+ "constraintoward",
+ "dividercolor",
+ "dividerwidth",
+ "domain",
+ "dtick",
+ "exponentformat",
+ "fixedrange",
+ "gridcolor",
+ "griddash",
+ "gridwidth",
+ "hoverformat",
+ "insiderange",
+ "labelalias",
+ "layer",
+ "linecolor",
+ "linewidth",
+ "matches",
+ "maxallowed",
+ "minallowed",
+ "minexponent",
+ "minor",
+ "mirror",
+ "nticks",
+ "overlaying",
+ "position",
+ "range",
+ "rangebreakdefaults",
+ "rangebreaks",
+ "rangemode",
+ "scaleanchor",
+ "scaleratio",
+ "separatethousands",
+ "shift",
+ "showdividers",
+ "showexponent",
+ "showgrid",
+ "showline",
+ "showspikes",
+ "showticklabels",
+ "showtickprefix",
+ "showticksuffix",
+ "side",
+ "spikecolor",
+ "spikedash",
+ "spikemode",
+ "spikesnap",
+ "spikethickness",
+ "tick0",
+ "tickangle",
+ "tickcolor",
+ "tickfont",
+ "tickformat",
+ "tickformatstopdefaults",
+ "tickformatstops",
+ "ticklabelindex",
+ "ticklabelindexsrc",
+ "ticklabelmode",
+ "ticklabeloverflow",
+ "ticklabelposition",
+ "ticklabelshift",
+ "ticklabelstandoff",
+ "ticklabelstep",
+ "ticklen",
+ "tickmode",
+ "tickprefix",
+ "ticks",
+ "tickson",
+ "ticksuffix",
+ "ticktext",
+ "ticktextsrc",
+ "tickvals",
+ "tickvalssrc",
+ "tickwidth",
+ "title",
+ "type",
+ "uirevision",
+ "visible",
+ "zeroline",
+ "zerolinecolor",
+ "zerolinewidth",
+ }
+
+ @property
+ def anchor(self):
+ """
+ If set to an opposite-letter axis id (e.g. `x2`, `y`), this
+ axis is bound to the corresponding opposite-letter axis. If set
+ to "free", this axis' position is determined by `position`.
+
+ The 'anchor' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['free']
+ - A string that matches one of the following regular expressions:
+ ['^x([2-9]|[1-9][0-9]+)?( domain)?$',
+ '^y([2-9]|[1-9][0-9]+)?( domain)?$']
+
+ Returns
+ -------
+ Any
+ """
+ return self["anchor"]
+
+ @anchor.setter
+ def anchor(self, val):
+ self["anchor"] = val
+
+ @property
+ def automargin(self):
+ """
+ Determines whether long tick labels automatically grow the
+ figure margins.
+
+ The 'automargin' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['height', 'width', 'left', 'right', 'top', 'bottom'] joined with '+' characters
+ (e.g. 'height+width')
+ OR exactly one of [True, False] (e.g. 'False')
+
+ Returns
+ -------
+ Any
+ """
+ return self["automargin"]
+
+ @automargin.setter
+ def automargin(self, val):
+ self["automargin"] = val
+
+ @property
+ def autorange(self):
+ """
+ Determines whether or not the range of this axis is computed in
+ relation to the input data. See `rangemode` for more info. If
+ `range` is provided and it has a value for both the lower and
+ upper bound, `autorange` is set to False. Using "min" applies
+ autorange only to set the minimum. Using "max" applies
+ autorange only to set the maximum. Using *min reversed* applies
+ autorange only to set the minimum on a reversed axis. Using
+ *max reversed* applies autorange only to set the maximum on a
+ reversed axis. Using "reversed" applies autorange on both ends
+ and reverses the axis direction.
+
+ The 'autorange' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ [True, False, 'reversed', 'min reversed', 'max reversed',
+ 'min', 'max']
+
+ Returns
+ -------
+ Any
+ """
+ return self["autorange"]
+
+ @autorange.setter
+ def autorange(self, val):
+ self["autorange"] = val
+
+ @property
+ def autorangeoptions(self):
+ """
+ The 'autorangeoptions' property is an instance of Autorangeoptions
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.yaxis.Autorangeoptions`
+ - A dict of string/value properties that will be passed
+ to the Autorangeoptions constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.yaxis.Autorangeoptions
+ """
+ return self["autorangeoptions"]
+
+ @autorangeoptions.setter
+ def autorangeoptions(self, val):
+ self["autorangeoptions"] = val
+
+ @property
+ def autoshift(self):
+ """
+ Automatically reposition the axis to avoid overlap with other
+ axes with the same `overlaying` value. This repositioning will
+ account for any `shift` amount applied to other axes on the
+ same side with `autoshift` is set to true. Only has an effect
+ if `anchor` is set to "free".
+
+ The 'autoshift' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["autoshift"]
+
+ @autoshift.setter
+ def autoshift(self, val):
+ self["autoshift"] = val
+
+ @property
+ def autotickangles(self):
+ """
+ When `tickangle` is set to "auto", it will be set to the first
+ angle in this array that is large enough to prevent label
+ overlap.
+
+ The 'autotickangles' property is an info array that may be specified as:
+ * a list of elements where:
+ The 'autotickangles[i]' property is a angle (in degrees) that may be
+ specified as a number between -180 and 180.
+ Numeric values outside this range are converted to the equivalent value
+ (e.g. 270 is converted to -90).
+
+ Returns
+ -------
+ list
+ """
+ return self["autotickangles"]
+
+ @autotickangles.setter
+ def autotickangles(self, val):
+ self["autotickangles"] = val
+
+ @property
+ def autotypenumbers(self):
+ """
+ Using "strict" a numeric string in trace data is not converted
+ to a number. Using *convert types* a numeric string in trace
+ data may be treated as a number during automatic axis `type`
+ detection. Defaults to layout.autotypenumbers.
+
+ The 'autotypenumbers' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['convert types', 'strict']
+
+ Returns
+ -------
+ Any
+ """
+ return self["autotypenumbers"]
+
+ @autotypenumbers.setter
+ def autotypenumbers(self, val):
+ self["autotypenumbers"] = val
+
+ @property
+ def calendar(self):
+ """
+ Sets the calendar system to use for `range` and `tick0` if this
+ is a date axis. This does not set the calendar for interpreting
+ data on this axis, that's specified in the trace or via the
+ global `layout.calendar`
+
+ The 'calendar' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['chinese', 'coptic', 'discworld', 'ethiopian',
+ 'gregorian', 'hebrew', 'islamic', 'jalali', 'julian',
+ 'mayan', 'nanakshahi', 'nepali', 'persian', 'taiwan',
+ 'thai', 'ummalqura']
+
+ Returns
+ -------
+ Any
+ """
+ return self["calendar"]
+
+ @calendar.setter
+ def calendar(self, val):
+ self["calendar"] = val
+
+ @property
+ def categoryarray(self):
+ """
+ Sets the order in which categories on this axis appear. Only
+ has an effect if `categoryorder` is set to "array". Used with
+ `categoryorder`.
+
+ The 'categoryarray' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["categoryarray"]
+
+ @categoryarray.setter
+ def categoryarray(self, val):
+ self["categoryarray"] = val
+
+ @property
+ def categoryarraysrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for
+ `categoryarray`.
+
+ The 'categoryarraysrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["categoryarraysrc"]
+
+ @categoryarraysrc.setter
+ def categoryarraysrc(self, val):
+ self["categoryarraysrc"] = val
+
+ @property
+ def categoryorder(self):
+ """
+ Specifies the ordering logic for the case of categorical
+ variables. By default, plotly uses "trace", which specifies the
+ order that is present in the data supplied. Set `categoryorder`
+ to *category ascending* or *category descending* if order
+ should be determined by the alphanumerical order of the
+ category names. Set `categoryorder` to "array" to derive the
+ ordering from the attribute `categoryarray`. If a category is
+ not found in the `categoryarray` array, the sorting behavior
+ for that attribute will be identical to the "trace" mode. The
+ unspecified categories will follow the categories in
+ `categoryarray`. Set `categoryorder` to *total ascending* or
+ *total descending* if order should be determined by the
+ numerical order of the values. Similarly, the order can be
+ determined by the min, max, sum, mean, geometric mean or median
+ of all the values.
+
+ The 'categoryorder' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['trace', 'category ascending', 'category descending',
+ 'array', 'total ascending', 'total descending', 'min
+ ascending', 'min descending', 'max ascending', 'max
+ descending', 'sum ascending', 'sum descending', 'mean
+ ascending', 'mean descending', 'geometric mean ascending',
+ 'geometric mean descending', 'median ascending', 'median
+ descending']
+
+ Returns
+ -------
+ Any
+ """
+ return self["categoryorder"]
+
+ @categoryorder.setter
+ def categoryorder(self, val):
+ self["categoryorder"] = val
+
+ @property
+ def color(self):
+ """
+ Sets default for all colors associated with this axis all at
+ once: line, font, tick, and grid colors. Grid color is
+ lightened by blending this with the plot background Individual
+ pieces can override this.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def constrain(self):
+ """
+ If this axis needs to be compressed (either due to its own
+ `scaleanchor` and `scaleratio` or those of the other axis),
+ determines how that happens: by increasing the "range", or by
+ decreasing the "domain". Default is "domain" for axes
+ containing image traces, "range" otherwise.
+
+ The 'constrain' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['range', 'domain']
+
+ Returns
+ -------
+ Any
+ """
+ return self["constrain"]
+
+ @constrain.setter
+ def constrain(self, val):
+ self["constrain"] = val
+
+ @property
+ def constraintoward(self):
+ """
+ If this axis needs to be compressed (either due to its own
+ `scaleanchor` and `scaleratio` or those of the other axis),
+ determines which direction we push the originally specified
+ plot area. Options are "left", "center" (default), and "right"
+ for x axes, and "top", "middle" (default), and "bottom" for y
+ axes.
+
+ The 'constraintoward' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['left', 'center', 'right', 'top', 'middle', 'bottom']
+
+ Returns
+ -------
+ Any
+ """
+ return self["constraintoward"]
+
+ @constraintoward.setter
+ def constraintoward(self, val):
+ self["constraintoward"] = val
+
+ @property
+ def dividercolor(self):
+ """
+ Sets the color of the dividers Only has an effect on
+ "multicategory" axes.
+
+ The 'dividercolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["dividercolor"]
+
+ @dividercolor.setter
+ def dividercolor(self, val):
+ self["dividercolor"] = val
+
+ @property
+ def dividerwidth(self):
+ """
+ Sets the width (in px) of the dividers Only has an effect on
+ "multicategory" axes.
+
+ The 'dividerwidth' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["dividerwidth"]
+
+ @dividerwidth.setter
+ def dividerwidth(self, val):
+ self["dividerwidth"] = val
+
+ @property
+ def domain(self):
+ """
+ Sets the domain of this axis (in plot fraction).
+
+ The 'domain' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'domain[0]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+ (1) The 'domain[1]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ list
+ """
+ return self["domain"]
+
+ @domain.setter
+ def domain(self, val):
+ self["domain"] = val
+
+ @property
+ def dtick(self):
+ """
+ Sets the step in-between ticks on this axis. Use with `tick0`.
+ Must be a positive number, or special strings available to
+ "log" and "date" axes. If the axis `type` is "log", then ticks
+ are set every 10^(n*dtick) where n is the tick number. For
+ example, to set a tick mark at 1, 10, 100, 1000, ... set dtick
+ to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2.
+ To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special values;
+ "L<f>", where `f` is a positive number, gives ticks linearly
+ spaced in value (but not position). For example `tick0` = 0.1,
+ `dtick` = "L0.5" will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To
+ show powers of 10 plus small digits between, use "D1" (all
+ digits) or "D2" (only 2 and 5). `tick0` is ignored for "D1" and
+ "D2". If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval between
+ ticks to one day, set `dtick` to 86400000.0. "date" also has
+ special values "M<n>" gives ticks spaced by a number of months.
+ `n` must be a positive integer. To set ticks on the 15th of
+ every third month, set `tick0` to "2000-01-15" and `dtick` to
+ "M3". To set ticks every 4 years, set `dtick` to "M48"
+
+ The 'dtick' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["dtick"]
+
+ @dtick.setter
+ def dtick(self, val):
+ self["dtick"] = val
+
+ @property
+ def exponentformat(self):
+ """
+ Determines a formatting rule for the tick exponents. For
+ example, consider the number 1,000,000,000. If "none", it
+ appears as 1,000,000,000. If "e", 1e+9. If "E", 1E+9. If
+ "power", 1x10^9 (with 9 in a super script). If "SI", 1G. If
+ "B", 1B.
+
+ The 'exponentformat' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['none', 'e', 'E', 'power', 'SI', 'B']
+
+ Returns
+ -------
+ Any
+ """
+ return self["exponentformat"]
+
+ @exponentformat.setter
+ def exponentformat(self, val):
+ self["exponentformat"] = val
+
+ @property
+ def fixedrange(self):
+ """
+ Determines whether or not this axis is zoom-able. If true, then
+ zoom is disabled.
+
+ The 'fixedrange' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["fixedrange"]
+
+ @fixedrange.setter
+ def fixedrange(self, val):
+ self["fixedrange"] = val
+
+ @property
+ def gridcolor(self):
+ """
+ Sets the color of the grid lines.
+
+ The 'gridcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["gridcolor"]
+
+ @gridcolor.setter
+ def gridcolor(self, val):
+ self["gridcolor"] = val
+
+ @property
+ def griddash(self):
+ """
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+
+ The 'griddash' property is an enumeration that may be specified as:
+ - One of the following dash styles:
+ ['solid', 'dot', 'dash', 'longdash', 'dashdot', 'longdashdot']
+ - A string containing a dash length list in pixels or percentages
+ (e.g. '5px 10px 2px 2px', '5, 10, 2, 2', '10% 20% 40%', etc.)
+
+ Returns
+ -------
+ str
+ """
+ return self["griddash"]
+
+ @griddash.setter
+ def griddash(self, val):
+ self["griddash"] = val
+
+ @property
+ def gridwidth(self):
+ """
+ Sets the width (in px) of the grid lines.
+
+ The 'gridwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["gridwidth"]
+
+ @gridwidth.setter
+ def gridwidth(self, val):
+ self["gridwidth"] = val
+
+ @property
+ def hoverformat(self):
+ """
+ Sets the hover text formatting rule using d3 formatting mini-
+ languages which are very similar to those in Python. For
+ numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format. And for
+ dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to d3's date
+ formatter: "%h" for half of the year as a decimal number as
+ well as "%{n}f" for fractional seconds with n digits. For
+ example, *2016-10-13 09:15:23.456* with tickformat
+ "%H~%M~%S.%2f" would display "09~15~23.46"
+
+ The 'hoverformat' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["hoverformat"]
+
+ @hoverformat.setter
+ def hoverformat(self, val):
+ self["hoverformat"] = val
+
+ @property
+ def insiderange(self):
+ """
+ Could be used to set the desired inside range of this axis
+ (excluding the labels) when `ticklabelposition` of the anchored
+ axis has "inside". Not implemented for axes with `type` "log".
+ This would be ignored when `range` is provided.
+
+ The 'insiderange' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'insiderange[0]' property accepts values of any type
+ (1) The 'insiderange[1]' property accepts values of any type
+
+ Returns
+ -------
+ list
+ """
+ return self["insiderange"]
+
+ @insiderange.setter
+ def insiderange(self, val):
+ self["insiderange"] = val
+
+ @property
+ def labelalias(self):
+ """
+ Replacement text for specific tick or hover labels. For example
+ using {US: 'USA', CA: 'Canada'} changes US to USA and CA to
+ Canada. The labels we would have shown must match the keys
+ exactly, after adding any tickprefix or ticksuffix. For
+ negative numbers the minus sign symbol used (U+2212) is wider
+ than the regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis type, and
+ both keys (if needed) and values (if desired) can include html-
+ like tags or MathJax.
+
+ The 'labelalias' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["labelalias"]
+
+ @labelalias.setter
+ def labelalias(self, val):
+ self["labelalias"] = val
+
+ @property
+ def layer(self):
+ """
+ Sets the layer on which this axis is displayed. If *above
+ traces*, this axis is displayed above all the subplot's traces
+ If *below traces*, this axis is displayed below all the
+ subplot's traces, but above the grid lines. Useful when used
+ together with scatter-like traces with `cliponaxis` set to
+ False to show markers and/or text nodes above this axis.
+
+ The 'layer' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['above traces', 'below traces']
+
+ Returns
+ -------
+ Any
+ """
+ return self["layer"]
+
+ @layer.setter
+ def layer(self, val):
+ self["layer"] = val
+
+ @property
+ def linecolor(self):
+ """
+ Sets the axis line color.
+
+ The 'linecolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["linecolor"]
+
+ @linecolor.setter
+ def linecolor(self, val):
+ self["linecolor"] = val
+
+ @property
+ def linewidth(self):
+ """
+ Sets the width (in px) of the axis line.
+
+ The 'linewidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["linewidth"]
+
+ @linewidth.setter
+ def linewidth(self, val):
+ self["linewidth"] = val
+
+ @property
+ def matches(self):
+ """
+ If set to another axis id (e.g. `x2`, `y`), the range of this
+ axis will match the range of the corresponding axis in data-
+ coordinates space. Moreover, matching axes share auto-range
+ values, category lists and histogram auto-bins. Note that
+ setting axes simultaneously in both a `scaleanchor` and a
+ `matches` constraint is currently forbidden. Moreover, note
+ that matching axes must have the same `type`.
+
+ The 'matches' property is an enumeration that may be specified as:
+ - A string that matches one of the following regular expressions:
+ ['^x([2-9]|[1-9][0-9]+)?( domain)?$',
+ '^y([2-9]|[1-9][0-9]+)?( domain)?$']
+
+ Returns
+ -------
+ Any
+ """
+ return self["matches"]
+
+ @matches.setter
+ def matches(self, val):
+ self["matches"] = val
+
+ @property
+ def maxallowed(self):
+ """
+ Determines the maximum range of this axis.
+
+ The 'maxallowed' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["maxallowed"]
+
+ @maxallowed.setter
+ def maxallowed(self, val):
+ self["maxallowed"] = val
+
+ @property
+ def minallowed(self):
+ """
+ Determines the minimum range of this axis.
+
+ The 'minallowed' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["minallowed"]
+
+ @minallowed.setter
+ def minallowed(self, val):
+ self["minallowed"] = val
+
+ @property
+ def minexponent(self):
+ """
+ Hide SI prefix for 10^n if |n| is below this number. This only
+ has an effect when `tickformat` is "SI" or "B".
+
+ The 'minexponent' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["minexponent"]
+
+ @minexponent.setter
+ def minexponent(self, val):
+ self["minexponent"] = val
+
+ @property
+ def minor(self):
+ """
+ The 'minor' property is an instance of Minor
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.yaxis.Minor`
+ - A dict of string/value properties that will be passed
+ to the Minor constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.yaxis.Minor
+ """
+ return self["minor"]
+
+ @minor.setter
+ def minor(self, val):
+ self["minor"] = val
+
+ @property
+ def mirror(self):
+ """
+ Determines if the axis lines or/and ticks are mirrored to the
+ opposite side of the plotting area. If True, the axis lines are
+ mirrored. If "ticks", the axis lines and ticks are mirrored. If
+ False, mirroring is disable. If "all", axis lines are mirrored
+ on all shared-axes subplots. If "allticks", axis lines and
+ ticks are mirrored on all shared-axes subplots.
+
+ The 'mirror' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ [True, 'ticks', False, 'all', 'allticks']
+
+ Returns
+ -------
+ Any
+ """
+ return self["mirror"]
+
+ @mirror.setter
+ def mirror(self, val):
+ self["mirror"] = val
+
+ @property
+ def nticks(self):
+ """
+ Specifies the maximum number of ticks for the particular axis.
+ The actual number of ticks will be chosen automatically to be
+ less than or equal to `nticks`. Has an effect only if
+ `tickmode` is set to "auto".
+
+ The 'nticks' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [0, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["nticks"]
+
+ @nticks.setter
+ def nticks(self, val):
+ self["nticks"] = val
+
+ @property
+ def overlaying(self):
+ """
+ If set a same-letter axis id, this axis is overlaid on top of
+ the corresponding same-letter axis, with traces and axes
+ visible for both axes. If False, this axis does not overlay any
+ same-letter axes. In this case, for axes with overlapping
+ domains only the highest-numbered axis will be visible.
+
+ The 'overlaying' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['free']
+ - A string that matches one of the following regular expressions:
+ ['^x([2-9]|[1-9][0-9]+)?( domain)?$',
+ '^y([2-9]|[1-9][0-9]+)?( domain)?$']
+
+ Returns
+ -------
+ Any
+ """
+ return self["overlaying"]
+
+ @overlaying.setter
+ def overlaying(self, val):
+ self["overlaying"] = val
+
+ @property
+ def position(self):
+ """
+ Sets the position of this axis in the plotting space (in
+ normalized coordinates). Only has an effect if `anchor` is set
+ to "free".
+
+ The 'position' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["position"]
+
+ @position.setter
+ def position(self, val):
+ self["position"] = val
+
+ @property
+ def range(self):
+ """
+ Sets the range of this axis. If the axis `type` is "log", then
+ you must take the log of your desired range (e.g. to set the
+ range from 1 to 100, set the range from 0 to 2). If the axis
+ `type` is "date", it should be date strings, like date data,
+ though Date objects and unix milliseconds will be accepted and
+ converted to strings. If the axis `type` is "category", it
+ should be numbers, using the scale where each category is
+ assigned a serial number from zero in the order it appears.
+ Leaving either or both elements `null` impacts the default
+ `autorange`.
+
+ The 'range' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'range[0]' property accepts values of any type
+ (1) The 'range[1]' property accepts values of any type
+
+ Returns
+ -------
+ list
+ """
+ return self["range"]
+
+ @range.setter
+ def range(self, val):
+ self["range"] = val
+
+ @property
+ def rangebreaks(self):
+ """
+ The 'rangebreaks' property is a tuple of instances of
+ Rangebreak that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.yaxis.Rangebreak
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Rangebreak constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.yaxis.Rangebreak]
+ """
+ return self["rangebreaks"]
+
+ @rangebreaks.setter
+ def rangebreaks(self, val):
+ self["rangebreaks"] = val
+
+ @property
+ def rangebreakdefaults(self):
+ """
+ When used in a template (as
+ layout.template.layout.yaxis.rangebreakdefaults), sets the
+ default property values to use for elements of
+ layout.yaxis.rangebreaks
+
+ The 'rangebreakdefaults' property is an instance of Rangebreak
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.yaxis.Rangebreak`
+ - A dict of string/value properties that will be passed
+ to the Rangebreak constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.yaxis.Rangebreak
+ """
+ return self["rangebreakdefaults"]
+
+ @rangebreakdefaults.setter
+ def rangebreakdefaults(self, val):
+ self["rangebreakdefaults"] = val
+
+ @property
+ def rangemode(self):
+ """
+ If "normal", the range is computed in relation to the extrema
+ of the input data. If "tozero", the range extends to 0,
+ regardless of the input data If "nonnegative", the range is
+ non-negative, regardless of the input data. Applies only to
+ linear axes.
+
+ The 'rangemode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'tozero', 'nonnegative']
+
+ Returns
+ -------
+ Any
+ """
+ return self["rangemode"]
+
+ @rangemode.setter
+ def rangemode(self, val):
+ self["rangemode"] = val
+
+ @property
+ def scaleanchor(self):
+ """
+ If set to another axis id (e.g. `x2`, `y`), the range of this
+ axis changes together with the range of the corresponding axis
+ such that the scale of pixels per unit is in a constant ratio.
+ Both axes are still zoomable, but when you zoom one, the other
+ will zoom the same amount, keeping a fixed midpoint.
+ `constrain` and `constraintoward` determine how we enforce the
+ constraint. You can chain these, ie `yaxis: {scaleanchor: *x*},
+ xaxis2: {scaleanchor: *y*}` but you can only link axes of the
+ same `type`. The linked axis can have the opposite letter (to
+ constrain the aspect ratio) or the same letter (to match scales
+ across subplots). Loops (`yaxis: {scaleanchor: *x*}, xaxis:
+ {scaleanchor: *y*}` or longer) are redundant and the last
+ constraint encountered will be ignored to avoid possible
+ inconsistent constraints via `scaleratio`. Note that setting
+ axes simultaneously in both a `scaleanchor` and a `matches`
+ constraint is currently forbidden. Setting `false` allows to
+ remove a default constraint (occasionally, you may need to
+ prevent a default `scaleanchor` constraint from being applied,
+ eg. when having an image trace `yaxis: {scaleanchor: "x"}` is
+ set automatically in order for pixels to be rendered as
+ squares, setting `yaxis: {scaleanchor: false}` allows to remove
+ the constraint).
+
+ The 'scaleanchor' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ [False]
+ - A string that matches one of the following regular expressions:
+ ['^x([2-9]|[1-9][0-9]+)?( domain)?$',
+ '^y([2-9]|[1-9][0-9]+)?( domain)?$']
+
+ Returns
+ -------
+ Any
+ """
+ return self["scaleanchor"]
+
+ @scaleanchor.setter
+ def scaleanchor(self, val):
+ self["scaleanchor"] = val
+
+ @property
+ def scaleratio(self):
+ """
+ If this axis is linked to another by `scaleanchor`, this
+ determines the pixel to unit scale ratio. For example, if this
+ value is 10, then every unit on this axis spans 10 times the
+ number of pixels as a unit on the linked axis. Use this for
+ example to create an elevation profile where the vertical scale
+ is exaggerated a fixed amount with respect to the horizontal.
+
+ The 'scaleratio' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["scaleratio"]
+
+ @scaleratio.setter
+ def scaleratio(self, val):
+ self["scaleratio"] = val
+
+ @property
+ def separatethousands(self):
+ """
+ If "true", even 4-digit integers are separated
+
+ The 'separatethousands' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["separatethousands"]
+
+ @separatethousands.setter
+ def separatethousands(self, val):
+ self["separatethousands"] = val
+
+ @property
+ def shift(self):
+ """
+ Moves the axis a given number of pixels from where it would
+ have been otherwise. Accepts both positive and negative values,
+ which will shift the axis either right or left, respectively.
+ If `autoshift` is set to true, then this defaults to a padding
+ of -3 if `side` is set to "left". and defaults to +3 if `side`
+ is set to "right". Defaults to 0 if `autoshift` is set to
+ false. Only has an effect if `anchor` is set to "free".
+
+ The 'shift' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["shift"]
+
+ @shift.setter
+ def shift(self, val):
+ self["shift"] = val
+
+ @property
+ def showdividers(self):
+ """
+ Determines whether or not a dividers are drawn between the
+ category levels of this axis. Only has an effect on
+ "multicategory" axes.
+
+ The 'showdividers' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showdividers"]
+
+ @showdividers.setter
+ def showdividers(self, val):
+ self["showdividers"] = val
+
+ @property
+ def showexponent(self):
+ """
+ If "all", all exponents are shown besides their significands.
+ If "first", only the exponent of the first tick is shown. If
+ "last", only the exponent of the last tick is shown. If "none",
+ no exponents appear.
+
+ The 'showexponent' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showexponent"]
+
+ @showexponent.setter
+ def showexponent(self, val):
+ self["showexponent"] = val
+
+ @property
+ def showgrid(self):
+ """
+ Determines whether or not grid lines are drawn. If True, the
+ grid lines are drawn at every tick mark.
+
+ The 'showgrid' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showgrid"]
+
+ @showgrid.setter
+ def showgrid(self, val):
+ self["showgrid"] = val
+
+ @property
+ def showline(self):
+ """
+ Determines whether or not a line bounding this axis is drawn.
+
+ The 'showline' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showline"]
+
+ @showline.setter
+ def showline(self, val):
+ self["showline"] = val
+
+ @property
+ def showspikes(self):
+ """
+ Determines whether or not spikes (aka droplines) are drawn for
+ this axis. Note: This only takes affect when hovermode =
+ closest
+
+ The 'showspikes' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showspikes"]
+
+ @showspikes.setter
+ def showspikes(self, val):
+ self["showspikes"] = val
+
+ @property
+ def showticklabels(self):
+ """
+ Determines whether or not the tick labels are drawn.
+
+ The 'showticklabels' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showticklabels"]
+
+ @showticklabels.setter
+ def showticklabels(self, val):
+ self["showticklabels"] = val
+
+ @property
+ def showtickprefix(self):
+ """
+ If "all", all tick labels are displayed with a prefix. If
+ "first", only the first tick is displayed with a prefix. If
+ "last", only the last tick is displayed with a suffix. If
+ "none", tick prefixes are hidden.
+
+ The 'showtickprefix' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showtickprefix"]
+
+ @showtickprefix.setter
+ def showtickprefix(self, val):
+ self["showtickprefix"] = val
+
+ @property
+ def showticksuffix(self):
+ """
+ Same as `showtickprefix` but for tick suffixes.
+
+ The 'showticksuffix' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showticksuffix"]
+
+ @showticksuffix.setter
+ def showticksuffix(self, val):
+ self["showticksuffix"] = val
+
+ @property
+ def side(self):
+ """
+ Determines whether a x (y) axis is positioned at the "bottom"
+ ("left") or "top" ("right") of the plotting area.
+
+ The 'side' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['top', 'bottom', 'left', 'right']
+
+ Returns
+ -------
+ Any
+ """
+ return self["side"]
+
+ @side.setter
+ def side(self, val):
+ self["side"] = val
+
+ @property
+ def spikecolor(self):
+ """
+ Sets the spike color. If undefined, will use the series color
+
+ The 'spikecolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["spikecolor"]
+
+ @spikecolor.setter
+ def spikecolor(self, val):
+ self["spikecolor"] = val
+
+ @property
+ def spikedash(self):
+ """
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+
+ The 'spikedash' property is an enumeration that may be specified as:
+ - One of the following dash styles:
+ ['solid', 'dot', 'dash', 'longdash', 'dashdot', 'longdashdot']
+ - A string containing a dash length list in pixels or percentages
+ (e.g. '5px 10px 2px 2px', '5, 10, 2, 2', '10% 20% 40%', etc.)
+
+ Returns
+ -------
+ str
+ """
+ return self["spikedash"]
+
+ @spikedash.setter
+ def spikedash(self, val):
+ self["spikedash"] = val
+
+ @property
+ def spikemode(self):
+ """
+ Determines the drawing mode for the spike line If "toaxis", the
+ line is drawn from the data point to the axis the series is
+ plotted on. If "across", the line is drawn across the entire
+ plot area, and supercedes "toaxis". If "marker", then a marker
+ dot is drawn on the axis the series is plotted on
+
+ The 'spikemode' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['toaxis', 'across', 'marker'] joined with '+' characters
+ (e.g. 'toaxis+across')
+
+ Returns
+ -------
+ Any
+ """
+ return self["spikemode"]
+
+ @spikemode.setter
+ def spikemode(self, val):
+ self["spikemode"] = val
+
+ @property
+ def spikesnap(self):
+ """
+ Determines whether spikelines are stuck to the cursor or to the
+ closest datapoints.
+
+ The 'spikesnap' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['data', 'cursor', 'hovered data']
+
+ Returns
+ -------
+ Any
+ """
+ return self["spikesnap"]
+
+ @spikesnap.setter
+ def spikesnap(self, val):
+ self["spikesnap"] = val
+
+ @property
+ def spikethickness(self):
+ """
+ Sets the width (in px) of the zero line.
+
+ The 'spikethickness' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["spikethickness"]
+
+ @spikethickness.setter
+ def spikethickness(self, val):
+ self["spikethickness"] = val
+
+ @property
+ def tick0(self):
+ """
+ Sets the placement of the first tick on this axis. Use with
+ `dtick`. If the axis `type` is "log", then you must take the
+ log of your starting tick (e.g. to set the starting tick to
+ 100, set the `tick0` to 2) except when `dtick`=*L<f>* (see
+ `dtick` for more info). If the axis `type` is "date", it should
+ be a date string, like date data. If the axis `type` is
+ "category", it should be a number, using the scale where each
+ category is assigned a serial number from zero in the order it
+ appears.
+
+ The 'tick0' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["tick0"]
+
+ @tick0.setter
+ def tick0(self, val):
+ self["tick0"] = val
+
+ @property
+ def tickangle(self):
+ """
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the tick
+ labels vertically.
+
+ The 'tickangle' property is a angle (in degrees) that may be
+ specified as a number between -180 and 180.
+ Numeric values outside this range are converted to the equivalent value
+ (e.g. 270 is converted to -90).
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tickangle"]
+
+ @tickangle.setter
+ def tickangle(self, val):
+ self["tickangle"] = val
+
+ @property
+ def tickcolor(self):
+ """
+ Sets the tick color.
+
+ The 'tickcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["tickcolor"]
+
+ @tickcolor.setter
+ def tickcolor(self, val):
+ self["tickcolor"] = val
+
+ @property
+ def tickfont(self):
+ """
+ Sets the tick font.
+
+ The 'tickfont' property is an instance of Tickfont
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.yaxis.Tickfont`
+ - A dict of string/value properties that will be passed
+ to the Tickfont constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.yaxis.Tickfont
+ """
+ return self["tickfont"]
+
+ @tickfont.setter
+ def tickfont(self, val):
+ self["tickfont"] = val
+
+ @property
+ def tickformat(self):
+ """
+ Sets the tick label formatting rule using d3 formatting mini-
+ languages which are very similar to those in Python. For
+ numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format. And for
+ dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to d3's date
+ formatter: "%h" for half of the year as a decimal number as
+ well as "%{n}f" for fractional seconds with n digits. For
+ example, *2016-10-13 09:15:23.456* with tickformat
+ "%H~%M~%S.%2f" would display "09~15~23.46"
+
+ The 'tickformat' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["tickformat"]
+
+ @tickformat.setter
+ def tickformat(self, val):
+ self["tickformat"] = val
+
+ @property
+ def tickformatstops(self):
+ """
+ The 'tickformatstops' property is a tuple of instances of
+ Tickformatstop that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.yaxis.Tickformatstop
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Tickformatstop constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.yaxis.Tickformatstop]
+ """
+ return self["tickformatstops"]
+
+ @tickformatstops.setter
+ def tickformatstops(self, val):
+ self["tickformatstops"] = val
+
+ @property
+ def tickformatstopdefaults(self):
+ """
+ When used in a template (as
+ layout.template.layout.yaxis.tickformatstopdefaults), sets the
+ default property values to use for elements of
+ layout.yaxis.tickformatstops
+
+ The 'tickformatstopdefaults' property is an instance of Tickformatstop
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.yaxis.Tickformatstop`
+ - A dict of string/value properties that will be passed
+ to the Tickformatstop constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.yaxis.Tickformatstop
+ """
+ return self["tickformatstopdefaults"]
+
+ @tickformatstopdefaults.setter
+ def tickformatstopdefaults(self, val):
+ self["tickformatstopdefaults"] = val
+
+ @property
+ def ticklabelindex(self):
+ """
+ Only for axes with `type` "date" or "linear". Instead of
+ drawing the major tick label, draw the label for the minor tick
+ that is n positions away from the major tick. E.g. to always
+ draw the label for the minor tick before each major tick,
+ choose `ticklabelindex` -1. This is useful for date axes with
+ `ticklabelmode` "period" if you want to label the period that
+ ends with each major tick instead of the period that begins
+ there.
+
+ The 'ticklabelindex' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ - A tuple, list, or one-dimensional numpy array of the above
+
+ Returns
+ -------
+ int|numpy.ndarray
+ """
+ return self["ticklabelindex"]
+
+ @ticklabelindex.setter
+ def ticklabelindex(self, val):
+ self["ticklabelindex"] = val
+
+ @property
+ def ticklabelindexsrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for
+ `ticklabelindex`.
+
+ The 'ticklabelindexsrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["ticklabelindexsrc"]
+
+ @ticklabelindexsrc.setter
+ def ticklabelindexsrc(self, val):
+ self["ticklabelindexsrc"] = val
+
+ @property
+ def ticklabelmode(self):
+ """
+ Determines where tick labels are drawn with respect to their
+ corresponding ticks and grid lines. Only has an effect for axes
+ of `type` "date" When set to "period", tick labels are drawn in
+ the middle of the period between ticks.
+
+ The 'ticklabelmode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['instant', 'period']
+
+ Returns
+ -------
+ Any
+ """
+ return self["ticklabelmode"]
+
+ @ticklabelmode.setter
+ def ticklabelmode(self, val):
+ self["ticklabelmode"] = val
+
+ @property
+ def ticklabeloverflow(self):
+ """
+ Determines how we handle tick labels that would overflow either
+ the graph div or the domain of the axis. The default value for
+ inside tick labels is *hide past domain*. Otherwise on
+ "category" and "multicategory" axes the default is "allow". In
+ other cases the default is *hide past div*.
+
+ The 'ticklabeloverflow' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['allow', 'hide past div', 'hide past domain']
+
+ Returns
+ -------
+ Any
+ """
+ return self["ticklabeloverflow"]
+
+ @ticklabeloverflow.setter
+ def ticklabeloverflow(self, val):
+ self["ticklabeloverflow"] = val
+
+ @property
+ def ticklabelposition(self):
+ """
+ Determines where tick labels are drawn with respect to the axis
+ Please note that top or bottom has no effect on x axes or when
+ `ticklabelmode` is set to "period". Similarly left or right has
+ no effect on y axes or when `ticklabelmode` is set to "period".
+ Has no effect on "multicategory" axes or when `tickson` is set
+ to "boundaries". When used on axes linked by `matches` or
+ `scaleanchor`, no extra padding for inside labels would be
+ added by autorange, so that the scales could match.
+
+ The 'ticklabelposition' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['outside', 'inside', 'outside top', 'inside top',
+ 'outside left', 'inside left', 'outside right', 'inside
+ right', 'outside bottom', 'inside bottom']
+
+ Returns
+ -------
+ Any
+ """
+ return self["ticklabelposition"]
+
+ @ticklabelposition.setter
+ def ticklabelposition(self, val):
+ self["ticklabelposition"] = val
+
+ @property
+ def ticklabelshift(self):
+ """
+ Shifts the tick labels by the specified number of pixels in
+ parallel to the axis. Positive values move the labels in the
+ positive direction of the axis.
+
+ The 'ticklabelshift' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+
+ Returns
+ -------
+ int
+ """
+ return self["ticklabelshift"]
+
+ @ticklabelshift.setter
+ def ticklabelshift(self, val):
+ self["ticklabelshift"] = val
+
+ @property
+ def ticklabelstandoff(self):
+ """
+ Sets the standoff distance (in px) between the axis tick labels
+ and their default position. A positive `ticklabelstandoff`
+ moves the labels farther away from the plot area if
+ `ticklabelposition` is "outside", and deeper into the plot area
+ if `ticklabelposition` is "inside". A negative
+ `ticklabelstandoff` works in the opposite direction, moving
+ outside ticks towards the plot area and inside ticks towards
+ the outside. If the negative value is large enough, inside
+ ticks can even end up outside and vice versa.
+
+ The 'ticklabelstandoff' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+
+ Returns
+ -------
+ int
+ """
+ return self["ticklabelstandoff"]
+
+ @ticklabelstandoff.setter
+ def ticklabelstandoff(self, val):
+ self["ticklabelstandoff"] = val
+
+ @property
+ def ticklabelstep(self):
+ """
+ Sets the spacing between tick labels as compared to the spacing
+ between ticks. A value of 1 (default) means each tick gets a
+ label. A value of 2 means shows every 2nd label. A larger value
+ n means only every nth tick is labeled. `tick0` determines
+ which labels are shown. Not implemented for axes with `type`
+ "log" or "multicategory", or when `tickmode` is "array".
+
+ The 'ticklabelstep' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["ticklabelstep"]
+
+ @ticklabelstep.setter
+ def ticklabelstep(self, val):
+ self["ticklabelstep"] = val
+
+ @property
+ def ticklen(self):
+ """
+ Sets the tick length (in px).
+
+ The 'ticklen' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["ticklen"]
+
+ @ticklen.setter
+ def ticklen(self, val):
+ self["ticklen"] = val
+
+ @property
+ def tickmode(self):
+ """
+ Sets the tick mode for this axis. If "auto", the number of
+ ticks is set via `nticks`. If "linear", the placement of the
+ ticks is determined by a starting position `tick0` and a tick
+ step `dtick` ("linear" is the default value if `tick0` and
+ `dtick` are provided). If "array", the placement of the ticks
+ is set via `tickvals` and the tick text is `ticktext`. ("array"
+ is the default value if `tickvals` is provided). If "sync", the
+ number of ticks will sync with the overlayed axis set by
+ `overlaying` property.
+
+ The 'tickmode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['auto', 'linear', 'array', 'sync']
+
+ Returns
+ -------
+ Any
+ """
+ return self["tickmode"]
+
+ @tickmode.setter
+ def tickmode(self, val):
+ self["tickmode"] = val
+
+ @property
+ def tickprefix(self):
+ """
+ Sets a tick label prefix.
+
+ The 'tickprefix' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["tickprefix"]
+
+ @tickprefix.setter
+ def tickprefix(self, val):
+ self["tickprefix"] = val
+
+ @property
+ def ticks(self):
+ """
+ Determines whether ticks are drawn or not. If "", this axis'
+ ticks are not drawn. If "outside" ("inside"), this axis' are
+ drawn outside (inside) the axis lines.
+
+ The 'ticks' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['outside', 'inside', '']
+
+ Returns
+ -------
+ Any
+ """
+ return self["ticks"]
+
+ @ticks.setter
+ def ticks(self, val):
+ self["ticks"] = val
+
+ @property
+ def tickson(self):
+ """
+ Determines where ticks and grid lines are drawn with respect to
+ their corresponding tick labels. Only has an effect for axes of
+ `type` "category" or "multicategory". When set to "boundaries",
+ ticks and grid lines are drawn half a category to the
+ left/bottom of labels.
+
+ The 'tickson' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['labels', 'boundaries']
+
+ Returns
+ -------
+ Any
+ """
+ return self["tickson"]
+
+ @tickson.setter
+ def tickson(self, val):
+ self["tickson"] = val
+
+ @property
+ def ticksuffix(self):
+ """
+ Sets a tick label suffix.
+
+ The 'ticksuffix' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["ticksuffix"]
+
+ @ticksuffix.setter
+ def ticksuffix(self, val):
+ self["ticksuffix"] = val
+
+ @property
+ def ticktext(self):
+ """
+ Sets the text displayed at the ticks position via `tickvals`.
+ Only has an effect if `tickmode` is set to "array". Used with
+ `tickvals`.
+
+ The 'ticktext' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["ticktext"]
+
+ @ticktext.setter
+ def ticktext(self, val):
+ self["ticktext"] = val
+
+ @property
+ def ticktextsrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `ticktext`.
+
+ The 'ticktextsrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["ticktextsrc"]
+
+ @ticktextsrc.setter
+ def ticktextsrc(self, val):
+ self["ticktextsrc"] = val
+
+ @property
+ def tickvals(self):
+ """
+ Sets the values at which ticks on this axis appear. Only has an
+ effect if `tickmode` is set to "array". Used with `ticktext`.
+
+ The 'tickvals' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["tickvals"]
+
+ @tickvals.setter
+ def tickvals(self, val):
+ self["tickvals"] = val
+
+ @property
+ def tickvalssrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `tickvals`.
+
+ The 'tickvalssrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["tickvalssrc"]
+
+ @tickvalssrc.setter
+ def tickvalssrc(self, val):
+ self["tickvalssrc"] = val
+
+ @property
+ def tickwidth(self):
+ """
+ Sets the tick width (in px).
+
+ The 'tickwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tickwidth"]
+
+ @tickwidth.setter
+ def tickwidth(self, val):
+ self["tickwidth"] = val
+
+ @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.yaxis.Title`
+ - A dict of string/value properties that will be passed
+ to the Title constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.yaxis.Title
+ """
+ return self["title"]
+
+ @title.setter
+ def title(self, val):
+ self["title"] = val
+
+ @property
+ def type(self):
+ """
+ Sets the axis type. By default, plotly attempts to determined
+ the axis type by looking into the data of the traces that
+ referenced the axis in question.
+
+ The 'type' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['-', 'linear', 'log', 'date', 'category',
+ 'multicategory']
+
+ Returns
+ -------
+ Any
+ """
+ return self["type"]
+
+ @type.setter
+ def type(self, val):
+ self["type"] = val
+
+ @property
+ def uirevision(self):
+ """
+ Controls persistence of user-driven changes in axis `range`,
+ `autorange`, and `title` if in `editable: true` configuration.
+ 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
+
+ @property
+ def visible(self):
+ """
+ A single toggle to hide the axis while preserving interaction
+ like dragging. Default is true when a cheater plot is present
+ on the axis, otherwise false
+
+ The 'visible' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["visible"]
+
+ @visible.setter
+ def visible(self, val):
+ self["visible"] = val
+
+ @property
+ def zeroline(self):
+ """
+ Determines whether or not a line is drawn at along the 0 value
+ of this axis. If True, the zero line is drawn on top of the
+ grid lines.
+
+ The 'zeroline' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["zeroline"]
+
+ @zeroline.setter
+ def zeroline(self, val):
+ self["zeroline"] = val
+
+ @property
+ def zerolinecolor(self):
+ """
+ Sets the line color of the zero line.
+
+ The 'zerolinecolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["zerolinecolor"]
+
+ @zerolinecolor.setter
+ def zerolinecolor(self, val):
+ self["zerolinecolor"] = val
+
+ @property
+ def zerolinewidth(self):
+ """
+ Sets the width (in px) of the zero line.
+
+ The 'zerolinewidth' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["zerolinewidth"]
+
+ @zerolinewidth.setter
+ def zerolinewidth(self, val):
+ self["zerolinewidth"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ anchor
+ If set to an opposite-letter axis id (e.g. `x2`, `y`),
+ this axis is bound to the corresponding opposite-letter
+ axis. If set to "free", this axis' position is
+ determined by `position`.
+ automargin
+ Determines whether long tick labels automatically grow
+ the figure margins.
+ autorange
+ Determines whether or not the range of this axis is
+ computed in relation to the input data. See `rangemode`
+ for more info. If `range` is provided and it has a
+ value for both the lower and upper bound, `autorange`
+ is set to False. Using "min" applies autorange only to
+ set the minimum. Using "max" applies autorange only to
+ set the maximum. Using *min reversed* applies autorange
+ only to set the minimum on a reversed axis. Using *max
+ reversed* applies autorange only to set the maximum on
+ a reversed axis. Using "reversed" applies autorange on
+ both ends and reverses the axis direction.
+ autorangeoptions
+ :class:`plotly.graph_objects.layout.yaxis.Autorangeopti
+ ons` instance or dict with compatible properties
+ autoshift
+ Automatically reposition the axis to avoid overlap with
+ other axes with the same `overlaying` value. This
+ repositioning will account for any `shift` amount
+ applied to other axes on the same side with `autoshift`
+ is set to true. Only has an effect if `anchor` is set
+ to "free".
+ autotickangles
+ When `tickangle` is set to "auto", it will be set to
+ the first angle in this array that is large enough to
+ prevent label overlap.
+ autotypenumbers
+ Using "strict" a numeric string in trace data is not
+ converted to a number. Using *convert types* a numeric
+ string in trace data may be treated as a number during
+ automatic axis `type` detection. Defaults to
+ layout.autotypenumbers.
+ calendar
+ Sets the calendar system to use for `range` and `tick0`
+ if this is a date axis. This does not set the calendar
+ for interpreting data on this axis, that's specified in
+ the trace or via the global `layout.calendar`
+ categoryarray
+ Sets the order in which categories on this axis appear.
+ Only has an effect if `categoryorder` is set to
+ "array". Used with `categoryorder`.
+ categoryarraysrc
+ Sets the source reference on Chart Studio Cloud for
+ `categoryarray`.
+ categoryorder
+ Specifies the ordering logic for the case of
+ categorical variables. By default, plotly uses "trace",
+ which specifies the order that is present in the data
+ supplied. Set `categoryorder` to *category ascending*
+ or *category descending* if order should be determined
+ by the alphanumerical order of the category names. Set
+ `categoryorder` to "array" to derive the ordering from
+ the attribute `categoryarray`. If a category is not
+ found in the `categoryarray` array, the sorting
+ behavior for that attribute will be identical to the
+ "trace" mode. The unspecified categories will follow
+ the categories in `categoryarray`. Set `categoryorder`
+ to *total ascending* or *total descending* if order
+ should be determined by the numerical order of the
+ values. Similarly, the order can be determined by the
+ min, max, sum, mean, geometric mean or median of all
+ the values.
+ color
+ Sets default for all colors associated with this axis
+ all at once: line, font, tick, and grid colors. Grid
+ color is lightened by blending this with the plot
+ background Individual pieces can override this.
+ constrain
+ If this axis needs to be compressed (either due to its
+ own `scaleanchor` and `scaleratio` or those of the
+ other axis), determines how that happens: by increasing
+ the "range", or by decreasing the "domain". Default is
+ "domain" for axes containing image traces, "range"
+ otherwise.
+ constraintoward
+ If this axis needs to be compressed (either due to its
+ own `scaleanchor` and `scaleratio` or those of the
+ other axis), determines which direction we push the
+ originally specified plot area. Options are "left",
+ "center" (default), and "right" for x axes, and "top",
+ "middle" (default), and "bottom" for y axes.
+ dividercolor
+ Sets the color of the dividers Only has an effect on
+ "multicategory" axes.
+ dividerwidth
+ Sets the width (in px) of the dividers Only has an
+ effect on "multicategory" axes.
+ domain
+ Sets the domain of this axis (in plot fraction).
+ dtick
+ Sets the step in-between ticks on this axis. Use with
+ `tick0`. Must be a positive number, or special strings
+ available to "log" and "date" axes. If the axis `type`
+ is "log", then ticks are set every 10^(n*dtick) where n
+ is the tick number. For example, to set a tick mark at
+ 1, 10, 100, 1000, ... set dtick to 1. To set tick marks
+ at 1, 100, 10000, ... set dtick to 2. To set tick marks
+ at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special
+ values; "L<f>", where `f` is a positive number, gives
+ ticks linearly spaced in value (but not position). For
+ example `tick0` = 0.1, `dtick` = "L0.5" will put ticks
+ at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus
+ small digits between, use "D1" (all digits) or "D2"
+ (only 2 and 5). `tick0` is ignored for "D1" and "D2".
+ If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval
+ between ticks to one day, set `dtick` to 86400000.0.
+ "date" also has special values "M<n>" gives ticks
+ spaced by a number of months. `n` must be a positive
+ integer. To set ticks on the 15th of every third month,
+ set `tick0` to "2000-01-15" and `dtick` to "M3". To set
+ ticks every 4 years, set `dtick` to "M48"
+ exponentformat
+ Determines a formatting rule for the tick exponents.
+ For example, consider the number 1,000,000,000. If
+ "none", it appears as 1,000,000,000. If "e", 1e+9. If
+ "E", 1E+9. If "power", 1x10^9 (with 9 in a super
+ script). If "SI", 1G. If "B", 1B.
+ fixedrange
+ Determines whether or not this axis is zoom-able. If
+ true, then zoom is disabled.
+ gridcolor
+ Sets the color of the grid lines.
+ griddash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ gridwidth
+ Sets the width (in px) of the grid lines.
+ hoverformat
+ Sets the hover text formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ insiderange
+ Could be used to set the desired inside range of this
+ axis (excluding the labels) when `ticklabelposition` of
+ the anchored axis has "inside". Not implemented for
+ axes with `type` "log". This would be ignored when
+ `range` is provided.
+ labelalias
+ Replacement text for specific tick or hover labels. For
+ example using {US: 'USA', CA: 'Canada'} changes US to
+ USA and CA to Canada. The labels we would have shown
+ must match the keys exactly, after adding any
+ tickprefix or ticksuffix. For negative numbers the
+ minus sign symbol used (U+2212) is wider than the
+ regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis
+ type, and both keys (if needed) and values (if desired)
+ can include html-like tags or MathJax.
+ layer
+ Sets the layer on which this axis is displayed. If
+ *above traces*, this axis is displayed above all the
+ subplot's traces If *below traces*, this axis is
+ displayed below all the subplot's traces, but above the
+ grid lines. Useful when used together with scatter-like
+ traces with `cliponaxis` set to False to show markers
+ and/or text nodes above this axis.
+ linecolor
+ Sets the axis line color.
+ linewidth
+ Sets the width (in px) of the axis line.
+ matches
+ If set to another axis id (e.g. `x2`, `y`), the range
+ of this axis will match the range of the corresponding
+ axis in data-coordinates space. Moreover, matching axes
+ share auto-range values, category lists and histogram
+ auto-bins. Note that setting axes simultaneously in
+ both a `scaleanchor` and a `matches` constraint is
+ currently forbidden. Moreover, note that matching axes
+ must have the same `type`.
+ maxallowed
+ Determines the maximum range of this axis.
+ minallowed
+ Determines the minimum range of this axis.
+ minexponent
+ Hide SI prefix for 10^n if |n| is below this number.
+ This only has an effect when `tickformat` is "SI" or
+ "B".
+ minor
+ :class:`plotly.graph_objects.layout.yaxis.Minor`
+ instance or dict with compatible properties
+ mirror
+ Determines if the axis lines or/and ticks are mirrored
+ to the opposite side of the plotting area. If True, the
+ axis lines are mirrored. If "ticks", the axis lines and
+ ticks are mirrored. If False, mirroring is disable. If
+ "all", axis lines are mirrored on all shared-axes
+ subplots. If "allticks", axis lines and ticks are
+ mirrored on all shared-axes subplots.
+ nticks
+ Specifies the maximum number of ticks for the
+ particular axis. The actual number of ticks will be
+ chosen automatically to be less than or equal to
+ `nticks`. Has an effect only if `tickmode` is set to
+ "auto".
+ overlaying
+ If set a same-letter axis id, this axis is overlaid on
+ top of the corresponding same-letter axis, with traces
+ and axes visible for both axes. If False, this axis
+ does not overlay any same-letter axes. In this case,
+ for axes with overlapping domains only the highest-
+ numbered axis will be visible.
+ position
+ Sets the position of this axis in the plotting space
+ (in normalized coordinates). Only has an effect if
+ `anchor` is set to "free".
+ range
+ Sets the range of this axis. If the axis `type` is
+ "log", then you must take the log of your desired range
+ (e.g. to set the range from 1 to 100, set the range
+ from 0 to 2). If the axis `type` is "date", it should
+ be date strings, like date data, though Date objects
+ and unix milliseconds will be accepted and converted to
+ strings. If the axis `type` is "category", it should be
+ numbers, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears. Leaving either or both elements `null` impacts
+ the default `autorange`.
+ rangebreaks
+ A tuple of
+ :class:`plotly.graph_objects.layout.yaxis.Rangebreak`
+ instances or dicts with compatible properties
+ rangebreakdefaults
+ When used in a template (as
+ layout.template.layout.yaxis.rangebreakdefaults), sets
+ the default property values to use for elements of
+ layout.yaxis.rangebreaks
+ rangemode
+ If "normal", the range is computed in relation to the
+ extrema of the input data. If "tozero", the range
+ extends to 0, regardless of the input data If
+ "nonnegative", the range is non-negative, regardless of
+ the input data. Applies only to linear axes.
+ scaleanchor
+ If set to another axis id (e.g. `x2`, `y`), the range
+ of this axis changes together with the range of the
+ corresponding axis such that the scale of pixels per
+ unit is in a constant ratio. Both axes are still
+ zoomable, but when you zoom one, the other will zoom
+ the same amount, keeping a fixed midpoint. `constrain`
+ and `constraintoward` determine how we enforce the
+ constraint. You can chain these, ie `yaxis:
+ {scaleanchor: *x*}, xaxis2: {scaleanchor: *y*}` but you
+ can only link axes of the same `type`. The linked axis
+ can have the opposite letter (to constrain the aspect
+ ratio) or the same letter (to match scales across
+ subplots). Loops (`yaxis: {scaleanchor: *x*}, xaxis:
+ {scaleanchor: *y*}` or longer) are redundant and the
+ last constraint encountered will be ignored to avoid
+ possible inconsistent constraints via `scaleratio`.
+ Note that setting axes simultaneously in both a
+ `scaleanchor` and a `matches` constraint is currently
+ forbidden. Setting `false` allows to remove a default
+ constraint (occasionally, you may need to prevent a
+ default `scaleanchor` constraint from being applied,
+ eg. when having an image trace `yaxis: {scaleanchor:
+ "x"}` is set automatically in order for pixels to be
+ rendered as squares, setting `yaxis: {scaleanchor:
+ false}` allows to remove the constraint).
+ scaleratio
+ If this axis is linked to another by `scaleanchor`,
+ this determines the pixel to unit scale ratio. For
+ example, if this value is 10, then every unit on this
+ axis spans 10 times the number of pixels as a unit on
+ the linked axis. Use this for example to create an
+ elevation profile where the vertical scale is
+ exaggerated a fixed amount with respect to the
+ horizontal.
+ separatethousands
+ If "true", even 4-digit integers are separated
+ shift
+ Moves the axis a given number of pixels from where it
+ would have been otherwise. Accepts both positive and
+ negative values, which will shift the axis either right
+ or left, respectively. If `autoshift` is set to true,
+ then this defaults to a padding of -3 if `side` is set
+ to "left". and defaults to +3 if `side` is set to
+ "right". Defaults to 0 if `autoshift` is set to false.
+ Only has an effect if `anchor` is set to "free".
+ showdividers
+ Determines whether or not a dividers are drawn between
+ the category levels of this axis. Only has an effect on
+ "multicategory" axes.
+ showexponent
+ If "all", all exponents are shown besides their
+ significands. If "first", only the exponent of the
+ first tick is shown. If "last", only the exponent of
+ the last tick is shown. If "none", no exponents appear.
+ showgrid
+ Determines whether or not grid lines are drawn. If
+ True, the grid lines are drawn at every tick mark.
+ showline
+ Determines whether or not a line bounding this axis is
+ drawn.
+ showspikes
+ Determines whether or not spikes (aka droplines) are
+ drawn for this axis. Note: This only takes affect when
+ hovermode = closest
+ showticklabels
+ Determines whether or not the tick labels are drawn.
+ showtickprefix
+ If "all", all tick labels are displayed with a prefix.
+ If "first", only the first tick is displayed with a
+ prefix. If "last", only the last tick is displayed with
+ a suffix. If "none", tick prefixes are hidden.
+ showticksuffix
+ Same as `showtickprefix` but for tick suffixes.
+ side
+ Determines whether a x (y) axis is positioned at the
+ "bottom" ("left") or "top" ("right") of the plotting
+ area.
+ spikecolor
+ Sets the spike color. If undefined, will use the series
+ color
+ spikedash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ spikemode
+ Determines the drawing mode for the spike line If
+ "toaxis", the line is drawn from the data point to the
+ axis the series is plotted on. If "across", the line
+ is drawn across the entire plot area, and supercedes
+ "toaxis". If "marker", then a marker dot is drawn on
+ the axis the series is plotted on
+ spikesnap
+ Determines whether spikelines are stuck to the cursor
+ or to the closest datapoints.
+ spikethickness
+ Sets the width (in px) of the zero line.
+ tick0
+ Sets the placement of the first tick on this axis. Use
+ with `dtick`. If the axis `type` is "log", then you
+ must take the log of your starting tick (e.g. to set
+ the starting tick to 100, set the `tick0` to 2) except
+ when `dtick`=*L<f>* (see `dtick` for more info). If the
+ axis `type` is "date", it should be a date string, like
+ date data. If the axis `type` is "category", it should
+ be a number, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears.
+ tickangle
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the
+ tick labels vertically.
+ tickcolor
+ Sets the tick color.
+ tickfont
+ Sets the tick font.
+ tickformat
+ Sets the tick label formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ tickformatstops
+ A tuple of :class:`plotly.graph_objects.layout.yaxis.Ti
+ ckformatstop` instances or dicts with compatible
+ properties
+ tickformatstopdefaults
+ When used in a template (as
+ layout.template.layout.yaxis.tickformatstopdefaults),
+ sets the default property values to use for elements of
+ layout.yaxis.tickformatstops
+ ticklabelindex
+ Only for axes with `type` "date" or "linear". Instead
+ of drawing the major tick label, draw the label for the
+ minor tick that is n positions away from the major
+ tick. E.g. to always draw the label for the minor tick
+ before each major tick, choose `ticklabelindex` -1.
+ This is useful for date axes with `ticklabelmode`
+ "period" if you want to label the period that ends with
+ each major tick instead of the period that begins
+ there.
+ ticklabelindexsrc
+ Sets the source reference on Chart Studio Cloud for
+ `ticklabelindex`.
+ ticklabelmode
+ Determines where tick labels are drawn with respect to
+ their corresponding ticks and grid lines. Only has an
+ effect for axes of `type` "date" When set to "period",
+ tick labels are drawn in the middle of the period
+ between ticks.
+ ticklabeloverflow
+ Determines how we handle tick labels that would
+ overflow either the graph div or the domain of the
+ axis. The default value for inside tick labels is *hide
+ past domain*. Otherwise on "category" and
+ "multicategory" axes the default is "allow". In other
+ cases the default is *hide past div*.
+ ticklabelposition
+ Determines where tick labels are drawn with respect to
+ the axis Please note that top or bottom has no effect
+ on x axes or when `ticklabelmode` is set to "period".
+ Similarly left or right has no effect on y axes or when
+ `ticklabelmode` is set to "period". Has no effect on
+ "multicategory" axes or when `tickson` is set to
+ "boundaries". When used on axes linked by `matches` or
+ `scaleanchor`, no extra padding for inside labels would
+ be added by autorange, so that the scales could match.
+ ticklabelshift
+ Shifts the tick labels by the specified number of
+ pixels in parallel to the axis. Positive values move
+ the labels in the positive direction of the axis.
+ ticklabelstandoff
+ Sets the standoff distance (in px) between the axis
+ tick labels and their default position. A positive
+ `ticklabelstandoff` moves the labels farther away from
+ the plot area if `ticklabelposition` is "outside", and
+ deeper into the plot area if `ticklabelposition` is
+ "inside". A negative `ticklabelstandoff` works in the
+ opposite direction, moving outside ticks towards the
+ plot area and inside ticks towards the outside. If the
+ negative value is large enough, inside ticks can even
+ end up outside and vice versa.
+ ticklabelstep
+ Sets the spacing between tick labels as compared to the
+ spacing between ticks. A value of 1 (default) means
+ each tick gets a label. A value of 2 means shows every
+ 2nd label. A larger value n means only every nth tick
+ is labeled. `tick0` determines which labels are shown.
+ Not implemented for axes with `type` "log" or
+ "multicategory", or when `tickmode` is "array".
+ ticklen
+ Sets the tick length (in px).
+ tickmode
+ Sets the tick mode for this axis. If "auto", the number
+ of ticks is set via `nticks`. If "linear", the
+ placement of the ticks is determined by a starting
+ position `tick0` and a tick step `dtick` ("linear" is
+ the default value if `tick0` and `dtick` are provided).
+ If "array", the placement of the ticks is set via
+ `tickvals` and the tick text is `ticktext`. ("array" is
+ the default value if `tickvals` is provided). If
+ "sync", the number of ticks will sync with the
+ overlayed axis set by `overlaying` property.
+ tickprefix
+ Sets a tick label prefix.
+ ticks
+ Determines whether ticks are drawn or not. If "", this
+ axis' ticks are not drawn. If "outside" ("inside"),
+ this axis' are drawn outside (inside) the axis lines.
+ tickson
+ Determines where ticks and grid lines are drawn with
+ respect to their corresponding tick labels. Only has an
+ effect for axes of `type` "category" or
+ "multicategory". When set to "boundaries", ticks and
+ grid lines are drawn half a category to the left/bottom
+ of labels.
+ ticksuffix
+ Sets a tick label suffix.
+ ticktext
+ Sets the text displayed at the ticks position via
+ `tickvals`. Only has an effect if `tickmode` is set to
+ "array". Used with `tickvals`.
+ ticktextsrc
+ Sets the source reference on Chart Studio Cloud for
+ `ticktext`.
+ tickvals
+ Sets the values at which ticks on this axis appear.
+ Only has an effect if `tickmode` is set to "array".
+ Used with `ticktext`.
+ tickvalssrc
+ Sets the source reference on Chart Studio Cloud for
+ `tickvals`.
+ tickwidth
+ Sets the tick width (in px).
+ title
+ :class:`plotly.graph_objects.layout.yaxis.Title`
+ instance or dict with compatible properties
+ type
+ Sets the axis type. By default, plotly attempts to
+ determined the axis type by looking into the data of
+ the traces that referenced the axis in question.
+ uirevision
+ Controls persistence of user-driven changes in axis
+ `range`, `autorange`, and `title` if in `editable:
+ true` configuration. Defaults to `layout.uirevision`.
+ visible
+ A single toggle to hide the axis while preserving
+ interaction like dragging. Default is true when a
+ cheater plot is present on the axis, otherwise false
+ zeroline
+ Determines whether or not a line is drawn at along the
+ 0 value of this axis. If True, the zero line is drawn
+ on top of the grid lines.
+ zerolinecolor
+ Sets the line color of the zero line.
+ zerolinewidth
+ Sets the width (in px) of the zero line.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ anchor=None,
+ automargin=None,
+ autorange=None,
+ autorangeoptions=None,
+ autoshift=None,
+ autotickangles=None,
+ autotypenumbers=None,
+ calendar=None,
+ categoryarray=None,
+ categoryarraysrc=None,
+ categoryorder=None,
+ color=None,
+ constrain=None,
+ constraintoward=None,
+ dividercolor=None,
+ dividerwidth=None,
+ domain=None,
+ dtick=None,
+ exponentformat=None,
+ fixedrange=None,
+ gridcolor=None,
+ griddash=None,
+ gridwidth=None,
+ hoverformat=None,
+ insiderange=None,
+ labelalias=None,
+ layer=None,
+ linecolor=None,
+ linewidth=None,
+ matches=None,
+ maxallowed=None,
+ minallowed=None,
+ minexponent=None,
+ minor=None,
+ mirror=None,
+ nticks=None,
+ overlaying=None,
+ position=None,
+ range=None,
+ rangebreaks=None,
+ rangebreakdefaults=None,
+ rangemode=None,
+ scaleanchor=None,
+ scaleratio=None,
+ separatethousands=None,
+ shift=None,
+ showdividers=None,
+ showexponent=None,
+ showgrid=None,
+ showline=None,
+ showspikes=None,
+ showticklabels=None,
+ showtickprefix=None,
+ showticksuffix=None,
+ side=None,
+ spikecolor=None,
+ spikedash=None,
+ spikemode=None,
+ spikesnap=None,
+ spikethickness=None,
+ tick0=None,
+ tickangle=None,
+ tickcolor=None,
+ tickfont=None,
+ tickformat=None,
+ tickformatstops=None,
+ tickformatstopdefaults=None,
+ ticklabelindex=None,
+ ticklabelindexsrc=None,
+ ticklabelmode=None,
+ ticklabeloverflow=None,
+ ticklabelposition=None,
+ ticklabelshift=None,
+ ticklabelstandoff=None,
+ ticklabelstep=None,
+ ticklen=None,
+ tickmode=None,
+ tickprefix=None,
+ ticks=None,
+ tickson=None,
+ ticksuffix=None,
+ ticktext=None,
+ ticktextsrc=None,
+ tickvals=None,
+ tickvalssrc=None,
+ tickwidth=None,
+ title=None,
+ type=None,
+ uirevision=None,
+ visible=None,
+ zeroline=None,
+ zerolinecolor=None,
+ zerolinewidth=None,
+ **kwargs,
+ ):
+ """
+ Construct a new YAxis object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.YAxis`
+ anchor
+ If set to an opposite-letter axis id (e.g. `x2`, `y`),
+ this axis is bound to the corresponding opposite-letter
+ axis. If set to "free", this axis' position is
+ determined by `position`.
+ automargin
+ Determines whether long tick labels automatically grow
+ the figure margins.
+ autorange
+ Determines whether or not the range of this axis is
+ computed in relation to the input data. See `rangemode`
+ for more info. If `range` is provided and it has a
+ value for both the lower and upper bound, `autorange`
+ is set to False. Using "min" applies autorange only to
+ set the minimum. Using "max" applies autorange only to
+ set the maximum. Using *min reversed* applies autorange
+ only to set the minimum on a reversed axis. Using *max
+ reversed* applies autorange only to set the maximum on
+ a reversed axis. Using "reversed" applies autorange on
+ both ends and reverses the axis direction.
+ autorangeoptions
+ :class:`plotly.graph_objects.layout.yaxis.Autorangeopti
+ ons` instance or dict with compatible properties
+ autoshift
+ Automatically reposition the axis to avoid overlap with
+ other axes with the same `overlaying` value. This
+ repositioning will account for any `shift` amount
+ applied to other axes on the same side with `autoshift`
+ is set to true. Only has an effect if `anchor` is set
+ to "free".
+ autotickangles
+ When `tickangle` is set to "auto", it will be set to
+ the first angle in this array that is large enough to
+ prevent label overlap.
+ autotypenumbers
+ Using "strict" a numeric string in trace data is not
+ converted to a number. Using *convert types* a numeric
+ string in trace data may be treated as a number during
+ automatic axis `type` detection. Defaults to
+ layout.autotypenumbers.
+ calendar
+ Sets the calendar system to use for `range` and `tick0`
+ if this is a date axis. This does not set the calendar
+ for interpreting data on this axis, that's specified in
+ the trace or via the global `layout.calendar`
+ categoryarray
+ Sets the order in which categories on this axis appear.
+ Only has an effect if `categoryorder` is set to
+ "array". Used with `categoryorder`.
+ categoryarraysrc
+ Sets the source reference on Chart Studio Cloud for
+ `categoryarray`.
+ categoryorder
+ Specifies the ordering logic for the case of
+ categorical variables. By default, plotly uses "trace",
+ which specifies the order that is present in the data
+ supplied. Set `categoryorder` to *category ascending*
+ or *category descending* if order should be determined
+ by the alphanumerical order of the category names. Set
+ `categoryorder` to "array" to derive the ordering from
+ the attribute `categoryarray`. If a category is not
+ found in the `categoryarray` array, the sorting
+ behavior for that attribute will be identical to the
+ "trace" mode. The unspecified categories will follow
+ the categories in `categoryarray`. Set `categoryorder`
+ to *total ascending* or *total descending* if order
+ should be determined by the numerical order of the
+ values. Similarly, the order can be determined by the
+ min, max, sum, mean, geometric mean or median of all
+ the values.
+ color
+ Sets default for all colors associated with this axis
+ all at once: line, font, tick, and grid colors. Grid
+ color is lightened by blending this with the plot
+ background Individual pieces can override this.
+ constrain
+ If this axis needs to be compressed (either due to its
+ own `scaleanchor` and `scaleratio` or those of the
+ other axis), determines how that happens: by increasing
+ the "range", or by decreasing the "domain". Default is
+ "domain" for axes containing image traces, "range"
+ otherwise.
+ constraintoward
+ If this axis needs to be compressed (either due to its
+ own `scaleanchor` and `scaleratio` or those of the
+ other axis), determines which direction we push the
+ originally specified plot area. Options are "left",
+ "center" (default), and "right" for x axes, and "top",
+ "middle" (default), and "bottom" for y axes.
+ dividercolor
+ Sets the color of the dividers Only has an effect on
+ "multicategory" axes.
+ dividerwidth
+ Sets the width (in px) of the dividers Only has an
+ effect on "multicategory" axes.
+ domain
+ Sets the domain of this axis (in plot fraction).
+ dtick
+ Sets the step in-between ticks on this axis. Use with
+ `tick0`. Must be a positive number, or special strings
+ available to "log" and "date" axes. If the axis `type`
+ is "log", then ticks are set every 10^(n*dtick) where n
+ is the tick number. For example, to set a tick mark at
+ 1, 10, 100, 1000, ... set dtick to 1. To set tick marks
+ at 1, 100, 10000, ... set dtick to 2. To set tick marks
+ at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special
+ values; "L<f>", where `f` is a positive number, gives
+ ticks linearly spaced in value (but not position). For
+ example `tick0` = 0.1, `dtick` = "L0.5" will put ticks
+ at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus
+ small digits between, use "D1" (all digits) or "D2"
+ (only 2 and 5). `tick0` is ignored for "D1" and "D2".
+ If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval
+ between ticks to one day, set `dtick` to 86400000.0.
+ "date" also has special values "M<n>" gives ticks
+ spaced by a number of months. `n` must be a positive
+ integer. To set ticks on the 15th of every third month,
+ set `tick0` to "2000-01-15" and `dtick` to "M3". To set
+ ticks every 4 years, set `dtick` to "M48"
+ exponentformat
+ Determines a formatting rule for the tick exponents.
+ For example, consider the number 1,000,000,000. If
+ "none", it appears as 1,000,000,000. If "e", 1e+9. If
+ "E", 1E+9. If "power", 1x10^9 (with 9 in a super
+ script). If "SI", 1G. If "B", 1B.
+ fixedrange
+ Determines whether or not this axis is zoom-able. If
+ true, then zoom is disabled.
+ gridcolor
+ Sets the color of the grid lines.
+ griddash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ gridwidth
+ Sets the width (in px) of the grid lines.
+ hoverformat
+ Sets the hover text formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ insiderange
+ Could be used to set the desired inside range of this
+ axis (excluding the labels) when `ticklabelposition` of
+ the anchored axis has "inside". Not implemented for
+ axes with `type` "log". This would be ignored when
+ `range` is provided.
+ labelalias
+ Replacement text for specific tick or hover labels. For
+ example using {US: 'USA', CA: 'Canada'} changes US to
+ USA and CA to Canada. The labels we would have shown
+ must match the keys exactly, after adding any
+ tickprefix or ticksuffix. For negative numbers the
+ minus sign symbol used (U+2212) is wider than the
+ regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis
+ type, and both keys (if needed) and values (if desired)
+ can include html-like tags or MathJax.
+ layer
+ Sets the layer on which this axis is displayed. If
+ *above traces*, this axis is displayed above all the
+ subplot's traces If *below traces*, this axis is
+ displayed below all the subplot's traces, but above the
+ grid lines. Useful when used together with scatter-like
+ traces with `cliponaxis` set to False to show markers
+ and/or text nodes above this axis.
+ linecolor
+ Sets the axis line color.
+ linewidth
+ Sets the width (in px) of the axis line.
+ matches
+ If set to another axis id (e.g. `x2`, `y`), the range
+ of this axis will match the range of the corresponding
+ axis in data-coordinates space. Moreover, matching axes
+ share auto-range values, category lists and histogram
+ auto-bins. Note that setting axes simultaneously in
+ both a `scaleanchor` and a `matches` constraint is
+ currently forbidden. Moreover, note that matching axes
+ must have the same `type`.
+ maxallowed
+ Determines the maximum range of this axis.
+ minallowed
+ Determines the minimum range of this axis.
+ minexponent
+ Hide SI prefix for 10^n if |n| is below this number.
+ This only has an effect when `tickformat` is "SI" or
+ "B".
+ minor
+ :class:`plotly.graph_objects.layout.yaxis.Minor`
+ instance or dict with compatible properties
+ mirror
+ Determines if the axis lines or/and ticks are mirrored
+ to the opposite side of the plotting area. If True, the
+ axis lines are mirrored. If "ticks", the axis lines and
+ ticks are mirrored. If False, mirroring is disable. If
+ "all", axis lines are mirrored on all shared-axes
+ subplots. If "allticks", axis lines and ticks are
+ mirrored on all shared-axes subplots.
+ nticks
+ Specifies the maximum number of ticks for the
+ particular axis. The actual number of ticks will be
+ chosen automatically to be less than or equal to
+ `nticks`. Has an effect only if `tickmode` is set to
+ "auto".
+ overlaying
+ If set a same-letter axis id, this axis is overlaid on
+ top of the corresponding same-letter axis, with traces
+ and axes visible for both axes. If False, this axis
+ does not overlay any same-letter axes. In this case,
+ for axes with overlapping domains only the highest-
+ numbered axis will be visible.
+ position
+ Sets the position of this axis in the plotting space
+ (in normalized coordinates). Only has an effect if
+ `anchor` is set to "free".
+ range
+ Sets the range of this axis. If the axis `type` is
+ "log", then you must take the log of your desired range
+ (e.g. to set the range from 1 to 100, set the range
+ from 0 to 2). If the axis `type` is "date", it should
+ be date strings, like date data, though Date objects
+ and unix milliseconds will be accepted and converted to
+ strings. If the axis `type` is "category", it should be
+ numbers, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears. Leaving either or both elements `null` impacts
+ the default `autorange`.
+ rangebreaks
+ A tuple of
+ :class:`plotly.graph_objects.layout.yaxis.Rangebreak`
+ instances or dicts with compatible properties
+ rangebreakdefaults
+ When used in a template (as
+ layout.template.layout.yaxis.rangebreakdefaults), sets
+ the default property values to use for elements of
+ layout.yaxis.rangebreaks
+ rangemode
+ If "normal", the range is computed in relation to the
+ extrema of the input data. If "tozero", the range
+ extends to 0, regardless of the input data If
+ "nonnegative", the range is non-negative, regardless of
+ the input data. Applies only to linear axes.
+ scaleanchor
+ If set to another axis id (e.g. `x2`, `y`), the range
+ of this axis changes together with the range of the
+ corresponding axis such that the scale of pixels per
+ unit is in a constant ratio. Both axes are still
+ zoomable, but when you zoom one, the other will zoom
+ the same amount, keeping a fixed midpoint. `constrain`
+ and `constraintoward` determine how we enforce the
+ constraint. You can chain these, ie `yaxis:
+ {scaleanchor: *x*}, xaxis2: {scaleanchor: *y*}` but you
+ can only link axes of the same `type`. The linked axis
+ can have the opposite letter (to constrain the aspect
+ ratio) or the same letter (to match scales across
+ subplots). Loops (`yaxis: {scaleanchor: *x*}, xaxis:
+ {scaleanchor: *y*}` or longer) are redundant and the
+ last constraint encountered will be ignored to avoid
+ possible inconsistent constraints via `scaleratio`.
+ Note that setting axes simultaneously in both a
+ `scaleanchor` and a `matches` constraint is currently
+ forbidden. Setting `false` allows to remove a default
+ constraint (occasionally, you may need to prevent a
+ default `scaleanchor` constraint from being applied,
+ eg. when having an image trace `yaxis: {scaleanchor:
+ "x"}` is set automatically in order for pixels to be
+ rendered as squares, setting `yaxis: {scaleanchor:
+ false}` allows to remove the constraint).
+ scaleratio
+ If this axis is linked to another by `scaleanchor`,
+ this determines the pixel to unit scale ratio. For
+ example, if this value is 10, then every unit on this
+ axis spans 10 times the number of pixels as a unit on
+ the linked axis. Use this for example to create an
+ elevation profile where the vertical scale is
+ exaggerated a fixed amount with respect to the
+ horizontal.
+ separatethousands
+ If "true", even 4-digit integers are separated
+ shift
+ Moves the axis a given number of pixels from where it
+ would have been otherwise. Accepts both positive and
+ negative values, which will shift the axis either right
+ or left, respectively. If `autoshift` is set to true,
+ then this defaults to a padding of -3 if `side` is set
+ to "left". and defaults to +3 if `side` is set to
+ "right". Defaults to 0 if `autoshift` is set to false.
+ Only has an effect if `anchor` is set to "free".
+ showdividers
+ Determines whether or not a dividers are drawn between
+ the category levels of this axis. Only has an effect on
+ "multicategory" axes.
+ showexponent
+ If "all", all exponents are shown besides their
+ significands. If "first", only the exponent of the
+ first tick is shown. If "last", only the exponent of
+ the last tick is shown. If "none", no exponents appear.
+ showgrid
+ Determines whether or not grid lines are drawn. If
+ True, the grid lines are drawn at every tick mark.
+ showline
+ Determines whether or not a line bounding this axis is
+ drawn.
+ showspikes
+ Determines whether or not spikes (aka droplines) are
+ drawn for this axis. Note: This only takes affect when
+ hovermode = closest
+ showticklabels
+ Determines whether or not the tick labels are drawn.
+ showtickprefix
+ If "all", all tick labels are displayed with a prefix.
+ If "first", only the first tick is displayed with a
+ prefix. If "last", only the last tick is displayed with
+ a suffix. If "none", tick prefixes are hidden.
+ showticksuffix
+ Same as `showtickprefix` but for tick suffixes.
+ side
+ Determines whether a x (y) axis is positioned at the
+ "bottom" ("left") or "top" ("right") of the plotting
+ area.
+ spikecolor
+ Sets the spike color. If undefined, will use the series
+ color
+ spikedash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ spikemode
+ Determines the drawing mode for the spike line If
+ "toaxis", the line is drawn from the data point to the
+ axis the series is plotted on. If "across", the line
+ is drawn across the entire plot area, and supercedes
+ "toaxis". If "marker", then a marker dot is drawn on
+ the axis the series is plotted on
+ spikesnap
+ Determines whether spikelines are stuck to the cursor
+ or to the closest datapoints.
+ spikethickness
+ Sets the width (in px) of the zero line.
+ tick0
+ Sets the placement of the first tick on this axis. Use
+ with `dtick`. If the axis `type` is "log", then you
+ must take the log of your starting tick (e.g. to set
+ the starting tick to 100, set the `tick0` to 2) except
+ when `dtick`=*L<f>* (see `dtick` for more info). If the
+ axis `type` is "date", it should be a date string, like
+ date data. If the axis `type` is "category", it should
+ be a number, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears.
+ tickangle
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the
+ tick labels vertically.
+ tickcolor
+ Sets the tick color.
+ tickfont
+ Sets the tick font.
+ tickformat
+ Sets the tick label formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ tickformatstops
+ A tuple of :class:`plotly.graph_objects.layout.yaxis.Ti
+ ckformatstop` instances or dicts with compatible
+ properties
+ tickformatstopdefaults
+ When used in a template (as
+ layout.template.layout.yaxis.tickformatstopdefaults),
+ sets the default property values to use for elements of
+ layout.yaxis.tickformatstops
+ ticklabelindex
+ Only for axes with `type` "date" or "linear". Instead
+ of drawing the major tick label, draw the label for the
+ minor tick that is n positions away from the major
+ tick. E.g. to always draw the label for the minor tick
+ before each major tick, choose `ticklabelindex` -1.
+ This is useful for date axes with `ticklabelmode`
+ "period" if you want to label the period that ends with
+ each major tick instead of the period that begins
+ there.
+ ticklabelindexsrc
+ Sets the source reference on Chart Studio Cloud for
+ `ticklabelindex`.
+ ticklabelmode
+ Determines where tick labels are drawn with respect to
+ their corresponding ticks and grid lines. Only has an
+ effect for axes of `type` "date" When set to "period",
+ tick labels are drawn in the middle of the period
+ between ticks.
+ ticklabeloverflow
+ Determines how we handle tick labels that would
+ overflow either the graph div or the domain of the
+ axis. The default value for inside tick labels is *hide
+ past domain*. Otherwise on "category" and
+ "multicategory" axes the default is "allow". In other
+ cases the default is *hide past div*.
+ ticklabelposition
+ Determines where tick labels are drawn with respect to
+ the axis Please note that top or bottom has no effect
+ on x axes or when `ticklabelmode` is set to "period".
+ Similarly left or right has no effect on y axes or when
+ `ticklabelmode` is set to "period". Has no effect on
+ "multicategory" axes or when `tickson` is set to
+ "boundaries". When used on axes linked by `matches` or
+ `scaleanchor`, no extra padding for inside labels would
+ be added by autorange, so that the scales could match.
+ ticklabelshift
+ Shifts the tick labels by the specified number of
+ pixels in parallel to the axis. Positive values move
+ the labels in the positive direction of the axis.
+ ticklabelstandoff
+ Sets the standoff distance (in px) between the axis
+ tick labels and their default position. A positive
+ `ticklabelstandoff` moves the labels farther away from
+ the plot area if `ticklabelposition` is "outside", and
+ deeper into the plot area if `ticklabelposition` is
+ "inside". A negative `ticklabelstandoff` works in the
+ opposite direction, moving outside ticks towards the
+ plot area and inside ticks towards the outside. If the
+ negative value is large enough, inside ticks can even
+ end up outside and vice versa.
+ ticklabelstep
+ Sets the spacing between tick labels as compared to the
+ spacing between ticks. A value of 1 (default) means
+ each tick gets a label. A value of 2 means shows every
+ 2nd label. A larger value n means only every nth tick
+ is labeled. `tick0` determines which labels are shown.
+ Not implemented for axes with `type` "log" or
+ "multicategory", or when `tickmode` is "array".
+ ticklen
+ Sets the tick length (in px).
+ tickmode
+ Sets the tick mode for this axis. If "auto", the number
+ of ticks is set via `nticks`. If "linear", the
+ placement of the ticks is determined by a starting
+ position `tick0` and a tick step `dtick` ("linear" is
+ the default value if `tick0` and `dtick` are provided).
+ If "array", the placement of the ticks is set via
+ `tickvals` and the tick text is `ticktext`. ("array" is
+ the default value if `tickvals` is provided). If
+ "sync", the number of ticks will sync with the
+ overlayed axis set by `overlaying` property.
+ tickprefix
+ Sets a tick label prefix.
+ ticks
+ Determines whether ticks are drawn or not. If "", this
+ axis' ticks are not drawn. If "outside" ("inside"),
+ this axis' are drawn outside (inside) the axis lines.
+ tickson
+ Determines where ticks and grid lines are drawn with
+ respect to their corresponding tick labels. Only has an
+ effect for axes of `type` "category" or
+ "multicategory". When set to "boundaries", ticks and
+ grid lines are drawn half a category to the left/bottom
+ of labels.
+ ticksuffix
+ Sets a tick label suffix.
+ ticktext
+ Sets the text displayed at the ticks position via
+ `tickvals`. Only has an effect if `tickmode` is set to
+ "array". Used with `tickvals`.
+ ticktextsrc
+ Sets the source reference on Chart Studio Cloud for
+ `ticktext`.
+ tickvals
+ Sets the values at which ticks on this axis appear.
+ Only has an effect if `tickmode` is set to "array".
+ Used with `ticktext`.
+ tickvalssrc
+ Sets the source reference on Chart Studio Cloud for
+ `tickvals`.
+ tickwidth
+ Sets the tick width (in px).
+ title
+ :class:`plotly.graph_objects.layout.yaxis.Title`
+ instance or dict with compatible properties
+ type
+ Sets the axis type. By default, plotly attempts to
+ determined the axis type by looking into the data of
+ the traces that referenced the axis in question.
+ uirevision
+ Controls persistence of user-driven changes in axis
+ `range`, `autorange`, and `title` if in `editable:
+ true` configuration. Defaults to `layout.uirevision`.
+ visible
+ A single toggle to hide the axis while preserving
+ interaction like dragging. Default is true when a
+ cheater plot is present on the axis, otherwise false
+ zeroline
+ Determines whether or not a line is drawn at along the
+ 0 value of this axis. If True, the zero line is drawn
+ on top of the grid lines.
+ zerolinecolor
+ Sets the line color of the zero line.
+ zerolinewidth
+ Sets the width (in px) of the zero line.
+
+ Returns
+ -------
+ YAxis
+ """
+ super().__init__("yaxis")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.YAxis
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.YAxis`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("anchor", arg, anchor)
+ self._set_property("automargin", arg, automargin)
+ self._set_property("autorange", arg, autorange)
+ self._set_property("autorangeoptions", arg, autorangeoptions)
+ self._set_property("autoshift", arg, autoshift)
+ self._set_property("autotickangles", arg, autotickangles)
+ self._set_property("autotypenumbers", arg, autotypenumbers)
+ self._set_property("calendar", arg, calendar)
+ self._set_property("categoryarray", arg, categoryarray)
+ self._set_property("categoryarraysrc", arg, categoryarraysrc)
+ self._set_property("categoryorder", arg, categoryorder)
+ self._set_property("color", arg, color)
+ self._set_property("constrain", arg, constrain)
+ self._set_property("constraintoward", arg, constraintoward)
+ self._set_property("dividercolor", arg, dividercolor)
+ self._set_property("dividerwidth", arg, dividerwidth)
+ self._set_property("domain", arg, domain)
+ self._set_property("dtick", arg, dtick)
+ self._set_property("exponentformat", arg, exponentformat)
+ self._set_property("fixedrange", arg, fixedrange)
+ self._set_property("gridcolor", arg, gridcolor)
+ self._set_property("griddash", arg, griddash)
+ self._set_property("gridwidth", arg, gridwidth)
+ self._set_property("hoverformat", arg, hoverformat)
+ self._set_property("insiderange", arg, insiderange)
+ self._set_property("labelalias", arg, labelalias)
+ self._set_property("layer", arg, layer)
+ self._set_property("linecolor", arg, linecolor)
+ self._set_property("linewidth", arg, linewidth)
+ self._set_property("matches", arg, matches)
+ self._set_property("maxallowed", arg, maxallowed)
+ self._set_property("minallowed", arg, minallowed)
+ self._set_property("minexponent", arg, minexponent)
+ self._set_property("minor", arg, minor)
+ self._set_property("mirror", arg, mirror)
+ self._set_property("nticks", arg, nticks)
+ self._set_property("overlaying", arg, overlaying)
+ self._set_property("position", arg, position)
+ self._set_property("range", arg, range)
+ self._set_property("rangebreaks", arg, rangebreaks)
+ self._set_property("rangebreakdefaults", arg, rangebreakdefaults)
+ self._set_property("rangemode", arg, rangemode)
+ self._set_property("scaleanchor", arg, scaleanchor)
+ self._set_property("scaleratio", arg, scaleratio)
+ self._set_property("separatethousands", arg, separatethousands)
+ self._set_property("shift", arg, shift)
+ self._set_property("showdividers", arg, showdividers)
+ self._set_property("showexponent", arg, showexponent)
+ self._set_property("showgrid", arg, showgrid)
+ self._set_property("showline", arg, showline)
+ self._set_property("showspikes", arg, showspikes)
+ self._set_property("showticklabels", arg, showticklabels)
+ self._set_property("showtickprefix", arg, showtickprefix)
+ self._set_property("showticksuffix", arg, showticksuffix)
+ self._set_property("side", arg, side)
+ self._set_property("spikecolor", arg, spikecolor)
+ self._set_property("spikedash", arg, spikedash)
+ self._set_property("spikemode", arg, spikemode)
+ self._set_property("spikesnap", arg, spikesnap)
+ self._set_property("spikethickness", arg, spikethickness)
+ self._set_property("tick0", arg, tick0)
+ self._set_property("tickangle", arg, tickangle)
+ self._set_property("tickcolor", arg, tickcolor)
+ self._set_property("tickfont", arg, tickfont)
+ self._set_property("tickformat", arg, tickformat)
+ self._set_property("tickformatstops", arg, tickformatstops)
+ self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
+ self._set_property("ticklabelindex", arg, ticklabelindex)
+ self._set_property("ticklabelindexsrc", arg, ticklabelindexsrc)
+ self._set_property("ticklabelmode", arg, ticklabelmode)
+ self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
+ self._set_property("ticklabelposition", arg, ticklabelposition)
+ self._set_property("ticklabelshift", arg, ticklabelshift)
+ self._set_property("ticklabelstandoff", arg, ticklabelstandoff)
+ self._set_property("ticklabelstep", arg, ticklabelstep)
+ self._set_property("ticklen", arg, ticklen)
+ self._set_property("tickmode", arg, tickmode)
+ self._set_property("tickprefix", arg, tickprefix)
+ self._set_property("ticks", arg, ticks)
+ self._set_property("tickson", arg, tickson)
+ self._set_property("ticksuffix", arg, ticksuffix)
+ self._set_property("ticktext", arg, ticktext)
+ self._set_property("ticktextsrc", arg, ticktextsrc)
+ self._set_property("tickvals", arg, tickvals)
+ self._set_property("tickvalssrc", arg, tickvalssrc)
+ self._set_property("tickwidth", arg, tickwidth)
+ self._set_property("title", arg, title)
+ self._set_property("type", arg, type)
+ self._set_property("uirevision", arg, uirevision)
+ self._set_property("visible", arg, visible)
+ self._set_property("zeroline", arg, zeroline)
+ self._set_property("zerolinecolor", arg, zerolinecolor)
+ self._set_property("zerolinewidth", arg, zerolinewidth)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/annotation/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/annotation/__init__.py
new file mode 100644
index 0000000..372a9f2
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/annotation/__init__.py
@@ -0,0 +1,13 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._font import Font
+ from ._hoverlabel import Hoverlabel
+ from . import hoverlabel
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__, [".hoverlabel"], ["._font.Font", "._hoverlabel.Hoverlabel"]
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/annotation/_font.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/annotation/_font.py
new file mode 100644
index 0000000..736edb1
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/annotation/_font.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Font(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.annotation"
+ _path_str = "layout.annotation.font"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Font object
+
+ Sets the annotation text font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.annotation.Font`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Font
+ """
+ super().__init__("font")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.annotation.Font
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.annotation.Font`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/annotation/_hoverlabel.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/annotation/_hoverlabel.py
new file mode 100644
index 0000000..ee847b2
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/annotation/_hoverlabel.py
@@ -0,0 +1,151 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Hoverlabel(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.annotation"
+ _path_str = "layout.annotation.hoverlabel"
+ _valid_props = {"bgcolor", "bordercolor", "font"}
+
+ @property
+ def bgcolor(self):
+ """
+ Sets the background color of the hover label. By default uses
+ the annotation's `bgcolor` made opaque, or white if it was
+ transparent.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["bgcolor"]
+
+ @bgcolor.setter
+ def bgcolor(self, val):
+ self["bgcolor"] = val
+
+ @property
+ def bordercolor(self):
+ """
+ Sets the border color of the hover label. By default uses
+ either dark grey or white, for maximum contrast with
+ `hoverlabel.bgcolor`.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["bordercolor"]
+
+ @bordercolor.setter
+ def bordercolor(self, val):
+ self["bordercolor"] = val
+
+ @property
+ def font(self):
+ """
+ Sets the hover label text font. By default uses the global
+ hover font and size, with color from `hoverlabel.bordercolor`.
+
+ The 'font' property is an instance of Font
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.annotation.hoverlabel.Font`
+ - A dict of string/value properties that will be passed
+ to the Font constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.annotation.hoverlabel.Font
+ """
+ return self["font"]
+
+ @font.setter
+ def font(self, val):
+ self["font"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ bgcolor
+ Sets the background color of the hover label. By
+ default uses the annotation's `bgcolor` made opaque, or
+ white if it was transparent.
+ bordercolor
+ Sets the border color of the hover label. By default
+ uses either dark grey or white, for maximum contrast
+ with `hoverlabel.bgcolor`.
+ font
+ Sets the hover label text font. By default uses the
+ global hover font and size, with color from
+ `hoverlabel.bordercolor`.
+ """
+
+ def __init__(self, arg=None, bgcolor=None, bordercolor=None, font=None, **kwargs):
+ """
+ Construct a new Hoverlabel object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.annotation.Hoverlabel`
+ bgcolor
+ Sets the background color of the hover label. By
+ default uses the annotation's `bgcolor` made opaque, or
+ white if it was transparent.
+ bordercolor
+ Sets the border color of the hover label. By default
+ uses either dark grey or white, for maximum contrast
+ with `hoverlabel.bgcolor`.
+ font
+ Sets the hover label text font. By default uses the
+ global hover font and size, with color from
+ `hoverlabel.bordercolor`.
+
+ Returns
+ -------
+ Hoverlabel
+ """
+ super().__init__("hoverlabel")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.annotation.Hoverlabel
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.annotation.Hoverlabel`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("bgcolor", arg, bgcolor)
+ self._set_property("bordercolor", arg, bordercolor)
+ self._set_property("font", arg, font)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/annotation/hoverlabel/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/annotation/hoverlabel/__init__.py
new file mode 100644
index 0000000..56f600d
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/annotation/hoverlabel/__init__.py
@@ -0,0 +1,9 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._font import Font
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/annotation/hoverlabel/_font.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/annotation/hoverlabel/_font.py
new file mode 100644
index 0000000..b3a561e
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/annotation/hoverlabel/_font.py
@@ -0,0 +1,335 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Font(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.annotation.hoverlabel"
+ _path_str = "layout.annotation.hoverlabel.font"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Font object
+
+ Sets the hover label text font. By default uses the global
+ hover font and size, with color from `hoverlabel.bordercolor`.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.annotat
+ ion.hoverlabel.Font`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Font
+ """
+ super().__init__("font")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.annotation.hoverlabel.Font
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.annotation.hoverlabel.Font`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/__init__.py
new file mode 100644
index 0000000..5e06f9a
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/__init__.py
@@ -0,0 +1,12 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._colorbar import ColorBar
+ from . import colorbar
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__, [".colorbar"], ["._colorbar.ColorBar"]
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/_colorbar.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/_colorbar.py
new file mode 100644
index 0000000..0749ad3
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/_colorbar.py
@@ -0,0 +1,1722 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class ColorBar(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.coloraxis"
+ _path_str = "layout.coloraxis.colorbar"
+ _valid_props = {
+ "bgcolor",
+ "bordercolor",
+ "borderwidth",
+ "dtick",
+ "exponentformat",
+ "labelalias",
+ "len",
+ "lenmode",
+ "minexponent",
+ "nticks",
+ "orientation",
+ "outlinecolor",
+ "outlinewidth",
+ "separatethousands",
+ "showexponent",
+ "showticklabels",
+ "showtickprefix",
+ "showticksuffix",
+ "thickness",
+ "thicknessmode",
+ "tick0",
+ "tickangle",
+ "tickcolor",
+ "tickfont",
+ "tickformat",
+ "tickformatstopdefaults",
+ "tickformatstops",
+ "ticklabeloverflow",
+ "ticklabelposition",
+ "ticklabelstep",
+ "ticklen",
+ "tickmode",
+ "tickprefix",
+ "ticks",
+ "ticksuffix",
+ "ticktext",
+ "ticktextsrc",
+ "tickvals",
+ "tickvalssrc",
+ "tickwidth",
+ "title",
+ "x",
+ "xanchor",
+ "xpad",
+ "xref",
+ "y",
+ "yanchor",
+ "ypad",
+ "yref",
+ }
+
+ @property
+ def bgcolor(self):
+ """
+ Sets the color of padded area.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["bgcolor"]
+
+ @bgcolor.setter
+ def bgcolor(self, val):
+ self["bgcolor"] = val
+
+ @property
+ def bordercolor(self):
+ """
+ Sets the axis line color.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["bordercolor"]
+
+ @bordercolor.setter
+ def bordercolor(self, val):
+ self["bordercolor"] = val
+
+ @property
+ def borderwidth(self):
+ """
+ Sets the width (in px) or the border enclosing this color bar.
+
+ 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
+
+ @property
+ def dtick(self):
+ """
+ Sets the step in-between ticks on this axis. Use with `tick0`.
+ Must be a positive number, or special strings available to
+ "log" and "date" axes. If the axis `type` is "log", then ticks
+ are set every 10^(n*dtick) where n is the tick number. For
+ example, to set a tick mark at 1, 10, 100, 1000, ... set dtick
+ to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2.
+ To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special values;
+ "L<f>", where `f` is a positive number, gives ticks linearly
+ spaced in value (but not position). For example `tick0` = 0.1,
+ `dtick` = "L0.5" will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To
+ show powers of 10 plus small digits between, use "D1" (all
+ digits) or "D2" (only 2 and 5). `tick0` is ignored for "D1" and
+ "D2". If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval between
+ ticks to one day, set `dtick` to 86400000.0. "date" also has
+ special values "M<n>" gives ticks spaced by a number of months.
+ `n` must be a positive integer. To set ticks on the 15th of
+ every third month, set `tick0` to "2000-01-15" and `dtick` to
+ "M3". To set ticks every 4 years, set `dtick` to "M48"
+
+ The 'dtick' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["dtick"]
+
+ @dtick.setter
+ def dtick(self, val):
+ self["dtick"] = val
+
+ @property
+ def exponentformat(self):
+ """
+ Determines a formatting rule for the tick exponents. For
+ example, consider the number 1,000,000,000. If "none", it
+ appears as 1,000,000,000. If "e", 1e+9. If "E", 1E+9. If
+ "power", 1x10^9 (with 9 in a super script). If "SI", 1G. If
+ "B", 1B.
+
+ The 'exponentformat' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['none', 'e', 'E', 'power', 'SI', 'B']
+
+ Returns
+ -------
+ Any
+ """
+ return self["exponentformat"]
+
+ @exponentformat.setter
+ def exponentformat(self, val):
+ self["exponentformat"] = val
+
+ @property
+ def labelalias(self):
+ """
+ Replacement text for specific tick or hover labels. For example
+ using {US: 'USA', CA: 'Canada'} changes US to USA and CA to
+ Canada. The labels we would have shown must match the keys
+ exactly, after adding any tickprefix or ticksuffix. For
+ negative numbers the minus sign symbol used (U+2212) is wider
+ than the regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis type, and
+ both keys (if needed) and values (if desired) can include html-
+ like tags or MathJax.
+
+ The 'labelalias' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["labelalias"]
+
+ @labelalias.setter
+ def labelalias(self, val):
+ self["labelalias"] = val
+
+ @property
+ def len(self):
+ """
+ Sets the length of the color bar This measure excludes the
+ padding of both ends. That is, the color bar length is this
+ length minus the padding on both ends.
+
+ The 'len' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["len"]
+
+ @len.setter
+ def len(self, val):
+ self["len"] = val
+
+ @property
+ def lenmode(self):
+ """
+ Determines whether this color bar's length (i.e. the measure in
+ the color variation direction) is set in units of plot
+ "fraction" or in *pixels. Use `len` to set the value.
+
+ The 'lenmode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['fraction', 'pixels']
+
+ Returns
+ -------
+ Any
+ """
+ return self["lenmode"]
+
+ @lenmode.setter
+ def lenmode(self, val):
+ self["lenmode"] = val
+
+ @property
+ def minexponent(self):
+ """
+ Hide SI prefix for 10^n if |n| is below this number. This only
+ has an effect when `tickformat` is "SI" or "B".
+
+ The 'minexponent' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["minexponent"]
+
+ @minexponent.setter
+ def minexponent(self, val):
+ self["minexponent"] = val
+
+ @property
+ def nticks(self):
+ """
+ Specifies the maximum number of ticks for the particular axis.
+ The actual number of ticks will be chosen automatically to be
+ less than or equal to `nticks`. Has an effect only if
+ `tickmode` is set to "auto".
+
+ The 'nticks' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [0, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["nticks"]
+
+ @nticks.setter
+ def nticks(self, val):
+ self["nticks"] = val
+
+ @property
+ def orientation(self):
+ """
+ Sets the orientation of the colorbar.
+
+ The 'orientation' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['h', 'v']
+
+ Returns
+ -------
+ Any
+ """
+ return self["orientation"]
+
+ @orientation.setter
+ def orientation(self, val):
+ self["orientation"] = val
+
+ @property
+ def outlinecolor(self):
+ """
+ Sets the axis line color.
+
+ The 'outlinecolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["outlinecolor"]
+
+ @outlinecolor.setter
+ def outlinecolor(self, val):
+ self["outlinecolor"] = val
+
+ @property
+ def outlinewidth(self):
+ """
+ Sets the width (in px) of the axis line.
+
+ The 'outlinewidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["outlinewidth"]
+
+ @outlinewidth.setter
+ def outlinewidth(self, val):
+ self["outlinewidth"] = val
+
+ @property
+ def separatethousands(self):
+ """
+ If "true", even 4-digit integers are separated
+
+ The 'separatethousands' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["separatethousands"]
+
+ @separatethousands.setter
+ def separatethousands(self, val):
+ self["separatethousands"] = val
+
+ @property
+ def showexponent(self):
+ """
+ If "all", all exponents are shown besides their significands.
+ If "first", only the exponent of the first tick is shown. If
+ "last", only the exponent of the last tick is shown. If "none",
+ no exponents appear.
+
+ The 'showexponent' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showexponent"]
+
+ @showexponent.setter
+ def showexponent(self, val):
+ self["showexponent"] = val
+
+ @property
+ def showticklabels(self):
+ """
+ Determines whether or not the tick labels are drawn.
+
+ The 'showticklabels' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showticklabels"]
+
+ @showticklabels.setter
+ def showticklabels(self, val):
+ self["showticklabels"] = val
+
+ @property
+ def showtickprefix(self):
+ """
+ If "all", all tick labels are displayed with a prefix. If
+ "first", only the first tick is displayed with a prefix. If
+ "last", only the last tick is displayed with a suffix. If
+ "none", tick prefixes are hidden.
+
+ The 'showtickprefix' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showtickprefix"]
+
+ @showtickprefix.setter
+ def showtickprefix(self, val):
+ self["showtickprefix"] = val
+
+ @property
+ def showticksuffix(self):
+ """
+ Same as `showtickprefix` but for tick suffixes.
+
+ The 'showticksuffix' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showticksuffix"]
+
+ @showticksuffix.setter
+ def showticksuffix(self, val):
+ self["showticksuffix"] = val
+
+ @property
+ def thickness(self):
+ """
+ Sets the thickness of the color bar This measure excludes the
+ size of the padding, ticks and labels.
+
+ The 'thickness' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["thickness"]
+
+ @thickness.setter
+ def thickness(self, val):
+ self["thickness"] = val
+
+ @property
+ def thicknessmode(self):
+ """
+ Determines whether this color bar's thickness (i.e. the measure
+ in the constant color direction) is set in units of plot
+ "fraction" or in "pixels". Use `thickness` to set the value.
+
+ The 'thicknessmode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['fraction', 'pixels']
+
+ Returns
+ -------
+ Any
+ """
+ return self["thicknessmode"]
+
+ @thicknessmode.setter
+ def thicknessmode(self, val):
+ self["thicknessmode"] = val
+
+ @property
+ def tick0(self):
+ """
+ Sets the placement of the first tick on this axis. Use with
+ `dtick`. If the axis `type` is "log", then you must take the
+ log of your starting tick (e.g. to set the starting tick to
+ 100, set the `tick0` to 2) except when `dtick`=*L<f>* (see
+ `dtick` for more info). If the axis `type` is "date", it should
+ be a date string, like date data. If the axis `type` is
+ "category", it should be a number, using the scale where each
+ category is assigned a serial number from zero in the order it
+ appears.
+
+ The 'tick0' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["tick0"]
+
+ @tick0.setter
+ def tick0(self, val):
+ self["tick0"] = val
+
+ @property
+ def tickangle(self):
+ """
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the tick
+ labels vertically.
+
+ The 'tickangle' property is a angle (in degrees) that may be
+ specified as a number between -180 and 180.
+ Numeric values outside this range are converted to the equivalent value
+ (e.g. 270 is converted to -90).
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tickangle"]
+
+ @tickangle.setter
+ def tickangle(self, val):
+ self["tickangle"] = val
+
+ @property
+ def tickcolor(self):
+ """
+ Sets the tick color.
+
+ The 'tickcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["tickcolor"]
+
+ @tickcolor.setter
+ def tickcolor(self, val):
+ self["tickcolor"] = val
+
+ @property
+ def tickfont(self):
+ """
+ Sets the color bar's tick label font
+
+ The 'tickfont' property is an instance of Tickfont
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.coloraxis.colorbar.Tickfont`
+ - A dict of string/value properties that will be passed
+ to the Tickfont constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.coloraxis.colorbar.Tickfont
+ """
+ return self["tickfont"]
+
+ @tickfont.setter
+ def tickfont(self, val):
+ self["tickfont"] = val
+
+ @property
+ def tickformat(self):
+ """
+ Sets the tick label formatting rule using d3 formatting mini-
+ languages which are very similar to those in Python. For
+ numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format. And for
+ dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to d3's date
+ formatter: "%h" for half of the year as a decimal number as
+ well as "%{n}f" for fractional seconds with n digits. For
+ example, *2016-10-13 09:15:23.456* with tickformat
+ "%H~%M~%S.%2f" would display "09~15~23.46"
+
+ The 'tickformat' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["tickformat"]
+
+ @tickformat.setter
+ def tickformat(self, val):
+ self["tickformat"] = val
+
+ @property
+ def tickformatstops(self):
+ """
+ The 'tickformatstops' property is a tuple of instances of
+ Tickformatstop that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.coloraxis.colorbar.Tickformatstop
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Tickformatstop constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.coloraxis.colorbar.Tickformatstop]
+ """
+ return self["tickformatstops"]
+
+ @tickformatstops.setter
+ def tickformatstops(self, val):
+ self["tickformatstops"] = val
+
+ @property
+ def tickformatstopdefaults(self):
+ """
+ When used in a template (as layout.template.layout.coloraxis.co
+ lorbar.tickformatstopdefaults), sets the default property
+ values to use for elements of
+ layout.coloraxis.colorbar.tickformatstops
+
+ The 'tickformatstopdefaults' property is an instance of Tickformatstop
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.coloraxis.colorbar.Tickformatstop`
+ - A dict of string/value properties that will be passed
+ to the Tickformatstop constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.coloraxis.colorbar.Tickformatstop
+ """
+ return self["tickformatstopdefaults"]
+
+ @tickformatstopdefaults.setter
+ def tickformatstopdefaults(self, val):
+ self["tickformatstopdefaults"] = val
+
+ @property
+ def ticklabeloverflow(self):
+ """
+ Determines how we handle tick labels that would overflow either
+ the graph div or the domain of the axis. The default value for
+ inside tick labels is *hide past domain*. In other cases the
+ default is *hide past div*.
+
+ The 'ticklabeloverflow' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['allow', 'hide past div', 'hide past domain']
+
+ Returns
+ -------
+ Any
+ """
+ return self["ticklabeloverflow"]
+
+ @ticklabeloverflow.setter
+ def ticklabeloverflow(self, val):
+ self["ticklabeloverflow"] = val
+
+ @property
+ def ticklabelposition(self):
+ """
+ Determines where tick labels are drawn relative to the ticks.
+ Left and right options are used when `orientation` is "h", top
+ and bottom when `orientation` is "v".
+
+ The 'ticklabelposition' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['outside', 'inside', 'outside top', 'inside top',
+ 'outside left', 'inside left', 'outside right', 'inside
+ right', 'outside bottom', 'inside bottom']
+
+ Returns
+ -------
+ Any
+ """
+ return self["ticklabelposition"]
+
+ @ticklabelposition.setter
+ def ticklabelposition(self, val):
+ self["ticklabelposition"] = val
+
+ @property
+ def ticklabelstep(self):
+ """
+ Sets the spacing between tick labels as compared to the spacing
+ between ticks. A value of 1 (default) means each tick gets a
+ label. A value of 2 means shows every 2nd label. A larger value
+ n means only every nth tick is labeled. `tick0` determines
+ which labels are shown. Not implemented for axes with `type`
+ "log" or "multicategory", or when `tickmode` is "array".
+
+ The 'ticklabelstep' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["ticklabelstep"]
+
+ @ticklabelstep.setter
+ def ticklabelstep(self, val):
+ self["ticklabelstep"] = val
+
+ @property
+ def ticklen(self):
+ """
+ Sets the tick length (in px).
+
+ The 'ticklen' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["ticklen"]
+
+ @ticklen.setter
+ def ticklen(self, val):
+ self["ticklen"] = val
+
+ @property
+ def tickmode(self):
+ """
+ Sets the tick mode for this axis. If "auto", the number of
+ ticks is set via `nticks`. If "linear", the placement of the
+ ticks is determined by a starting position `tick0` and a tick
+ step `dtick` ("linear" is the default value if `tick0` and
+ `dtick` are provided). If "array", the placement of the ticks
+ is set via `tickvals` and the tick text is `ticktext`. ("array"
+ is the default value if `tickvals` is provided).
+
+ The 'tickmode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['auto', 'linear', 'array']
+
+ Returns
+ -------
+ Any
+ """
+ return self["tickmode"]
+
+ @tickmode.setter
+ def tickmode(self, val):
+ self["tickmode"] = val
+
+ @property
+ def tickprefix(self):
+ """
+ Sets a tick label prefix.
+
+ The 'tickprefix' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["tickprefix"]
+
+ @tickprefix.setter
+ def tickprefix(self, val):
+ self["tickprefix"] = val
+
+ @property
+ def ticks(self):
+ """
+ Determines whether ticks are drawn or not. If "", this axis'
+ ticks are not drawn. If "outside" ("inside"), this axis' are
+ drawn outside (inside) the axis lines.
+
+ The 'ticks' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['outside', 'inside', '']
+
+ Returns
+ -------
+ Any
+ """
+ return self["ticks"]
+
+ @ticks.setter
+ def ticks(self, val):
+ self["ticks"] = val
+
+ @property
+ def ticksuffix(self):
+ """
+ Sets a tick label suffix.
+
+ The 'ticksuffix' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["ticksuffix"]
+
+ @ticksuffix.setter
+ def ticksuffix(self, val):
+ self["ticksuffix"] = val
+
+ @property
+ def ticktext(self):
+ """
+ Sets the text displayed at the ticks position via `tickvals`.
+ Only has an effect if `tickmode` is set to "array". Used with
+ `tickvals`.
+
+ The 'ticktext' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["ticktext"]
+
+ @ticktext.setter
+ def ticktext(self, val):
+ self["ticktext"] = val
+
+ @property
+ def ticktextsrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `ticktext`.
+
+ The 'ticktextsrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["ticktextsrc"]
+
+ @ticktextsrc.setter
+ def ticktextsrc(self, val):
+ self["ticktextsrc"] = val
+
+ @property
+ def tickvals(self):
+ """
+ Sets the values at which ticks on this axis appear. Only has an
+ effect if `tickmode` is set to "array". Used with `ticktext`.
+
+ The 'tickvals' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["tickvals"]
+
+ @tickvals.setter
+ def tickvals(self, val):
+ self["tickvals"] = val
+
+ @property
+ def tickvalssrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `tickvals`.
+
+ The 'tickvalssrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["tickvalssrc"]
+
+ @tickvalssrc.setter
+ def tickvalssrc(self, val):
+ self["tickvalssrc"] = val
+
+ @property
+ def tickwidth(self):
+ """
+ Sets the tick width (in px).
+
+ The 'tickwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tickwidth"]
+
+ @tickwidth.setter
+ def tickwidth(self, val):
+ self["tickwidth"] = val
+
+ @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.coloraxis.colorbar.Title`
+ - A dict of string/value properties that will be passed
+ to the Title constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.coloraxis.colorbar.Title
+ """
+ return self["title"]
+
+ @title.setter
+ def title(self, val):
+ self["title"] = val
+
+ @property
+ def x(self):
+ """
+ Sets the x position with respect to `xref` of the color bar (in
+ plot fraction). When `xref` is "paper", defaults to 1.02 when
+ `orientation` is "v" and 0.5 when `orientation` is "h". When
+ `xref` is "container", defaults to 1 when `orientation` is "v"
+ and 0.5 when `orientation` is "h". Must be between 0 and 1 if
+ `xref` is "container" and between "-2" and 3 if `xref` is
+ "paper".
+
+ The 'x' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["x"]
+
+ @x.setter
+ def x(self, val):
+ self["x"] = val
+
+ @property
+ def xanchor(self):
+ """
+ Sets this color bar's horizontal position anchor. This anchor
+ binds the `x` position to the "left", "center" or "right" of
+ the color bar. Defaults to "left" when `orientation` is "v" and
+ "center" when `orientation` is "h".
+
+ The 'xanchor' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['left', 'center', 'right']
+
+ Returns
+ -------
+ Any
+ """
+ return self["xanchor"]
+
+ @xanchor.setter
+ def xanchor(self, val):
+ self["xanchor"] = val
+
+ @property
+ def xpad(self):
+ """
+ Sets the amount of padding (in px) along the x direction.
+
+ The 'xpad' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["xpad"]
+
+ @xpad.setter
+ def xpad(self, val):
+ self["xpad"] = val
+
+ @property
+ def xref(self):
+ """
+ Sets the container `x` refers to. "container" spans the entire
+ `width` of the plot. "paper" refers to the width of the
+ plotting area only.
+
+ The 'xref' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['container', 'paper']
+
+ Returns
+ -------
+ Any
+ """
+ return self["xref"]
+
+ @xref.setter
+ def xref(self, val):
+ self["xref"] = val
+
+ @property
+ def y(self):
+ """
+ Sets the y position with respect to `yref` of the color bar (in
+ plot fraction). When `yref` is "paper", defaults to 0.5 when
+ `orientation` is "v" and 1.02 when `orientation` is "h". When
+ `yref` is "container", defaults to 0.5 when `orientation` is
+ "v" and 1 when `orientation` is "h". Must be between 0 and 1 if
+ `yref` is "container" and between "-2" and 3 if `yref` is
+ "paper".
+
+ The 'y' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["y"]
+
+ @y.setter
+ def y(self, val):
+ self["y"] = val
+
+ @property
+ def yanchor(self):
+ """
+ Sets this color bar's vertical position anchor This anchor
+ binds the `y` position to the "top", "middle" or "bottom" of
+ the color bar. Defaults to "middle" when `orientation` is "v"
+ and "bottom" when `orientation` is "h".
+
+ The 'yanchor' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['top', 'middle', 'bottom']
+
+ Returns
+ -------
+ Any
+ """
+ return self["yanchor"]
+
+ @yanchor.setter
+ def yanchor(self, val):
+ self["yanchor"] = val
+
+ @property
+ def ypad(self):
+ """
+ Sets the amount of padding (in px) along the y direction.
+
+ The 'ypad' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["ypad"]
+
+ @ypad.setter
+ def ypad(self, val):
+ self["ypad"] = val
+
+ @property
+ def yref(self):
+ """
+ Sets the container `y` refers to. "container" spans the entire
+ `height` of the plot. "paper" refers to the height of the
+ plotting area only.
+
+ The 'yref' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['container', 'paper']
+
+ Returns
+ -------
+ Any
+ """
+ return self["yref"]
+
+ @yref.setter
+ def yref(self, val):
+ self["yref"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ bgcolor
+ Sets the color of padded area.
+ bordercolor
+ Sets the axis line color.
+ borderwidth
+ Sets the width (in px) or the border enclosing this
+ color bar.
+ dtick
+ Sets the step in-between ticks on this axis. Use with
+ `tick0`. Must be a positive number, or special strings
+ available to "log" and "date" axes. If the axis `type`
+ is "log", then ticks are set every 10^(n*dtick) where n
+ is the tick number. For example, to set a tick mark at
+ 1, 10, 100, 1000, ... set dtick to 1. To set tick marks
+ at 1, 100, 10000, ... set dtick to 2. To set tick marks
+ at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special
+ values; "L<f>", where `f` is a positive number, gives
+ ticks linearly spaced in value (but not position). For
+ example `tick0` = 0.1, `dtick` = "L0.5" will put ticks
+ at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus
+ small digits between, use "D1" (all digits) or "D2"
+ (only 2 and 5). `tick0` is ignored for "D1" and "D2".
+ If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval
+ between ticks to one day, set `dtick` to 86400000.0.
+ "date" also has special values "M<n>" gives ticks
+ spaced by a number of months. `n` must be a positive
+ integer. To set ticks on the 15th of every third month,
+ set `tick0` to "2000-01-15" and `dtick` to "M3". To set
+ ticks every 4 years, set `dtick` to "M48"
+ exponentformat
+ Determines a formatting rule for the tick exponents.
+ For example, consider the number 1,000,000,000. If
+ "none", it appears as 1,000,000,000. If "e", 1e+9. If
+ "E", 1E+9. If "power", 1x10^9 (with 9 in a super
+ script). If "SI", 1G. If "B", 1B.
+ labelalias
+ Replacement text for specific tick or hover labels. For
+ example using {US: 'USA', CA: 'Canada'} changes US to
+ USA and CA to Canada. The labels we would have shown
+ must match the keys exactly, after adding any
+ tickprefix or ticksuffix. For negative numbers the
+ minus sign symbol used (U+2212) is wider than the
+ regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis
+ type, and both keys (if needed) and values (if desired)
+ can include html-like tags or MathJax.
+ len
+ Sets the length of the color bar This measure excludes
+ the padding of both ends. That is, the color bar length
+ is this length minus the padding on both ends.
+ lenmode
+ Determines whether this color bar's length (i.e. the
+ measure in the color variation direction) is set in
+ units of plot "fraction" or in *pixels. Use `len` to
+ set the value.
+ minexponent
+ Hide SI prefix for 10^n if |n| is below this number.
+ This only has an effect when `tickformat` is "SI" or
+ "B".
+ nticks
+ Specifies the maximum number of ticks for the
+ particular axis. The actual number of ticks will be
+ chosen automatically to be less than or equal to
+ `nticks`. Has an effect only if `tickmode` is set to
+ "auto".
+ orientation
+ Sets the orientation of the colorbar.
+ outlinecolor
+ Sets the axis line color.
+ outlinewidth
+ Sets the width (in px) of the axis line.
+ separatethousands
+ If "true", even 4-digit integers are separated
+ showexponent
+ If "all", all exponents are shown besides their
+ significands. If "first", only the exponent of the
+ first tick is shown. If "last", only the exponent of
+ the last tick is shown. If "none", no exponents appear.
+ showticklabels
+ Determines whether or not the tick labels are drawn.
+ showtickprefix
+ If "all", all tick labels are displayed with a prefix.
+ If "first", only the first tick is displayed with a
+ prefix. If "last", only the last tick is displayed with
+ a suffix. If "none", tick prefixes are hidden.
+ showticksuffix
+ Same as `showtickprefix` but for tick suffixes.
+ thickness
+ Sets the thickness of the color bar This measure
+ excludes the size of the padding, ticks and labels.
+ thicknessmode
+ Determines whether this color bar's thickness (i.e. the
+ measure in the constant color direction) is set in
+ units of plot "fraction" or in "pixels". Use
+ `thickness` to set the value.
+ tick0
+ Sets the placement of the first tick on this axis. Use
+ with `dtick`. If the axis `type` is "log", then you
+ must take the log of your starting tick (e.g. to set
+ the starting tick to 100, set the `tick0` to 2) except
+ when `dtick`=*L<f>* (see `dtick` for more info). If the
+ axis `type` is "date", it should be a date string, like
+ date data. If the axis `type` is "category", it should
+ be a number, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears.
+ tickangle
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the
+ tick labels vertically.
+ tickcolor
+ Sets the tick color.
+ tickfont
+ Sets the color bar's tick label font
+ tickformat
+ Sets the tick label formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ tickformatstops
+ A tuple of :class:`plotly.graph_objects.layout.coloraxi
+ s.colorbar.Tickformatstop` instances or dicts with
+ compatible properties
+ tickformatstopdefaults
+ When used in a template (as layout.template.layout.colo
+ raxis.colorbar.tickformatstopdefaults), sets the
+ default property values to use for elements of
+ layout.coloraxis.colorbar.tickformatstops
+ ticklabeloverflow
+ Determines how we handle tick labels that would
+ overflow either the graph div or the domain of the
+ axis. The default value for inside tick labels is *hide
+ past domain*. In other cases the default is *hide past
+ div*.
+ ticklabelposition
+ Determines where tick labels are drawn relative to the
+ ticks. Left and right options are used when
+ `orientation` is "h", top and bottom when `orientation`
+ is "v".
+ ticklabelstep
+ Sets the spacing between tick labels as compared to the
+ spacing between ticks. A value of 1 (default) means
+ each tick gets a label. A value of 2 means shows every
+ 2nd label. A larger value n means only every nth tick
+ is labeled. `tick0` determines which labels are shown.
+ Not implemented for axes with `type` "log" or
+ "multicategory", or when `tickmode` is "array".
+ ticklen
+ Sets the tick length (in px).
+ tickmode
+ Sets the tick mode for this axis. If "auto", the number
+ of ticks is set via `nticks`. If "linear", the
+ placement of the ticks is determined by a starting
+ position `tick0` and a tick step `dtick` ("linear" is
+ the default value if `tick0` and `dtick` are provided).
+ If "array", the placement of the ticks is set via
+ `tickvals` and the tick text is `ticktext`. ("array" is
+ the default value if `tickvals` is provided).
+ tickprefix
+ Sets a tick label prefix.
+ ticks
+ Determines whether ticks are drawn or not. If "", this
+ axis' ticks are not drawn. If "outside" ("inside"),
+ this axis' are drawn outside (inside) the axis lines.
+ ticksuffix
+ Sets a tick label suffix.
+ ticktext
+ Sets the text displayed at the ticks position via
+ `tickvals`. Only has an effect if `tickmode` is set to
+ "array". Used with `tickvals`.
+ ticktextsrc
+ Sets the source reference on Chart Studio Cloud for
+ `ticktext`.
+ tickvals
+ Sets the values at which ticks on this axis appear.
+ Only has an effect if `tickmode` is set to "array".
+ Used with `ticktext`.
+ tickvalssrc
+ Sets the source reference on Chart Studio Cloud for
+ `tickvals`.
+ tickwidth
+ Sets the tick width (in px).
+ title
+ :class:`plotly.graph_objects.layout.coloraxis.colorbar.
+ Title` instance or dict with compatible properties
+ x
+ Sets the x position with respect to `xref` of the color
+ bar (in plot fraction). When `xref` is "paper",
+ defaults to 1.02 when `orientation` is "v" and 0.5 when
+ `orientation` is "h". When `xref` is "container",
+ defaults to 1 when `orientation` is "v" and 0.5 when
+ `orientation` is "h". Must be between 0 and 1 if `xref`
+ is "container" and between "-2" and 3 if `xref` is
+ "paper".
+ xanchor
+ Sets this color bar's horizontal position anchor. This
+ anchor binds the `x` position to the "left", "center"
+ or "right" of the color bar. Defaults to "left" when
+ `orientation` is "v" and "center" when `orientation` is
+ "h".
+ xpad
+ Sets the amount of padding (in px) along the x
+ direction.
+ xref
+ Sets the container `x` refers to. "container" spans the
+ entire `width` of the plot. "paper" refers to the width
+ of the plotting area only.
+ y
+ Sets the y position with respect to `yref` of the color
+ bar (in plot fraction). When `yref` is "paper",
+ defaults to 0.5 when `orientation` is "v" and 1.02 when
+ `orientation` is "h". When `yref` is "container",
+ defaults to 0.5 when `orientation` is "v" and 1 when
+ `orientation` is "h". Must be between 0 and 1 if `yref`
+ is "container" and between "-2" and 3 if `yref` is
+ "paper".
+ yanchor
+ Sets this color bar's vertical position anchor This
+ anchor binds the `y` position to the "top", "middle" or
+ "bottom" of the color bar. Defaults to "middle" when
+ `orientation` is "v" and "bottom" when `orientation` is
+ "h".
+ ypad
+ Sets the amount of padding (in px) along the y
+ direction.
+ yref
+ Sets the container `y` refers to. "container" spans the
+ entire `height` of the plot. "paper" refers to the
+ height of the plotting area only.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ bgcolor=None,
+ bordercolor=None,
+ borderwidth=None,
+ dtick=None,
+ exponentformat=None,
+ labelalias=None,
+ len=None,
+ lenmode=None,
+ minexponent=None,
+ nticks=None,
+ orientation=None,
+ outlinecolor=None,
+ outlinewidth=None,
+ separatethousands=None,
+ showexponent=None,
+ showticklabels=None,
+ showtickprefix=None,
+ showticksuffix=None,
+ thickness=None,
+ thicknessmode=None,
+ tick0=None,
+ tickangle=None,
+ tickcolor=None,
+ tickfont=None,
+ tickformat=None,
+ tickformatstops=None,
+ tickformatstopdefaults=None,
+ ticklabeloverflow=None,
+ ticklabelposition=None,
+ ticklabelstep=None,
+ ticklen=None,
+ tickmode=None,
+ tickprefix=None,
+ ticks=None,
+ ticksuffix=None,
+ ticktext=None,
+ ticktextsrc=None,
+ tickvals=None,
+ tickvalssrc=None,
+ tickwidth=None,
+ title=None,
+ x=None,
+ xanchor=None,
+ xpad=None,
+ xref=None,
+ y=None,
+ yanchor=None,
+ ypad=None,
+ yref=None,
+ **kwargs,
+ ):
+ """
+ Construct a new ColorBar object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.coloraxis.ColorBar`
+ bgcolor
+ Sets the color of padded area.
+ bordercolor
+ Sets the axis line color.
+ borderwidth
+ Sets the width (in px) or the border enclosing this
+ color bar.
+ dtick
+ Sets the step in-between ticks on this axis. Use with
+ `tick0`. Must be a positive number, or special strings
+ available to "log" and "date" axes. If the axis `type`
+ is "log", then ticks are set every 10^(n*dtick) where n
+ is the tick number. For example, to set a tick mark at
+ 1, 10, 100, 1000, ... set dtick to 1. To set tick marks
+ at 1, 100, 10000, ... set dtick to 2. To set tick marks
+ at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special
+ values; "L<f>", where `f` is a positive number, gives
+ ticks linearly spaced in value (but not position). For
+ example `tick0` = 0.1, `dtick` = "L0.5" will put ticks
+ at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus
+ small digits between, use "D1" (all digits) or "D2"
+ (only 2 and 5). `tick0` is ignored for "D1" and "D2".
+ If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval
+ between ticks to one day, set `dtick` to 86400000.0.
+ "date" also has special values "M<n>" gives ticks
+ spaced by a number of months. `n` must be a positive
+ integer. To set ticks on the 15th of every third month,
+ set `tick0` to "2000-01-15" and `dtick` to "M3". To set
+ ticks every 4 years, set `dtick` to "M48"
+ exponentformat
+ Determines a formatting rule for the tick exponents.
+ For example, consider the number 1,000,000,000. If
+ "none", it appears as 1,000,000,000. If "e", 1e+9. If
+ "E", 1E+9. If "power", 1x10^9 (with 9 in a super
+ script). If "SI", 1G. If "B", 1B.
+ labelalias
+ Replacement text for specific tick or hover labels. For
+ example using {US: 'USA', CA: 'Canada'} changes US to
+ USA and CA to Canada. The labels we would have shown
+ must match the keys exactly, after adding any
+ tickprefix or ticksuffix. For negative numbers the
+ minus sign symbol used (U+2212) is wider than the
+ regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis
+ type, and both keys (if needed) and values (if desired)
+ can include html-like tags or MathJax.
+ len
+ Sets the length of the color bar This measure excludes
+ the padding of both ends. That is, the color bar length
+ is this length minus the padding on both ends.
+ lenmode
+ Determines whether this color bar's length (i.e. the
+ measure in the color variation direction) is set in
+ units of plot "fraction" or in *pixels. Use `len` to
+ set the value.
+ minexponent
+ Hide SI prefix for 10^n if |n| is below this number.
+ This only has an effect when `tickformat` is "SI" or
+ "B".
+ nticks
+ Specifies the maximum number of ticks for the
+ particular axis. The actual number of ticks will be
+ chosen automatically to be less than or equal to
+ `nticks`. Has an effect only if `tickmode` is set to
+ "auto".
+ orientation
+ Sets the orientation of the colorbar.
+ outlinecolor
+ Sets the axis line color.
+ outlinewidth
+ Sets the width (in px) of the axis line.
+ separatethousands
+ If "true", even 4-digit integers are separated
+ showexponent
+ If "all", all exponents are shown besides their
+ significands. If "first", only the exponent of the
+ first tick is shown. If "last", only the exponent of
+ the last tick is shown. If "none", no exponents appear.
+ showticklabels
+ Determines whether or not the tick labels are drawn.
+ showtickprefix
+ If "all", all tick labels are displayed with a prefix.
+ If "first", only the first tick is displayed with a
+ prefix. If "last", only the last tick is displayed with
+ a suffix. If "none", tick prefixes are hidden.
+ showticksuffix
+ Same as `showtickprefix` but for tick suffixes.
+ thickness
+ Sets the thickness of the color bar This measure
+ excludes the size of the padding, ticks and labels.
+ thicknessmode
+ Determines whether this color bar's thickness (i.e. the
+ measure in the constant color direction) is set in
+ units of plot "fraction" or in "pixels". Use
+ `thickness` to set the value.
+ tick0
+ Sets the placement of the first tick on this axis. Use
+ with `dtick`. If the axis `type` is "log", then you
+ must take the log of your starting tick (e.g. to set
+ the starting tick to 100, set the `tick0` to 2) except
+ when `dtick`=*L<f>* (see `dtick` for more info). If the
+ axis `type` is "date", it should be a date string, like
+ date data. If the axis `type` is "category", it should
+ be a number, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears.
+ tickangle
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the
+ tick labels vertically.
+ tickcolor
+ Sets the tick color.
+ tickfont
+ Sets the color bar's tick label font
+ tickformat
+ Sets the tick label formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ tickformatstops
+ A tuple of :class:`plotly.graph_objects.layout.coloraxi
+ s.colorbar.Tickformatstop` instances or dicts with
+ compatible properties
+ tickformatstopdefaults
+ When used in a template (as layout.template.layout.colo
+ raxis.colorbar.tickformatstopdefaults), sets the
+ default property values to use for elements of
+ layout.coloraxis.colorbar.tickformatstops
+ ticklabeloverflow
+ Determines how we handle tick labels that would
+ overflow either the graph div or the domain of the
+ axis. The default value for inside tick labels is *hide
+ past domain*. In other cases the default is *hide past
+ div*.
+ ticklabelposition
+ Determines where tick labels are drawn relative to the
+ ticks. Left and right options are used when
+ `orientation` is "h", top and bottom when `orientation`
+ is "v".
+ ticklabelstep
+ Sets the spacing between tick labels as compared to the
+ spacing between ticks. A value of 1 (default) means
+ each tick gets a label. A value of 2 means shows every
+ 2nd label. A larger value n means only every nth tick
+ is labeled. `tick0` determines which labels are shown.
+ Not implemented for axes with `type` "log" or
+ "multicategory", or when `tickmode` is "array".
+ ticklen
+ Sets the tick length (in px).
+ tickmode
+ Sets the tick mode for this axis. If "auto", the number
+ of ticks is set via `nticks`. If "linear", the
+ placement of the ticks is determined by a starting
+ position `tick0` and a tick step `dtick` ("linear" is
+ the default value if `tick0` and `dtick` are provided).
+ If "array", the placement of the ticks is set via
+ `tickvals` and the tick text is `ticktext`. ("array" is
+ the default value if `tickvals` is provided).
+ tickprefix
+ Sets a tick label prefix.
+ ticks
+ Determines whether ticks are drawn or not. If "", this
+ axis' ticks are not drawn. If "outside" ("inside"),
+ this axis' are drawn outside (inside) the axis lines.
+ ticksuffix
+ Sets a tick label suffix.
+ ticktext
+ Sets the text displayed at the ticks position via
+ `tickvals`. Only has an effect if `tickmode` is set to
+ "array". Used with `tickvals`.
+ ticktextsrc
+ Sets the source reference on Chart Studio Cloud for
+ `ticktext`.
+ tickvals
+ Sets the values at which ticks on this axis appear.
+ Only has an effect if `tickmode` is set to "array".
+ Used with `ticktext`.
+ tickvalssrc
+ Sets the source reference on Chart Studio Cloud for
+ `tickvals`.
+ tickwidth
+ Sets the tick width (in px).
+ title
+ :class:`plotly.graph_objects.layout.coloraxis.colorbar.
+ Title` instance or dict with compatible properties
+ x
+ Sets the x position with respect to `xref` of the color
+ bar (in plot fraction). When `xref` is "paper",
+ defaults to 1.02 when `orientation` is "v" and 0.5 when
+ `orientation` is "h". When `xref` is "container",
+ defaults to 1 when `orientation` is "v" and 0.5 when
+ `orientation` is "h". Must be between 0 and 1 if `xref`
+ is "container" and between "-2" and 3 if `xref` is
+ "paper".
+ xanchor
+ Sets this color bar's horizontal position anchor. This
+ anchor binds the `x` position to the "left", "center"
+ or "right" of the color bar. Defaults to "left" when
+ `orientation` is "v" and "center" when `orientation` is
+ "h".
+ xpad
+ Sets the amount of padding (in px) along the x
+ direction.
+ xref
+ Sets the container `x` refers to. "container" spans the
+ entire `width` of the plot. "paper" refers to the width
+ of the plotting area only.
+ y
+ Sets the y position with respect to `yref` of the color
+ bar (in plot fraction). When `yref` is "paper",
+ defaults to 0.5 when `orientation` is "v" and 1.02 when
+ `orientation` is "h". When `yref` is "container",
+ defaults to 0.5 when `orientation` is "v" and 1 when
+ `orientation` is "h". Must be between 0 and 1 if `yref`
+ is "container" and between "-2" and 3 if `yref` is
+ "paper".
+ yanchor
+ Sets this color bar's vertical position anchor This
+ anchor binds the `y` position to the "top", "middle" or
+ "bottom" of the color bar. Defaults to "middle" when
+ `orientation` is "v" and "bottom" when `orientation` is
+ "h".
+ ypad
+ Sets the amount of padding (in px) along the y
+ direction.
+ yref
+ Sets the container `y` refers to. "container" spans the
+ entire `height` of the plot. "paper" refers to the
+ height of the plotting area only.
+
+ Returns
+ -------
+ ColorBar
+ """
+ super().__init__("colorbar")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.coloraxis.ColorBar
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.coloraxis.ColorBar`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("bgcolor", arg, bgcolor)
+ self._set_property("bordercolor", arg, bordercolor)
+ self._set_property("borderwidth", arg, borderwidth)
+ self._set_property("dtick", arg, dtick)
+ self._set_property("exponentformat", arg, exponentformat)
+ self._set_property("labelalias", arg, labelalias)
+ self._set_property("len", arg, len)
+ self._set_property("lenmode", arg, lenmode)
+ self._set_property("minexponent", arg, minexponent)
+ self._set_property("nticks", arg, nticks)
+ self._set_property("orientation", arg, orientation)
+ self._set_property("outlinecolor", arg, outlinecolor)
+ self._set_property("outlinewidth", arg, outlinewidth)
+ self._set_property("separatethousands", arg, separatethousands)
+ self._set_property("showexponent", arg, showexponent)
+ self._set_property("showticklabels", arg, showticklabels)
+ self._set_property("showtickprefix", arg, showtickprefix)
+ self._set_property("showticksuffix", arg, showticksuffix)
+ self._set_property("thickness", arg, thickness)
+ self._set_property("thicknessmode", arg, thicknessmode)
+ self._set_property("tick0", arg, tick0)
+ self._set_property("tickangle", arg, tickangle)
+ self._set_property("tickcolor", arg, tickcolor)
+ self._set_property("tickfont", arg, tickfont)
+ self._set_property("tickformat", arg, tickformat)
+ self._set_property("tickformatstops", arg, tickformatstops)
+ self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
+ self._set_property("ticklabeloverflow", arg, ticklabeloverflow)
+ self._set_property("ticklabelposition", arg, ticklabelposition)
+ self._set_property("ticklabelstep", arg, ticklabelstep)
+ self._set_property("ticklen", arg, ticklen)
+ self._set_property("tickmode", arg, tickmode)
+ self._set_property("tickprefix", arg, tickprefix)
+ self._set_property("ticks", arg, ticks)
+ self._set_property("ticksuffix", arg, ticksuffix)
+ self._set_property("ticktext", arg, ticktext)
+ self._set_property("ticktextsrc", arg, ticktextsrc)
+ self._set_property("tickvals", arg, tickvals)
+ self._set_property("tickvalssrc", arg, tickvalssrc)
+ self._set_property("tickwidth", arg, tickwidth)
+ self._set_property("title", arg, title)
+ self._set_property("x", arg, x)
+ self._set_property("xanchor", arg, xanchor)
+ self._set_property("xpad", arg, xpad)
+ self._set_property("xref", arg, xref)
+ self._set_property("y", arg, y)
+ self._set_property("yanchor", arg, yanchor)
+ self._set_property("ypad", arg, ypad)
+ self._set_property("yref", arg, yref)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/colorbar/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/colorbar/__init__.py
new file mode 100644
index 0000000..4690d3c
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/colorbar/__init__.py
@@ -0,0 +1,16 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._tickfont import Tickfont
+ from ._tickformatstop import Tickformatstop
+ from ._title import Title
+ from . import title
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__,
+ [".title"],
+ ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/colorbar/_tickfont.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/colorbar/_tickfont.py
new file mode 100644
index 0000000..146bfec
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/colorbar/_tickfont.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Tickfont(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.coloraxis.colorbar"
+ _path_str = "layout.coloraxis.colorbar.tickfont"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Tickfont object
+
+ Sets the color bar's tick label font
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.colorax
+ is.colorbar.Tickfont`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Tickfont
+ """
+ super().__init__("tickfont")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.coloraxis.colorbar.Tickfont
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.coloraxis.colorbar.Tickfont`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/colorbar/_tickformatstop.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/colorbar/_tickformatstop.py
new file mode 100644
index 0000000..2a971e1
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/colorbar/_tickformatstop.py
@@ -0,0 +1,241 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Tickformatstop(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.coloraxis.colorbar"
+ _path_str = "layout.coloraxis.colorbar.tickformatstop"
+ _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
+
+ @property
+ def dtickrange(self):
+ """
+ range [*min*, *max*], where "min", "max" - dtick values which
+ describe some zoom level, it is possible to omit "min" or "max"
+ value by passing "null"
+
+ The 'dtickrange' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'dtickrange[0]' property accepts values of any type
+ (1) The 'dtickrange[1]' property accepts values of any type
+
+ Returns
+ -------
+ list
+ """
+ return self["dtickrange"]
+
+ @dtickrange.setter
+ def dtickrange(self, val):
+ self["dtickrange"] = val
+
+ @property
+ def enabled(self):
+ """
+ Determines whether or not this stop is used. If `false`, this
+ stop is ignored even within its `dtickrange`.
+
+ The 'enabled' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["enabled"]
+
+ @enabled.setter
+ def enabled(self, val):
+ self["enabled"] = val
+
+ @property
+ def name(self):
+ """
+ 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.
+
+ The 'name' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["name"]
+
+ @name.setter
+ def name(self, val):
+ self["name"] = val
+
+ @property
+ def templateitemname(self):
+ """
+ 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`.
+
+ The 'templateitemname' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["templateitemname"]
+
+ @templateitemname.setter
+ def templateitemname(self, val):
+ self["templateitemname"] = val
+
+ @property
+ def value(self):
+ """
+ string - dtickformat for described zoom level, the same as
+ "tickformat"
+
+ The 'value' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["value"]
+
+ @value.setter
+ def value(self, val):
+ self["value"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ dtickrange
+ range [*min*, *max*], where "min", "max" - dtick values
+ which describe some zoom level, it is possible to omit
+ "min" or "max" value by passing "null"
+ enabled
+ Determines whether or not this stop is used. If
+ `false`, this stop is ignored even within its
+ `dtickrange`.
+ 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`.
+ value
+ string - dtickformat for described zoom level, the same
+ as "tickformat"
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ dtickrange=None,
+ enabled=None,
+ name=None,
+ templateitemname=None,
+ value=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Tickformatstop object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.colorax
+ is.colorbar.Tickformatstop`
+ dtickrange
+ range [*min*, *max*], where "min", "max" - dtick values
+ which describe some zoom level, it is possible to omit
+ "min" or "max" value by passing "null"
+ enabled
+ Determines whether or not this stop is used. If
+ `false`, this stop is ignored even within its
+ `dtickrange`.
+ 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`.
+ value
+ string - dtickformat for described zoom level, the same
+ as "tickformat"
+
+ Returns
+ -------
+ Tickformatstop
+ """
+ super().__init__("tickformatstops")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.coloraxis.colorbar.Tickformatstop
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.coloraxis.colorbar.Tickformatstop`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("dtickrange", arg, dtickrange)
+ self._set_property("enabled", arg, enabled)
+ self._set_property("name", arg, name)
+ self._set_property("templateitemname", arg, templateitemname)
+ self._set_property("value", arg, value)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/colorbar/_title.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/colorbar/_title.py
new file mode 100644
index 0000000..3f906c7
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/colorbar/_title.py
@@ -0,0 +1,136 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Title(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.coloraxis.colorbar"
+ _path_str = "layout.coloraxis.colorbar.title"
+ _valid_props = {"font", "side", "text"}
+
+ @property
+ def font(self):
+ """
+ Sets this color bar's title font.
+
+ The 'font' property is an instance of Font
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.coloraxis.colorbar.title.Font`
+ - A dict of string/value properties that will be passed
+ to the Font constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.coloraxis.colorbar.title.Font
+ """
+ return self["font"]
+
+ @font.setter
+ def font(self, val):
+ self["font"] = val
+
+ @property
+ def side(self):
+ """
+ Determines the location of color bar's title with respect to
+ the color bar. Defaults to "top" when `orientation` if "v" and
+ defaults to "right" when `orientation` if "h".
+
+ The 'side' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['right', 'top', 'bottom']
+
+ Returns
+ -------
+ Any
+ """
+ return self["side"]
+
+ @side.setter
+ def side(self, val):
+ self["side"] = val
+
+ @property
+ def text(self):
+ """
+ Sets the title of the color bar.
+
+ 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
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ font
+ Sets this color bar's title font.
+ side
+ Determines the location of color bar's title with
+ respect to the color bar. Defaults to "top" when
+ `orientation` if "v" and defaults to "right" when
+ `orientation` if "h".
+ text
+ Sets the title of the color bar.
+ """
+
+ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+ """
+ Construct a new Title object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.colorax
+ is.colorbar.Title`
+ font
+ Sets this color bar's title font.
+ side
+ Determines the location of color bar's title with
+ respect to the color bar. Defaults to "top" when
+ `orientation` if "v" and defaults to "right" when
+ `orientation` if "h".
+ text
+ Sets the title of the color bar.
+
+ Returns
+ -------
+ Title
+ """
+ super().__init__("title")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.coloraxis.colorbar.Title
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.coloraxis.colorbar.Title`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("font", arg, font)
+ self._set_property("side", arg, side)
+ self._set_property("text", arg, text)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/colorbar/title/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/colorbar/title/__init__.py
new file mode 100644
index 0000000..56f600d
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/colorbar/title/__init__.py
@@ -0,0 +1,9 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._font import Font
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/colorbar/title/_font.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/colorbar/title/_font.py
new file mode 100644
index 0000000..d151ff3
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/coloraxis/colorbar/title/_font.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Font(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.coloraxis.colorbar.title"
+ _path_str = "layout.coloraxis.colorbar.title.font"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Font object
+
+ Sets this color bar's title font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.colorax
+ is.colorbar.title.Font`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Font
+ """
+ super().__init__("font")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.coloraxis.colorbar.title.Font
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.coloraxis.colorbar.title.Font`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/__init__.py
new file mode 100644
index 0000000..22d3516
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/__init__.py
@@ -0,0 +1,24 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._center import Center
+ from ._domain import Domain
+ from ._lataxis import Lataxis
+ from ._lonaxis import Lonaxis
+ from ._projection import Projection
+ from . import projection
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__,
+ [".projection"],
+ [
+ "._center.Center",
+ "._domain.Domain",
+ "._lataxis.Lataxis",
+ "._lonaxis.Lonaxis",
+ "._projection.Projection",
+ ],
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/_center.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/_center.py
new file mode 100644
index 0000000..059d3a4
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/_center.py
@@ -0,0 +1,115 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Center(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.geo"
+ _path_str = "layout.geo.center"
+ _valid_props = {"lat", "lon"}
+
+ @property
+ def lat(self):
+ """
+ Sets the latitude of the map's center. For all projection
+ types, the map's latitude center lies at the middle of the
+ latitude range by default.
+
+ The 'lat' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["lat"]
+
+ @lat.setter
+ def lat(self, val):
+ self["lat"] = val
+
+ @property
+ def lon(self):
+ """
+ Sets the longitude of the map's center. By default, the map's
+ longitude center lies at the middle of the longitude range for
+ scoped projection and above `projection.rotation.lon`
+ otherwise.
+
+ The 'lon' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["lon"]
+
+ @lon.setter
+ def lon(self, val):
+ self["lon"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ lat
+ Sets the latitude of the map's center. For all
+ projection types, the map's latitude center lies at the
+ middle of the latitude range by default.
+ lon
+ Sets the longitude of the map's center. By default, the
+ map's longitude center lies at the middle of the
+ longitude range for scoped projection and above
+ `projection.rotation.lon` otherwise.
+ """
+
+ def __init__(self, arg=None, lat=None, lon=None, **kwargs):
+ """
+ Construct a new Center object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.geo.Center`
+ lat
+ Sets the latitude of the map's center. For all
+ projection types, the map's latitude center lies at the
+ middle of the latitude range by default.
+ lon
+ Sets the longitude of the map's center. By default, the
+ map's longitude center lies at the middle of the
+ longitude range for scoped projection and above
+ `projection.rotation.lon` otherwise.
+
+ Returns
+ -------
+ Center
+ """
+ super().__init__("center")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.geo.Center
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.geo.Center`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("lat", arg, lat)
+ self._set_property("lon", arg, lon)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/_domain.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/_domain.py
new file mode 100644
index 0000000..1869b41
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/_domain.py
@@ -0,0 +1,204 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Domain(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.geo"
+ _path_str = "layout.geo.domain"
+ _valid_props = {"column", "row", "x", "y"}
+
+ @property
+ def column(self):
+ """
+ If there is a layout grid, use the domain for this column in
+ the grid for this geo subplot . Note that geo subplots are
+ constrained by domain. In general, when `projection.scale` is
+ set to 1. a map will fit either its x or y domain, but not
+ both.
+
+ The 'column' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [0, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["column"]
+
+ @column.setter
+ def column(self, val):
+ self["column"] = val
+
+ @property
+ def row(self):
+ """
+ If there is a layout grid, use the domain for this row in the
+ grid for this geo subplot . Note that geo subplots are
+ constrained by domain. In general, when `projection.scale` is
+ set to 1. a map will fit either its x or y domain, but not
+ both.
+
+ The 'row' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [0, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["row"]
+
+ @row.setter
+ def row(self, val):
+ self["row"] = val
+
+ @property
+ def x(self):
+ """
+ Sets the horizontal domain of this geo subplot (in plot
+ fraction). Note that geo subplots are constrained by domain. In
+ general, when `projection.scale` is set to 1. a map will fit
+ either its x or y domain, but not both.
+
+ The 'x' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'x[0]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+ (1) The 'x[1]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ list
+ """
+ return self["x"]
+
+ @x.setter
+ def x(self, val):
+ self["x"] = val
+
+ @property
+ def y(self):
+ """
+ Sets the vertical domain of this geo subplot (in plot
+ fraction). Note that geo subplots are constrained by domain. In
+ general, when `projection.scale` is set to 1. a map will fit
+ either its x or y domain, but not both.
+
+ The 'y' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'y[0]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+ (1) The 'y[1]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ list
+ """
+ return self["y"]
+
+ @y.setter
+ def y(self, val):
+ self["y"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ column
+ If there is a layout grid, use the domain for this
+ column in the grid for this geo subplot . Note that geo
+ subplots are constrained by domain. In general, when
+ `projection.scale` is set to 1. a map will fit either
+ its x or y domain, but not both.
+ row
+ If there is a layout grid, use the domain for this row
+ in the grid for this geo subplot . Note that geo
+ subplots are constrained by domain. In general, when
+ `projection.scale` is set to 1. a map will fit either
+ its x or y domain, but not both.
+ x
+ Sets the horizontal domain of this geo subplot (in plot
+ fraction). Note that geo subplots are constrained by
+ domain. In general, when `projection.scale` is set to
+ 1. a map will fit either its x or y domain, but not
+ both.
+ y
+ Sets the vertical domain of this geo subplot (in plot
+ fraction). Note that geo subplots are constrained by
+ domain. In general, when `projection.scale` is set to
+ 1. a map will fit either its x or y domain, but not
+ both.
+ """
+
+ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
+ """
+ Construct a new Domain object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.geo.Domain`
+ column
+ If there is a layout grid, use the domain for this
+ column in the grid for this geo subplot . Note that geo
+ subplots are constrained by domain. In general, when
+ `projection.scale` is set to 1. a map will fit either
+ its x or y domain, but not both.
+ row
+ If there is a layout grid, use the domain for this row
+ in the grid for this geo subplot . Note that geo
+ subplots are constrained by domain. In general, when
+ `projection.scale` is set to 1. a map will fit either
+ its x or y domain, but not both.
+ x
+ Sets the horizontal domain of this geo subplot (in plot
+ fraction). Note that geo subplots are constrained by
+ domain. In general, when `projection.scale` is set to
+ 1. a map will fit either its x or y domain, but not
+ both.
+ y
+ Sets the vertical domain of this geo subplot (in plot
+ fraction). Note that geo subplots are constrained by
+ domain. In general, when `projection.scale` is set to
+ 1. a map will fit either its x or y domain, but not
+ both.
+
+ Returns
+ -------
+ Domain
+ """
+ super().__init__("domain")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.geo.Domain
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.geo.Domain`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("column", arg, column)
+ self._set_property("row", arg, row)
+ self._set_property("x", arg, x)
+ self._set_property("y", arg, y)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/_lataxis.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/_lataxis.py
new file mode 100644
index 0000000..fcaf4c8
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/_lataxis.py
@@ -0,0 +1,258 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Lataxis(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.geo"
+ _path_str = "layout.geo.lataxis"
+ _valid_props = {
+ "dtick",
+ "gridcolor",
+ "griddash",
+ "gridwidth",
+ "range",
+ "showgrid",
+ "tick0",
+ }
+
+ @property
+ def dtick(self):
+ """
+ Sets the graticule's longitude/latitude tick step.
+
+ The 'dtick' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["dtick"]
+
+ @dtick.setter
+ def dtick(self, val):
+ self["dtick"] = val
+
+ @property
+ def gridcolor(self):
+ """
+ Sets the graticule's stroke color.
+
+ The 'gridcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["gridcolor"]
+
+ @gridcolor.setter
+ def gridcolor(self, val):
+ self["gridcolor"] = val
+
+ @property
+ def griddash(self):
+ """
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+
+ The 'griddash' property is an enumeration that may be specified as:
+ - One of the following dash styles:
+ ['solid', 'dot', 'dash', 'longdash', 'dashdot', 'longdashdot']
+ - A string containing a dash length list in pixels or percentages
+ (e.g. '5px 10px 2px 2px', '5, 10, 2, 2', '10% 20% 40%', etc.)
+
+ Returns
+ -------
+ str
+ """
+ return self["griddash"]
+
+ @griddash.setter
+ def griddash(self, val):
+ self["griddash"] = val
+
+ @property
+ def gridwidth(self):
+ """
+ Sets the graticule's stroke width (in px).
+
+ The 'gridwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["gridwidth"]
+
+ @gridwidth.setter
+ def gridwidth(self, val):
+ self["gridwidth"] = val
+
+ @property
+ def range(self):
+ """
+ Sets the range of this axis (in degrees), sets the map's
+ clipped coordinates.
+
+ The 'range' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'range[0]' property is a number and may be specified as:
+ - An int or float
+ (1) The 'range[1]' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ list
+ """
+ return self["range"]
+
+ @range.setter
+ def range(self, val):
+ self["range"] = val
+
+ @property
+ def showgrid(self):
+ """
+ Sets whether or not graticule are shown on the map.
+
+ The 'showgrid' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showgrid"]
+
+ @showgrid.setter
+ def showgrid(self, val):
+ self["showgrid"] = val
+
+ @property
+ def tick0(self):
+ """
+ Sets the graticule's starting tick longitude/latitude.
+
+ The 'tick0' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tick0"]
+
+ @tick0.setter
+ def tick0(self, val):
+ self["tick0"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ dtick
+ Sets the graticule's longitude/latitude tick step.
+ gridcolor
+ Sets the graticule's stroke color.
+ griddash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ gridwidth
+ Sets the graticule's stroke width (in px).
+ range
+ Sets the range of this axis (in degrees), sets the
+ map's clipped coordinates.
+ showgrid
+ Sets whether or not graticule are shown on the map.
+ tick0
+ Sets the graticule's starting tick longitude/latitude.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ dtick=None,
+ gridcolor=None,
+ griddash=None,
+ gridwidth=None,
+ range=None,
+ showgrid=None,
+ tick0=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Lataxis object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.geo.Lataxis`
+ dtick
+ Sets the graticule's longitude/latitude tick step.
+ gridcolor
+ Sets the graticule's stroke color.
+ griddash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ gridwidth
+ Sets the graticule's stroke width (in px).
+ range
+ Sets the range of this axis (in degrees), sets the
+ map's clipped coordinates.
+ showgrid
+ Sets whether or not graticule are shown on the map.
+ tick0
+ Sets the graticule's starting tick longitude/latitude.
+
+ Returns
+ -------
+ Lataxis
+ """
+ super().__init__("lataxis")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.geo.Lataxis
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.geo.Lataxis`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("dtick", arg, dtick)
+ self._set_property("gridcolor", arg, gridcolor)
+ self._set_property("griddash", arg, griddash)
+ self._set_property("gridwidth", arg, gridwidth)
+ self._set_property("range", arg, range)
+ self._set_property("showgrid", arg, showgrid)
+ self._set_property("tick0", arg, tick0)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/_lonaxis.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/_lonaxis.py
new file mode 100644
index 0000000..6b31527
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/_lonaxis.py
@@ -0,0 +1,258 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Lonaxis(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.geo"
+ _path_str = "layout.geo.lonaxis"
+ _valid_props = {
+ "dtick",
+ "gridcolor",
+ "griddash",
+ "gridwidth",
+ "range",
+ "showgrid",
+ "tick0",
+ }
+
+ @property
+ def dtick(self):
+ """
+ Sets the graticule's longitude/latitude tick step.
+
+ The 'dtick' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["dtick"]
+
+ @dtick.setter
+ def dtick(self, val):
+ self["dtick"] = val
+
+ @property
+ def gridcolor(self):
+ """
+ Sets the graticule's stroke color.
+
+ The 'gridcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["gridcolor"]
+
+ @gridcolor.setter
+ def gridcolor(self, val):
+ self["gridcolor"] = val
+
+ @property
+ def griddash(self):
+ """
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+
+ The 'griddash' property is an enumeration that may be specified as:
+ - One of the following dash styles:
+ ['solid', 'dot', 'dash', 'longdash', 'dashdot', 'longdashdot']
+ - A string containing a dash length list in pixels or percentages
+ (e.g. '5px 10px 2px 2px', '5, 10, 2, 2', '10% 20% 40%', etc.)
+
+ Returns
+ -------
+ str
+ """
+ return self["griddash"]
+
+ @griddash.setter
+ def griddash(self, val):
+ self["griddash"] = val
+
+ @property
+ def gridwidth(self):
+ """
+ Sets the graticule's stroke width (in px).
+
+ The 'gridwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["gridwidth"]
+
+ @gridwidth.setter
+ def gridwidth(self, val):
+ self["gridwidth"] = val
+
+ @property
+ def range(self):
+ """
+ Sets the range of this axis (in degrees), sets the map's
+ clipped coordinates.
+
+ The 'range' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'range[0]' property is a number and may be specified as:
+ - An int or float
+ (1) The 'range[1]' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ list
+ """
+ return self["range"]
+
+ @range.setter
+ def range(self, val):
+ self["range"] = val
+
+ @property
+ def showgrid(self):
+ """
+ Sets whether or not graticule are shown on the map.
+
+ The 'showgrid' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showgrid"]
+
+ @showgrid.setter
+ def showgrid(self, val):
+ self["showgrid"] = val
+
+ @property
+ def tick0(self):
+ """
+ Sets the graticule's starting tick longitude/latitude.
+
+ The 'tick0' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tick0"]
+
+ @tick0.setter
+ def tick0(self, val):
+ self["tick0"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ dtick
+ Sets the graticule's longitude/latitude tick step.
+ gridcolor
+ Sets the graticule's stroke color.
+ griddash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ gridwidth
+ Sets the graticule's stroke width (in px).
+ range
+ Sets the range of this axis (in degrees), sets the
+ map's clipped coordinates.
+ showgrid
+ Sets whether or not graticule are shown on the map.
+ tick0
+ Sets the graticule's starting tick longitude/latitude.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ dtick=None,
+ gridcolor=None,
+ griddash=None,
+ gridwidth=None,
+ range=None,
+ showgrid=None,
+ tick0=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Lonaxis object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.geo.Lonaxis`
+ dtick
+ Sets the graticule's longitude/latitude tick step.
+ gridcolor
+ Sets the graticule's stroke color.
+ griddash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ gridwidth
+ Sets the graticule's stroke width (in px).
+ range
+ Sets the range of this axis (in degrees), sets the
+ map's clipped coordinates.
+ showgrid
+ Sets whether or not graticule are shown on the map.
+ tick0
+ Sets the graticule's starting tick longitude/latitude.
+
+ Returns
+ -------
+ Lonaxis
+ """
+ super().__init__("lonaxis")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.geo.Lonaxis
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.geo.Lonaxis`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("dtick", arg, dtick)
+ self._set_property("gridcolor", arg, gridcolor)
+ self._set_property("griddash", arg, griddash)
+ self._set_property("gridwidth", arg, gridwidth)
+ self._set_property("range", arg, range)
+ self._set_property("showgrid", arg, showgrid)
+ self._set_property("tick0", arg, tick0)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/_projection.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/_projection.py
new file mode 100644
index 0000000..fb8a539
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/_projection.py
@@ -0,0 +1,251 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Projection(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.geo"
+ _path_str = "layout.geo.projection"
+ _valid_props = {"distance", "parallels", "rotation", "scale", "tilt", "type"}
+
+ @property
+ def distance(self):
+ """
+ For satellite projection type only. Sets the distance from the
+ center of the sphere to the point of view as a proportion of
+ the sphere’s radius.
+
+ The 'distance' property is a number and may be specified as:
+ - An int or float in the interval [1.001, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["distance"]
+
+ @distance.setter
+ def distance(self, val):
+ self["distance"] = val
+
+ @property
+ def parallels(self):
+ """
+ For conic projection types only. Sets the parallels (tangent,
+ secant) where the cone intersects the sphere.
+
+ The 'parallels' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'parallels[0]' property is a number and may be specified as:
+ - An int or float
+ (1) The 'parallels[1]' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ list
+ """
+ return self["parallels"]
+
+ @parallels.setter
+ def parallels(self, val):
+ self["parallels"] = val
+
+ @property
+ def rotation(self):
+ """
+ The 'rotation' property is an instance of Rotation
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.geo.projection.Rotation`
+ - A dict of string/value properties that will be passed
+ to the Rotation constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.geo.projection.Rotation
+ """
+ return self["rotation"]
+
+ @rotation.setter
+ def rotation(self, val):
+ self["rotation"] = val
+
+ @property
+ def scale(self):
+ """
+ Zooms in or out on the map view. A scale of 1 corresponds to
+ the largest zoom level that fits the map's lon and lat ranges.
+
+ The 'scale' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["scale"]
+
+ @scale.setter
+ def scale(self, val):
+ self["scale"] = val
+
+ @property
+ def tilt(self):
+ """
+ For satellite projection type only. Sets the tilt angle of
+ perspective projection.
+
+ The 'tilt' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tilt"]
+
+ @tilt.setter
+ def tilt(self, val):
+ self["tilt"] = val
+
+ @property
+ def type(self):
+ """
+ Sets the projection type.
+
+ The 'type' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['airy', 'aitoff', 'albers', 'albers usa', 'august',
+ 'azimuthal equal area', 'azimuthal equidistant', 'baker',
+ 'bertin1953', 'boggs', 'bonne', 'bottomley', 'bromley',
+ 'collignon', 'conic conformal', 'conic equal area', 'conic
+ equidistant', 'craig', 'craster', 'cylindrical equal
+ area', 'cylindrical stereographic', 'eckert1', 'eckert2',
+ 'eckert3', 'eckert4', 'eckert5', 'eckert6', 'eisenlohr',
+ 'equal earth', 'equirectangular', 'fahey', 'foucaut',
+ 'foucaut sinusoidal', 'ginzburg4', 'ginzburg5',
+ 'ginzburg6', 'ginzburg8', 'ginzburg9', 'gnomonic',
+ 'gringorten', 'gringorten quincuncial', 'guyou', 'hammer',
+ 'hill', 'homolosine', 'hufnagel', 'hyperelliptical',
+ 'kavrayskiy7', 'lagrange', 'larrivee', 'laskowski',
+ 'loximuthal', 'mercator', 'miller', 'mollweide', 'mt flat
+ polar parabolic', 'mt flat polar quartic', 'mt flat polar
+ sinusoidal', 'natural earth', 'natural earth1', 'natural
+ earth2', 'nell hammer', 'nicolosi', 'orthographic',
+ 'patterson', 'peirce quincuncial', 'polyconic',
+ 'rectangular polyconic', 'robinson', 'satellite', 'sinu
+ mollweide', 'sinusoidal', 'stereographic', 'times',
+ 'transverse mercator', 'van der grinten', 'van der
+ grinten2', 'van der grinten3', 'van der grinten4',
+ 'wagner4', 'wagner6', 'wiechel', 'winkel tripel',
+ 'winkel3']
+
+ Returns
+ -------
+ Any
+ """
+ return self["type"]
+
+ @type.setter
+ def type(self, val):
+ self["type"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ distance
+ For satellite projection type only. Sets the distance
+ from the center of the sphere to the point of view as a
+ proportion of the sphere’s radius.
+ parallels
+ For conic projection types only. Sets the parallels
+ (tangent, secant) where the cone intersects the sphere.
+ rotation
+ :class:`plotly.graph_objects.layout.geo.projection.Rota
+ tion` instance or dict with compatible properties
+ scale
+ Zooms in or out on the map view. A scale of 1
+ corresponds to the largest zoom level that fits the
+ map's lon and lat ranges.
+ tilt
+ For satellite projection type only. Sets the tilt angle
+ of perspective projection.
+ type
+ Sets the projection type.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ distance=None,
+ parallels=None,
+ rotation=None,
+ scale=None,
+ tilt=None,
+ type=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Projection object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.geo.Projection`
+ distance
+ For satellite projection type only. Sets the distance
+ from the center of the sphere to the point of view as a
+ proportion of the sphere’s radius.
+ parallels
+ For conic projection types only. Sets the parallels
+ (tangent, secant) where the cone intersects the sphere.
+ rotation
+ :class:`plotly.graph_objects.layout.geo.projection.Rota
+ tion` instance or dict with compatible properties
+ scale
+ Zooms in or out on the map view. A scale of 1
+ corresponds to the largest zoom level that fits the
+ map's lon and lat ranges.
+ tilt
+ For satellite projection type only. Sets the tilt angle
+ of perspective projection.
+ type
+ Sets the projection type.
+
+ Returns
+ -------
+ Projection
+ """
+ super().__init__("projection")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.geo.Projection
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.geo.Projection`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("distance", arg, distance)
+ self._set_property("parallels", arg, parallels)
+ self._set_property("rotation", arg, rotation)
+ self._set_property("scale", arg, scale)
+ self._set_property("tilt", arg, tilt)
+ self._set_property("type", arg, type)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/projection/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/projection/__init__.py
new file mode 100644
index 0000000..7354e48
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/projection/__init__.py
@@ -0,0 +1,11 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._rotation import Rotation
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__, [], ["._rotation.Rotation"]
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/projection/_rotation.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/projection/_rotation.py
new file mode 100644
index 0000000..4934597
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/geo/projection/_rotation.py
@@ -0,0 +1,129 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Rotation(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.geo.projection"
+ _path_str = "layout.geo.projection.rotation"
+ _valid_props = {"lat", "lon", "roll"}
+
+ @property
+ def lat(self):
+ """
+ Rotates the map along meridians (in degrees North).
+
+ The 'lat' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["lat"]
+
+ @lat.setter
+ def lat(self, val):
+ self["lat"] = val
+
+ @property
+ def lon(self):
+ """
+ Rotates the map along parallels (in degrees East). Defaults to
+ the center of the `lonaxis.range` values.
+
+ The 'lon' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["lon"]
+
+ @lon.setter
+ def lon(self, val):
+ self["lon"] = val
+
+ @property
+ def roll(self):
+ """
+ Roll the map (in degrees) For example, a roll of 180 makes the
+ map appear upside down.
+
+ The 'roll' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["roll"]
+
+ @roll.setter
+ def roll(self, val):
+ self["roll"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ lat
+ Rotates the map along meridians (in degrees North).
+ lon
+ Rotates the map along parallels (in degrees East).
+ Defaults to the center of the `lonaxis.range` values.
+ roll
+ Roll the map (in degrees) For example, a roll of 180
+ makes the map appear upside down.
+ """
+
+ def __init__(self, arg=None, lat=None, lon=None, roll=None, **kwargs):
+ """
+ Construct a new Rotation object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.geo.pro
+ jection.Rotation`
+ lat
+ Rotates the map along meridians (in degrees North).
+ lon
+ Rotates the map along parallels (in degrees East).
+ Defaults to the center of the `lonaxis.range` values.
+ roll
+ Roll the map (in degrees) For example, a roll of 180
+ makes the map appear upside down.
+
+ Returns
+ -------
+ Rotation
+ """
+ super().__init__("rotation")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.geo.projection.Rotation
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.geo.projection.Rotation`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("lat", arg, lat)
+ self._set_property("lon", arg, lon)
+ self._set_property("roll", arg, roll)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/grid/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/grid/__init__.py
new file mode 100644
index 0000000..672daf1
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/grid/__init__.py
@@ -0,0 +1,9 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._domain import Domain
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(__name__, [], ["._domain.Domain"])
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/grid/_domain.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/grid/_domain.py
new file mode 100644
index 0000000..1e1fc2f
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/grid/_domain.py
@@ -0,0 +1,122 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Domain(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.grid"
+ _path_str = "layout.grid.domain"
+ _valid_props = {"x", "y"}
+
+ @property
+ def x(self):
+ """
+ Sets the horizontal domain of this grid subplot (in plot
+ fraction). The first and last cells end exactly at the domain
+ edges, with no grout around the edges.
+
+ The 'x' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'x[0]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+ (1) The 'x[1]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ list
+ """
+ return self["x"]
+
+ @x.setter
+ def x(self, val):
+ self["x"] = val
+
+ @property
+ def y(self):
+ """
+ Sets the vertical domain of this grid subplot (in plot
+ fraction). The first and last cells end exactly at the domain
+ edges, with no grout around the edges.
+
+ The 'y' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'y[0]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+ (1) The 'y[1]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ list
+ """
+ return self["y"]
+
+ @y.setter
+ def y(self, val):
+ self["y"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ x
+ Sets the horizontal domain of this grid subplot (in
+ plot fraction). The first and last cells end exactly at
+ the domain edges, with no grout around the edges.
+ y
+ Sets the vertical domain of this grid subplot (in plot
+ fraction). The first and last cells end exactly at the
+ domain edges, with no grout around the edges.
+ """
+
+ def __init__(self, arg=None, x=None, y=None, **kwargs):
+ """
+ Construct a new Domain object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.grid.Domain`
+ x
+ Sets the horizontal domain of this grid subplot (in
+ plot fraction). The first and last cells end exactly at
+ the domain edges, with no grout around the edges.
+ y
+ Sets the vertical domain of this grid subplot (in plot
+ fraction). The first and last cells end exactly at the
+ domain edges, with no grout around the edges.
+
+ Returns
+ -------
+ Domain
+ """
+ super().__init__("domain")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.grid.Domain
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.grid.Domain`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("x", arg, x)
+ self._set_property("y", arg, y)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/hoverlabel/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/hoverlabel/__init__.py
new file mode 100644
index 0000000..c1800c3
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/hoverlabel/__init__.py
@@ -0,0 +1,12 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._font import Font
+ from ._grouptitlefont import Grouptitlefont
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__, [], ["._font.Font", "._grouptitlefont.Grouptitlefont"]
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/hoverlabel/_font.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/hoverlabel/_font.py
new file mode 100644
index 0000000..afaef5d
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/hoverlabel/_font.py
@@ -0,0 +1,335 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Font(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.hoverlabel"
+ _path_str = "layout.hoverlabel.font"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Font object
+
+ Sets the default hover label font used by all traces on the
+ graph.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.hoverlabel.Font`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Font
+ """
+ super().__init__("font")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.hoverlabel.Font
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.hoverlabel.Font`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/hoverlabel/_grouptitlefont.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/hoverlabel/_grouptitlefont.py
new file mode 100644
index 0000000..f1aae36
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/hoverlabel/_grouptitlefont.py
@@ -0,0 +1,335 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Grouptitlefont(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.hoverlabel"
+ _path_str = "layout.hoverlabel.grouptitlefont"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Grouptitlefont object
+
+ Sets the font for group titles in hover (unified modes).
+ Defaults to `hoverlabel.font`.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.hoverla
+ bel.Grouptitlefont`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Grouptitlefont
+ """
+ super().__init__("grouptitlefont")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.hoverlabel.Grouptitlefont
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.hoverlabel.Grouptitlefont`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/legend/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/legend/__init__.py
new file mode 100644
index 0000000..74cf3d2
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/legend/__init__.py
@@ -0,0 +1,16 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._font import Font
+ from ._grouptitlefont import Grouptitlefont
+ from ._title import Title
+ from . import title
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__,
+ [".title"],
+ ["._font.Font", "._grouptitlefont.Grouptitlefont", "._title.Title"],
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/legend/_font.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/legend/_font.py
new file mode 100644
index 0000000..5b1eedf
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/legend/_font.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Font(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.legend"
+ _path_str = "layout.legend.font"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Font object
+
+ Sets the font used to text the legend items.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.legend.Font`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Font
+ """
+ super().__init__("font")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Font
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.legend.Font`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/legend/_grouptitlefont.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/legend/_grouptitlefont.py
new file mode 100644
index 0000000..1dc1285
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/legend/_grouptitlefont.py
@@ -0,0 +1,335 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Grouptitlefont(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.legend"
+ _path_str = "layout.legend.grouptitlefont"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Grouptitlefont object
+
+ Sets the font for group titles in legend. Defaults to
+ `legend.font` with its size increased about 10%.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.legend.Grouptitlefont`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Grouptitlefont
+ """
+ super().__init__("grouptitlefont")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Grouptitlefont
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.legend.Grouptitlefont`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/legend/_title.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/legend/_title.py
new file mode 100644
index 0000000..a0c67bf
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/legend/_title.py
@@ -0,0 +1,145 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Title(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.legend"
+ _path_str = "layout.legend.title"
+ _valid_props = {"font", "side", "text"}
+
+ @property
+ def font(self):
+ """
+ Sets this legend's title font. Defaults to `legend.font` with
+ its size increased about 20%.
+
+ The 'font' property is an instance of Font
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.legend.title.Font`
+ - A dict of string/value properties that will be passed
+ to the Font constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.legend.title.Font
+ """
+ return self["font"]
+
+ @font.setter
+ def font(self, val):
+ self["font"] = val
+
+ @property
+ def side(self):
+ """
+ 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 top center and top right are
+ for horizontal alignment legend area in both x and y sides.
+
+ The 'side' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['top', 'left', 'top left', 'top center', 'top right']
+
+ Returns
+ -------
+ Any
+ """
+ return self["side"]
+
+ @side.setter
+ def side(self, val):
+ self["side"] = val
+
+ @property
+ def text(self):
+ """
+ Sets the title of the legend.
+
+ 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
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ 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 top center and top right are for
+ horizontal alignment legend area in both x and y sides.
+ text
+ Sets the title of the legend.
+ """
+
+ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs):
+ """
+ Construct a new Title object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.legend.Title`
+ 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 top center and top right are for
+ horizontal alignment legend area in both x and y sides.
+ text
+ Sets the title of the legend.
+
+ Returns
+ -------
+ Title
+ """
+ super().__init__("title")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Title
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.legend.Title`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("font", arg, font)
+ self._set_property("side", arg, side)
+ self._set_property("text", arg, text)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/legend/title/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/legend/title/__init__.py
new file mode 100644
index 0000000..56f600d
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/legend/title/__init__.py
@@ -0,0 +1,9 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._font import Font
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/legend/title/_font.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/legend/title/_font.py
new file mode 100644
index 0000000..1deec6a
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/legend/title/_font.py
@@ -0,0 +1,335 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Font(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.legend.title"
+ _path_str = "layout.legend.title.font"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Font object
+
+ Sets this legend's title font. Defaults to `legend.font` with
+ its size increased about 20%.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.legend.title.Font`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Font
+ """
+ super().__init__("font")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.title.Font
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.legend.title.Font`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/__init__.py
new file mode 100644
index 0000000..929c41c
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/__init__.py
@@ -0,0 +1,17 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._bounds import Bounds
+ from ._center import Center
+ from ._domain import Domain
+ from ._layer import Layer
+ from . import layer
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__,
+ [".layer"],
+ ["._bounds.Bounds", "._center.Center", "._domain.Domain", "._layer.Layer"],
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/_bounds.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/_bounds.py
new file mode 100644
index 0000000..13e914c
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/_bounds.py
@@ -0,0 +1,160 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Bounds(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.map"
+ _path_str = "layout.map.bounds"
+ _valid_props = {"east", "north", "south", "west"}
+
+ @property
+ def east(self):
+ """
+ Sets the maximum longitude of the map (in degrees East) if
+ `west`, `south` and `north` are declared.
+
+ The 'east' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["east"]
+
+ @east.setter
+ def east(self, val):
+ self["east"] = val
+
+ @property
+ def north(self):
+ """
+ Sets the maximum latitude of the map (in degrees North) if
+ `east`, `west` and `south` are declared.
+
+ The 'north' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["north"]
+
+ @north.setter
+ def north(self, val):
+ self["north"] = val
+
+ @property
+ def south(self):
+ """
+ Sets the minimum latitude of the map (in degrees North) if
+ `east`, `west` and `north` are declared.
+
+ The 'south' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["south"]
+
+ @south.setter
+ def south(self, val):
+ self["south"] = val
+
+ @property
+ def west(self):
+ """
+ Sets the minimum longitude of the map (in degrees East) if
+ `east`, `south` and `north` are declared.
+
+ The 'west' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["west"]
+
+ @west.setter
+ def west(self, val):
+ self["west"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ east
+ Sets the maximum longitude of the map (in degrees East)
+ if `west`, `south` and `north` are declared.
+ north
+ Sets the maximum latitude of the map (in degrees North)
+ if `east`, `west` and `south` are declared.
+ south
+ Sets the minimum latitude of the map (in degrees North)
+ if `east`, `west` and `north` are declared.
+ west
+ Sets the minimum longitude of the map (in degrees East)
+ if `east`, `south` and `north` are declared.
+ """
+
+ def __init__(
+ self, arg=None, east=None, north=None, south=None, west=None, **kwargs
+ ):
+ """
+ Construct a new Bounds object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.map.Bounds`
+ east
+ Sets the maximum longitude of the map (in degrees East)
+ if `west`, `south` and `north` are declared.
+ north
+ Sets the maximum latitude of the map (in degrees North)
+ if `east`, `west` and `south` are declared.
+ south
+ Sets the minimum latitude of the map (in degrees North)
+ if `east`, `west` and `north` are declared.
+ west
+ Sets the minimum longitude of the map (in degrees East)
+ if `east`, `south` and `north` are declared.
+
+ Returns
+ -------
+ Bounds
+ """
+ super().__init__("bounds")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.map.Bounds
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.map.Bounds`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("east", arg, east)
+ self._set_property("north", arg, north)
+ self._set_property("south", arg, south)
+ self._set_property("west", arg, west)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/_center.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/_center.py
new file mode 100644
index 0000000..34c339e
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/_center.py
@@ -0,0 +1,104 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Center(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.map"
+ _path_str = "layout.map.center"
+ _valid_props = {"lat", "lon"}
+
+ @property
+ def lat(self):
+ """
+ Sets the latitude of the center of the map (in degrees North).
+
+ The 'lat' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["lat"]
+
+ @lat.setter
+ def lat(self, val):
+ self["lat"] = val
+
+ @property
+ def lon(self):
+ """
+ Sets the longitude of the center of the map (in degrees East).
+
+ The 'lon' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["lon"]
+
+ @lon.setter
+ def lon(self, val):
+ self["lon"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ lat
+ Sets the latitude of the center of the map (in degrees
+ North).
+ lon
+ Sets the longitude of the center of the map (in degrees
+ East).
+ """
+
+ def __init__(self, arg=None, lat=None, lon=None, **kwargs):
+ """
+ Construct a new Center object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.map.Center`
+ lat
+ Sets the latitude of the center of the map (in degrees
+ North).
+ lon
+ Sets the longitude of the center of the map (in degrees
+ East).
+
+ Returns
+ -------
+ Center
+ """
+ super().__init__("center")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.map.Center
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.map.Center`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("lat", arg, lat)
+ self._set_property("lon", arg, lon)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/_domain.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/_domain.py
new file mode 100644
index 0000000..9baf6ea
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/_domain.py
@@ -0,0 +1,170 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Domain(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.map"
+ _path_str = "layout.map.domain"
+ _valid_props = {"column", "row", "x", "y"}
+
+ @property
+ def column(self):
+ """
+ If there is a layout grid, use the domain for this column in
+ the grid for this map subplot .
+
+ The 'column' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [0, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["column"]
+
+ @column.setter
+ def column(self, val):
+ self["column"] = val
+
+ @property
+ def row(self):
+ """
+ If there is a layout grid, use the domain for this row in the
+ grid for this map subplot .
+
+ The 'row' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [0, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["row"]
+
+ @row.setter
+ def row(self, val):
+ self["row"] = val
+
+ @property
+ def x(self):
+ """
+ Sets the horizontal domain of this map subplot (in plot
+ fraction).
+
+ The 'x' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'x[0]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+ (1) The 'x[1]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ list
+ """
+ return self["x"]
+
+ @x.setter
+ def x(self, val):
+ self["x"] = val
+
+ @property
+ def y(self):
+ """
+ Sets the vertical domain of this map subplot (in plot
+ fraction).
+
+ The 'y' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'y[0]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+ (1) The 'y[1]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ list
+ """
+ return self["y"]
+
+ @y.setter
+ def y(self, val):
+ self["y"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ column
+ If there is a layout grid, use the domain for this
+ column in the grid for this map subplot .
+ row
+ If there is a layout grid, use the domain for this row
+ in the grid for this map subplot .
+ x
+ Sets the horizontal domain of this map subplot (in plot
+ fraction).
+ y
+ Sets the vertical domain of this map subplot (in plot
+ fraction).
+ """
+
+ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
+ """
+ Construct a new Domain object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.map.Domain`
+ column
+ If there is a layout grid, use the domain for this
+ column in the grid for this map subplot .
+ row
+ If there is a layout grid, use the domain for this row
+ in the grid for this map subplot .
+ x
+ Sets the horizontal domain of this map subplot (in plot
+ fraction).
+ y
+ Sets the vertical domain of this map subplot (in plot
+ fraction).
+
+ Returns
+ -------
+ Domain
+ """
+ super().__init__("domain")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.map.Domain
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.map.Domain`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("column", arg, column)
+ self._set_property("row", arg, row)
+ self._set_property("x", arg, x)
+ self._set_property("y", arg, y)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/_layer.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/_layer.py
new file mode 100644
index 0000000..cf22d32
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/_layer.py
@@ -0,0 +1,691 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Layer(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.map"
+ _path_str = "layout.map.layer"
+ _valid_props = {
+ "below",
+ "circle",
+ "color",
+ "coordinates",
+ "fill",
+ "line",
+ "maxzoom",
+ "minzoom",
+ "name",
+ "opacity",
+ "source",
+ "sourceattribution",
+ "sourcelayer",
+ "sourcetype",
+ "symbol",
+ "templateitemname",
+ "type",
+ "visible",
+ }
+
+ @property
+ def below(self):
+ """
+ Determines if the layer will be inserted before the layer with
+ the specified ID. If omitted or set to '', the layer will be
+ inserted above every existing layer.
+
+ The 'below' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["below"]
+
+ @below.setter
+ def below(self, val):
+ self["below"] = val
+
+ @property
+ def circle(self):
+ """
+ The 'circle' property is an instance of Circle
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.map.layer.Circle`
+ - A dict of string/value properties that will be passed
+ to the Circle constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.map.layer.Circle
+ """
+ return self["circle"]
+
+ @circle.setter
+ def circle(self, val):
+ self["circle"] = val
+
+ @property
+ def color(self):
+ """
+ Sets the primary layer color. If `type` is "circle", color
+ corresponds to the circle color (map.layer.paint.circle-color)
+ If `type` is "line", color corresponds to the line color
+ (map.layer.paint.line-color) If `type` is "fill", color
+ corresponds to the fill color (map.layer.paint.fill-color) If
+ `type` is "symbol", color corresponds to the icon color
+ (map.layer.paint.icon-color)
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def coordinates(self):
+ """
+ Sets the coordinates array contains [longitude, latitude] pairs
+ for the image corners listed in clockwise order: top left, top
+ right, bottom right, bottom left. Only has an effect for
+ "image" `sourcetype`.
+
+ The 'coordinates' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["coordinates"]
+
+ @coordinates.setter
+ def coordinates(self, val):
+ self["coordinates"] = val
+
+ @property
+ def fill(self):
+ """
+ The 'fill' property is an instance of Fill
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.map.layer.Fill`
+ - A dict of string/value properties that will be passed
+ to the Fill constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.map.layer.Fill
+ """
+ return self["fill"]
+
+ @fill.setter
+ def fill(self, val):
+ self["fill"] = val
+
+ @property
+ def line(self):
+ """
+ The 'line' property is an instance of Line
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.map.layer.Line`
+ - A dict of string/value properties that will be passed
+ to the Line constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.map.layer.Line
+ """
+ return self["line"]
+
+ @line.setter
+ def line(self, val):
+ self["line"] = val
+
+ @property
+ def maxzoom(self):
+ """
+ Sets the maximum zoom level (map.layer.maxzoom). At zoom levels
+ equal to or greater than the maxzoom, the layer will be hidden.
+
+ The 'maxzoom' property is a number and may be specified as:
+ - An int or float in the interval [0, 24]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["maxzoom"]
+
+ @maxzoom.setter
+ def maxzoom(self, val):
+ self["maxzoom"] = val
+
+ @property
+ def minzoom(self):
+ """
+ Sets the minimum zoom level (map.layer.minzoom). At zoom levels
+ less than the minzoom, the layer will be hidden.
+
+ The 'minzoom' property is a number and may be specified as:
+ - An int or float in the interval [0, 24]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["minzoom"]
+
+ @minzoom.setter
+ def minzoom(self, val):
+ self["minzoom"] = val
+
+ @property
+ def name(self):
+ """
+ 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.
+
+ The 'name' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["name"]
+
+ @name.setter
+ def name(self, val):
+ self["name"] = val
+
+ @property
+ def opacity(self):
+ """
+ Sets the opacity of the layer. If `type` is "circle", opacity
+ corresponds to the circle opacity (map.layer.paint.circle-
+ opacity) If `type` is "line", opacity corresponds to the line
+ opacity (map.layer.paint.line-opacity) If `type` is "fill",
+ opacity corresponds to the fill opacity (map.layer.paint.fill-
+ opacity) If `type` is "symbol", opacity corresponds to the
+ icon/text opacity (map.layer.paint.text-opacity)
+
+ The 'opacity' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["opacity"]
+
+ @opacity.setter
+ def opacity(self, val):
+ self["opacity"] = val
+
+ @property
+ def source(self):
+ """
+ Sets the source data for this layer (map.layer.source). When
+ `sourcetype` is set to "geojson", `source` can be a URL to a
+ GeoJSON or a GeoJSON object. When `sourcetype` is set to
+ "vector" or "raster", `source` can be a URL or an array of tile
+ URLs. When `sourcetype` is set to "image", `source` can be a
+ URL to an image.
+
+ The 'source' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["source"]
+
+ @source.setter
+ def source(self, val):
+ self["source"] = val
+
+ @property
+ def sourceattribution(self):
+ """
+ Sets the attribution for this source.
+
+ The 'sourceattribution' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["sourceattribution"]
+
+ @sourceattribution.setter
+ def sourceattribution(self, val):
+ self["sourceattribution"] = val
+
+ @property
+ def sourcelayer(self):
+ """
+ Specifies the layer to use from a vector tile source
+ (map.layer.source-layer). Required for "vector" source type
+ that supports multiple layers.
+
+ The 'sourcelayer' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["sourcelayer"]
+
+ @sourcelayer.setter
+ def sourcelayer(self, val):
+ self["sourcelayer"] = val
+
+ @property
+ def sourcetype(self):
+ """
+ Sets the source type for this layer, that is the type of the
+ layer data.
+
+ The 'sourcetype' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['geojson', 'vector', 'raster', 'image']
+
+ Returns
+ -------
+ Any
+ """
+ return self["sourcetype"]
+
+ @sourcetype.setter
+ def sourcetype(self, val):
+ self["sourcetype"] = val
+
+ @property
+ def symbol(self):
+ """
+ The 'symbol' property is an instance of Symbol
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.map.layer.Symbol`
+ - A dict of string/value properties that will be passed
+ to the Symbol constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.map.layer.Symbol
+ """
+ return self["symbol"]
+
+ @symbol.setter
+ def symbol(self, val):
+ self["symbol"] = val
+
+ @property
+ def templateitemname(self):
+ """
+ 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`.
+
+ The 'templateitemname' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["templateitemname"]
+
+ @templateitemname.setter
+ def templateitemname(self, val):
+ self["templateitemname"] = val
+
+ @property
+ def type(self):
+ """
+ Sets the layer type, that is the how the layer data set in
+ `source` will be rendered With `sourcetype` set to "geojson",
+ the following values are allowed: "circle", "line", "fill" and
+ "symbol". but note that "line" and "fill" are not compatible
+ with Point GeoJSON geometries. With `sourcetype` set to
+ "vector", the following values are allowed: "circle", "line",
+ "fill" and "symbol". With `sourcetype` set to "raster" or
+ `*image*`, only the "raster" value is allowed.
+
+ The 'type' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['circle', 'line', 'fill', 'symbol', 'raster']
+
+ Returns
+ -------
+ Any
+ """
+ return self["type"]
+
+ @type.setter
+ def type(self, val):
+ self["type"] = val
+
+ @property
+ def visible(self):
+ """
+ Determines whether this layer is displayed
+
+ The 'visible' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["visible"]
+
+ @visible.setter
+ def visible(self, val):
+ self["visible"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ below
+ Determines if the layer will be inserted before the
+ layer with the specified ID. If omitted or set to '',
+ the layer will be inserted above every existing layer.
+ circle
+ :class:`plotly.graph_objects.layout.map.layer.Circle`
+ instance or dict with compatible properties
+ color
+ Sets the primary layer color. If `type` is "circle",
+ color corresponds to the circle color
+ (map.layer.paint.circle-color) If `type` is "line",
+ color corresponds to the line color
+ (map.layer.paint.line-color) If `type` is "fill", color
+ corresponds to the fill color (map.layer.paint.fill-
+ color) If `type` is "symbol", color corresponds to the
+ icon color (map.layer.paint.icon-color)
+ coordinates
+ Sets the coordinates array contains [longitude,
+ latitude] pairs for the image corners listed in
+ clockwise order: top left, top right, bottom right,
+ bottom left. Only has an effect for "image"
+ `sourcetype`.
+ fill
+ :class:`plotly.graph_objects.layout.map.layer.Fill`
+ instance or dict with compatible properties
+ line
+ :class:`plotly.graph_objects.layout.map.layer.Line`
+ instance or dict with compatible properties
+ maxzoom
+ Sets the maximum zoom level (map.layer.maxzoom). At
+ zoom levels equal to or greater than the maxzoom, the
+ layer will be hidden.
+ minzoom
+ Sets the minimum zoom level (map.layer.minzoom). At
+ zoom levels less than the minzoom, the layer will be
+ hidden.
+ 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.
+ opacity
+ Sets the opacity of the layer. If `type` is "circle",
+ opacity corresponds to the circle opacity
+ (map.layer.paint.circle-opacity) If `type` is "line",
+ opacity corresponds to the line opacity
+ (map.layer.paint.line-opacity) If `type` is "fill",
+ opacity corresponds to the fill opacity
+ (map.layer.paint.fill-opacity) If `type` is "symbol",
+ opacity corresponds to the icon/text opacity
+ (map.layer.paint.text-opacity)
+ source
+ Sets the source data for this layer (map.layer.source).
+ When `sourcetype` is set to "geojson", `source` can be
+ a URL to a GeoJSON or a GeoJSON object. When
+ `sourcetype` is set to "vector" or "raster", `source`
+ can be a URL or an array of tile URLs. When
+ `sourcetype` is set to "image", `source` can be a URL
+ to an image.
+ sourceattribution
+ Sets the attribution for this source.
+ sourcelayer
+ Specifies the layer to use from a vector tile source
+ (map.layer.source-layer). Required for "vector" source
+ type that supports multiple layers.
+ sourcetype
+ Sets the source type for this layer, that is the type
+ of the layer data.
+ symbol
+ :class:`plotly.graph_objects.layout.map.layer.Symbol`
+ instance or dict with compatible properties
+ 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`.
+ type
+ Sets the layer type, that is the how the layer data set
+ in `source` will be rendered With `sourcetype` set to
+ "geojson", the following values are allowed: "circle",
+ "line", "fill" and "symbol". but note that "line" and
+ "fill" are not compatible with Point GeoJSON
+ geometries. With `sourcetype` set to "vector", the
+ following values are allowed: "circle", "line", "fill"
+ and "symbol". With `sourcetype` set to "raster" or
+ `*image*`, only the "raster" value is allowed.
+ visible
+ Determines whether this layer is displayed
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ below=None,
+ circle=None,
+ color=None,
+ coordinates=None,
+ fill=None,
+ line=None,
+ maxzoom=None,
+ minzoom=None,
+ name=None,
+ opacity=None,
+ source=None,
+ sourceattribution=None,
+ sourcelayer=None,
+ sourcetype=None,
+ symbol=None,
+ templateitemname=None,
+ type=None,
+ visible=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Layer object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.map.Layer`
+ below
+ Determines if the layer will be inserted before the
+ layer with the specified ID. If omitted or set to '',
+ the layer will be inserted above every existing layer.
+ circle
+ :class:`plotly.graph_objects.layout.map.layer.Circle`
+ instance or dict with compatible properties
+ color
+ Sets the primary layer color. If `type` is "circle",
+ color corresponds to the circle color
+ (map.layer.paint.circle-color) If `type` is "line",
+ color corresponds to the line color
+ (map.layer.paint.line-color) If `type` is "fill", color
+ corresponds to the fill color (map.layer.paint.fill-
+ color) If `type` is "symbol", color corresponds to the
+ icon color (map.layer.paint.icon-color)
+ coordinates
+ Sets the coordinates array contains [longitude,
+ latitude] pairs for the image corners listed in
+ clockwise order: top left, top right, bottom right,
+ bottom left. Only has an effect for "image"
+ `sourcetype`.
+ fill
+ :class:`plotly.graph_objects.layout.map.layer.Fill`
+ instance or dict with compatible properties
+ line
+ :class:`plotly.graph_objects.layout.map.layer.Line`
+ instance or dict with compatible properties
+ maxzoom
+ Sets the maximum zoom level (map.layer.maxzoom). At
+ zoom levels equal to or greater than the maxzoom, the
+ layer will be hidden.
+ minzoom
+ Sets the minimum zoom level (map.layer.minzoom). At
+ zoom levels less than the minzoom, the layer will be
+ hidden.
+ 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.
+ opacity
+ Sets the opacity of the layer. If `type` is "circle",
+ opacity corresponds to the circle opacity
+ (map.layer.paint.circle-opacity) If `type` is "line",
+ opacity corresponds to the line opacity
+ (map.layer.paint.line-opacity) If `type` is "fill",
+ opacity corresponds to the fill opacity
+ (map.layer.paint.fill-opacity) If `type` is "symbol",
+ opacity corresponds to the icon/text opacity
+ (map.layer.paint.text-opacity)
+ source
+ Sets the source data for this layer (map.layer.source).
+ When `sourcetype` is set to "geojson", `source` can be
+ a URL to a GeoJSON or a GeoJSON object. When
+ `sourcetype` is set to "vector" or "raster", `source`
+ can be a URL or an array of tile URLs. When
+ `sourcetype` is set to "image", `source` can be a URL
+ to an image.
+ sourceattribution
+ Sets the attribution for this source.
+ sourcelayer
+ Specifies the layer to use from a vector tile source
+ (map.layer.source-layer). Required for "vector" source
+ type that supports multiple layers.
+ sourcetype
+ Sets the source type for this layer, that is the type
+ of the layer data.
+ symbol
+ :class:`plotly.graph_objects.layout.map.layer.Symbol`
+ instance or dict with compatible properties
+ 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`.
+ type
+ Sets the layer type, that is the how the layer data set
+ in `source` will be rendered With `sourcetype` set to
+ "geojson", the following values are allowed: "circle",
+ "line", "fill" and "symbol". but note that "line" and
+ "fill" are not compatible with Point GeoJSON
+ geometries. With `sourcetype` set to "vector", the
+ following values are allowed: "circle", "line", "fill"
+ and "symbol". With `sourcetype` set to "raster" or
+ `*image*`, only the "raster" value is allowed.
+ visible
+ Determines whether this layer is displayed
+
+ Returns
+ -------
+ Layer
+ """
+ super().__init__("layers")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.map.Layer
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.map.Layer`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("below", arg, below)
+ self._set_property("circle", arg, circle)
+ self._set_property("color", arg, color)
+ self._set_property("coordinates", arg, coordinates)
+ self._set_property("fill", arg, fill)
+ self._set_property("line", arg, line)
+ self._set_property("maxzoom", arg, maxzoom)
+ self._set_property("minzoom", arg, minzoom)
+ self._set_property("name", arg, name)
+ self._set_property("opacity", arg, opacity)
+ self._set_property("source", arg, source)
+ self._set_property("sourceattribution", arg, sourceattribution)
+ self._set_property("sourcelayer", arg, sourcelayer)
+ self._set_property("sourcetype", arg, sourcetype)
+ self._set_property("symbol", arg, symbol)
+ self._set_property("templateitemname", arg, templateitemname)
+ self._set_property("type", arg, type)
+ self._set_property("visible", arg, visible)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/layer/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/layer/__init__.py
new file mode 100644
index 0000000..2d86fbd
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/layer/__init__.py
@@ -0,0 +1,17 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._circle import Circle
+ from ._fill import Fill
+ from ._line import Line
+ from ._symbol import Symbol
+ from . import symbol
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__,
+ [".symbol"],
+ ["._circle.Circle", "._fill.Fill", "._line.Line", "._symbol.Symbol"],
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/layer/_circle.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/layer/_circle.py
new file mode 100644
index 0000000..2d99a00
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/layer/_circle.py
@@ -0,0 +1,80 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Circle(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.map.layer"
+ _path_str = "layout.map.layer.circle"
+ _valid_props = {"radius"}
+
+ @property
+ def radius(self):
+ """
+ Sets the circle radius (map.layer.paint.circle-radius). Has an
+ effect only when `type` is set to "circle".
+
+ The 'radius' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["radius"]
+
+ @radius.setter
+ def radius(self, val):
+ self["radius"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ radius
+ Sets the circle radius (map.layer.paint.circle-radius).
+ Has an effect only when `type` is set to "circle".
+ """
+
+ def __init__(self, arg=None, radius=None, **kwargs):
+ """
+ Construct a new Circle object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.map.layer.Circle`
+ radius
+ Sets the circle radius (map.layer.paint.circle-radius).
+ Has an effect only when `type` is set to "circle".
+
+ Returns
+ -------
+ Circle
+ """
+ super().__init__("circle")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.map.layer.Circle
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.map.layer.Circle`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("radius", arg, radius)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/layer/_fill.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/layer/_fill.py
new file mode 100644
index 0000000..2c82cdd
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/layer/_fill.py
@@ -0,0 +1,86 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Fill(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.map.layer"
+ _path_str = "layout.map.layer.fill"
+ _valid_props = {"outlinecolor"}
+
+ @property
+ def outlinecolor(self):
+ """
+ Sets the fill outline color (map.layer.paint.fill-outline-
+ color). Has an effect only when `type` is set to "fill".
+
+ The 'outlinecolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["outlinecolor"]
+
+ @outlinecolor.setter
+ def outlinecolor(self, val):
+ self["outlinecolor"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ outlinecolor
+ Sets the fill outline color (map.layer.paint.fill-
+ outline-color). Has an effect only when `type` is set
+ to "fill".
+ """
+
+ def __init__(self, arg=None, outlinecolor=None, **kwargs):
+ """
+ Construct a new Fill object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.map.layer.Fill`
+ outlinecolor
+ Sets the fill outline color (map.layer.paint.fill-
+ outline-color). Has an effect only when `type` is set
+ to "fill".
+
+ Returns
+ -------
+ Fill
+ """
+ super().__init__("fill")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.map.layer.Fill
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.map.layer.Fill`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("outlinecolor", arg, outlinecolor)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/layer/_line.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/layer/_line.py
new file mode 100644
index 0000000..369be5f
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/layer/_line.py
@@ -0,0 +1,133 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Line(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.map.layer"
+ _path_str = "layout.map.layer.line"
+ _valid_props = {"dash", "dashsrc", "width"}
+
+ @property
+ def dash(self):
+ """
+ Sets the length of dashes and gaps (map.layer.paint.line-
+ dasharray). Has an effect only when `type` is set to "line".
+
+ The 'dash' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["dash"]
+
+ @dash.setter
+ def dash(self, val):
+ self["dash"] = val
+
+ @property
+ def dashsrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `dash`.
+
+ The 'dashsrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["dashsrc"]
+
+ @dashsrc.setter
+ def dashsrc(self, val):
+ self["dashsrc"] = val
+
+ @property
+ def width(self):
+ """
+ Sets the line width (map.layer.paint.line-width). Has an effect
+ only when `type` is set to "line".
+
+ The 'width' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["width"]
+
+ @width.setter
+ def width(self, val):
+ self["width"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ dash
+ Sets the length of dashes and gaps
+ (map.layer.paint.line-dasharray). Has an effect only
+ when `type` is set to "line".
+ dashsrc
+ Sets the source reference on Chart Studio Cloud for
+ `dash`.
+ width
+ Sets the line width (map.layer.paint.line-width). Has
+ an effect only when `type` is set to "line".
+ """
+
+ def __init__(self, arg=None, dash=None, dashsrc=None, width=None, **kwargs):
+ """
+ Construct a new Line object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.map.layer.Line`
+ dash
+ Sets the length of dashes and gaps
+ (map.layer.paint.line-dasharray). Has an effect only
+ when `type` is set to "line".
+ dashsrc
+ Sets the source reference on Chart Studio Cloud for
+ `dash`.
+ width
+ Sets the line width (map.layer.paint.line-width). Has
+ an effect only when `type` is set to "line".
+
+ Returns
+ -------
+ Line
+ """
+ super().__init__("line")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.map.layer.Line
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.map.layer.Line`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("dash", arg, dash)
+ self._set_property("dashsrc", arg, dashsrc)
+ self._set_property("width", arg, width)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/layer/_symbol.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/layer/_symbol.py
new file mode 100644
index 0000000..58507ae
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/layer/_symbol.py
@@ -0,0 +1,243 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Symbol(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.map.layer"
+ _path_str = "layout.map.layer.symbol"
+ _valid_props = {"icon", "iconsize", "placement", "text", "textfont", "textposition"}
+
+ @property
+ def icon(self):
+ """
+ Sets the symbol icon image (map.layer.layout.icon-image). Full
+ list: https://www.map.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
+
+ @property
+ def iconsize(self):
+ """
+ Sets the symbol icon size (map.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
+
+ @property
+ def placement(self):
+ """
+ Sets the symbol and/or text placement (map.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
+
+ @property
+ def text(self):
+ """
+ Sets the symbol text (map.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
+
+ @property
+ def textfont(self):
+ """
+ Sets the icon text font (color=map.layer.paint.text-color,
+ size=map.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.map.layer.symbol.Textfont`
+ - A dict of string/value properties that will be passed
+ to the Textfont constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.map.layer.symbol.Textfont
+ """
+ return self["textfont"]
+
+ @textfont.setter
+ def textfont(self, val):
+ self["textfont"] = val
+
+ @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
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ icon
+ Sets the symbol icon image (map.layer.layout.icon-
+ image). Full list: https://www.map.com/maki-icons/
+ iconsize
+ Sets the symbol icon size (map.layer.layout.icon-size).
+ Has an effect only when `type` is set to "symbol".
+ placement
+ Sets the symbol and/or text placement
+ (map.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 (map.layer.layout.text-field).
+ textfont
+ Sets the icon text font (color=map.layer.paint.text-
+ color, size=map.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.map.layer.Symbol`
+ icon
+ Sets the symbol icon image (map.layer.layout.icon-
+ image). Full list: https://www.map.com/maki-icons/
+ iconsize
+ Sets the symbol icon size (map.layer.layout.icon-size).
+ Has an effect only when `type` is set to "symbol".
+ placement
+ Sets the symbol and/or text placement
+ (map.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 (map.layer.layout.text-field).
+ textfont
+ Sets the icon text font (color=map.layer.paint.text-
+ color, size=map.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().__init__("symbol")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.map.layer.Symbol
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.map.layer.Symbol`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("icon", arg, icon)
+ self._set_property("iconsize", arg, iconsize)
+ self._set_property("placement", arg, placement)
+ self._set_property("text", arg, text)
+ self._set_property("textfont", arg, textfont)
+ self._set_property("textposition", arg, textposition)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/layer/symbol/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/layer/symbol/__init__.py
new file mode 100644
index 0000000..a713099
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/layer/symbol/__init__.py
@@ -0,0 +1,11 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._textfont import Textfont
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__, [], ["._textfont.Textfont"]
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/layer/symbol/_textfont.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/layer/symbol/_textfont.py
new file mode 100644
index 0000000..911cbcd
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/map/layer/symbol/_textfont.py
@@ -0,0 +1,202 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Textfont(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.map.layer.symbol"
+ _path_str = "layout.map.layer.symbol.textfont"
+ _valid_props = {"color", "family", "size", "style", "weight"}
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ size=None,
+ style=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Textfont object
+
+ Sets the icon text font (color=map.layer.paint.text-color,
+ size=map.layer.layout.text-size). Has an effect only when
+ `type` is set to "symbol".
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.map.lay
+ er.symbol.Textfont`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Textfont
+ """
+ super().__init__("textfont")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.map.layer.symbol.Textfont
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.map.layer.symbol.Textfont`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/__init__.py
new file mode 100644
index 0000000..929c41c
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/__init__.py
@@ -0,0 +1,17 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._bounds import Bounds
+ from ._center import Center
+ from ._domain import Domain
+ from ._layer import Layer
+ from . import layer
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__,
+ [".layer"],
+ ["._bounds.Bounds", "._center.Center", "._domain.Domain", "._layer.Layer"],
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/_bounds.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/_bounds.py
new file mode 100644
index 0000000..0179224
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/_bounds.py
@@ -0,0 +1,160 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Bounds(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.mapbox"
+ _path_str = "layout.mapbox.bounds"
+ _valid_props = {"east", "north", "south", "west"}
+
+ @property
+ def east(self):
+ """
+ Sets the maximum longitude of the map (in degrees East) if
+ `west`, `south` and `north` are declared.
+
+ The 'east' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["east"]
+
+ @east.setter
+ def east(self, val):
+ self["east"] = val
+
+ @property
+ def north(self):
+ """
+ Sets the maximum latitude of the map (in degrees North) if
+ `east`, `west` and `south` are declared.
+
+ The 'north' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["north"]
+
+ @north.setter
+ def north(self, val):
+ self["north"] = val
+
+ @property
+ def south(self):
+ """
+ Sets the minimum latitude of the map (in degrees North) if
+ `east`, `west` and `north` are declared.
+
+ The 'south' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["south"]
+
+ @south.setter
+ def south(self, val):
+ self["south"] = val
+
+ @property
+ def west(self):
+ """
+ Sets the minimum longitude of the map (in degrees East) if
+ `east`, `south` and `north` are declared.
+
+ The 'west' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["west"]
+
+ @west.setter
+ def west(self, val):
+ self["west"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ east
+ Sets the maximum longitude of the map (in degrees East)
+ if `west`, `south` and `north` are declared.
+ north
+ Sets the maximum latitude of the map (in degrees North)
+ if `east`, `west` and `south` are declared.
+ south
+ Sets the minimum latitude of the map (in degrees North)
+ if `east`, `west` and `north` are declared.
+ west
+ Sets the minimum longitude of the map (in degrees East)
+ if `east`, `south` and `north` are declared.
+ """
+
+ def __init__(
+ self, arg=None, east=None, north=None, south=None, west=None, **kwargs
+ ):
+ """
+ Construct a new Bounds object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.mapbox.Bounds`
+ east
+ Sets the maximum longitude of the map (in degrees East)
+ if `west`, `south` and `north` are declared.
+ north
+ Sets the maximum latitude of the map (in degrees North)
+ if `east`, `west` and `south` are declared.
+ south
+ Sets the minimum latitude of the map (in degrees North)
+ if `east`, `west` and `north` are declared.
+ west
+ Sets the minimum longitude of the map (in degrees East)
+ if `east`, `south` and `north` are declared.
+
+ Returns
+ -------
+ Bounds
+ """
+ super().__init__("bounds")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Bounds
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.mapbox.Bounds`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("east", arg, east)
+ self._set_property("north", arg, north)
+ self._set_property("south", arg, south)
+ self._set_property("west", arg, west)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/_center.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/_center.py
new file mode 100644
index 0000000..c3a2380
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/_center.py
@@ -0,0 +1,104 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Center(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.mapbox"
+ _path_str = "layout.mapbox.center"
+ _valid_props = {"lat", "lon"}
+
+ @property
+ def lat(self):
+ """
+ Sets the latitude of the center of the map (in degrees North).
+
+ The 'lat' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["lat"]
+
+ @lat.setter
+ def lat(self, val):
+ self["lat"] = val
+
+ @property
+ def lon(self):
+ """
+ Sets the longitude of the center of the map (in degrees East).
+
+ The 'lon' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["lon"]
+
+ @lon.setter
+ def lon(self, val):
+ self["lon"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ lat
+ Sets the latitude of the center of the map (in degrees
+ North).
+ lon
+ Sets the longitude of the center of the map (in degrees
+ East).
+ """
+
+ def __init__(self, arg=None, lat=None, lon=None, **kwargs):
+ """
+ Construct a new Center object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.mapbox.Center`
+ lat
+ Sets the latitude of the center of the map (in degrees
+ North).
+ lon
+ Sets the longitude of the center of the map (in degrees
+ East).
+
+ Returns
+ -------
+ Center
+ """
+ super().__init__("center")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Center
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.mapbox.Center`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("lat", arg, lat)
+ self._set_property("lon", arg, lon)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/_domain.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/_domain.py
new file mode 100644
index 0000000..371af69
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/_domain.py
@@ -0,0 +1,170 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Domain(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.mapbox"
+ _path_str = "layout.mapbox.domain"
+ _valid_props = {"column", "row", "x", "y"}
+
+ @property
+ def column(self):
+ """
+ If there is a layout grid, use the domain for this column in
+ the grid for this mapbox subplot .
+
+ The 'column' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [0, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["column"]
+
+ @column.setter
+ def column(self, val):
+ self["column"] = val
+
+ @property
+ def row(self):
+ """
+ If there is a layout grid, use the domain for this row in the
+ grid for this mapbox subplot .
+
+ The 'row' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [0, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["row"]
+
+ @row.setter
+ def row(self, val):
+ self["row"] = val
+
+ @property
+ def x(self):
+ """
+ Sets the horizontal domain of this mapbox subplot (in plot
+ fraction).
+
+ The 'x' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'x[0]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+ (1) The 'x[1]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ list
+ """
+ return self["x"]
+
+ @x.setter
+ def x(self, val):
+ self["x"] = val
+
+ @property
+ def y(self):
+ """
+ Sets the vertical domain of this mapbox subplot (in plot
+ fraction).
+
+ The 'y' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'y[0]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+ (1) The 'y[1]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ list
+ """
+ return self["y"]
+
+ @y.setter
+ def y(self, val):
+ self["y"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ column
+ If there is a layout grid, use the domain for this
+ column in the grid for this mapbox subplot .
+ row
+ If there is a layout grid, use the domain for this row
+ in the grid for this mapbox subplot .
+ x
+ Sets the horizontal domain of this mapbox subplot (in
+ plot fraction).
+ y
+ Sets the vertical domain of this mapbox subplot (in
+ plot fraction).
+ """
+
+ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
+ """
+ Construct a new Domain object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.mapbox.Domain`
+ column
+ If there is a layout grid, use the domain for this
+ column in the grid for this mapbox subplot .
+ row
+ If there is a layout grid, use the domain for this row
+ in the grid for this mapbox subplot .
+ x
+ Sets the horizontal domain of this mapbox subplot (in
+ plot fraction).
+ y
+ Sets the vertical domain of this mapbox subplot (in
+ plot fraction).
+
+ Returns
+ -------
+ Domain
+ """
+ super().__init__("domain")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Domain
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.mapbox.Domain`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("column", arg, column)
+ self._set_property("row", arg, row)
+ self._set_property("x", arg, x)
+ self._set_property("y", arg, y)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/_layer.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/_layer.py
new file mode 100644
index 0000000..abad68f
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/_layer.py
@@ -0,0 +1,695 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Layer(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.mapbox"
+ _path_str = "layout.mapbox.layer"
+ _valid_props = {
+ "below",
+ "circle",
+ "color",
+ "coordinates",
+ "fill",
+ "line",
+ "maxzoom",
+ "minzoom",
+ "name",
+ "opacity",
+ "source",
+ "sourceattribution",
+ "sourcelayer",
+ "sourcetype",
+ "symbol",
+ "templateitemname",
+ "type",
+ "visible",
+ }
+
+ @property
+ def below(self):
+ """
+ Determines if the layer will be inserted before the layer with
+ the specified ID. If omitted or set to '', the layer will be
+ inserted above every existing layer.
+
+ The 'below' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["below"]
+
+ @below.setter
+ def below(self, val):
+ self["below"] = val
+
+ @property
+ def circle(self):
+ """
+ The 'circle' property is an instance of Circle
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.mapbox.layer.Circle`
+ - A dict of string/value properties that will be passed
+ to the Circle constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.mapbox.layer.Circle
+ """
+ return self["circle"]
+
+ @circle.setter
+ def circle(self, val):
+ self["circle"] = val
+
+ @property
+ def color(self):
+ """
+ Sets the primary layer color. If `type` is "circle", color
+ corresponds to the circle color (mapbox.layer.paint.circle-
+ color) If `type` is "line", color corresponds to the line color
+ (mapbox.layer.paint.line-color) If `type` is "fill", color
+ corresponds to the fill color (mapbox.layer.paint.fill-color)
+ If `type` is "symbol", color corresponds to the icon color
+ (mapbox.layer.paint.icon-color)
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def coordinates(self):
+ """
+ Sets the coordinates array contains [longitude, latitude] pairs
+ for the image corners listed in clockwise order: top left, top
+ right, bottom right, bottom left. Only has an effect for
+ "image" `sourcetype`.
+
+ The 'coordinates' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["coordinates"]
+
+ @coordinates.setter
+ def coordinates(self, val):
+ self["coordinates"] = val
+
+ @property
+ def fill(self):
+ """
+ The 'fill' property is an instance of Fill
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.mapbox.layer.Fill`
+ - A dict of string/value properties that will be passed
+ to the Fill constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.mapbox.layer.Fill
+ """
+ return self["fill"]
+
+ @fill.setter
+ def fill(self, val):
+ self["fill"] = val
+
+ @property
+ def line(self):
+ """
+ The 'line' property is an instance of Line
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.mapbox.layer.Line`
+ - A dict of string/value properties that will be passed
+ to the Line constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.mapbox.layer.Line
+ """
+ return self["line"]
+
+ @line.setter
+ def line(self, val):
+ self["line"] = val
+
+ @property
+ def maxzoom(self):
+ """
+ Sets the maximum zoom level (mapbox.layer.maxzoom). At zoom
+ levels equal to or greater than the maxzoom, the layer will be
+ hidden.
+
+ The 'maxzoom' property is a number and may be specified as:
+ - An int or float in the interval [0, 24]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["maxzoom"]
+
+ @maxzoom.setter
+ def maxzoom(self, val):
+ self["maxzoom"] = val
+
+ @property
+ def minzoom(self):
+ """
+ Sets the minimum zoom level (mapbox.layer.minzoom). At zoom
+ levels less than the minzoom, the layer will be hidden.
+
+ The 'minzoom' property is a number and may be specified as:
+ - An int or float in the interval [0, 24]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["minzoom"]
+
+ @minzoom.setter
+ def minzoom(self, val):
+ self["minzoom"] = val
+
+ @property
+ def name(self):
+ """
+ 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.
+
+ The 'name' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["name"]
+
+ @name.setter
+ def name(self, val):
+ self["name"] = val
+
+ @property
+ def opacity(self):
+ """
+ Sets the opacity of the layer. If `type` is "circle", opacity
+ corresponds to the circle opacity (mapbox.layer.paint.circle-
+ opacity) If `type` is "line", opacity corresponds to the line
+ opacity (mapbox.layer.paint.line-opacity) If `type` is "fill",
+ opacity corresponds to the fill opacity
+ (mapbox.layer.paint.fill-opacity) If `type` is "symbol",
+ opacity corresponds to the icon/text opacity
+ (mapbox.layer.paint.text-opacity)
+
+ The 'opacity' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["opacity"]
+
+ @opacity.setter
+ def opacity(self, val):
+ self["opacity"] = val
+
+ @property
+ def source(self):
+ """
+ Sets the source data for this layer (mapbox.layer.source). When
+ `sourcetype` is set to "geojson", `source` can be a URL to a
+ GeoJSON or a GeoJSON object. When `sourcetype` is set to
+ "vector" or "raster", `source` can be a URL or an array of tile
+ URLs. When `sourcetype` is set to "image", `source` can be a
+ URL to an image.
+
+ The 'source' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["source"]
+
+ @source.setter
+ def source(self, val):
+ self["source"] = val
+
+ @property
+ def sourceattribution(self):
+ """
+ Sets the attribution for this source.
+
+ The 'sourceattribution' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["sourceattribution"]
+
+ @sourceattribution.setter
+ def sourceattribution(self, val):
+ self["sourceattribution"] = val
+
+ @property
+ def sourcelayer(self):
+ """
+ Specifies the layer to use from a vector tile source
+ (mapbox.layer.source-layer). Required for "vector" source type
+ that supports multiple layers.
+
+ The 'sourcelayer' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["sourcelayer"]
+
+ @sourcelayer.setter
+ def sourcelayer(self, val):
+ self["sourcelayer"] = val
+
+ @property
+ def sourcetype(self):
+ """
+ Sets the source type for this layer, that is the type of the
+ layer data.
+
+ The 'sourcetype' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['geojson', 'vector', 'raster', 'image']
+
+ Returns
+ -------
+ Any
+ """
+ return self["sourcetype"]
+
+ @sourcetype.setter
+ def sourcetype(self, val):
+ self["sourcetype"] = val
+
+ @property
+ def symbol(self):
+ """
+ The 'symbol' property is an instance of Symbol
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.mapbox.layer.Symbol`
+ - A dict of string/value properties that will be passed
+ to the Symbol constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.mapbox.layer.Symbol
+ """
+ return self["symbol"]
+
+ @symbol.setter
+ def symbol(self, val):
+ self["symbol"] = val
+
+ @property
+ def templateitemname(self):
+ """
+ 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`.
+
+ The 'templateitemname' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["templateitemname"]
+
+ @templateitemname.setter
+ def templateitemname(self, val):
+ self["templateitemname"] = val
+
+ @property
+ def type(self):
+ """
+ Sets the layer type, that is the how the layer data set in
+ `source` will be rendered With `sourcetype` set to "geojson",
+ the following values are allowed: "circle", "line", "fill" and
+ "symbol". but note that "line" and "fill" are not compatible
+ with Point GeoJSON geometries. With `sourcetype` set to
+ "vector", the following values are allowed: "circle", "line",
+ "fill" and "symbol". With `sourcetype` set to "raster" or
+ `*image*`, only the "raster" value is allowed.
+
+ The 'type' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['circle', 'line', 'fill', 'symbol', 'raster']
+
+ Returns
+ -------
+ Any
+ """
+ return self["type"]
+
+ @type.setter
+ def type(self, val):
+ self["type"] = val
+
+ @property
+ def visible(self):
+ """
+ Determines whether this layer is displayed
+
+ The 'visible' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["visible"]
+
+ @visible.setter
+ def visible(self, val):
+ self["visible"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ below
+ Determines if the layer will be inserted before the
+ layer with the specified ID. If omitted or set to '',
+ the layer will be inserted above every existing layer.
+ circle
+ :class:`plotly.graph_objects.layout.mapbox.layer.Circle
+ ` instance or dict with compatible properties
+ color
+ Sets the primary layer color. If `type` is "circle",
+ color corresponds to the circle color
+ (mapbox.layer.paint.circle-color) If `type` is "line",
+ color corresponds to the line color
+ (mapbox.layer.paint.line-color) If `type` is "fill",
+ color corresponds to the fill color
+ (mapbox.layer.paint.fill-color) If `type` is "symbol",
+ color corresponds to the icon color
+ (mapbox.layer.paint.icon-color)
+ coordinates
+ Sets the coordinates array contains [longitude,
+ latitude] pairs for the image corners listed in
+ clockwise order: top left, top right, bottom right,
+ bottom left. Only has an effect for "image"
+ `sourcetype`.
+ fill
+ :class:`plotly.graph_objects.layout.mapbox.layer.Fill`
+ instance or dict with compatible properties
+ line
+ :class:`plotly.graph_objects.layout.mapbox.layer.Line`
+ instance or dict with compatible properties
+ maxzoom
+ Sets the maximum zoom level (mapbox.layer.maxzoom). At
+ zoom levels equal to or greater than the maxzoom, the
+ layer will be hidden.
+ minzoom
+ Sets the minimum zoom level (mapbox.layer.minzoom). At
+ zoom levels less than the minzoom, the layer will be
+ hidden.
+ 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.
+ opacity
+ Sets the opacity of the layer. If `type` is "circle",
+ opacity corresponds to the circle opacity
+ (mapbox.layer.paint.circle-opacity) If `type` is
+ "line", opacity corresponds to the line opacity
+ (mapbox.layer.paint.line-opacity) If `type` is "fill",
+ opacity corresponds to the fill opacity
+ (mapbox.layer.paint.fill-opacity) If `type` is
+ "symbol", opacity corresponds to the icon/text opacity
+ (mapbox.layer.paint.text-opacity)
+ source
+ Sets the source data for this layer
+ (mapbox.layer.source). When `sourcetype` is set to
+ "geojson", `source` can be a URL to a GeoJSON or a
+ GeoJSON object. When `sourcetype` is set to "vector" or
+ "raster", `source` can be a URL or an array of tile
+ URLs. When `sourcetype` is set to "image", `source` can
+ be a URL to an image.
+ sourceattribution
+ Sets the attribution for this source.
+ sourcelayer
+ Specifies the layer to use from a vector tile source
+ (mapbox.layer.source-layer). Required for "vector"
+ source type that supports multiple layers.
+ sourcetype
+ Sets the source type for this layer, that is the type
+ of the layer data.
+ symbol
+ :class:`plotly.graph_objects.layout.mapbox.layer.Symbol
+ ` instance or dict with compatible properties
+ 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`.
+ type
+ Sets the layer type, that is the how the layer data set
+ in `source` will be rendered With `sourcetype` set to
+ "geojson", the following values are allowed: "circle",
+ "line", "fill" and "symbol". but note that "line" and
+ "fill" are not compatible with Point GeoJSON
+ geometries. With `sourcetype` set to "vector", the
+ following values are allowed: "circle", "line", "fill"
+ and "symbol". With `sourcetype` set to "raster" or
+ `*image*`, only the "raster" value is allowed.
+ visible
+ Determines whether this layer is displayed
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ below=None,
+ circle=None,
+ color=None,
+ coordinates=None,
+ fill=None,
+ line=None,
+ maxzoom=None,
+ minzoom=None,
+ name=None,
+ opacity=None,
+ source=None,
+ sourceattribution=None,
+ sourcelayer=None,
+ sourcetype=None,
+ symbol=None,
+ templateitemname=None,
+ type=None,
+ visible=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Layer object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.mapbox.Layer`
+ below
+ Determines if the layer will be inserted before the
+ layer with the specified ID. If omitted or set to '',
+ the layer will be inserted above every existing layer.
+ circle
+ :class:`plotly.graph_objects.layout.mapbox.layer.Circle
+ ` instance or dict with compatible properties
+ color
+ Sets the primary layer color. If `type` is "circle",
+ color corresponds to the circle color
+ (mapbox.layer.paint.circle-color) If `type` is "line",
+ color corresponds to the line color
+ (mapbox.layer.paint.line-color) If `type` is "fill",
+ color corresponds to the fill color
+ (mapbox.layer.paint.fill-color) If `type` is "symbol",
+ color corresponds to the icon color
+ (mapbox.layer.paint.icon-color)
+ coordinates
+ Sets the coordinates array contains [longitude,
+ latitude] pairs for the image corners listed in
+ clockwise order: top left, top right, bottom right,
+ bottom left. Only has an effect for "image"
+ `sourcetype`.
+ fill
+ :class:`plotly.graph_objects.layout.mapbox.layer.Fill`
+ instance or dict with compatible properties
+ line
+ :class:`plotly.graph_objects.layout.mapbox.layer.Line`
+ instance or dict with compatible properties
+ maxzoom
+ Sets the maximum zoom level (mapbox.layer.maxzoom). At
+ zoom levels equal to or greater than the maxzoom, the
+ layer will be hidden.
+ minzoom
+ Sets the minimum zoom level (mapbox.layer.minzoom). At
+ zoom levels less than the minzoom, the layer will be
+ hidden.
+ 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.
+ opacity
+ Sets the opacity of the layer. If `type` is "circle",
+ opacity corresponds to the circle opacity
+ (mapbox.layer.paint.circle-opacity) If `type` is
+ "line", opacity corresponds to the line opacity
+ (mapbox.layer.paint.line-opacity) If `type` is "fill",
+ opacity corresponds to the fill opacity
+ (mapbox.layer.paint.fill-opacity) If `type` is
+ "symbol", opacity corresponds to the icon/text opacity
+ (mapbox.layer.paint.text-opacity)
+ source
+ Sets the source data for this layer
+ (mapbox.layer.source). When `sourcetype` is set to
+ "geojson", `source` can be a URL to a GeoJSON or a
+ GeoJSON object. When `sourcetype` is set to "vector" or
+ "raster", `source` can be a URL or an array of tile
+ URLs. When `sourcetype` is set to "image", `source` can
+ be a URL to an image.
+ sourceattribution
+ Sets the attribution for this source.
+ sourcelayer
+ Specifies the layer to use from a vector tile source
+ (mapbox.layer.source-layer). Required for "vector"
+ source type that supports multiple layers.
+ sourcetype
+ Sets the source type for this layer, that is the type
+ of the layer data.
+ symbol
+ :class:`plotly.graph_objects.layout.mapbox.layer.Symbol
+ ` instance or dict with compatible properties
+ 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`.
+ type
+ Sets the layer type, that is the how the layer data set
+ in `source` will be rendered With `sourcetype` set to
+ "geojson", the following values are allowed: "circle",
+ "line", "fill" and "symbol". but note that "line" and
+ "fill" are not compatible with Point GeoJSON
+ geometries. With `sourcetype` set to "vector", the
+ following values are allowed: "circle", "line", "fill"
+ and "symbol". With `sourcetype` set to "raster" or
+ `*image*`, only the "raster" value is allowed.
+ visible
+ Determines whether this layer is displayed
+
+ Returns
+ -------
+ Layer
+ """
+ super().__init__("layers")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.mapbox.Layer`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("below", arg, below)
+ self._set_property("circle", arg, circle)
+ self._set_property("color", arg, color)
+ self._set_property("coordinates", arg, coordinates)
+ self._set_property("fill", arg, fill)
+ self._set_property("line", arg, line)
+ self._set_property("maxzoom", arg, maxzoom)
+ self._set_property("minzoom", arg, minzoom)
+ self._set_property("name", arg, name)
+ self._set_property("opacity", arg, opacity)
+ self._set_property("source", arg, source)
+ self._set_property("sourceattribution", arg, sourceattribution)
+ self._set_property("sourcelayer", arg, sourcelayer)
+ self._set_property("sourcetype", arg, sourcetype)
+ self._set_property("symbol", arg, symbol)
+ self._set_property("templateitemname", arg, templateitemname)
+ self._set_property("type", arg, type)
+ self._set_property("visible", arg, visible)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/layer/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/layer/__init__.py
new file mode 100644
index 0000000..2d86fbd
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/layer/__init__.py
@@ -0,0 +1,17 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._circle import Circle
+ from ._fill import Fill
+ from ._line import Line
+ from ._symbol import Symbol
+ from . import symbol
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__,
+ [".symbol"],
+ ["._circle.Circle", "._fill.Fill", "._line.Line", "._symbol.Symbol"],
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/layer/_circle.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/layer/_circle.py
new file mode 100644
index 0000000..74ba819
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/layer/_circle.py
@@ -0,0 +1,82 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Circle(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.mapbox.layer"
+ _path_str = "layout.mapbox.layer.circle"
+ _valid_props = {"radius"}
+
+ @property
+ def radius(self):
+ """
+ Sets the circle radius (mapbox.layer.paint.circle-radius). Has
+ an effect only when `type` is set to "circle".
+
+ The 'radius' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["radius"]
+
+ @radius.setter
+ def radius(self, val):
+ self["radius"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ radius
+ Sets the circle radius (mapbox.layer.paint.circle-
+ radius). Has an effect only when `type` is set to
+ "circle".
+ """
+
+ def __init__(self, arg=None, radius=None, **kwargs):
+ """
+ Construct a new Circle object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.mapbox.layer.Circle`
+ radius
+ Sets the circle radius (mapbox.layer.paint.circle-
+ radius). Has an effect only when `type` is set to
+ "circle".
+
+ Returns
+ -------
+ Circle
+ """
+ super().__init__("circle")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Circle
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.mapbox.layer.Circle`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("radius", arg, radius)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/layer/_fill.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/layer/_fill.py
new file mode 100644
index 0000000..d7ae63c
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/layer/_fill.py
@@ -0,0 +1,86 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Fill(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.mapbox.layer"
+ _path_str = "layout.mapbox.layer.fill"
+ _valid_props = {"outlinecolor"}
+
+ @property
+ def outlinecolor(self):
+ """
+ Sets the fill outline color (mapbox.layer.paint.fill-outline-
+ color). Has an effect only when `type` is set to "fill".
+
+ The 'outlinecolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["outlinecolor"]
+
+ @outlinecolor.setter
+ def outlinecolor(self, val):
+ self["outlinecolor"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ outlinecolor
+ Sets the fill outline color (mapbox.layer.paint.fill-
+ outline-color). Has an effect only when `type` is set
+ to "fill".
+ """
+
+ def __init__(self, arg=None, outlinecolor=None, **kwargs):
+ """
+ Construct a new Fill object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.mapbox.layer.Fill`
+ outlinecolor
+ Sets the fill outline color (mapbox.layer.paint.fill-
+ outline-color). Has an effect only when `type` is set
+ to "fill".
+
+ Returns
+ -------
+ Fill
+ """
+ super().__init__("fill")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Fill
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.mapbox.layer.Fill`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("outlinecolor", arg, outlinecolor)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/layer/_line.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/layer/_line.py
new file mode 100644
index 0000000..1ca3ca3
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/layer/_line.py
@@ -0,0 +1,133 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Line(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.mapbox.layer"
+ _path_str = "layout.mapbox.layer.line"
+ _valid_props = {"dash", "dashsrc", "width"}
+
+ @property
+ def dash(self):
+ """
+ Sets the length of dashes and gaps (mapbox.layer.paint.line-
+ dasharray). Has an effect only when `type` is set to "line".
+
+ The 'dash' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["dash"]
+
+ @dash.setter
+ def dash(self, val):
+ self["dash"] = val
+
+ @property
+ def dashsrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `dash`.
+
+ The 'dashsrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["dashsrc"]
+
+ @dashsrc.setter
+ def dashsrc(self, val):
+ self["dashsrc"] = val
+
+ @property
+ def width(self):
+ """
+ Sets the line width (mapbox.layer.paint.line-width). Has an
+ effect only when `type` is set to "line".
+
+ The 'width' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["width"]
+
+ @width.setter
+ def width(self, val):
+ self["width"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ dash
+ Sets the length of dashes and gaps
+ (mapbox.layer.paint.line-dasharray). Has an effect only
+ when `type` is set to "line".
+ dashsrc
+ Sets the source reference on Chart Studio Cloud for
+ `dash`.
+ width
+ Sets the line width (mapbox.layer.paint.line-width).
+ Has an effect only when `type` is set to "line".
+ """
+
+ def __init__(self, arg=None, dash=None, dashsrc=None, width=None, **kwargs):
+ """
+ Construct a new Line object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.mapbox.layer.Line`
+ dash
+ Sets the length of dashes and gaps
+ (mapbox.layer.paint.line-dasharray). Has an effect only
+ when `type` is set to "line".
+ dashsrc
+ Sets the source reference on Chart Studio Cloud for
+ `dash`.
+ width
+ Sets the line width (mapbox.layer.paint.line-width).
+ Has an effect only when `type` is set to "line".
+
+ Returns
+ -------
+ Line
+ """
+ super().__init__("line")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Line
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.mapbox.layer.Line`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("dash", arg, dash)
+ self._set_property("dashsrc", arg, dashsrc)
+ self._set_property("width", arg, width)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/layer/_symbol.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/layer/_symbol.py
new file mode 100644
index 0000000..506e36a
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/layer/_symbol.py
@@ -0,0 +1,245 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Symbol(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.mapbox.layer"
+ _path_str = "layout.mapbox.layer.symbol"
+ _valid_props = {"icon", "iconsize", "placement", "text", "textfont", "textposition"}
+
+ @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
+
+ @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
+
+ @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
+
+ @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
+
+ @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
+
+ Returns
+ -------
+ plotly.graph_objs.layout.mapbox.layer.symbol.Textfont
+ """
+ return self["textfont"]
+
+ @textfont.setter
+ def textfont(self, val):
+ self["textfont"] = val
+
+ @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
+
+ @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().__init__("symbol")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("icon", arg, icon)
+ self._set_property("iconsize", arg, iconsize)
+ self._set_property("placement", arg, placement)
+ self._set_property("text", arg, text)
+ self._set_property("textfont", arg, textfont)
+ self._set_property("textposition", arg, textposition)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/layer/symbol/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/layer/symbol/__init__.py
new file mode 100644
index 0000000..a713099
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/layer/symbol/__init__.py
@@ -0,0 +1,11 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._textfont import Textfont
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__, [], ["._textfont.Textfont"]
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/layer/symbol/_textfont.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/layer/symbol/_textfont.py
new file mode 100644
index 0000000..473535e
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/mapbox/layer/symbol/_textfont.py
@@ -0,0 +1,202 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Textfont(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.mapbox.layer.symbol"
+ _path_str = "layout.mapbox.layer.symbol.textfont"
+ _valid_props = {"color", "family", "size", "style", "weight"}
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ size=None,
+ style=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Textfont object
+
+ 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".
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.mapbox.
+ layer.symbol.Textfont`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Textfont
+ """
+ super().__init__("textfont")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.Textfont
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.mapbox.layer.symbol.Textfont`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newselection/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newselection/__init__.py
new file mode 100644
index 0000000..33e42c0
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newselection/__init__.py
@@ -0,0 +1,9 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._line import Line
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(__name__, [], ["._line.Line"])
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newselection/_line.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newselection/_line.py
new file mode 100644
index 0000000..b7d6420
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newselection/_line.py
@@ -0,0 +1,142 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Line(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.newselection"
+ _path_str = "layout.newselection.line"
+ _valid_props = {"color", "dash", "width"}
+
+ @property
+ def color(self):
+ """
+ Sets the line color. By default uses either dark grey or white
+ to increase contrast with background color.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def dash(self):
+ """
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+
+ The 'dash' property is an enumeration that may be specified as:
+ - One of the following dash styles:
+ ['solid', 'dot', 'dash', 'longdash', 'dashdot', 'longdashdot']
+ - A string containing a dash length list in pixels or percentages
+ (e.g. '5px 10px 2px 2px', '5, 10, 2, 2', '10% 20% 40%', etc.)
+
+ Returns
+ -------
+ str
+ """
+ return self["dash"]
+
+ @dash.setter
+ def dash(self, val):
+ self["dash"] = val
+
+ @property
+ def width(self):
+ """
+ Sets the line width (in px).
+
+ The 'width' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["width"]
+
+ @width.setter
+ def width(self, val):
+ self["width"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+ Sets the line color. By default uses either dark grey
+ or white to increase contrast with background color.
+ dash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ width
+ Sets the line width (in px).
+ """
+
+ def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
+ """
+ Construct a new Line object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.newselection.Line`
+ color
+ Sets the line color. By default uses either dark grey
+ or white to increase contrast with background color.
+ dash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ width
+ Sets the line width (in px).
+
+ Returns
+ -------
+ Line
+ """
+ super().__init__("line")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.newselection.Line
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.newselection.Line`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("dash", arg, dash)
+ self._set_property("width", arg, width)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/__init__.py
new file mode 100644
index 0000000..9192b99
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/__init__.py
@@ -0,0 +1,17 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._label import Label
+ from ._legendgrouptitle import Legendgrouptitle
+ from ._line import Line
+ from . import label
+ from . import legendgrouptitle
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__,
+ [".label", ".legendgrouptitle"],
+ ["._label.Label", "._legendgrouptitle.Legendgrouptitle", "._line.Line"],
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/_label.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/_label.py
new file mode 100644
index 0000000..419a6a0
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/_label.py
@@ -0,0 +1,397 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Label(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.newshape"
+ _path_str = "layout.newshape.label"
+ _valid_props = {
+ "font",
+ "padding",
+ "text",
+ "textangle",
+ "textposition",
+ "texttemplate",
+ "xanchor",
+ "yanchor",
+ }
+
+ @property
+ def font(self):
+ """
+ Sets the new shape label text font.
+
+ The 'font' property is an instance of Font
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.newshape.label.Font`
+ - A dict of string/value properties that will be passed
+ to the Font constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.newshape.label.Font
+ """
+ return self["font"]
+
+ @font.setter
+ def font(self, val):
+ self["font"] = val
+
+ @property
+ def padding(self):
+ """
+ Sets padding (in px) between edge of label and edge of new
+ shape.
+
+ The 'padding' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["padding"]
+
+ @padding.setter
+ def padding(self, val):
+ self["padding"] = val
+
+ @property
+ def text(self):
+ """
+ Sets the text to display with the new shape. It is also used
+ for legend item if `name` is not provided.
+
+ 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
+
+ @property
+ def textangle(self):
+ """
+ Sets the angle at which the label text is drawn with respect to
+ the horizontal. For lines, angle "auto" is the same angle as
+ the line. For all other shapes, angle "auto" is horizontal.
+
+ The 'textangle' property is a angle (in degrees) that may be
+ specified as a number between -180 and 180.
+ Numeric values outside this range are converted to the equivalent value
+ (e.g. 270 is converted to -90).
+
+ Returns
+ -------
+ int|float
+ """
+ return self["textangle"]
+
+ @textangle.setter
+ def textangle(self, val):
+ self["textangle"] = val
+
+ @property
+ def textposition(self):
+ """
+ Sets the position of the label text relative to the new shape.
+ Supported values for rectangles, circles and paths are *top
+ left*, *top center*, *top right*, *middle left*, *middle
+ center*, *middle right*, *bottom left*, *bottom center*, and
+ *bottom right*. Supported values for lines are "start",
+ "middle", and "end". Default: *middle center* for rectangles,
+ circles, and paths; "middle" for lines.
+
+ 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', 'start', 'middle', 'end']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textposition"]
+
+ @textposition.setter
+ def textposition(self, val):
+ self["textposition"] = val
+
+ @property
+ def texttemplate(self):
+ """
+ Template string used for rendering the new shape's label. Note
+ that this will override `text`. Variables are inserted using
+ %{variable}, for example "x0: %{x0}". Numbers are formatted
+ using d3-format's syntax %{variable:d3-format}, for example
+ "Price: %{x0:$.2f}". See
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format for
+ details on the formatting syntax. Dates are formatted using
+ d3-time-format's syntax %{variable|d3-time-format}, for example
+ "Day: %{x0|%m %b %Y}". See https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format for details on the date
+ formatting syntax. A single multiplication or division
+ operation may be applied to numeric variables, and combined
+ with d3 number formatting, for example "Length in cm:
+ %{x0*2.54}", "%{slope*60:.1f} meters per second." For log axes,
+ variable values are given in log units. For date axes, x/y
+ coordinate variables and center variables use datetimes, while
+ all other variable values use values in ms. Finally, the
+ template string has access to variables `x0`, `x1`, `y0`, `y1`,
+ `slope`, `dx`, `dy`, `width`, `height`, `length`, `xcenter` and
+ `ycenter`.
+
+ The 'texttemplate' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["texttemplate"]
+
+ @texttemplate.setter
+ def texttemplate(self, val):
+ self["texttemplate"] = val
+
+ @property
+ def xanchor(self):
+ """
+ Sets the label's horizontal position anchor This anchor binds
+ the specified `textposition` to the "left", "center" or "right"
+ of the label text. For example, if `textposition` is set to
+ *top right* and `xanchor` to "right" then the right-most
+ portion of the label text lines up with the right-most edge of
+ the new shape.
+
+ 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
+
+ @property
+ def yanchor(self):
+ """
+ Sets the label's vertical position anchor This anchor binds the
+ specified `textposition` to the "top", "middle" or "bottom" of
+ the label text. For example, if `textposition` is set to *top
+ right* and `yanchor` to "top" then the top-most portion of the
+ label text lines up with the top-most edge of the new shape.
+
+ The 'yanchor' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['top', 'middle', 'bottom']
+
+ Returns
+ -------
+ Any
+ """
+ return self["yanchor"]
+
+ @yanchor.setter
+ def yanchor(self, val):
+ self["yanchor"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ font
+ Sets the new shape label text font.
+ padding
+ Sets padding (in px) between edge of label and edge of
+ new shape.
+ text
+ Sets the text to display with the new shape. It is also
+ used for legend item if `name` is not provided.
+ textangle
+ Sets the angle at which the label text is drawn with
+ respect to the horizontal. For lines, angle "auto" is
+ the same angle as the line. For all other shapes, angle
+ "auto" is horizontal.
+ textposition
+ Sets the position of the label text relative to the new
+ shape. Supported values for rectangles, circles and
+ paths are *top left*, *top center*, *top right*,
+ *middle left*, *middle center*, *middle right*, *bottom
+ left*, *bottom center*, and *bottom right*. Supported
+ values for lines are "start", "middle", and "end".
+ Default: *middle center* for rectangles, circles, and
+ paths; "middle" for lines.
+ texttemplate
+ Template string used for rendering the new shape's
+ label. Note that this will override `text`. Variables
+ are inserted using %{variable}, for example "x0:
+ %{x0}". Numbers are formatted using d3-format's syntax
+ %{variable:d3-format}, for example "Price: %{x0:$.2f}".
+ See
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format
+ for details on the formatting syntax. Dates are
+ formatted using d3-time-format's syntax
+ %{variable|d3-time-format}, for example "Day: %{x0|%m
+ %b %Y}". See https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format for details on the
+ date formatting syntax. A single multiplication or
+ division operation may be applied to numeric variables,
+ and combined with d3 number formatting, for example
+ "Length in cm: %{x0*2.54}", "%{slope*60:.1f} meters per
+ second." For log axes, variable values are given in log
+ units. For date axes, x/y coordinate variables and
+ center variables use datetimes, while all other
+ variable values use values in ms. Finally, the template
+ string has access to variables `x0`, `x1`, `y0`, `y1`,
+ `slope`, `dx`, `dy`, `width`, `height`, `length`,
+ `xcenter` and `ycenter`.
+ xanchor
+ Sets the label's horizontal position anchor This anchor
+ binds the specified `textposition` to the "left",
+ "center" or "right" of the label text. For example, if
+ `textposition` is set to *top right* and `xanchor` to
+ "right" then the right-most portion of the label text
+ lines up with the right-most edge of the new shape.
+ yanchor
+ Sets the label's vertical position anchor This anchor
+ binds the specified `textposition` to the "top",
+ "middle" or "bottom" of the label text. For example, if
+ `textposition` is set to *top right* and `yanchor` to
+ "top" then the top-most portion of the label text lines
+ up with the top-most edge of the new shape.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ font=None,
+ padding=None,
+ text=None,
+ textangle=None,
+ textposition=None,
+ texttemplate=None,
+ xanchor=None,
+ yanchor=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Label object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.newshape.Label`
+ font
+ Sets the new shape label text font.
+ padding
+ Sets padding (in px) between edge of label and edge of
+ new shape.
+ text
+ Sets the text to display with the new shape. It is also
+ used for legend item if `name` is not provided.
+ textangle
+ Sets the angle at which the label text is drawn with
+ respect to the horizontal. For lines, angle "auto" is
+ the same angle as the line. For all other shapes, angle
+ "auto" is horizontal.
+ textposition
+ Sets the position of the label text relative to the new
+ shape. Supported values for rectangles, circles and
+ paths are *top left*, *top center*, *top right*,
+ *middle left*, *middle center*, *middle right*, *bottom
+ left*, *bottom center*, and *bottom right*. Supported
+ values for lines are "start", "middle", and "end".
+ Default: *middle center* for rectangles, circles, and
+ paths; "middle" for lines.
+ texttemplate
+ Template string used for rendering the new shape's
+ label. Note that this will override `text`. Variables
+ are inserted using %{variable}, for example "x0:
+ %{x0}". Numbers are formatted using d3-format's syntax
+ %{variable:d3-format}, for example "Price: %{x0:$.2f}".
+ See
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format
+ for details on the formatting syntax. Dates are
+ formatted using d3-time-format's syntax
+ %{variable|d3-time-format}, for example "Day: %{x0|%m
+ %b %Y}". See https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format for details on the
+ date formatting syntax. A single multiplication or
+ division operation may be applied to numeric variables,
+ and combined with d3 number formatting, for example
+ "Length in cm: %{x0*2.54}", "%{slope*60:.1f} meters per
+ second." For log axes, variable values are given in log
+ units. For date axes, x/y coordinate variables and
+ center variables use datetimes, while all other
+ variable values use values in ms. Finally, the template
+ string has access to variables `x0`, `x1`, `y0`, `y1`,
+ `slope`, `dx`, `dy`, `width`, `height`, `length`,
+ `xcenter` and `ycenter`.
+ xanchor
+ Sets the label's horizontal position anchor This anchor
+ binds the specified `textposition` to the "left",
+ "center" or "right" of the label text. For example, if
+ `textposition` is set to *top right* and `xanchor` to
+ "right" then the right-most portion of the label text
+ lines up with the right-most edge of the new shape.
+ yanchor
+ Sets the label's vertical position anchor This anchor
+ binds the specified `textposition` to the "top",
+ "middle" or "bottom" of the label text. For example, if
+ `textposition` is set to *top right* and `yanchor` to
+ "top" then the top-most portion of the label text lines
+ up with the top-most edge of the new shape.
+
+ Returns
+ -------
+ Label
+ """
+ super().__init__("label")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.newshape.Label
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.newshape.Label`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("font", arg, font)
+ self._set_property("padding", arg, padding)
+ self._set_property("text", arg, text)
+ self._set_property("textangle", arg, textangle)
+ self._set_property("textposition", arg, textposition)
+ self._set_property("texttemplate", arg, texttemplate)
+ self._set_property("xanchor", arg, xanchor)
+ self._set_property("yanchor", arg, yanchor)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/_legendgrouptitle.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/_legendgrouptitle.py
new file mode 100644
index 0000000..00230ca
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/_legendgrouptitle.py
@@ -0,0 +1,104 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Legendgrouptitle(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.newshape"
+ _path_str = "layout.newshape.legendgrouptitle"
+ _valid_props = {"font", "text"}
+
+ @property
+ def font(self):
+ """
+ Sets this legend group's title font.
+
+ The 'font' property is an instance of Font
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.newshape.legendgrouptitle.Font`
+ - A dict of string/value properties that will be passed
+ to the Font constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.newshape.legendgrouptitle.Font
+ """
+ return self["font"]
+
+ @font.setter
+ def font(self, val):
+ self["font"] = val
+
+ @property
+ def text(self):
+ """
+ Sets the title of the legend group.
+
+ 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
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ font
+ Sets this legend group's title font.
+ text
+ Sets the title of the legend group.
+ """
+
+ def __init__(self, arg=None, font=None, text=None, **kwargs):
+ """
+ Construct a new Legendgrouptitle object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.newshap
+ e.Legendgrouptitle`
+ font
+ Sets this legend group's title font.
+ text
+ Sets the title of the legend group.
+
+ Returns
+ -------
+ Legendgrouptitle
+ """
+ super().__init__("legendgrouptitle")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.newshape.Legendgrouptitle
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.newshape.Legendgrouptitle`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("font", arg, font)
+ self._set_property("text", arg, text)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/_line.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/_line.py
new file mode 100644
index 0000000..9a679d8
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/_line.py
@@ -0,0 +1,142 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Line(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.newshape"
+ _path_str = "layout.newshape.line"
+ _valid_props = {"color", "dash", "width"}
+
+ @property
+ def color(self):
+ """
+ Sets the line color. By default uses either dark grey or white
+ to increase contrast with background color.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def dash(self):
+ """
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+
+ The 'dash' property is an enumeration that may be specified as:
+ - One of the following dash styles:
+ ['solid', 'dot', 'dash', 'longdash', 'dashdot', 'longdashdot']
+ - A string containing a dash length list in pixels or percentages
+ (e.g. '5px 10px 2px 2px', '5, 10, 2, 2', '10% 20% 40%', etc.)
+
+ Returns
+ -------
+ str
+ """
+ return self["dash"]
+
+ @dash.setter
+ def dash(self, val):
+ self["dash"] = val
+
+ @property
+ def width(self):
+ """
+ Sets the line width (in px).
+
+ The 'width' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["width"]
+
+ @width.setter
+ def width(self, val):
+ self["width"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+ Sets the line color. By default uses either dark grey
+ or white to increase contrast with background color.
+ dash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ width
+ Sets the line width (in px).
+ """
+
+ def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
+ """
+ Construct a new Line object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.newshape.Line`
+ color
+ Sets the line color. By default uses either dark grey
+ or white to increase contrast with background color.
+ dash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ width
+ Sets the line width (in px).
+
+ Returns
+ -------
+ Line
+ """
+ super().__init__("line")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.newshape.Line
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.newshape.Line`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("dash", arg, dash)
+ self._set_property("width", arg, width)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/label/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/label/__init__.py
new file mode 100644
index 0000000..56f600d
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/label/__init__.py
@@ -0,0 +1,9 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._font import Font
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/label/_font.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/label/_font.py
new file mode 100644
index 0000000..91e49de
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/label/_font.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Font(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.newshape.label"
+ _path_str = "layout.newshape.label.font"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Font object
+
+ Sets the new shape label text font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.newshape.label.Font`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Font
+ """
+ super().__init__("font")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.newshape.label.Font
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.newshape.label.Font`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/legendgrouptitle/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/legendgrouptitle/__init__.py
new file mode 100644
index 0000000..56f600d
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/legendgrouptitle/__init__.py
@@ -0,0 +1,9 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._font import Font
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/legendgrouptitle/_font.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/legendgrouptitle/_font.py
new file mode 100644
index 0000000..879c619
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/newshape/legendgrouptitle/_font.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Font(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.newshape.legendgrouptitle"
+ _path_str = "layout.newshape.legendgrouptitle.font"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Font object
+
+ Sets this legend group's title font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.newshap
+ e.legendgrouptitle.Font`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Font
+ """
+ super().__init__("font")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.newshape.legendgrouptitle.Font
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.newshape.legendgrouptitle.Font`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/__init__.py
new file mode 100644
index 0000000..b893a6c
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/__init__.py
@@ -0,0 +1,17 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._angularaxis import AngularAxis
+ from ._domain import Domain
+ from ._radialaxis import RadialAxis
+ from . import angularaxis
+ from . import radialaxis
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__,
+ [".angularaxis", ".radialaxis"],
+ ["._angularaxis.AngularAxis", "._domain.Domain", "._radialaxis.RadialAxis"],
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/_angularaxis.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/_angularaxis.py
new file mode 100644
index 0000000..0dbf891
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/_angularaxis.py
@@ -0,0 +1,1776 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class AngularAxis(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.polar"
+ _path_str = "layout.polar.angularaxis"
+ _valid_props = {
+ "autotypenumbers",
+ "categoryarray",
+ "categoryarraysrc",
+ "categoryorder",
+ "color",
+ "direction",
+ "dtick",
+ "exponentformat",
+ "gridcolor",
+ "griddash",
+ "gridwidth",
+ "hoverformat",
+ "labelalias",
+ "layer",
+ "linecolor",
+ "linewidth",
+ "minexponent",
+ "nticks",
+ "period",
+ "rotation",
+ "separatethousands",
+ "showexponent",
+ "showgrid",
+ "showline",
+ "showticklabels",
+ "showtickprefix",
+ "showticksuffix",
+ "thetaunit",
+ "tick0",
+ "tickangle",
+ "tickcolor",
+ "tickfont",
+ "tickformat",
+ "tickformatstopdefaults",
+ "tickformatstops",
+ "ticklabelstep",
+ "ticklen",
+ "tickmode",
+ "tickprefix",
+ "ticks",
+ "ticksuffix",
+ "ticktext",
+ "ticktextsrc",
+ "tickvals",
+ "tickvalssrc",
+ "tickwidth",
+ "type",
+ "uirevision",
+ "visible",
+ }
+
+ @property
+ def autotypenumbers(self):
+ """
+ Using "strict" a numeric string in trace data is not converted
+ to a number. Using *convert types* a numeric string in trace
+ data may be treated as a number during automatic axis `type`
+ detection. Defaults to layout.autotypenumbers.
+
+ The 'autotypenumbers' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['convert types', 'strict']
+
+ Returns
+ -------
+ Any
+ """
+ return self["autotypenumbers"]
+
+ @autotypenumbers.setter
+ def autotypenumbers(self, val):
+ self["autotypenumbers"] = val
+
+ @property
+ def categoryarray(self):
+ """
+ Sets the order in which categories on this axis appear. Only
+ has an effect if `categoryorder` is set to "array". Used with
+ `categoryorder`.
+
+ The 'categoryarray' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["categoryarray"]
+
+ @categoryarray.setter
+ def categoryarray(self, val):
+ self["categoryarray"] = val
+
+ @property
+ def categoryarraysrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for
+ `categoryarray`.
+
+ The 'categoryarraysrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["categoryarraysrc"]
+
+ @categoryarraysrc.setter
+ def categoryarraysrc(self, val):
+ self["categoryarraysrc"] = val
+
+ @property
+ def categoryorder(self):
+ """
+ Specifies the ordering logic for the case of categorical
+ variables. By default, plotly uses "trace", which specifies the
+ order that is present in the data supplied. Set `categoryorder`
+ to *category ascending* or *category descending* if order
+ should be determined by the alphanumerical order of the
+ category names. Set `categoryorder` to "array" to derive the
+ ordering from the attribute `categoryarray`. If a category is
+ not found in the `categoryarray` array, the sorting behavior
+ for that attribute will be identical to the "trace" mode. The
+ unspecified categories will follow the categories in
+ `categoryarray`. Set `categoryorder` to *total ascending* or
+ *total descending* if order should be determined by the
+ numerical order of the values. Similarly, the order can be
+ determined by the min, max, sum, mean, geometric mean or median
+ of all the values.
+
+ The 'categoryorder' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['trace', 'category ascending', 'category descending',
+ 'array', 'total ascending', 'total descending', 'min
+ ascending', 'min descending', 'max ascending', 'max
+ descending', 'sum ascending', 'sum descending', 'mean
+ ascending', 'mean descending', 'geometric mean ascending',
+ 'geometric mean descending', 'median ascending', 'median
+ descending']
+
+ Returns
+ -------
+ Any
+ """
+ return self["categoryorder"]
+
+ @categoryorder.setter
+ def categoryorder(self, val):
+ self["categoryorder"] = val
+
+ @property
+ def color(self):
+ """
+ Sets default for all colors associated with this axis all at
+ once: line, font, tick, and grid colors. Grid color is
+ lightened by blending this with the plot background Individual
+ pieces can override this.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def direction(self):
+ """
+ Sets the direction corresponding to positive angles.
+
+ The 'direction' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['counterclockwise', 'clockwise']
+
+ Returns
+ -------
+ Any
+ """
+ return self["direction"]
+
+ @direction.setter
+ def direction(self, val):
+ self["direction"] = val
+
+ @property
+ def dtick(self):
+ """
+ Sets the step in-between ticks on this axis. Use with `tick0`.
+ Must be a positive number, or special strings available to
+ "log" and "date" axes. If the axis `type` is "log", then ticks
+ are set every 10^(n*dtick) where n is the tick number. For
+ example, to set a tick mark at 1, 10, 100, 1000, ... set dtick
+ to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2.
+ To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special values;
+ "L<f>", where `f` is a positive number, gives ticks linearly
+ spaced in value (but not position). For example `tick0` = 0.1,
+ `dtick` = "L0.5" will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To
+ show powers of 10 plus small digits between, use "D1" (all
+ digits) or "D2" (only 2 and 5). `tick0` is ignored for "D1" and
+ "D2". If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval between
+ ticks to one day, set `dtick` to 86400000.0. "date" also has
+ special values "M<n>" gives ticks spaced by a number of months.
+ `n` must be a positive integer. To set ticks on the 15th of
+ every third month, set `tick0` to "2000-01-15" and `dtick` to
+ "M3". To set ticks every 4 years, set `dtick` to "M48"
+
+ The 'dtick' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["dtick"]
+
+ @dtick.setter
+ def dtick(self, val):
+ self["dtick"] = val
+
+ @property
+ def exponentformat(self):
+ """
+ Determines a formatting rule for the tick exponents. For
+ example, consider the number 1,000,000,000. If "none", it
+ appears as 1,000,000,000. If "e", 1e+9. If "E", 1E+9. If
+ "power", 1x10^9 (with 9 in a super script). If "SI", 1G. If
+ "B", 1B.
+
+ The 'exponentformat' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['none', 'e', 'E', 'power', 'SI', 'B']
+
+ Returns
+ -------
+ Any
+ """
+ return self["exponentformat"]
+
+ @exponentformat.setter
+ def exponentformat(self, val):
+ self["exponentformat"] = val
+
+ @property
+ def gridcolor(self):
+ """
+ Sets the color of the grid lines.
+
+ The 'gridcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["gridcolor"]
+
+ @gridcolor.setter
+ def gridcolor(self, val):
+ self["gridcolor"] = val
+
+ @property
+ def griddash(self):
+ """
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+
+ The 'griddash' property is an enumeration that may be specified as:
+ - One of the following dash styles:
+ ['solid', 'dot', 'dash', 'longdash', 'dashdot', 'longdashdot']
+ - A string containing a dash length list in pixels or percentages
+ (e.g. '5px 10px 2px 2px', '5, 10, 2, 2', '10% 20% 40%', etc.)
+
+ Returns
+ -------
+ str
+ """
+ return self["griddash"]
+
+ @griddash.setter
+ def griddash(self, val):
+ self["griddash"] = val
+
+ @property
+ def gridwidth(self):
+ """
+ Sets the width (in px) of the grid lines.
+
+ The 'gridwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["gridwidth"]
+
+ @gridwidth.setter
+ def gridwidth(self, val):
+ self["gridwidth"] = val
+
+ @property
+ def hoverformat(self):
+ """
+ Sets the hover text formatting rule using d3 formatting mini-
+ languages which are very similar to those in Python. For
+ numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format. And for
+ dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to d3's date
+ formatter: "%h" for half of the year as a decimal number as
+ well as "%{n}f" for fractional seconds with n digits. For
+ example, *2016-10-13 09:15:23.456* with tickformat
+ "%H~%M~%S.%2f" would display "09~15~23.46"
+
+ The 'hoverformat' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["hoverformat"]
+
+ @hoverformat.setter
+ def hoverformat(self, val):
+ self["hoverformat"] = val
+
+ @property
+ def labelalias(self):
+ """
+ Replacement text for specific tick or hover labels. For example
+ using {US: 'USA', CA: 'Canada'} changes US to USA and CA to
+ Canada. The labels we would have shown must match the keys
+ exactly, after adding any tickprefix or ticksuffix. For
+ negative numbers the minus sign symbol used (U+2212) is wider
+ than the regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis type, and
+ both keys (if needed) and values (if desired) can include html-
+ like tags or MathJax.
+
+ The 'labelalias' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["labelalias"]
+
+ @labelalias.setter
+ def labelalias(self, val):
+ self["labelalias"] = val
+
+ @property
+ def layer(self):
+ """
+ Sets the layer on which this axis is displayed. If *above
+ traces*, this axis is displayed above all the subplot's traces
+ If *below traces*, this axis is displayed below all the
+ subplot's traces, but above the grid lines. Useful when used
+ together with scatter-like traces with `cliponaxis` set to
+ False to show markers and/or text nodes above this axis.
+
+ The 'layer' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['above traces', 'below traces']
+
+ Returns
+ -------
+ Any
+ """
+ return self["layer"]
+
+ @layer.setter
+ def layer(self, val):
+ self["layer"] = val
+
+ @property
+ def linecolor(self):
+ """
+ Sets the axis line color.
+
+ The 'linecolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["linecolor"]
+
+ @linecolor.setter
+ def linecolor(self, val):
+ self["linecolor"] = val
+
+ @property
+ def linewidth(self):
+ """
+ Sets the width (in px) of the axis line.
+
+ The 'linewidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["linewidth"]
+
+ @linewidth.setter
+ def linewidth(self, val):
+ self["linewidth"] = val
+
+ @property
+ def minexponent(self):
+ """
+ Hide SI prefix for 10^n if |n| is below this number. This only
+ has an effect when `tickformat` is "SI" or "B".
+
+ The 'minexponent' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["minexponent"]
+
+ @minexponent.setter
+ def minexponent(self, val):
+ self["minexponent"] = val
+
+ @property
+ def nticks(self):
+ """
+ Specifies the maximum number of ticks for the particular axis.
+ The actual number of ticks will be chosen automatically to be
+ less than or equal to `nticks`. Has an effect only if
+ `tickmode` is set to "auto".
+
+ The 'nticks' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [0, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["nticks"]
+
+ @nticks.setter
+ def nticks(self, val):
+ self["nticks"] = val
+
+ @property
+ def period(self):
+ """
+ Set the angular period. Has an effect only when
+ `angularaxis.type` is "category".
+
+ The 'period' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["period"]
+
+ @period.setter
+ def period(self, val):
+ self["period"] = val
+
+ @property
+ def rotation(self):
+ """
+ Sets that start position (in degrees) of the angular axis By
+ default, polar subplots with `direction` set to
+ "counterclockwise" get a `rotation` of 0 which corresponds to
+ due East (like what mathematicians prefer). In turn, polar with
+ `direction` set to "clockwise" get a rotation of 90 which
+ corresponds to due North (like on a compass),
+
+ The 'rotation' property is a angle (in degrees) that may be
+ specified as a number between -180 and 180.
+ Numeric values outside this range are converted to the equivalent value
+ (e.g. 270 is converted to -90).
+
+ Returns
+ -------
+ int|float
+ """
+ return self["rotation"]
+
+ @rotation.setter
+ def rotation(self, val):
+ self["rotation"] = val
+
+ @property
+ def separatethousands(self):
+ """
+ If "true", even 4-digit integers are separated
+
+ The 'separatethousands' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["separatethousands"]
+
+ @separatethousands.setter
+ def separatethousands(self, val):
+ self["separatethousands"] = val
+
+ @property
+ def showexponent(self):
+ """
+ If "all", all exponents are shown besides their significands.
+ If "first", only the exponent of the first tick is shown. If
+ "last", only the exponent of the last tick is shown. If "none",
+ no exponents appear.
+
+ The 'showexponent' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showexponent"]
+
+ @showexponent.setter
+ def showexponent(self, val):
+ self["showexponent"] = val
+
+ @property
+ def showgrid(self):
+ """
+ Determines whether or not grid lines are drawn. If True, the
+ grid lines are drawn at every tick mark.
+
+ The 'showgrid' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showgrid"]
+
+ @showgrid.setter
+ def showgrid(self, val):
+ self["showgrid"] = val
+
+ @property
+ def showline(self):
+ """
+ Determines whether or not a line bounding this axis is drawn.
+
+ The 'showline' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showline"]
+
+ @showline.setter
+ def showline(self, val):
+ self["showline"] = val
+
+ @property
+ def showticklabels(self):
+ """
+ Determines whether or not the tick labels are drawn.
+
+ The 'showticklabels' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showticklabels"]
+
+ @showticklabels.setter
+ def showticklabels(self, val):
+ self["showticklabels"] = val
+
+ @property
+ def showtickprefix(self):
+ """
+ If "all", all tick labels are displayed with a prefix. If
+ "first", only the first tick is displayed with a prefix. If
+ "last", only the last tick is displayed with a suffix. If
+ "none", tick prefixes are hidden.
+
+ The 'showtickprefix' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showtickprefix"]
+
+ @showtickprefix.setter
+ def showtickprefix(self, val):
+ self["showtickprefix"] = val
+
+ @property
+ def showticksuffix(self):
+ """
+ Same as `showtickprefix` but for tick suffixes.
+
+ The 'showticksuffix' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showticksuffix"]
+
+ @showticksuffix.setter
+ def showticksuffix(self, val):
+ self["showticksuffix"] = val
+
+ @property
+ def thetaunit(self):
+ """
+ Sets the format unit of the formatted "theta" values. Has an
+ effect only when `angularaxis.type` is "linear".
+
+ The 'thetaunit' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['radians', 'degrees']
+
+ Returns
+ -------
+ Any
+ """
+ return self["thetaunit"]
+
+ @thetaunit.setter
+ def thetaunit(self, val):
+ self["thetaunit"] = val
+
+ @property
+ def tick0(self):
+ """
+ Sets the placement of the first tick on this axis. Use with
+ `dtick`. If the axis `type` is "log", then you must take the
+ log of your starting tick (e.g. to set the starting tick to
+ 100, set the `tick0` to 2) except when `dtick`=*L<f>* (see
+ `dtick` for more info). If the axis `type` is "date", it should
+ be a date string, like date data. If the axis `type` is
+ "category", it should be a number, using the scale where each
+ category is assigned a serial number from zero in the order it
+ appears.
+
+ The 'tick0' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["tick0"]
+
+ @tick0.setter
+ def tick0(self, val):
+ self["tick0"] = val
+
+ @property
+ def tickangle(self):
+ """
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the tick
+ labels vertically.
+
+ The 'tickangle' property is a angle (in degrees) that may be
+ specified as a number between -180 and 180.
+ Numeric values outside this range are converted to the equivalent value
+ (e.g. 270 is converted to -90).
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tickangle"]
+
+ @tickangle.setter
+ def tickangle(self, val):
+ self["tickangle"] = val
+
+ @property
+ def tickcolor(self):
+ """
+ Sets the tick color.
+
+ The 'tickcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["tickcolor"]
+
+ @tickcolor.setter
+ def tickcolor(self, val):
+ self["tickcolor"] = val
+
+ @property
+ def tickfont(self):
+ """
+ Sets the tick font.
+
+ The 'tickfont' property is an instance of Tickfont
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.polar.angularaxis.Tickfont`
+ - A dict of string/value properties that will be passed
+ to the Tickfont constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.polar.angularaxis.Tickfont
+ """
+ return self["tickfont"]
+
+ @tickfont.setter
+ def tickfont(self, val):
+ self["tickfont"] = val
+
+ @property
+ def tickformat(self):
+ """
+ Sets the tick label formatting rule using d3 formatting mini-
+ languages which are very similar to those in Python. For
+ numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format. And for
+ dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to d3's date
+ formatter: "%h" for half of the year as a decimal number as
+ well as "%{n}f" for fractional seconds with n digits. For
+ example, *2016-10-13 09:15:23.456* with tickformat
+ "%H~%M~%S.%2f" would display "09~15~23.46"
+
+ The 'tickformat' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["tickformat"]
+
+ @tickformat.setter
+ def tickformat(self, val):
+ self["tickformat"] = val
+
+ @property
+ def tickformatstops(self):
+ """
+ The 'tickformatstops' property is a tuple of instances of
+ Tickformatstop that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.polar.angularaxis.Tickformatstop
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Tickformatstop constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.polar.angularaxis.Tickformatstop]
+ """
+ return self["tickformatstops"]
+
+ @tickformatstops.setter
+ def tickformatstops(self, val):
+ self["tickformatstops"] = val
+
+ @property
+ def tickformatstopdefaults(self):
+ """
+ When used in a template (as layout.template.layout.polar.angula
+ raxis.tickformatstopdefaults), sets the default property values
+ to use for elements of layout.polar.angularaxis.tickformatstops
+
+ The 'tickformatstopdefaults' property is an instance of Tickformatstop
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.polar.angularaxis.Tickformatstop`
+ - A dict of string/value properties that will be passed
+ to the Tickformatstop constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.polar.angularaxis.Tickformatstop
+ """
+ return self["tickformatstopdefaults"]
+
+ @tickformatstopdefaults.setter
+ def tickformatstopdefaults(self, val):
+ self["tickformatstopdefaults"] = val
+
+ @property
+ def ticklabelstep(self):
+ """
+ Sets the spacing between tick labels as compared to the spacing
+ between ticks. A value of 1 (default) means each tick gets a
+ label. A value of 2 means shows every 2nd label. A larger value
+ n means only every nth tick is labeled. `tick0` determines
+ which labels are shown. Not implemented for axes with `type`
+ "log" or "multicategory", or when `tickmode` is "array".
+
+ The 'ticklabelstep' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["ticklabelstep"]
+
+ @ticklabelstep.setter
+ def ticklabelstep(self, val):
+ self["ticklabelstep"] = val
+
+ @property
+ def ticklen(self):
+ """
+ Sets the tick length (in px).
+
+ The 'ticklen' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["ticklen"]
+
+ @ticklen.setter
+ def ticklen(self, val):
+ self["ticklen"] = val
+
+ @property
+ def tickmode(self):
+ """
+ Sets the tick mode for this axis. If "auto", the number of
+ ticks is set via `nticks`. If "linear", the placement of the
+ ticks is determined by a starting position `tick0` and a tick
+ step `dtick` ("linear" is the default value if `tick0` and
+ `dtick` are provided). If "array", the placement of the ticks
+ is set via `tickvals` and the tick text is `ticktext`. ("array"
+ is the default value if `tickvals` is provided).
+
+ The 'tickmode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['auto', 'linear', 'array']
+
+ Returns
+ -------
+ Any
+ """
+ return self["tickmode"]
+
+ @tickmode.setter
+ def tickmode(self, val):
+ self["tickmode"] = val
+
+ @property
+ def tickprefix(self):
+ """
+ Sets a tick label prefix.
+
+ The 'tickprefix' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["tickprefix"]
+
+ @tickprefix.setter
+ def tickprefix(self, val):
+ self["tickprefix"] = val
+
+ @property
+ def ticks(self):
+ """
+ Determines whether ticks are drawn or not. If "", this axis'
+ ticks are not drawn. If "outside" ("inside"), this axis' are
+ drawn outside (inside) the axis lines.
+
+ The 'ticks' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['outside', 'inside', '']
+
+ Returns
+ -------
+ Any
+ """
+ return self["ticks"]
+
+ @ticks.setter
+ def ticks(self, val):
+ self["ticks"] = val
+
+ @property
+ def ticksuffix(self):
+ """
+ Sets a tick label suffix.
+
+ The 'ticksuffix' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["ticksuffix"]
+
+ @ticksuffix.setter
+ def ticksuffix(self, val):
+ self["ticksuffix"] = val
+
+ @property
+ def ticktext(self):
+ """
+ Sets the text displayed at the ticks position via `tickvals`.
+ Only has an effect if `tickmode` is set to "array". Used with
+ `tickvals`.
+
+ The 'ticktext' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["ticktext"]
+
+ @ticktext.setter
+ def ticktext(self, val):
+ self["ticktext"] = val
+
+ @property
+ def ticktextsrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `ticktext`.
+
+ The 'ticktextsrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["ticktextsrc"]
+
+ @ticktextsrc.setter
+ def ticktextsrc(self, val):
+ self["ticktextsrc"] = val
+
+ @property
+ def tickvals(self):
+ """
+ Sets the values at which ticks on this axis appear. Only has an
+ effect if `tickmode` is set to "array". Used with `ticktext`.
+
+ The 'tickvals' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["tickvals"]
+
+ @tickvals.setter
+ def tickvals(self, val):
+ self["tickvals"] = val
+
+ @property
+ def tickvalssrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `tickvals`.
+
+ The 'tickvalssrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["tickvalssrc"]
+
+ @tickvalssrc.setter
+ def tickvalssrc(self, val):
+ self["tickvalssrc"] = val
+
+ @property
+ def tickwidth(self):
+ """
+ Sets the tick width (in px).
+
+ The 'tickwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tickwidth"]
+
+ @tickwidth.setter
+ def tickwidth(self, val):
+ self["tickwidth"] = val
+
+ @property
+ def type(self):
+ """
+ Sets the angular axis type. If "linear", set `thetaunit` to
+ determine the unit in which axis value are shown. If *category,
+ use `period` to set the number of integer coordinates around
+ polar axis.
+
+ The 'type' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['-', 'linear', 'category']
+
+ Returns
+ -------
+ Any
+ """
+ return self["type"]
+
+ @type.setter
+ def type(self, val):
+ self["type"] = val
+
+ @property
+ def uirevision(self):
+ """
+ Controls persistence of user-driven changes in axis `rotation`.
+ Defaults to `polar<N>.uirevision`.
+
+ The 'uirevision' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["uirevision"]
+
+ @uirevision.setter
+ def uirevision(self, val):
+ self["uirevision"] = val
+
+ @property
+ def visible(self):
+ """
+ A single toggle to hide the axis while preserving interaction
+ like dragging. Default is true when a cheater plot is present
+ on the axis, otherwise false
+
+ The 'visible' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["visible"]
+
+ @visible.setter
+ def visible(self, val):
+ self["visible"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ autotypenumbers
+ Using "strict" a numeric string in trace data is not
+ converted to a number. Using *convert types* a numeric
+ string in trace data may be treated as a number during
+ automatic axis `type` detection. Defaults to
+ layout.autotypenumbers.
+ categoryarray
+ Sets the order in which categories on this axis appear.
+ Only has an effect if `categoryorder` is set to
+ "array". Used with `categoryorder`.
+ categoryarraysrc
+ Sets the source reference on Chart Studio Cloud for
+ `categoryarray`.
+ categoryorder
+ Specifies the ordering logic for the case of
+ categorical variables. By default, plotly uses "trace",
+ which specifies the order that is present in the data
+ supplied. Set `categoryorder` to *category ascending*
+ or *category descending* if order should be determined
+ by the alphanumerical order of the category names. Set
+ `categoryorder` to "array" to derive the ordering from
+ the attribute `categoryarray`. If a category is not
+ found in the `categoryarray` array, the sorting
+ behavior for that attribute will be identical to the
+ "trace" mode. The unspecified categories will follow
+ the categories in `categoryarray`. Set `categoryorder`
+ to *total ascending* or *total descending* if order
+ should be determined by the numerical order of the
+ values. Similarly, the order can be determined by the
+ min, max, sum, mean, geometric mean or median of all
+ the values.
+ color
+ Sets default for all colors associated with this axis
+ all at once: line, font, tick, and grid colors. Grid
+ color is lightened by blending this with the plot
+ background Individual pieces can override this.
+ direction
+ Sets the direction corresponding to positive angles.
+ dtick
+ Sets the step in-between ticks on this axis. Use with
+ `tick0`. Must be a positive number, or special strings
+ available to "log" and "date" axes. If the axis `type`
+ is "log", then ticks are set every 10^(n*dtick) where n
+ is the tick number. For example, to set a tick mark at
+ 1, 10, 100, 1000, ... set dtick to 1. To set tick marks
+ at 1, 100, 10000, ... set dtick to 2. To set tick marks
+ at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special
+ values; "L<f>", where `f` is a positive number, gives
+ ticks linearly spaced in value (but not position). For
+ example `tick0` = 0.1, `dtick` = "L0.5" will put ticks
+ at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus
+ small digits between, use "D1" (all digits) or "D2"
+ (only 2 and 5). `tick0` is ignored for "D1" and "D2".
+ If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval
+ between ticks to one day, set `dtick` to 86400000.0.
+ "date" also has special values "M<n>" gives ticks
+ spaced by a number of months. `n` must be a positive
+ integer. To set ticks on the 15th of every third month,
+ set `tick0` to "2000-01-15" and `dtick` to "M3". To set
+ ticks every 4 years, set `dtick` to "M48"
+ exponentformat
+ Determines a formatting rule for the tick exponents.
+ For example, consider the number 1,000,000,000. If
+ "none", it appears as 1,000,000,000. If "e", 1e+9. If
+ "E", 1E+9. If "power", 1x10^9 (with 9 in a super
+ script). If "SI", 1G. If "B", 1B.
+ gridcolor
+ Sets the color of the grid lines.
+ griddash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ gridwidth
+ Sets the width (in px) of the grid lines.
+ hoverformat
+ Sets the hover text formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ labelalias
+ Replacement text for specific tick or hover labels. For
+ example using {US: 'USA', CA: 'Canada'} changes US to
+ USA and CA to Canada. The labels we would have shown
+ must match the keys exactly, after adding any
+ tickprefix or ticksuffix. For negative numbers the
+ minus sign symbol used (U+2212) is wider than the
+ regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis
+ type, and both keys (if needed) and values (if desired)
+ can include html-like tags or MathJax.
+ layer
+ Sets the layer on which this axis is displayed. If
+ *above traces*, this axis is displayed above all the
+ subplot's traces If *below traces*, this axis is
+ displayed below all the subplot's traces, but above the
+ grid lines. Useful when used together with scatter-like
+ traces with `cliponaxis` set to False to show markers
+ and/or text nodes above this axis.
+ linecolor
+ Sets the axis line color.
+ linewidth
+ Sets the width (in px) of the axis line.
+ minexponent
+ Hide SI prefix for 10^n if |n| is below this number.
+ This only has an effect when `tickformat` is "SI" or
+ "B".
+ nticks
+ Specifies the maximum number of ticks for the
+ particular axis. The actual number of ticks will be
+ chosen automatically to be less than or equal to
+ `nticks`. Has an effect only if `tickmode` is set to
+ "auto".
+ period
+ Set the angular period. Has an effect only when
+ `angularaxis.type` is "category".
+ rotation
+ Sets that start position (in degrees) of the angular
+ axis By default, polar subplots with `direction` set to
+ "counterclockwise" get a `rotation` of 0 which
+ corresponds to due East (like what mathematicians
+ prefer). In turn, polar with `direction` set to
+ "clockwise" get a rotation of 90 which corresponds to
+ due North (like on a compass),
+ separatethousands
+ If "true", even 4-digit integers are separated
+ showexponent
+ If "all", all exponents are shown besides their
+ significands. If "first", only the exponent of the
+ first tick is shown. If "last", only the exponent of
+ the last tick is shown. If "none", no exponents appear.
+ showgrid
+ Determines whether or not grid lines are drawn. If
+ True, the grid lines are drawn at every tick mark.
+ showline
+ Determines whether or not a line bounding this axis is
+ drawn.
+ showticklabels
+ Determines whether or not the tick labels are drawn.
+ showtickprefix
+ If "all", all tick labels are displayed with a prefix.
+ If "first", only the first tick is displayed with a
+ prefix. If "last", only the last tick is displayed with
+ a suffix. If "none", tick prefixes are hidden.
+ showticksuffix
+ Same as `showtickprefix` but for tick suffixes.
+ thetaunit
+ Sets the format unit of the formatted "theta" values.
+ Has an effect only when `angularaxis.type` is "linear".
+ tick0
+ Sets the placement of the first tick on this axis. Use
+ with `dtick`. If the axis `type` is "log", then you
+ must take the log of your starting tick (e.g. to set
+ the starting tick to 100, set the `tick0` to 2) except
+ when `dtick`=*L<f>* (see `dtick` for more info). If the
+ axis `type` is "date", it should be a date string, like
+ date data. If the axis `type` is "category", it should
+ be a number, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears.
+ tickangle
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the
+ tick labels vertically.
+ tickcolor
+ Sets the tick color.
+ tickfont
+ Sets the tick font.
+ tickformat
+ Sets the tick label formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ tickformatstops
+ A tuple of :class:`plotly.graph_objects.layout.polar.an
+ gularaxis.Tickformatstop` instances or dicts with
+ compatible properties
+ tickformatstopdefaults
+ When used in a template (as layout.template.layout.pola
+ r.angularaxis.tickformatstopdefaults), sets the default
+ property values to use for elements of
+ layout.polar.angularaxis.tickformatstops
+ ticklabelstep
+ Sets the spacing between tick labels as compared to the
+ spacing between ticks. A value of 1 (default) means
+ each tick gets a label. A value of 2 means shows every
+ 2nd label. A larger value n means only every nth tick
+ is labeled. `tick0` determines which labels are shown.
+ Not implemented for axes with `type` "log" or
+ "multicategory", or when `tickmode` is "array".
+ ticklen
+ Sets the tick length (in px).
+ tickmode
+ Sets the tick mode for this axis. If "auto", the number
+ of ticks is set via `nticks`. If "linear", the
+ placement of the ticks is determined by a starting
+ position `tick0` and a tick step `dtick` ("linear" is
+ the default value if `tick0` and `dtick` are provided).
+ If "array", the placement of the ticks is set via
+ `tickvals` and the tick text is `ticktext`. ("array" is
+ the default value if `tickvals` is provided).
+ tickprefix
+ Sets a tick label prefix.
+ ticks
+ Determines whether ticks are drawn or not. If "", this
+ axis' ticks are not drawn. If "outside" ("inside"),
+ this axis' are drawn outside (inside) the axis lines.
+ ticksuffix
+ Sets a tick label suffix.
+ ticktext
+ Sets the text displayed at the ticks position via
+ `tickvals`. Only has an effect if `tickmode` is set to
+ "array". Used with `tickvals`.
+ ticktextsrc
+ Sets the source reference on Chart Studio Cloud for
+ `ticktext`.
+ tickvals
+ Sets the values at which ticks on this axis appear.
+ Only has an effect if `tickmode` is set to "array".
+ Used with `ticktext`.
+ tickvalssrc
+ Sets the source reference on Chart Studio Cloud for
+ `tickvals`.
+ tickwidth
+ Sets the tick width (in px).
+ type
+ Sets the angular axis type. If "linear", set
+ `thetaunit` to determine the unit in which axis value
+ are shown. If *category, use `period` to set the number
+ of integer coordinates around polar axis.
+ uirevision
+ Controls persistence of user-driven changes in axis
+ `rotation`. Defaults to `polar<N>.uirevision`.
+ visible
+ A single toggle to hide the axis while preserving
+ interaction like dragging. Default is true when a
+ cheater plot is present on the axis, otherwise false
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ autotypenumbers=None,
+ categoryarray=None,
+ categoryarraysrc=None,
+ categoryorder=None,
+ color=None,
+ direction=None,
+ dtick=None,
+ exponentformat=None,
+ gridcolor=None,
+ griddash=None,
+ gridwidth=None,
+ hoverformat=None,
+ labelalias=None,
+ layer=None,
+ linecolor=None,
+ linewidth=None,
+ minexponent=None,
+ nticks=None,
+ period=None,
+ rotation=None,
+ separatethousands=None,
+ showexponent=None,
+ showgrid=None,
+ showline=None,
+ showticklabels=None,
+ showtickprefix=None,
+ showticksuffix=None,
+ thetaunit=None,
+ tick0=None,
+ tickangle=None,
+ tickcolor=None,
+ tickfont=None,
+ tickformat=None,
+ tickformatstops=None,
+ tickformatstopdefaults=None,
+ ticklabelstep=None,
+ ticklen=None,
+ tickmode=None,
+ tickprefix=None,
+ ticks=None,
+ ticksuffix=None,
+ ticktext=None,
+ ticktextsrc=None,
+ tickvals=None,
+ tickvalssrc=None,
+ tickwidth=None,
+ type=None,
+ uirevision=None,
+ visible=None,
+ **kwargs,
+ ):
+ """
+ Construct a new AngularAxis object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.polar.AngularAxis`
+ autotypenumbers
+ Using "strict" a numeric string in trace data is not
+ converted to a number. Using *convert types* a numeric
+ string in trace data may be treated as a number during
+ automatic axis `type` detection. Defaults to
+ layout.autotypenumbers.
+ categoryarray
+ Sets the order in which categories on this axis appear.
+ Only has an effect if `categoryorder` is set to
+ "array". Used with `categoryorder`.
+ categoryarraysrc
+ Sets the source reference on Chart Studio Cloud for
+ `categoryarray`.
+ categoryorder
+ Specifies the ordering logic for the case of
+ categorical variables. By default, plotly uses "trace",
+ which specifies the order that is present in the data
+ supplied. Set `categoryorder` to *category ascending*
+ or *category descending* if order should be determined
+ by the alphanumerical order of the category names. Set
+ `categoryorder` to "array" to derive the ordering from
+ the attribute `categoryarray`. If a category is not
+ found in the `categoryarray` array, the sorting
+ behavior for that attribute will be identical to the
+ "trace" mode. The unspecified categories will follow
+ the categories in `categoryarray`. Set `categoryorder`
+ to *total ascending* or *total descending* if order
+ should be determined by the numerical order of the
+ values. Similarly, the order can be determined by the
+ min, max, sum, mean, geometric mean or median of all
+ the values.
+ color
+ Sets default for all colors associated with this axis
+ all at once: line, font, tick, and grid colors. Grid
+ color is lightened by blending this with the plot
+ background Individual pieces can override this.
+ direction
+ Sets the direction corresponding to positive angles.
+ dtick
+ Sets the step in-between ticks on this axis. Use with
+ `tick0`. Must be a positive number, or special strings
+ available to "log" and "date" axes. If the axis `type`
+ is "log", then ticks are set every 10^(n*dtick) where n
+ is the tick number. For example, to set a tick mark at
+ 1, 10, 100, 1000, ... set dtick to 1. To set tick marks
+ at 1, 100, 10000, ... set dtick to 2. To set tick marks
+ at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special
+ values; "L<f>", where `f` is a positive number, gives
+ ticks linearly spaced in value (but not position). For
+ example `tick0` = 0.1, `dtick` = "L0.5" will put ticks
+ at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus
+ small digits between, use "D1" (all digits) or "D2"
+ (only 2 and 5). `tick0` is ignored for "D1" and "D2".
+ If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval
+ between ticks to one day, set `dtick` to 86400000.0.
+ "date" also has special values "M<n>" gives ticks
+ spaced by a number of months. `n` must be a positive
+ integer. To set ticks on the 15th of every third month,
+ set `tick0` to "2000-01-15" and `dtick` to "M3". To set
+ ticks every 4 years, set `dtick` to "M48"
+ exponentformat
+ Determines a formatting rule for the tick exponents.
+ For example, consider the number 1,000,000,000. If
+ "none", it appears as 1,000,000,000. If "e", 1e+9. If
+ "E", 1E+9. If "power", 1x10^9 (with 9 in a super
+ script). If "SI", 1G. If "B", 1B.
+ gridcolor
+ Sets the color of the grid lines.
+ griddash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ gridwidth
+ Sets the width (in px) of the grid lines.
+ hoverformat
+ Sets the hover text formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ labelalias
+ Replacement text for specific tick or hover labels. For
+ example using {US: 'USA', CA: 'Canada'} changes US to
+ USA and CA to Canada. The labels we would have shown
+ must match the keys exactly, after adding any
+ tickprefix or ticksuffix. For negative numbers the
+ minus sign symbol used (U+2212) is wider than the
+ regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis
+ type, and both keys (if needed) and values (if desired)
+ can include html-like tags or MathJax.
+ layer
+ Sets the layer on which this axis is displayed. If
+ *above traces*, this axis is displayed above all the
+ subplot's traces If *below traces*, this axis is
+ displayed below all the subplot's traces, but above the
+ grid lines. Useful when used together with scatter-like
+ traces with `cliponaxis` set to False to show markers
+ and/or text nodes above this axis.
+ linecolor
+ Sets the axis line color.
+ linewidth
+ Sets the width (in px) of the axis line.
+ minexponent
+ Hide SI prefix for 10^n if |n| is below this number.
+ This only has an effect when `tickformat` is "SI" or
+ "B".
+ nticks
+ Specifies the maximum number of ticks for the
+ particular axis. The actual number of ticks will be
+ chosen automatically to be less than or equal to
+ `nticks`. Has an effect only if `tickmode` is set to
+ "auto".
+ period
+ Set the angular period. Has an effect only when
+ `angularaxis.type` is "category".
+ rotation
+ Sets that start position (in degrees) of the angular
+ axis By default, polar subplots with `direction` set to
+ "counterclockwise" get a `rotation` of 0 which
+ corresponds to due East (like what mathematicians
+ prefer). In turn, polar with `direction` set to
+ "clockwise" get a rotation of 90 which corresponds to
+ due North (like on a compass),
+ separatethousands
+ If "true", even 4-digit integers are separated
+ showexponent
+ If "all", all exponents are shown besides their
+ significands. If "first", only the exponent of the
+ first tick is shown. If "last", only the exponent of
+ the last tick is shown. If "none", no exponents appear.
+ showgrid
+ Determines whether or not grid lines are drawn. If
+ True, the grid lines are drawn at every tick mark.
+ showline
+ Determines whether or not a line bounding this axis is
+ drawn.
+ showticklabels
+ Determines whether or not the tick labels are drawn.
+ showtickprefix
+ If "all", all tick labels are displayed with a prefix.
+ If "first", only the first tick is displayed with a
+ prefix. If "last", only the last tick is displayed with
+ a suffix. If "none", tick prefixes are hidden.
+ showticksuffix
+ Same as `showtickprefix` but for tick suffixes.
+ thetaunit
+ Sets the format unit of the formatted "theta" values.
+ Has an effect only when `angularaxis.type` is "linear".
+ tick0
+ Sets the placement of the first tick on this axis. Use
+ with `dtick`. If the axis `type` is "log", then you
+ must take the log of your starting tick (e.g. to set
+ the starting tick to 100, set the `tick0` to 2) except
+ when `dtick`=*L<f>* (see `dtick` for more info). If the
+ axis `type` is "date", it should be a date string, like
+ date data. If the axis `type` is "category", it should
+ be a number, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears.
+ tickangle
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the
+ tick labels vertically.
+ tickcolor
+ Sets the tick color.
+ tickfont
+ Sets the tick font.
+ tickformat
+ Sets the tick label formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ tickformatstops
+ A tuple of :class:`plotly.graph_objects.layout.polar.an
+ gularaxis.Tickformatstop` instances or dicts with
+ compatible properties
+ tickformatstopdefaults
+ When used in a template (as layout.template.layout.pola
+ r.angularaxis.tickformatstopdefaults), sets the default
+ property values to use for elements of
+ layout.polar.angularaxis.tickformatstops
+ ticklabelstep
+ Sets the spacing between tick labels as compared to the
+ spacing between ticks. A value of 1 (default) means
+ each tick gets a label. A value of 2 means shows every
+ 2nd label. A larger value n means only every nth tick
+ is labeled. `tick0` determines which labels are shown.
+ Not implemented for axes with `type` "log" or
+ "multicategory", or when `tickmode` is "array".
+ ticklen
+ Sets the tick length (in px).
+ tickmode
+ Sets the tick mode for this axis. If "auto", the number
+ of ticks is set via `nticks`. If "linear", the
+ placement of the ticks is determined by a starting
+ position `tick0` and a tick step `dtick` ("linear" is
+ the default value if `tick0` and `dtick` are provided).
+ If "array", the placement of the ticks is set via
+ `tickvals` and the tick text is `ticktext`. ("array" is
+ the default value if `tickvals` is provided).
+ tickprefix
+ Sets a tick label prefix.
+ ticks
+ Determines whether ticks are drawn or not. If "", this
+ axis' ticks are not drawn. If "outside" ("inside"),
+ this axis' are drawn outside (inside) the axis lines.
+ ticksuffix
+ Sets a tick label suffix.
+ ticktext
+ Sets the text displayed at the ticks position via
+ `tickvals`. Only has an effect if `tickmode` is set to
+ "array". Used with `tickvals`.
+ ticktextsrc
+ Sets the source reference on Chart Studio Cloud for
+ `ticktext`.
+ tickvals
+ Sets the values at which ticks on this axis appear.
+ Only has an effect if `tickmode` is set to "array".
+ Used with `ticktext`.
+ tickvalssrc
+ Sets the source reference on Chart Studio Cloud for
+ `tickvals`.
+ tickwidth
+ Sets the tick width (in px).
+ type
+ Sets the angular axis type. If "linear", set
+ `thetaunit` to determine the unit in which axis value
+ are shown. If *category, use `period` to set the number
+ of integer coordinates around polar axis.
+ uirevision
+ Controls persistence of user-driven changes in axis
+ `rotation`. Defaults to `polar<N>.uirevision`.
+ visible
+ A single toggle to hide the axis while preserving
+ interaction like dragging. Default is true when a
+ cheater plot is present on the axis, otherwise false
+
+ Returns
+ -------
+ AngularAxis
+ """
+ super().__init__("angularaxis")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.polar.AngularAxis
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.polar.AngularAxis`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("autotypenumbers", arg, autotypenumbers)
+ self._set_property("categoryarray", arg, categoryarray)
+ self._set_property("categoryarraysrc", arg, categoryarraysrc)
+ self._set_property("categoryorder", arg, categoryorder)
+ self._set_property("color", arg, color)
+ self._set_property("direction", arg, direction)
+ self._set_property("dtick", arg, dtick)
+ self._set_property("exponentformat", arg, exponentformat)
+ self._set_property("gridcolor", arg, gridcolor)
+ self._set_property("griddash", arg, griddash)
+ self._set_property("gridwidth", arg, gridwidth)
+ self._set_property("hoverformat", arg, hoverformat)
+ self._set_property("labelalias", arg, labelalias)
+ self._set_property("layer", arg, layer)
+ self._set_property("linecolor", arg, linecolor)
+ self._set_property("linewidth", arg, linewidth)
+ self._set_property("minexponent", arg, minexponent)
+ self._set_property("nticks", arg, nticks)
+ self._set_property("period", arg, period)
+ self._set_property("rotation", arg, rotation)
+ self._set_property("separatethousands", arg, separatethousands)
+ self._set_property("showexponent", arg, showexponent)
+ self._set_property("showgrid", arg, showgrid)
+ self._set_property("showline", arg, showline)
+ self._set_property("showticklabels", arg, showticklabels)
+ self._set_property("showtickprefix", arg, showtickprefix)
+ self._set_property("showticksuffix", arg, showticksuffix)
+ self._set_property("thetaunit", arg, thetaunit)
+ self._set_property("tick0", arg, tick0)
+ self._set_property("tickangle", arg, tickangle)
+ self._set_property("tickcolor", arg, tickcolor)
+ self._set_property("tickfont", arg, tickfont)
+ self._set_property("tickformat", arg, tickformat)
+ self._set_property("tickformatstops", arg, tickformatstops)
+ self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
+ self._set_property("ticklabelstep", arg, ticklabelstep)
+ self._set_property("ticklen", arg, ticklen)
+ self._set_property("tickmode", arg, tickmode)
+ self._set_property("tickprefix", arg, tickprefix)
+ self._set_property("ticks", arg, ticks)
+ self._set_property("ticksuffix", arg, ticksuffix)
+ self._set_property("ticktext", arg, ticktext)
+ self._set_property("ticktextsrc", arg, ticktextsrc)
+ self._set_property("tickvals", arg, tickvals)
+ self._set_property("tickvalssrc", arg, tickvalssrc)
+ self._set_property("tickwidth", arg, tickwidth)
+ self._set_property("type", arg, type)
+ self._set_property("uirevision", arg, uirevision)
+ self._set_property("visible", arg, visible)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/_domain.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/_domain.py
new file mode 100644
index 0000000..0fd15cf
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/_domain.py
@@ -0,0 +1,170 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Domain(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.polar"
+ _path_str = "layout.polar.domain"
+ _valid_props = {"column", "row", "x", "y"}
+
+ @property
+ def column(self):
+ """
+ If there is a layout grid, use the domain for this column in
+ the grid for this polar subplot .
+
+ The 'column' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [0, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["column"]
+
+ @column.setter
+ def column(self, val):
+ self["column"] = val
+
+ @property
+ def row(self):
+ """
+ If there is a layout grid, use the domain for this row in the
+ grid for this polar subplot .
+
+ The 'row' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [0, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["row"]
+
+ @row.setter
+ def row(self, val):
+ self["row"] = val
+
+ @property
+ def x(self):
+ """
+ Sets the horizontal domain of this polar subplot (in plot
+ fraction).
+
+ The 'x' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'x[0]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+ (1) The 'x[1]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ list
+ """
+ return self["x"]
+
+ @x.setter
+ def x(self, val):
+ self["x"] = val
+
+ @property
+ def y(self):
+ """
+ Sets the vertical domain of this polar subplot (in plot
+ fraction).
+
+ The 'y' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'y[0]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+ (1) The 'y[1]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ list
+ """
+ return self["y"]
+
+ @y.setter
+ def y(self, val):
+ self["y"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ column
+ If there is a layout grid, use the domain for this
+ column in the grid for this polar subplot .
+ row
+ If there is a layout grid, use the domain for this row
+ in the grid for this polar subplot .
+ x
+ Sets the horizontal domain of this polar subplot (in
+ plot fraction).
+ y
+ Sets the vertical domain of this polar subplot (in plot
+ fraction).
+ """
+
+ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
+ """
+ Construct a new Domain object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.polar.Domain`
+ column
+ If there is a layout grid, use the domain for this
+ column in the grid for this polar subplot .
+ row
+ If there is a layout grid, use the domain for this row
+ in the grid for this polar subplot .
+ x
+ Sets the horizontal domain of this polar subplot (in
+ plot fraction).
+ y
+ Sets the vertical domain of this polar subplot (in plot
+ fraction).
+
+ Returns
+ -------
+ Domain
+ """
+ super().__init__("domain")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.polar.Domain
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.polar.Domain`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("column", arg, column)
+ self._set_property("row", arg, row)
+ self._set_property("x", arg, x)
+ self._set_property("y", arg, y)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/_radialaxis.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/_radialaxis.py
new file mode 100644
index 0000000..aa5bfd5
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/_radialaxis.py
@@ -0,0 +1,2049 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class RadialAxis(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.polar"
+ _path_str = "layout.polar.radialaxis"
+ _valid_props = {
+ "angle",
+ "autorange",
+ "autorangeoptions",
+ "autotickangles",
+ "autotypenumbers",
+ "calendar",
+ "categoryarray",
+ "categoryarraysrc",
+ "categoryorder",
+ "color",
+ "dtick",
+ "exponentformat",
+ "gridcolor",
+ "griddash",
+ "gridwidth",
+ "hoverformat",
+ "labelalias",
+ "layer",
+ "linecolor",
+ "linewidth",
+ "maxallowed",
+ "minallowed",
+ "minexponent",
+ "nticks",
+ "range",
+ "rangemode",
+ "separatethousands",
+ "showexponent",
+ "showgrid",
+ "showline",
+ "showticklabels",
+ "showtickprefix",
+ "showticksuffix",
+ "side",
+ "tick0",
+ "tickangle",
+ "tickcolor",
+ "tickfont",
+ "tickformat",
+ "tickformatstopdefaults",
+ "tickformatstops",
+ "ticklabelstep",
+ "ticklen",
+ "tickmode",
+ "tickprefix",
+ "ticks",
+ "ticksuffix",
+ "ticktext",
+ "ticktextsrc",
+ "tickvals",
+ "tickvalssrc",
+ "tickwidth",
+ "title",
+ "type",
+ "uirevision",
+ "visible",
+ }
+
+ @property
+ def angle(self):
+ """
+ Sets the angle (in degrees) from which the radial axis is
+ drawn. Note that by default, radial axis line on the theta=0
+ line corresponds to a line pointing right (like what
+ mathematicians prefer). Defaults to the first `polar.sector`
+ angle.
+
+ The 'angle' property is a angle (in degrees) that may be
+ specified as a number between -180 and 180.
+ Numeric values outside this range are converted to the equivalent value
+ (e.g. 270 is converted to -90).
+
+ Returns
+ -------
+ int|float
+ """
+ return self["angle"]
+
+ @angle.setter
+ def angle(self, val):
+ self["angle"] = val
+
+ @property
+ def autorange(self):
+ """
+ Determines whether or not the range of this axis is computed in
+ relation to the input data. See `rangemode` for more info. If
+ `range` is provided and it has a value for both the lower and
+ upper bound, `autorange` is set to False. Using "min" applies
+ autorange only to set the minimum. Using "max" applies
+ autorange only to set the maximum. Using *min reversed* applies
+ autorange only to set the minimum on a reversed axis. Using
+ *max reversed* applies autorange only to set the maximum on a
+ reversed axis. Using "reversed" applies autorange on both ends
+ and reverses the axis direction.
+
+ The 'autorange' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ [True, False, 'reversed', 'min reversed', 'max reversed',
+ 'min', 'max']
+
+ Returns
+ -------
+ Any
+ """
+ return self["autorange"]
+
+ @autorange.setter
+ def autorange(self, val):
+ self["autorange"] = val
+
+ @property
+ def autorangeoptions(self):
+ """
+ The 'autorangeoptions' property is an instance of Autorangeoptions
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.polar.radialaxis.Autorangeoptions`
+ - A dict of string/value properties that will be passed
+ to the Autorangeoptions constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.polar.radialaxis.Autorangeoptions
+ """
+ return self["autorangeoptions"]
+
+ @autorangeoptions.setter
+ def autorangeoptions(self, val):
+ self["autorangeoptions"] = val
+
+ @property
+ def autotickangles(self):
+ """
+ When `tickangle` is set to "auto", it will be set to the first
+ angle in this array that is large enough to prevent label
+ overlap.
+
+ The 'autotickangles' property is an info array that may be specified as:
+ * a list of elements where:
+ The 'autotickangles[i]' property is a angle (in degrees) that may be
+ specified as a number between -180 and 180.
+ Numeric values outside this range are converted to the equivalent value
+ (e.g. 270 is converted to -90).
+
+ Returns
+ -------
+ list
+ """
+ return self["autotickangles"]
+
+ @autotickangles.setter
+ def autotickangles(self, val):
+ self["autotickangles"] = val
+
+ @property
+ def autotypenumbers(self):
+ """
+ Using "strict" a numeric string in trace data is not converted
+ to a number. Using *convert types* a numeric string in trace
+ data may be treated as a number during automatic axis `type`
+ detection. Defaults to layout.autotypenumbers.
+
+ The 'autotypenumbers' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['convert types', 'strict']
+
+ Returns
+ -------
+ Any
+ """
+ return self["autotypenumbers"]
+
+ @autotypenumbers.setter
+ def autotypenumbers(self, val):
+ self["autotypenumbers"] = val
+
+ @property
+ def calendar(self):
+ """
+ Sets the calendar system to use for `range` and `tick0` if this
+ is a date axis. This does not set the calendar for interpreting
+ data on this axis, that's specified in the trace or via the
+ global `layout.calendar`
+
+ The 'calendar' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['chinese', 'coptic', 'discworld', 'ethiopian',
+ 'gregorian', 'hebrew', 'islamic', 'jalali', 'julian',
+ 'mayan', 'nanakshahi', 'nepali', 'persian', 'taiwan',
+ 'thai', 'ummalqura']
+
+ Returns
+ -------
+ Any
+ """
+ return self["calendar"]
+
+ @calendar.setter
+ def calendar(self, val):
+ self["calendar"] = val
+
+ @property
+ def categoryarray(self):
+ """
+ Sets the order in which categories on this axis appear. Only
+ has an effect if `categoryorder` is set to "array". Used with
+ `categoryorder`.
+
+ The 'categoryarray' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["categoryarray"]
+
+ @categoryarray.setter
+ def categoryarray(self, val):
+ self["categoryarray"] = val
+
+ @property
+ def categoryarraysrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for
+ `categoryarray`.
+
+ The 'categoryarraysrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["categoryarraysrc"]
+
+ @categoryarraysrc.setter
+ def categoryarraysrc(self, val):
+ self["categoryarraysrc"] = val
+
+ @property
+ def categoryorder(self):
+ """
+ Specifies the ordering logic for the case of categorical
+ variables. By default, plotly uses "trace", which specifies the
+ order that is present in the data supplied. Set `categoryorder`
+ to *category ascending* or *category descending* if order
+ should be determined by the alphanumerical order of the
+ category names. Set `categoryorder` to "array" to derive the
+ ordering from the attribute `categoryarray`. If a category is
+ not found in the `categoryarray` array, the sorting behavior
+ for that attribute will be identical to the "trace" mode. The
+ unspecified categories will follow the categories in
+ `categoryarray`. Set `categoryorder` to *total ascending* or
+ *total descending* if order should be determined by the
+ numerical order of the values. Similarly, the order can be
+ determined by the min, max, sum, mean, geometric mean or median
+ of all the values.
+
+ The 'categoryorder' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['trace', 'category ascending', 'category descending',
+ 'array', 'total ascending', 'total descending', 'min
+ ascending', 'min descending', 'max ascending', 'max
+ descending', 'sum ascending', 'sum descending', 'mean
+ ascending', 'mean descending', 'geometric mean ascending',
+ 'geometric mean descending', 'median ascending', 'median
+ descending']
+
+ Returns
+ -------
+ Any
+ """
+ return self["categoryorder"]
+
+ @categoryorder.setter
+ def categoryorder(self, val):
+ self["categoryorder"] = val
+
+ @property
+ def color(self):
+ """
+ Sets default for all colors associated with this axis all at
+ once: line, font, tick, and grid colors. Grid color is
+ lightened by blending this with the plot background Individual
+ pieces can override this.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def dtick(self):
+ """
+ Sets the step in-between ticks on this axis. Use with `tick0`.
+ Must be a positive number, or special strings available to
+ "log" and "date" axes. If the axis `type` is "log", then ticks
+ are set every 10^(n*dtick) where n is the tick number. For
+ example, to set a tick mark at 1, 10, 100, 1000, ... set dtick
+ to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2.
+ To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special values;
+ "L<f>", where `f` is a positive number, gives ticks linearly
+ spaced in value (but not position). For example `tick0` = 0.1,
+ `dtick` = "L0.5" will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To
+ show powers of 10 plus small digits between, use "D1" (all
+ digits) or "D2" (only 2 and 5). `tick0` is ignored for "D1" and
+ "D2". If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval between
+ ticks to one day, set `dtick` to 86400000.0. "date" also has
+ special values "M<n>" gives ticks spaced by a number of months.
+ `n` must be a positive integer. To set ticks on the 15th of
+ every third month, set `tick0` to "2000-01-15" and `dtick` to
+ "M3". To set ticks every 4 years, set `dtick` to "M48"
+
+ The 'dtick' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["dtick"]
+
+ @dtick.setter
+ def dtick(self, val):
+ self["dtick"] = val
+
+ @property
+ def exponentformat(self):
+ """
+ Determines a formatting rule for the tick exponents. For
+ example, consider the number 1,000,000,000. If "none", it
+ appears as 1,000,000,000. If "e", 1e+9. If "E", 1E+9. If
+ "power", 1x10^9 (with 9 in a super script). If "SI", 1G. If
+ "B", 1B.
+
+ The 'exponentformat' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['none', 'e', 'E', 'power', 'SI', 'B']
+
+ Returns
+ -------
+ Any
+ """
+ return self["exponentformat"]
+
+ @exponentformat.setter
+ def exponentformat(self, val):
+ self["exponentformat"] = val
+
+ @property
+ def gridcolor(self):
+ """
+ Sets the color of the grid lines.
+
+ The 'gridcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["gridcolor"]
+
+ @gridcolor.setter
+ def gridcolor(self, val):
+ self["gridcolor"] = val
+
+ @property
+ def griddash(self):
+ """
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+
+ The 'griddash' property is an enumeration that may be specified as:
+ - One of the following dash styles:
+ ['solid', 'dot', 'dash', 'longdash', 'dashdot', 'longdashdot']
+ - A string containing a dash length list in pixels or percentages
+ (e.g. '5px 10px 2px 2px', '5, 10, 2, 2', '10% 20% 40%', etc.)
+
+ Returns
+ -------
+ str
+ """
+ return self["griddash"]
+
+ @griddash.setter
+ def griddash(self, val):
+ self["griddash"] = val
+
+ @property
+ def gridwidth(self):
+ """
+ Sets the width (in px) of the grid lines.
+
+ The 'gridwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["gridwidth"]
+
+ @gridwidth.setter
+ def gridwidth(self, val):
+ self["gridwidth"] = val
+
+ @property
+ def hoverformat(self):
+ """
+ Sets the hover text formatting rule using d3 formatting mini-
+ languages which are very similar to those in Python. For
+ numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format. And for
+ dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to d3's date
+ formatter: "%h" for half of the year as a decimal number as
+ well as "%{n}f" for fractional seconds with n digits. For
+ example, *2016-10-13 09:15:23.456* with tickformat
+ "%H~%M~%S.%2f" would display "09~15~23.46"
+
+ The 'hoverformat' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["hoverformat"]
+
+ @hoverformat.setter
+ def hoverformat(self, val):
+ self["hoverformat"] = val
+
+ @property
+ def labelalias(self):
+ """
+ Replacement text for specific tick or hover labels. For example
+ using {US: 'USA', CA: 'Canada'} changes US to USA and CA to
+ Canada. The labels we would have shown must match the keys
+ exactly, after adding any tickprefix or ticksuffix. For
+ negative numbers the minus sign symbol used (U+2212) is wider
+ than the regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis type, and
+ both keys (if needed) and values (if desired) can include html-
+ like tags or MathJax.
+
+ The 'labelalias' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["labelalias"]
+
+ @labelalias.setter
+ def labelalias(self, val):
+ self["labelalias"] = val
+
+ @property
+ def layer(self):
+ """
+ Sets the layer on which this axis is displayed. If *above
+ traces*, this axis is displayed above all the subplot's traces
+ If *below traces*, this axis is displayed below all the
+ subplot's traces, but above the grid lines. Useful when used
+ together with scatter-like traces with `cliponaxis` set to
+ False to show markers and/or text nodes above this axis.
+
+ The 'layer' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['above traces', 'below traces']
+
+ Returns
+ -------
+ Any
+ """
+ return self["layer"]
+
+ @layer.setter
+ def layer(self, val):
+ self["layer"] = val
+
+ @property
+ def linecolor(self):
+ """
+ Sets the axis line color.
+
+ The 'linecolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["linecolor"]
+
+ @linecolor.setter
+ def linecolor(self, val):
+ self["linecolor"] = val
+
+ @property
+ def linewidth(self):
+ """
+ Sets the width (in px) of the axis line.
+
+ The 'linewidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["linewidth"]
+
+ @linewidth.setter
+ def linewidth(self, val):
+ self["linewidth"] = val
+
+ @property
+ def maxallowed(self):
+ """
+ Determines the maximum range of this axis.
+
+ The 'maxallowed' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["maxallowed"]
+
+ @maxallowed.setter
+ def maxallowed(self, val):
+ self["maxallowed"] = val
+
+ @property
+ def minallowed(self):
+ """
+ Determines the minimum range of this axis.
+
+ The 'minallowed' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["minallowed"]
+
+ @minallowed.setter
+ def minallowed(self, val):
+ self["minallowed"] = val
+
+ @property
+ def minexponent(self):
+ """
+ Hide SI prefix for 10^n if |n| is below this number. This only
+ has an effect when `tickformat` is "SI" or "B".
+
+ The 'minexponent' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["minexponent"]
+
+ @minexponent.setter
+ def minexponent(self, val):
+ self["minexponent"] = val
+
+ @property
+ def nticks(self):
+ """
+ Specifies the maximum number of ticks for the particular axis.
+ The actual number of ticks will be chosen automatically to be
+ less than or equal to `nticks`. Has an effect only if
+ `tickmode` is set to "auto".
+
+ The 'nticks' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [0, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["nticks"]
+
+ @nticks.setter
+ def nticks(self, val):
+ self["nticks"] = val
+
+ @property
+ def range(self):
+ """
+ Sets the range of this axis. If the axis `type` is "log", then
+ you must take the log of your desired range (e.g. to set the
+ range from 1 to 100, set the range from 0 to 2). If the axis
+ `type` is "date", it should be date strings, like date data,
+ though Date objects and unix milliseconds will be accepted and
+ converted to strings. If the axis `type` is "category", it
+ should be numbers, using the scale where each category is
+ assigned a serial number from zero in the order it appears.
+ Leaving either or both elements `null` impacts the default
+ `autorange`.
+
+ The 'range' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'range[0]' property accepts values of any type
+ (1) The 'range[1]' property accepts values of any type
+
+ Returns
+ -------
+ list
+ """
+ return self["range"]
+
+ @range.setter
+ def range(self, val):
+ self["range"] = val
+
+ @property
+ def rangemode(self):
+ """
+ If "tozero", the range extends to 0, regardless of the input
+ data If "nonnegative", the range is non-negative, regardless of
+ the input data. If "normal", the range is computed in relation
+ to the extrema of the input data (same behavior as for
+ cartesian axes).
+
+ The 'rangemode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['tozero', 'nonnegative', 'normal']
+
+ Returns
+ -------
+ Any
+ """
+ return self["rangemode"]
+
+ @rangemode.setter
+ def rangemode(self, val):
+ self["rangemode"] = val
+
+ @property
+ def separatethousands(self):
+ """
+ If "true", even 4-digit integers are separated
+
+ The 'separatethousands' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["separatethousands"]
+
+ @separatethousands.setter
+ def separatethousands(self, val):
+ self["separatethousands"] = val
+
+ @property
+ def showexponent(self):
+ """
+ If "all", all exponents are shown besides their significands.
+ If "first", only the exponent of the first tick is shown. If
+ "last", only the exponent of the last tick is shown. If "none",
+ no exponents appear.
+
+ The 'showexponent' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showexponent"]
+
+ @showexponent.setter
+ def showexponent(self, val):
+ self["showexponent"] = val
+
+ @property
+ def showgrid(self):
+ """
+ Determines whether or not grid lines are drawn. If True, the
+ grid lines are drawn at every tick mark.
+
+ The 'showgrid' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showgrid"]
+
+ @showgrid.setter
+ def showgrid(self, val):
+ self["showgrid"] = val
+
+ @property
+ def showline(self):
+ """
+ Determines whether or not a line bounding this axis is drawn.
+
+ The 'showline' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showline"]
+
+ @showline.setter
+ def showline(self, val):
+ self["showline"] = val
+
+ @property
+ def showticklabels(self):
+ """
+ Determines whether or not the tick labels are drawn.
+
+ The 'showticklabels' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showticklabels"]
+
+ @showticklabels.setter
+ def showticklabels(self, val):
+ self["showticklabels"] = val
+
+ @property
+ def showtickprefix(self):
+ """
+ If "all", all tick labels are displayed with a prefix. If
+ "first", only the first tick is displayed with a prefix. If
+ "last", only the last tick is displayed with a suffix. If
+ "none", tick prefixes are hidden.
+
+ The 'showtickprefix' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showtickprefix"]
+
+ @showtickprefix.setter
+ def showtickprefix(self, val):
+ self["showtickprefix"] = val
+
+ @property
+ def showticksuffix(self):
+ """
+ Same as `showtickprefix` but for tick suffixes.
+
+ The 'showticksuffix' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showticksuffix"]
+
+ @showticksuffix.setter
+ def showticksuffix(self, val):
+ self["showticksuffix"] = val
+
+ @property
+ def side(self):
+ """
+ Determines on which side of radial axis line the tick and tick
+ labels appear.
+
+ The 'side' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['clockwise', 'counterclockwise']
+
+ Returns
+ -------
+ Any
+ """
+ return self["side"]
+
+ @side.setter
+ def side(self, val):
+ self["side"] = val
+
+ @property
+ def tick0(self):
+ """
+ Sets the placement of the first tick on this axis. Use with
+ `dtick`. If the axis `type` is "log", then you must take the
+ log of your starting tick (e.g. to set the starting tick to
+ 100, set the `tick0` to 2) except when `dtick`=*L<f>* (see
+ `dtick` for more info). If the axis `type` is "date", it should
+ be a date string, like date data. If the axis `type` is
+ "category", it should be a number, using the scale where each
+ category is assigned a serial number from zero in the order it
+ appears.
+
+ The 'tick0' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["tick0"]
+
+ @tick0.setter
+ def tick0(self, val):
+ self["tick0"] = val
+
+ @property
+ def tickangle(self):
+ """
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the tick
+ labels vertically.
+
+ The 'tickangle' property is a angle (in degrees) that may be
+ specified as a number between -180 and 180.
+ Numeric values outside this range are converted to the equivalent value
+ (e.g. 270 is converted to -90).
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tickangle"]
+
+ @tickangle.setter
+ def tickangle(self, val):
+ self["tickangle"] = val
+
+ @property
+ def tickcolor(self):
+ """
+ Sets the tick color.
+
+ The 'tickcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["tickcolor"]
+
+ @tickcolor.setter
+ def tickcolor(self, val):
+ self["tickcolor"] = val
+
+ @property
+ def tickfont(self):
+ """
+ Sets the tick font.
+
+ The 'tickfont' property is an instance of Tickfont
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.polar.radialaxis.Tickfont`
+ - A dict of string/value properties that will be passed
+ to the Tickfont constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.polar.radialaxis.Tickfont
+ """
+ return self["tickfont"]
+
+ @tickfont.setter
+ def tickfont(self, val):
+ self["tickfont"] = val
+
+ @property
+ def tickformat(self):
+ """
+ Sets the tick label formatting rule using d3 formatting mini-
+ languages which are very similar to those in Python. For
+ numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format. And for
+ dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to d3's date
+ formatter: "%h" for half of the year as a decimal number as
+ well as "%{n}f" for fractional seconds with n digits. For
+ example, *2016-10-13 09:15:23.456* with tickformat
+ "%H~%M~%S.%2f" would display "09~15~23.46"
+
+ The 'tickformat' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["tickformat"]
+
+ @tickformat.setter
+ def tickformat(self, val):
+ self["tickformat"] = val
+
+ @property
+ def tickformatstops(self):
+ """
+ The 'tickformatstops' property is a tuple of instances of
+ Tickformatstop that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.polar.radialaxis.Tickformatstop
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Tickformatstop constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.polar.radialaxis.Tickformatstop]
+ """
+ return self["tickformatstops"]
+
+ @tickformatstops.setter
+ def tickformatstops(self, val):
+ self["tickformatstops"] = val
+
+ @property
+ def tickformatstopdefaults(self):
+ """
+ When used in a template (as layout.template.layout.polar.radial
+ axis.tickformatstopdefaults), sets the default property values
+ to use for elements of layout.polar.radialaxis.tickformatstops
+
+ The 'tickformatstopdefaults' property is an instance of Tickformatstop
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.polar.radialaxis.Tickformatstop`
+ - A dict of string/value properties that will be passed
+ to the Tickformatstop constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.polar.radialaxis.Tickformatstop
+ """
+ return self["tickformatstopdefaults"]
+
+ @tickformatstopdefaults.setter
+ def tickformatstopdefaults(self, val):
+ self["tickformatstopdefaults"] = val
+
+ @property
+ def ticklabelstep(self):
+ """
+ Sets the spacing between tick labels as compared to the spacing
+ between ticks. A value of 1 (default) means each tick gets a
+ label. A value of 2 means shows every 2nd label. A larger value
+ n means only every nth tick is labeled. `tick0` determines
+ which labels are shown. Not implemented for axes with `type`
+ "log" or "multicategory", or when `tickmode` is "array".
+
+ The 'ticklabelstep' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["ticklabelstep"]
+
+ @ticklabelstep.setter
+ def ticklabelstep(self, val):
+ self["ticklabelstep"] = val
+
+ @property
+ def ticklen(self):
+ """
+ Sets the tick length (in px).
+
+ The 'ticklen' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["ticklen"]
+
+ @ticklen.setter
+ def ticklen(self, val):
+ self["ticklen"] = val
+
+ @property
+ def tickmode(self):
+ """
+ Sets the tick mode for this axis. If "auto", the number of
+ ticks is set via `nticks`. If "linear", the placement of the
+ ticks is determined by a starting position `tick0` and a tick
+ step `dtick` ("linear" is the default value if `tick0` and
+ `dtick` are provided). If "array", the placement of the ticks
+ is set via `tickvals` and the tick text is `ticktext`. ("array"
+ is the default value if `tickvals` is provided).
+
+ The 'tickmode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['auto', 'linear', 'array']
+
+ Returns
+ -------
+ Any
+ """
+ return self["tickmode"]
+
+ @tickmode.setter
+ def tickmode(self, val):
+ self["tickmode"] = val
+
+ @property
+ def tickprefix(self):
+ """
+ Sets a tick label prefix.
+
+ The 'tickprefix' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["tickprefix"]
+
+ @tickprefix.setter
+ def tickprefix(self, val):
+ self["tickprefix"] = val
+
+ @property
+ def ticks(self):
+ """
+ Determines whether ticks are drawn or not. If "", this axis'
+ ticks are not drawn. If "outside" ("inside"), this axis' are
+ drawn outside (inside) the axis lines.
+
+ The 'ticks' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['outside', 'inside', '']
+
+ Returns
+ -------
+ Any
+ """
+ return self["ticks"]
+
+ @ticks.setter
+ def ticks(self, val):
+ self["ticks"] = val
+
+ @property
+ def ticksuffix(self):
+ """
+ Sets a tick label suffix.
+
+ The 'ticksuffix' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["ticksuffix"]
+
+ @ticksuffix.setter
+ def ticksuffix(self, val):
+ self["ticksuffix"] = val
+
+ @property
+ def ticktext(self):
+ """
+ Sets the text displayed at the ticks position via `tickvals`.
+ Only has an effect if `tickmode` is set to "array". Used with
+ `tickvals`.
+
+ The 'ticktext' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["ticktext"]
+
+ @ticktext.setter
+ def ticktext(self, val):
+ self["ticktext"] = val
+
+ @property
+ def ticktextsrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `ticktext`.
+
+ The 'ticktextsrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["ticktextsrc"]
+
+ @ticktextsrc.setter
+ def ticktextsrc(self, val):
+ self["ticktextsrc"] = val
+
+ @property
+ def tickvals(self):
+ """
+ Sets the values at which ticks on this axis appear. Only has an
+ effect if `tickmode` is set to "array". Used with `ticktext`.
+
+ The 'tickvals' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["tickvals"]
+
+ @tickvals.setter
+ def tickvals(self, val):
+ self["tickvals"] = val
+
+ @property
+ def tickvalssrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `tickvals`.
+
+ The 'tickvalssrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["tickvalssrc"]
+
+ @tickvalssrc.setter
+ def tickvalssrc(self, val):
+ self["tickvalssrc"] = val
+
+ @property
+ def tickwidth(self):
+ """
+ Sets the tick width (in px).
+
+ The 'tickwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tickwidth"]
+
+ @tickwidth.setter
+ def tickwidth(self, val):
+ self["tickwidth"] = val
+
+ @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.polar.radialaxis.Title`
+ - A dict of string/value properties that will be passed
+ to the Title constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.polar.radialaxis.Title
+ """
+ return self["title"]
+
+ @title.setter
+ def title(self, val):
+ self["title"] = val
+
+ @property
+ def type(self):
+ """
+ Sets the axis type. By default, plotly attempts to determined
+ the axis type by looking into the data of the traces that
+ referenced the axis in question.
+
+ The 'type' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['-', 'linear', 'log', 'date', 'category']
+
+ Returns
+ -------
+ Any
+ """
+ return self["type"]
+
+ @type.setter
+ def type(self, val):
+ self["type"] = val
+
+ @property
+ def uirevision(self):
+ """
+ Controls persistence of user-driven changes in axis `range`,
+ `autorange`, `angle`, and `title` if in `editable: true`
+ configuration. Defaults to `polar<N>.uirevision`.
+
+ The 'uirevision' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["uirevision"]
+
+ @uirevision.setter
+ def uirevision(self, val):
+ self["uirevision"] = val
+
+ @property
+ def visible(self):
+ """
+ A single toggle to hide the axis while preserving interaction
+ like dragging. Default is true when a cheater plot is present
+ on the axis, otherwise false
+
+ The 'visible' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["visible"]
+
+ @visible.setter
+ def visible(self, val):
+ self["visible"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ angle
+ Sets the angle (in degrees) from which the radial axis
+ is drawn. Note that by default, radial axis line on the
+ theta=0 line corresponds to a line pointing right (like
+ what mathematicians prefer). Defaults to the first
+ `polar.sector` angle.
+ autorange
+ Determines whether or not the range of this axis is
+ computed in relation to the input data. See `rangemode`
+ for more info. If `range` is provided and it has a
+ value for both the lower and upper bound, `autorange`
+ is set to False. Using "min" applies autorange only to
+ set the minimum. Using "max" applies autorange only to
+ set the maximum. Using *min reversed* applies autorange
+ only to set the minimum on a reversed axis. Using *max
+ reversed* applies autorange only to set the maximum on
+ a reversed axis. Using "reversed" applies autorange on
+ both ends and reverses the axis direction.
+ autorangeoptions
+ :class:`plotly.graph_objects.layout.polar.radialaxis.Au
+ torangeoptions` instance or dict with compatible
+ properties
+ autotickangles
+ When `tickangle` is set to "auto", it will be set to
+ the first angle in this array that is large enough to
+ prevent label overlap.
+ autotypenumbers
+ Using "strict" a numeric string in trace data is not
+ converted to a number. Using *convert types* a numeric
+ string in trace data may be treated as a number during
+ automatic axis `type` detection. Defaults to
+ layout.autotypenumbers.
+ calendar
+ Sets the calendar system to use for `range` and `tick0`
+ if this is a date axis. This does not set the calendar
+ for interpreting data on this axis, that's specified in
+ the trace or via the global `layout.calendar`
+ categoryarray
+ Sets the order in which categories on this axis appear.
+ Only has an effect if `categoryorder` is set to
+ "array". Used with `categoryorder`.
+ categoryarraysrc
+ Sets the source reference on Chart Studio Cloud for
+ `categoryarray`.
+ categoryorder
+ Specifies the ordering logic for the case of
+ categorical variables. By default, plotly uses "trace",
+ which specifies the order that is present in the data
+ supplied. Set `categoryorder` to *category ascending*
+ or *category descending* if order should be determined
+ by the alphanumerical order of the category names. Set
+ `categoryorder` to "array" to derive the ordering from
+ the attribute `categoryarray`. If a category is not
+ found in the `categoryarray` array, the sorting
+ behavior for that attribute will be identical to the
+ "trace" mode. The unspecified categories will follow
+ the categories in `categoryarray`. Set `categoryorder`
+ to *total ascending* or *total descending* if order
+ should be determined by the numerical order of the
+ values. Similarly, the order can be determined by the
+ min, max, sum, mean, geometric mean or median of all
+ the values.
+ color
+ Sets default for all colors associated with this axis
+ all at once: line, font, tick, and grid colors. Grid
+ color is lightened by blending this with the plot
+ background Individual pieces can override this.
+ dtick
+ Sets the step in-between ticks on this axis. Use with
+ `tick0`. Must be a positive number, or special strings
+ available to "log" and "date" axes. If the axis `type`
+ is "log", then ticks are set every 10^(n*dtick) where n
+ is the tick number. For example, to set a tick mark at
+ 1, 10, 100, 1000, ... set dtick to 1. To set tick marks
+ at 1, 100, 10000, ... set dtick to 2. To set tick marks
+ at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special
+ values; "L<f>", where `f` is a positive number, gives
+ ticks linearly spaced in value (but not position). For
+ example `tick0` = 0.1, `dtick` = "L0.5" will put ticks
+ at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus
+ small digits between, use "D1" (all digits) or "D2"
+ (only 2 and 5). `tick0` is ignored for "D1" and "D2".
+ If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval
+ between ticks to one day, set `dtick` to 86400000.0.
+ "date" also has special values "M<n>" gives ticks
+ spaced by a number of months. `n` must be a positive
+ integer. To set ticks on the 15th of every third month,
+ set `tick0` to "2000-01-15" and `dtick` to "M3". To set
+ ticks every 4 years, set `dtick` to "M48"
+ exponentformat
+ Determines a formatting rule for the tick exponents.
+ For example, consider the number 1,000,000,000. If
+ "none", it appears as 1,000,000,000. If "e", 1e+9. If
+ "E", 1E+9. If "power", 1x10^9 (with 9 in a super
+ script). If "SI", 1G. If "B", 1B.
+ gridcolor
+ Sets the color of the grid lines.
+ griddash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ gridwidth
+ Sets the width (in px) of the grid lines.
+ hoverformat
+ Sets the hover text formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ labelalias
+ Replacement text for specific tick or hover labels. For
+ example using {US: 'USA', CA: 'Canada'} changes US to
+ USA and CA to Canada. The labels we would have shown
+ must match the keys exactly, after adding any
+ tickprefix or ticksuffix. For negative numbers the
+ minus sign symbol used (U+2212) is wider than the
+ regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis
+ type, and both keys (if needed) and values (if desired)
+ can include html-like tags or MathJax.
+ layer
+ Sets the layer on which this axis is displayed. If
+ *above traces*, this axis is displayed above all the
+ subplot's traces If *below traces*, this axis is
+ displayed below all the subplot's traces, but above the
+ grid lines. Useful when used together with scatter-like
+ traces with `cliponaxis` set to False to show markers
+ and/or text nodes above this axis.
+ linecolor
+ Sets the axis line color.
+ linewidth
+ Sets the width (in px) of the axis line.
+ maxallowed
+ Determines the maximum range of this axis.
+ minallowed
+ Determines the minimum range of this axis.
+ minexponent
+ Hide SI prefix for 10^n if |n| is below this number.
+ This only has an effect when `tickformat` is "SI" or
+ "B".
+ nticks
+ Specifies the maximum number of ticks for the
+ particular axis. The actual number of ticks will be
+ chosen automatically to be less than or equal to
+ `nticks`. Has an effect only if `tickmode` is set to
+ "auto".
+ range
+ Sets the range of this axis. If the axis `type` is
+ "log", then you must take the log of your desired range
+ (e.g. to set the range from 1 to 100, set the range
+ from 0 to 2). If the axis `type` is "date", it should
+ be date strings, like date data, though Date objects
+ and unix milliseconds will be accepted and converted to
+ strings. If the axis `type` is "category", it should be
+ numbers, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears. Leaving either or both elements `null` impacts
+ the default `autorange`.
+ rangemode
+ If "tozero", the range extends to 0, regardless of the
+ input data If "nonnegative", the range is non-negative,
+ regardless of the input data. If "normal", the range is
+ computed in relation to the extrema of the input data
+ (same behavior as for cartesian axes).
+ separatethousands
+ If "true", even 4-digit integers are separated
+ showexponent
+ If "all", all exponents are shown besides their
+ significands. If "first", only the exponent of the
+ first tick is shown. If "last", only the exponent of
+ the last tick is shown. If "none", no exponents appear.
+ showgrid
+ Determines whether or not grid lines are drawn. If
+ True, the grid lines are drawn at every tick mark.
+ showline
+ Determines whether or not a line bounding this axis is
+ drawn.
+ showticklabels
+ Determines whether or not the tick labels are drawn.
+ showtickprefix
+ If "all", all tick labels are displayed with a prefix.
+ If "first", only the first tick is displayed with a
+ prefix. If "last", only the last tick is displayed with
+ a suffix. If "none", tick prefixes are hidden.
+ showticksuffix
+ Same as `showtickprefix` but for tick suffixes.
+ side
+ Determines on which side of radial axis line the tick
+ and tick labels appear.
+ tick0
+ Sets the placement of the first tick on this axis. Use
+ with `dtick`. If the axis `type` is "log", then you
+ must take the log of your starting tick (e.g. to set
+ the starting tick to 100, set the `tick0` to 2) except
+ when `dtick`=*L<f>* (see `dtick` for more info). If the
+ axis `type` is "date", it should be a date string, like
+ date data. If the axis `type` is "category", it should
+ be a number, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears.
+ tickangle
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the
+ tick labels vertically.
+ tickcolor
+ Sets the tick color.
+ tickfont
+ Sets the tick font.
+ tickformat
+ Sets the tick label formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ tickformatstops
+ A tuple of :class:`plotly.graph_objects.layout.polar.ra
+ dialaxis.Tickformatstop` instances or dicts with
+ compatible properties
+ tickformatstopdefaults
+ When used in a template (as layout.template.layout.pola
+ r.radialaxis.tickformatstopdefaults), sets the default
+ property values to use for elements of
+ layout.polar.radialaxis.tickformatstops
+ ticklabelstep
+ Sets the spacing between tick labels as compared to the
+ spacing between ticks. A value of 1 (default) means
+ each tick gets a label. A value of 2 means shows every
+ 2nd label. A larger value n means only every nth tick
+ is labeled. `tick0` determines which labels are shown.
+ Not implemented for axes with `type` "log" or
+ "multicategory", or when `tickmode` is "array".
+ ticklen
+ Sets the tick length (in px).
+ tickmode
+ Sets the tick mode for this axis. If "auto", the number
+ of ticks is set via `nticks`. If "linear", the
+ placement of the ticks is determined by a starting
+ position `tick0` and a tick step `dtick` ("linear" is
+ the default value if `tick0` and `dtick` are provided).
+ If "array", the placement of the ticks is set via
+ `tickvals` and the tick text is `ticktext`. ("array" is
+ the default value if `tickvals` is provided).
+ tickprefix
+ Sets a tick label prefix.
+ ticks
+ Determines whether ticks are drawn or not. If "", this
+ axis' ticks are not drawn. If "outside" ("inside"),
+ this axis' are drawn outside (inside) the axis lines.
+ ticksuffix
+ Sets a tick label suffix.
+ ticktext
+ Sets the text displayed at the ticks position via
+ `tickvals`. Only has an effect if `tickmode` is set to
+ "array". Used with `tickvals`.
+ ticktextsrc
+ Sets the source reference on Chart Studio Cloud for
+ `ticktext`.
+ tickvals
+ Sets the values at which ticks on this axis appear.
+ Only has an effect if `tickmode` is set to "array".
+ Used with `ticktext`.
+ tickvalssrc
+ Sets the source reference on Chart Studio Cloud for
+ `tickvals`.
+ tickwidth
+ Sets the tick width (in px).
+ title
+ :class:`plotly.graph_objects.layout.polar.radialaxis.Ti
+ tle` instance or dict with compatible properties
+ type
+ Sets the axis type. By default, plotly attempts to
+ determined the axis type by looking into the data of
+ the traces that referenced the axis in question.
+ uirevision
+ Controls persistence of user-driven changes in axis
+ `range`, `autorange`, `angle`, and `title` if in
+ `editable: true` configuration. Defaults to
+ `polar<N>.uirevision`.
+ visible
+ A single toggle to hide the axis while preserving
+ interaction like dragging. Default is true when a
+ cheater plot is present on the axis, otherwise false
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ angle=None,
+ autorange=None,
+ autorangeoptions=None,
+ autotickangles=None,
+ autotypenumbers=None,
+ calendar=None,
+ categoryarray=None,
+ categoryarraysrc=None,
+ categoryorder=None,
+ color=None,
+ dtick=None,
+ exponentformat=None,
+ gridcolor=None,
+ griddash=None,
+ gridwidth=None,
+ hoverformat=None,
+ labelalias=None,
+ layer=None,
+ linecolor=None,
+ linewidth=None,
+ maxallowed=None,
+ minallowed=None,
+ minexponent=None,
+ nticks=None,
+ range=None,
+ rangemode=None,
+ separatethousands=None,
+ showexponent=None,
+ showgrid=None,
+ showline=None,
+ showticklabels=None,
+ showtickprefix=None,
+ showticksuffix=None,
+ side=None,
+ tick0=None,
+ tickangle=None,
+ tickcolor=None,
+ tickfont=None,
+ tickformat=None,
+ tickformatstops=None,
+ tickformatstopdefaults=None,
+ ticklabelstep=None,
+ ticklen=None,
+ tickmode=None,
+ tickprefix=None,
+ ticks=None,
+ ticksuffix=None,
+ ticktext=None,
+ ticktextsrc=None,
+ tickvals=None,
+ tickvalssrc=None,
+ tickwidth=None,
+ title=None,
+ type=None,
+ uirevision=None,
+ visible=None,
+ **kwargs,
+ ):
+ """
+ Construct a new RadialAxis object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.polar.RadialAxis`
+ angle
+ Sets the angle (in degrees) from which the radial axis
+ is drawn. Note that by default, radial axis line on the
+ theta=0 line corresponds to a line pointing right (like
+ what mathematicians prefer). Defaults to the first
+ `polar.sector` angle.
+ autorange
+ Determines whether or not the range of this axis is
+ computed in relation to the input data. See `rangemode`
+ for more info. If `range` is provided and it has a
+ value for both the lower and upper bound, `autorange`
+ is set to False. Using "min" applies autorange only to
+ set the minimum. Using "max" applies autorange only to
+ set the maximum. Using *min reversed* applies autorange
+ only to set the minimum on a reversed axis. Using *max
+ reversed* applies autorange only to set the maximum on
+ a reversed axis. Using "reversed" applies autorange on
+ both ends and reverses the axis direction.
+ autorangeoptions
+ :class:`plotly.graph_objects.layout.polar.radialaxis.Au
+ torangeoptions` instance or dict with compatible
+ properties
+ autotickangles
+ When `tickangle` is set to "auto", it will be set to
+ the first angle in this array that is large enough to
+ prevent label overlap.
+ autotypenumbers
+ Using "strict" a numeric string in trace data is not
+ converted to a number. Using *convert types* a numeric
+ string in trace data may be treated as a number during
+ automatic axis `type` detection. Defaults to
+ layout.autotypenumbers.
+ calendar
+ Sets the calendar system to use for `range` and `tick0`
+ if this is a date axis. This does not set the calendar
+ for interpreting data on this axis, that's specified in
+ the trace or via the global `layout.calendar`
+ categoryarray
+ Sets the order in which categories on this axis appear.
+ Only has an effect if `categoryorder` is set to
+ "array". Used with `categoryorder`.
+ categoryarraysrc
+ Sets the source reference on Chart Studio Cloud for
+ `categoryarray`.
+ categoryorder
+ Specifies the ordering logic for the case of
+ categorical variables. By default, plotly uses "trace",
+ which specifies the order that is present in the data
+ supplied. Set `categoryorder` to *category ascending*
+ or *category descending* if order should be determined
+ by the alphanumerical order of the category names. Set
+ `categoryorder` to "array" to derive the ordering from
+ the attribute `categoryarray`. If a category is not
+ found in the `categoryarray` array, the sorting
+ behavior for that attribute will be identical to the
+ "trace" mode. The unspecified categories will follow
+ the categories in `categoryarray`. Set `categoryorder`
+ to *total ascending* or *total descending* if order
+ should be determined by the numerical order of the
+ values. Similarly, the order can be determined by the
+ min, max, sum, mean, geometric mean or median of all
+ the values.
+ color
+ Sets default for all colors associated with this axis
+ all at once: line, font, tick, and grid colors. Grid
+ color is lightened by blending this with the plot
+ background Individual pieces can override this.
+ dtick
+ Sets the step in-between ticks on this axis. Use with
+ `tick0`. Must be a positive number, or special strings
+ available to "log" and "date" axes. If the axis `type`
+ is "log", then ticks are set every 10^(n*dtick) where n
+ is the tick number. For example, to set a tick mark at
+ 1, 10, 100, 1000, ... set dtick to 1. To set tick marks
+ at 1, 100, 10000, ... set dtick to 2. To set tick marks
+ at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special
+ values; "L<f>", where `f` is a positive number, gives
+ ticks linearly spaced in value (but not position). For
+ example `tick0` = 0.1, `dtick` = "L0.5" will put ticks
+ at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus
+ small digits between, use "D1" (all digits) or "D2"
+ (only 2 and 5). `tick0` is ignored for "D1" and "D2".
+ If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval
+ between ticks to one day, set `dtick` to 86400000.0.
+ "date" also has special values "M<n>" gives ticks
+ spaced by a number of months. `n` must be a positive
+ integer. To set ticks on the 15th of every third month,
+ set `tick0` to "2000-01-15" and `dtick` to "M3". To set
+ ticks every 4 years, set `dtick` to "M48"
+ exponentformat
+ Determines a formatting rule for the tick exponents.
+ For example, consider the number 1,000,000,000. If
+ "none", it appears as 1,000,000,000. If "e", 1e+9. If
+ "E", 1E+9. If "power", 1x10^9 (with 9 in a super
+ script). If "SI", 1G. If "B", 1B.
+ gridcolor
+ Sets the color of the grid lines.
+ griddash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ gridwidth
+ Sets the width (in px) of the grid lines.
+ hoverformat
+ Sets the hover text formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ labelalias
+ Replacement text for specific tick or hover labels. For
+ example using {US: 'USA', CA: 'Canada'} changes US to
+ USA and CA to Canada. The labels we would have shown
+ must match the keys exactly, after adding any
+ tickprefix or ticksuffix. For negative numbers the
+ minus sign symbol used (U+2212) is wider than the
+ regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis
+ type, and both keys (if needed) and values (if desired)
+ can include html-like tags or MathJax.
+ layer
+ Sets the layer on which this axis is displayed. If
+ *above traces*, this axis is displayed above all the
+ subplot's traces If *below traces*, this axis is
+ displayed below all the subplot's traces, but above the
+ grid lines. Useful when used together with scatter-like
+ traces with `cliponaxis` set to False to show markers
+ and/or text nodes above this axis.
+ linecolor
+ Sets the axis line color.
+ linewidth
+ Sets the width (in px) of the axis line.
+ maxallowed
+ Determines the maximum range of this axis.
+ minallowed
+ Determines the minimum range of this axis.
+ minexponent
+ Hide SI prefix for 10^n if |n| is below this number.
+ This only has an effect when `tickformat` is "SI" or
+ "B".
+ nticks
+ Specifies the maximum number of ticks for the
+ particular axis. The actual number of ticks will be
+ chosen automatically to be less than or equal to
+ `nticks`. Has an effect only if `tickmode` is set to
+ "auto".
+ range
+ Sets the range of this axis. If the axis `type` is
+ "log", then you must take the log of your desired range
+ (e.g. to set the range from 1 to 100, set the range
+ from 0 to 2). If the axis `type` is "date", it should
+ be date strings, like date data, though Date objects
+ and unix milliseconds will be accepted and converted to
+ strings. If the axis `type` is "category", it should be
+ numbers, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears. Leaving either or both elements `null` impacts
+ the default `autorange`.
+ rangemode
+ If "tozero", the range extends to 0, regardless of the
+ input data If "nonnegative", the range is non-negative,
+ regardless of the input data. If "normal", the range is
+ computed in relation to the extrema of the input data
+ (same behavior as for cartesian axes).
+ separatethousands
+ If "true", even 4-digit integers are separated
+ showexponent
+ If "all", all exponents are shown besides their
+ significands. If "first", only the exponent of the
+ first tick is shown. If "last", only the exponent of
+ the last tick is shown. If "none", no exponents appear.
+ showgrid
+ Determines whether or not grid lines are drawn. If
+ True, the grid lines are drawn at every tick mark.
+ showline
+ Determines whether or not a line bounding this axis is
+ drawn.
+ showticklabels
+ Determines whether or not the tick labels are drawn.
+ showtickprefix
+ If "all", all tick labels are displayed with a prefix.
+ If "first", only the first tick is displayed with a
+ prefix. If "last", only the last tick is displayed with
+ a suffix. If "none", tick prefixes are hidden.
+ showticksuffix
+ Same as `showtickprefix` but for tick suffixes.
+ side
+ Determines on which side of radial axis line the tick
+ and tick labels appear.
+ tick0
+ Sets the placement of the first tick on this axis. Use
+ with `dtick`. If the axis `type` is "log", then you
+ must take the log of your starting tick (e.g. to set
+ the starting tick to 100, set the `tick0` to 2) except
+ when `dtick`=*L<f>* (see `dtick` for more info). If the
+ axis `type` is "date", it should be a date string, like
+ date data. If the axis `type` is "category", it should
+ be a number, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears.
+ tickangle
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the
+ tick labels vertically.
+ tickcolor
+ Sets the tick color.
+ tickfont
+ Sets the tick font.
+ tickformat
+ Sets the tick label formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ tickformatstops
+ A tuple of :class:`plotly.graph_objects.layout.polar.ra
+ dialaxis.Tickformatstop` instances or dicts with
+ compatible properties
+ tickformatstopdefaults
+ When used in a template (as layout.template.layout.pola
+ r.radialaxis.tickformatstopdefaults), sets the default
+ property values to use for elements of
+ layout.polar.radialaxis.tickformatstops
+ ticklabelstep
+ Sets the spacing between tick labels as compared to the
+ spacing between ticks. A value of 1 (default) means
+ each tick gets a label. A value of 2 means shows every
+ 2nd label. A larger value n means only every nth tick
+ is labeled. `tick0` determines which labels are shown.
+ Not implemented for axes with `type` "log" or
+ "multicategory", or when `tickmode` is "array".
+ ticklen
+ Sets the tick length (in px).
+ tickmode
+ Sets the tick mode for this axis. If "auto", the number
+ of ticks is set via `nticks`. If "linear", the
+ placement of the ticks is determined by a starting
+ position `tick0` and a tick step `dtick` ("linear" is
+ the default value if `tick0` and `dtick` are provided).
+ If "array", the placement of the ticks is set via
+ `tickvals` and the tick text is `ticktext`. ("array" is
+ the default value if `tickvals` is provided).
+ tickprefix
+ Sets a tick label prefix.
+ ticks
+ Determines whether ticks are drawn or not. If "", this
+ axis' ticks are not drawn. If "outside" ("inside"),
+ this axis' are drawn outside (inside) the axis lines.
+ ticksuffix
+ Sets a tick label suffix.
+ ticktext
+ Sets the text displayed at the ticks position via
+ `tickvals`. Only has an effect if `tickmode` is set to
+ "array". Used with `tickvals`.
+ ticktextsrc
+ Sets the source reference on Chart Studio Cloud for
+ `ticktext`.
+ tickvals
+ Sets the values at which ticks on this axis appear.
+ Only has an effect if `tickmode` is set to "array".
+ Used with `ticktext`.
+ tickvalssrc
+ Sets the source reference on Chart Studio Cloud for
+ `tickvals`.
+ tickwidth
+ Sets the tick width (in px).
+ title
+ :class:`plotly.graph_objects.layout.polar.radialaxis.Ti
+ tle` instance or dict with compatible properties
+ type
+ Sets the axis type. By default, plotly attempts to
+ determined the axis type by looking into the data of
+ the traces that referenced the axis in question.
+ uirevision
+ Controls persistence of user-driven changes in axis
+ `range`, `autorange`, `angle`, and `title` if in
+ `editable: true` configuration. Defaults to
+ `polar<N>.uirevision`.
+ visible
+ A single toggle to hide the axis while preserving
+ interaction like dragging. Default is true when a
+ cheater plot is present on the axis, otherwise false
+
+ Returns
+ -------
+ RadialAxis
+ """
+ super().__init__("radialaxis")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.polar.RadialAxis
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.polar.RadialAxis`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("angle", arg, angle)
+ self._set_property("autorange", arg, autorange)
+ self._set_property("autorangeoptions", arg, autorangeoptions)
+ self._set_property("autotickangles", arg, autotickangles)
+ self._set_property("autotypenumbers", arg, autotypenumbers)
+ self._set_property("calendar", arg, calendar)
+ self._set_property("categoryarray", arg, categoryarray)
+ self._set_property("categoryarraysrc", arg, categoryarraysrc)
+ self._set_property("categoryorder", arg, categoryorder)
+ self._set_property("color", arg, color)
+ self._set_property("dtick", arg, dtick)
+ self._set_property("exponentformat", arg, exponentformat)
+ self._set_property("gridcolor", arg, gridcolor)
+ self._set_property("griddash", arg, griddash)
+ self._set_property("gridwidth", arg, gridwidth)
+ self._set_property("hoverformat", arg, hoverformat)
+ self._set_property("labelalias", arg, labelalias)
+ self._set_property("layer", arg, layer)
+ self._set_property("linecolor", arg, linecolor)
+ self._set_property("linewidth", arg, linewidth)
+ self._set_property("maxallowed", arg, maxallowed)
+ self._set_property("minallowed", arg, minallowed)
+ self._set_property("minexponent", arg, minexponent)
+ self._set_property("nticks", arg, nticks)
+ self._set_property("range", arg, range)
+ self._set_property("rangemode", arg, rangemode)
+ self._set_property("separatethousands", arg, separatethousands)
+ self._set_property("showexponent", arg, showexponent)
+ self._set_property("showgrid", arg, showgrid)
+ self._set_property("showline", arg, showline)
+ self._set_property("showticklabels", arg, showticklabels)
+ self._set_property("showtickprefix", arg, showtickprefix)
+ self._set_property("showticksuffix", arg, showticksuffix)
+ self._set_property("side", arg, side)
+ self._set_property("tick0", arg, tick0)
+ self._set_property("tickangle", arg, tickangle)
+ self._set_property("tickcolor", arg, tickcolor)
+ self._set_property("tickfont", arg, tickfont)
+ self._set_property("tickformat", arg, tickformat)
+ self._set_property("tickformatstops", arg, tickformatstops)
+ self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
+ self._set_property("ticklabelstep", arg, ticklabelstep)
+ self._set_property("ticklen", arg, ticklen)
+ self._set_property("tickmode", arg, tickmode)
+ self._set_property("tickprefix", arg, tickprefix)
+ self._set_property("ticks", arg, ticks)
+ self._set_property("ticksuffix", arg, ticksuffix)
+ self._set_property("ticktext", arg, ticktext)
+ self._set_property("ticktextsrc", arg, ticktextsrc)
+ self._set_property("tickvals", arg, tickvals)
+ self._set_property("tickvalssrc", arg, tickvalssrc)
+ self._set_property("tickwidth", arg, tickwidth)
+ self._set_property("title", arg, title)
+ self._set_property("type", arg, type)
+ self._set_property("uirevision", arg, uirevision)
+ self._set_property("visible", arg, visible)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/angularaxis/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/angularaxis/__init__.py
new file mode 100644
index 0000000..1dfbe47
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/angularaxis/__init__.py
@@ -0,0 +1,12 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._tickfont import Tickfont
+ from ._tickformatstop import Tickformatstop
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__, [], ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop"]
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/angularaxis/_tickfont.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/angularaxis/_tickfont.py
new file mode 100644
index 0000000..d0a6e74
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/angularaxis/_tickfont.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Tickfont(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.polar.angularaxis"
+ _path_str = "layout.polar.angularaxis.tickfont"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Tickfont object
+
+ Sets the tick font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.polar.a
+ ngularaxis.Tickfont`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Tickfont
+ """
+ super().__init__("tickfont")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.polar.angularaxis.Tickfont
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.polar.angularaxis.Tickfont`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/angularaxis/_tickformatstop.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/angularaxis/_tickformatstop.py
new file mode 100644
index 0000000..8142b3c
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/angularaxis/_tickformatstop.py
@@ -0,0 +1,241 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Tickformatstop(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.polar.angularaxis"
+ _path_str = "layout.polar.angularaxis.tickformatstop"
+ _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
+
+ @property
+ def dtickrange(self):
+ """
+ range [*min*, *max*], where "min", "max" - dtick values which
+ describe some zoom level, it is possible to omit "min" or "max"
+ value by passing "null"
+
+ The 'dtickrange' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'dtickrange[0]' property accepts values of any type
+ (1) The 'dtickrange[1]' property accepts values of any type
+
+ Returns
+ -------
+ list
+ """
+ return self["dtickrange"]
+
+ @dtickrange.setter
+ def dtickrange(self, val):
+ self["dtickrange"] = val
+
+ @property
+ def enabled(self):
+ """
+ Determines whether or not this stop is used. If `false`, this
+ stop is ignored even within its `dtickrange`.
+
+ The 'enabled' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["enabled"]
+
+ @enabled.setter
+ def enabled(self, val):
+ self["enabled"] = val
+
+ @property
+ def name(self):
+ """
+ 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.
+
+ The 'name' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["name"]
+
+ @name.setter
+ def name(self, val):
+ self["name"] = val
+
+ @property
+ def templateitemname(self):
+ """
+ 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`.
+
+ The 'templateitemname' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["templateitemname"]
+
+ @templateitemname.setter
+ def templateitemname(self, val):
+ self["templateitemname"] = val
+
+ @property
+ def value(self):
+ """
+ string - dtickformat for described zoom level, the same as
+ "tickformat"
+
+ The 'value' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["value"]
+
+ @value.setter
+ def value(self, val):
+ self["value"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ dtickrange
+ range [*min*, *max*], where "min", "max" - dtick values
+ which describe some zoom level, it is possible to omit
+ "min" or "max" value by passing "null"
+ enabled
+ Determines whether or not this stop is used. If
+ `false`, this stop is ignored even within its
+ `dtickrange`.
+ 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`.
+ value
+ string - dtickformat for described zoom level, the same
+ as "tickformat"
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ dtickrange=None,
+ enabled=None,
+ name=None,
+ templateitemname=None,
+ value=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Tickformatstop object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.polar.a
+ ngularaxis.Tickformatstop`
+ dtickrange
+ range [*min*, *max*], where "min", "max" - dtick values
+ which describe some zoom level, it is possible to omit
+ "min" or "max" value by passing "null"
+ enabled
+ Determines whether or not this stop is used. If
+ `false`, this stop is ignored even within its
+ `dtickrange`.
+ 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`.
+ value
+ string - dtickformat for described zoom level, the same
+ as "tickformat"
+
+ Returns
+ -------
+ Tickformatstop
+ """
+ super().__init__("tickformatstops")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.polar.angularaxis.Tickformatstop
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.polar.angularaxis.Tickformatstop`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("dtickrange", arg, dtickrange)
+ self._set_property("enabled", arg, enabled)
+ self._set_property("name", arg, name)
+ self._set_property("templateitemname", arg, templateitemname)
+ self._set_property("value", arg, value)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/radialaxis/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/radialaxis/__init__.py
new file mode 100644
index 0000000..d58e980
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/radialaxis/__init__.py
@@ -0,0 +1,22 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._autorangeoptions import Autorangeoptions
+ from ._tickfont import Tickfont
+ from ._tickformatstop import Tickformatstop
+ from ._title import Title
+ from . import title
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__,
+ [".title"],
+ [
+ "._autorangeoptions.Autorangeoptions",
+ "._tickfont.Tickfont",
+ "._tickformatstop.Tickformatstop",
+ "._title.Title",
+ ],
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/radialaxis/_autorangeoptions.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/radialaxis/_autorangeoptions.py
new file mode 100644
index 0000000..0c12c55
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/radialaxis/_autorangeoptions.py
@@ -0,0 +1,216 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Autorangeoptions(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.polar.radialaxis"
+ _path_str = "layout.polar.radialaxis.autorangeoptions"
+ _valid_props = {
+ "clipmax",
+ "clipmin",
+ "include",
+ "includesrc",
+ "maxallowed",
+ "minallowed",
+ }
+
+ @property
+ def clipmax(self):
+ """
+ Clip autorange maximum if it goes beyond this value. Has no
+ effect when `autorangeoptions.maxallowed` is provided.
+
+ The 'clipmax' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["clipmax"]
+
+ @clipmax.setter
+ def clipmax(self, val):
+ self["clipmax"] = val
+
+ @property
+ def clipmin(self):
+ """
+ Clip autorange minimum if it goes beyond this value. Has no
+ effect when `autorangeoptions.minallowed` is provided.
+
+ The 'clipmin' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["clipmin"]
+
+ @clipmin.setter
+ def clipmin(self, val):
+ self["clipmin"] = val
+
+ @property
+ def include(self):
+ """
+ Ensure this value is included in autorange.
+
+ The 'include' property accepts values of any type
+
+ Returns
+ -------
+ Any|numpy.ndarray
+ """
+ return self["include"]
+
+ @include.setter
+ def include(self, val):
+ self["include"] = val
+
+ @property
+ def includesrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `include`.
+
+ The 'includesrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["includesrc"]
+
+ @includesrc.setter
+ def includesrc(self, val):
+ self["includesrc"] = val
+
+ @property
+ def maxallowed(self):
+ """
+ Use this value exactly as autorange maximum.
+
+ The 'maxallowed' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["maxallowed"]
+
+ @maxallowed.setter
+ def maxallowed(self, val):
+ self["maxallowed"] = val
+
+ @property
+ def minallowed(self):
+ """
+ Use this value exactly as autorange minimum.
+
+ The 'minallowed' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["minallowed"]
+
+ @minallowed.setter
+ def minallowed(self, val):
+ self["minallowed"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ clipmax
+ Clip autorange maximum if it goes beyond this value.
+ Has no effect when `autorangeoptions.maxallowed` is
+ provided.
+ clipmin
+ Clip autorange minimum if it goes beyond this value.
+ Has no effect when `autorangeoptions.minallowed` is
+ provided.
+ include
+ Ensure this value is included in autorange.
+ includesrc
+ Sets the source reference on Chart Studio Cloud for
+ `include`.
+ maxallowed
+ Use this value exactly as autorange maximum.
+ minallowed
+ Use this value exactly as autorange minimum.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ clipmax=None,
+ clipmin=None,
+ include=None,
+ includesrc=None,
+ maxallowed=None,
+ minallowed=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Autorangeoptions object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.polar.r
+ adialaxis.Autorangeoptions`
+ clipmax
+ Clip autorange maximum if it goes beyond this value.
+ Has no effect when `autorangeoptions.maxallowed` is
+ provided.
+ clipmin
+ Clip autorange minimum if it goes beyond this value.
+ Has no effect when `autorangeoptions.minallowed` is
+ provided.
+ include
+ Ensure this value is included in autorange.
+ includesrc
+ Sets the source reference on Chart Studio Cloud for
+ `include`.
+ maxallowed
+ Use this value exactly as autorange maximum.
+ minallowed
+ Use this value exactly as autorange minimum.
+
+ Returns
+ -------
+ Autorangeoptions
+ """
+ super().__init__("autorangeoptions")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.polar.radialaxis.Autorangeoptions
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.polar.radialaxis.Autorangeoptions`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("clipmax", arg, clipmax)
+ self._set_property("clipmin", arg, clipmin)
+ self._set_property("include", arg, include)
+ self._set_property("includesrc", arg, includesrc)
+ self._set_property("maxallowed", arg, maxallowed)
+ self._set_property("minallowed", arg, minallowed)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/radialaxis/_tickfont.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/radialaxis/_tickfont.py
new file mode 100644
index 0000000..6be3feb
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/radialaxis/_tickfont.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Tickfont(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.polar.radialaxis"
+ _path_str = "layout.polar.radialaxis.tickfont"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Tickfont object
+
+ Sets the tick font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.polar.r
+ adialaxis.Tickfont`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Tickfont
+ """
+ super().__init__("tickfont")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.polar.radialaxis.Tickfont
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.polar.radialaxis.Tickfont`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/radialaxis/_tickformatstop.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/radialaxis/_tickformatstop.py
new file mode 100644
index 0000000..a2c237a
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/radialaxis/_tickformatstop.py
@@ -0,0 +1,241 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Tickformatstop(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.polar.radialaxis"
+ _path_str = "layout.polar.radialaxis.tickformatstop"
+ _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
+
+ @property
+ def dtickrange(self):
+ """
+ range [*min*, *max*], where "min", "max" - dtick values which
+ describe some zoom level, it is possible to omit "min" or "max"
+ value by passing "null"
+
+ The 'dtickrange' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'dtickrange[0]' property accepts values of any type
+ (1) The 'dtickrange[1]' property accepts values of any type
+
+ Returns
+ -------
+ list
+ """
+ return self["dtickrange"]
+
+ @dtickrange.setter
+ def dtickrange(self, val):
+ self["dtickrange"] = val
+
+ @property
+ def enabled(self):
+ """
+ Determines whether or not this stop is used. If `false`, this
+ stop is ignored even within its `dtickrange`.
+
+ The 'enabled' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["enabled"]
+
+ @enabled.setter
+ def enabled(self, val):
+ self["enabled"] = val
+
+ @property
+ def name(self):
+ """
+ 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.
+
+ The 'name' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["name"]
+
+ @name.setter
+ def name(self, val):
+ self["name"] = val
+
+ @property
+ def templateitemname(self):
+ """
+ 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`.
+
+ The 'templateitemname' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["templateitemname"]
+
+ @templateitemname.setter
+ def templateitemname(self, val):
+ self["templateitemname"] = val
+
+ @property
+ def value(self):
+ """
+ string - dtickformat for described zoom level, the same as
+ "tickformat"
+
+ The 'value' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["value"]
+
+ @value.setter
+ def value(self, val):
+ self["value"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ dtickrange
+ range [*min*, *max*], where "min", "max" - dtick values
+ which describe some zoom level, it is possible to omit
+ "min" or "max" value by passing "null"
+ enabled
+ Determines whether or not this stop is used. If
+ `false`, this stop is ignored even within its
+ `dtickrange`.
+ 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`.
+ value
+ string - dtickformat for described zoom level, the same
+ as "tickformat"
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ dtickrange=None,
+ enabled=None,
+ name=None,
+ templateitemname=None,
+ value=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Tickformatstop object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.polar.r
+ adialaxis.Tickformatstop`
+ dtickrange
+ range [*min*, *max*], where "min", "max" - dtick values
+ which describe some zoom level, it is possible to omit
+ "min" or "max" value by passing "null"
+ enabled
+ Determines whether or not this stop is used. If
+ `false`, this stop is ignored even within its
+ `dtickrange`.
+ 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`.
+ value
+ string - dtickformat for described zoom level, the same
+ as "tickformat"
+
+ Returns
+ -------
+ Tickformatstop
+ """
+ super().__init__("tickformatstops")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.polar.radialaxis.Tickformatstop
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.polar.radialaxis.Tickformatstop`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("dtickrange", arg, dtickrange)
+ self._set_property("enabled", arg, enabled)
+ self._set_property("name", arg, name)
+ self._set_property("templateitemname", arg, templateitemname)
+ self._set_property("value", arg, value)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/radialaxis/_title.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/radialaxis/_title.py
new file mode 100644
index 0000000..6472d88
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/radialaxis/_title.py
@@ -0,0 +1,104 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Title(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.polar.radialaxis"
+ _path_str = "layout.polar.radialaxis.title"
+ _valid_props = {"font", "text"}
+
+ @property
+ def font(self):
+ """
+ Sets this axis' title font.
+
+ The 'font' property is an instance of Font
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.polar.radialaxis.title.Font`
+ - A dict of string/value properties that will be passed
+ to the Font constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.polar.radialaxis.title.Font
+ """
+ return self["font"]
+
+ @font.setter
+ def font(self, val):
+ self["font"] = val
+
+ @property
+ def text(self):
+ """
+ Sets the title of this axis.
+
+ 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
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ font
+ Sets this axis' title font.
+ text
+ Sets the title of this axis.
+ """
+
+ def __init__(self, arg=None, font=None, text=None, **kwargs):
+ """
+ Construct a new Title object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.polar.r
+ adialaxis.Title`
+ font
+ Sets this axis' title font.
+ text
+ Sets the title of this axis.
+
+ Returns
+ -------
+ Title
+ """
+ super().__init__("title")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.polar.radialaxis.Title
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.polar.radialaxis.Title`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("font", arg, font)
+ self._set_property("text", arg, text)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/radialaxis/title/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/radialaxis/title/__init__.py
new file mode 100644
index 0000000..56f600d
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/radialaxis/title/__init__.py
@@ -0,0 +1,9 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._font import Font
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/radialaxis/title/_font.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/radialaxis/title/_font.py
new file mode 100644
index 0000000..8a6981f
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/polar/radialaxis/title/_font.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Font(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.polar.radialaxis.title"
+ _path_str = "layout.polar.radialaxis.title.font"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Font object
+
+ Sets this axis' title font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.polar.r
+ adialaxis.title.Font`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Font
+ """
+ super().__init__("font")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.polar.radialaxis.title.Font
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.polar.radialaxis.title.Font`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/__init__.py
new file mode 100644
index 0000000..3b340bf
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/__init__.py
@@ -0,0 +1,32 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._annotation import Annotation
+ from ._aspectratio import Aspectratio
+ from ._camera import Camera
+ from ._domain import Domain
+ from ._xaxis import XAxis
+ from ._yaxis import YAxis
+ from ._zaxis import ZAxis
+ from . import annotation
+ from . import camera
+ from . import xaxis
+ from . import yaxis
+ from . import zaxis
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__,
+ [".annotation", ".camera", ".xaxis", ".yaxis", ".zaxis"],
+ [
+ "._annotation.Annotation",
+ "._aspectratio.Aspectratio",
+ "._camera.Camera",
+ "._domain.Domain",
+ "._xaxis.XAxis",
+ "._yaxis.YAxis",
+ "._zaxis.ZAxis",
+ ],
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/_annotation.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/_annotation.py
new file mode 100644
index 0000000..341cb4b
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/_annotation.py
@@ -0,0 +1,1243 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Annotation(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.scene"
+ _path_str = "layout.scene.annotation"
+ _valid_props = {
+ "align",
+ "arrowcolor",
+ "arrowhead",
+ "arrowside",
+ "arrowsize",
+ "arrowwidth",
+ "ax",
+ "ay",
+ "bgcolor",
+ "bordercolor",
+ "borderpad",
+ "borderwidth",
+ "captureevents",
+ "font",
+ "height",
+ "hoverlabel",
+ "hovertext",
+ "name",
+ "opacity",
+ "showarrow",
+ "standoff",
+ "startarrowhead",
+ "startarrowsize",
+ "startstandoff",
+ "templateitemname",
+ "text",
+ "textangle",
+ "valign",
+ "visible",
+ "width",
+ "x",
+ "xanchor",
+ "xshift",
+ "y",
+ "yanchor",
+ "yshift",
+ "z",
+ }
+
+ @property
+ def align(self):
+ """
+ Sets the horizontal alignment of the `text` within the box. Has
+ an effect only if `text` spans two or more lines (i.e. `text`
+ contains one or more <br> HTML tags) or if an explicit width is
+ set to override the text width.
+
+ The 'align' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['left', 'center', 'right']
+
+ Returns
+ -------
+ Any
+ """
+ return self["align"]
+
+ @align.setter
+ def align(self, val):
+ self["align"] = val
+
+ @property
+ def arrowcolor(self):
+ """
+ Sets the color of the annotation arrow.
+
+ The 'arrowcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["arrowcolor"]
+
+ @arrowcolor.setter
+ def arrowcolor(self, val):
+ self["arrowcolor"] = val
+
+ @property
+ def arrowhead(self):
+ """
+ Sets the end annotation arrow head style.
+
+ The 'arrowhead' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [0, 8]
+
+ Returns
+ -------
+ int
+ """
+ return self["arrowhead"]
+
+ @arrowhead.setter
+ def arrowhead(self, val):
+ self["arrowhead"] = val
+
+ @property
+ def arrowside(self):
+ """
+ Sets the annotation arrow head position.
+
+ The 'arrowside' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['end', 'start'] joined with '+' characters
+ (e.g. 'end+start')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["arrowside"]
+
+ @arrowside.setter
+ def arrowside(self, val):
+ self["arrowside"] = val
+
+ @property
+ def arrowsize(self):
+ """
+ Sets the size of the end annotation arrow head, relative to
+ `arrowwidth`. A value of 1 (default) gives a head about 3x as
+ wide as the line.
+
+ The 'arrowsize' property is a number and may be specified as:
+ - An int or float in the interval [0.3, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["arrowsize"]
+
+ @arrowsize.setter
+ def arrowsize(self, val):
+ self["arrowsize"] = val
+
+ @property
+ def arrowwidth(self):
+ """
+ Sets the width (in px) of annotation arrow line.
+
+ The 'arrowwidth' property is a number and may be specified as:
+ - An int or float in the interval [0.1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["arrowwidth"]
+
+ @arrowwidth.setter
+ def arrowwidth(self, val):
+ self["arrowwidth"] = val
+
+ @property
+ def ax(self):
+ """
+ Sets the x component of the arrow tail about the arrow head (in
+ pixels).
+
+ The 'ax' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["ax"]
+
+ @ax.setter
+ def ax(self, val):
+ self["ax"] = val
+
+ @property
+ def ay(self):
+ """
+ Sets the y component of the arrow tail about the arrow head (in
+ pixels).
+
+ The 'ay' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["ay"]
+
+ @ay.setter
+ def ay(self, val):
+ self["ay"] = val
+
+ @property
+ def bgcolor(self):
+ """
+ Sets the background color of the annotation.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["bgcolor"]
+
+ @bgcolor.setter
+ def bgcolor(self, val):
+ self["bgcolor"] = val
+
+ @property
+ def bordercolor(self):
+ """
+ Sets the color of the border enclosing the annotation `text`.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["bordercolor"]
+
+ @bordercolor.setter
+ def bordercolor(self, val):
+ self["bordercolor"] = val
+
+ @property
+ def borderpad(self):
+ """
+ Sets the padding (in px) between the `text` and the enclosing
+ border.
+
+ The 'borderpad' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["borderpad"]
+
+ @borderpad.setter
+ def borderpad(self, val):
+ self["borderpad"] = val
+
+ @property
+ def borderwidth(self):
+ """
+ Sets the width (in px) of the border enclosing the annotation
+ `text`.
+
+ 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
+
+ @property
+ def captureevents(self):
+ """
+ Determines whether the annotation text box captures mouse move
+ and click events, or allows those events to pass through to
+ data points in the plot that may be behind the annotation. By
+ default `captureevents` is False unless `hovertext` is
+ provided. If you use the event `plotly_clickannotation` without
+ `hovertext` you must explicitly enable `captureevents`.
+
+ The 'captureevents' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["captureevents"]
+
+ @captureevents.setter
+ def captureevents(self, val):
+ self["captureevents"] = val
+
+ @property
+ def font(self):
+ """
+ Sets the annotation text font.
+
+ The 'font' property is an instance of Font
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.scene.annotation.Font`
+ - A dict of string/value properties that will be passed
+ to the Font constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.scene.annotation.Font
+ """
+ return self["font"]
+
+ @font.setter
+ def font(self, val):
+ self["font"] = val
+
+ @property
+ def height(self):
+ """
+ Sets an explicit height for the text box. null (default) lets
+ the text set the box height. Taller text will be clipped.
+
+ The 'height' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["height"]
+
+ @height.setter
+ def height(self, val):
+ self["height"] = val
+
+ @property
+ def hoverlabel(self):
+ """
+ The 'hoverlabel' property is an instance of Hoverlabel
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.scene.annotation.Hoverlabel`
+ - A dict of string/value properties that will be passed
+ to the Hoverlabel constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.scene.annotation.Hoverlabel
+ """
+ return self["hoverlabel"]
+
+ @hoverlabel.setter
+ def hoverlabel(self, val):
+ self["hoverlabel"] = val
+
+ @property
+ def hovertext(self):
+ """
+ Sets text to appear when hovering over this annotation. If
+ omitted or blank, no hover label will appear.
+
+ The 'hovertext' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["hovertext"]
+
+ @hovertext.setter
+ def hovertext(self, val):
+ self["hovertext"] = val
+
+ @property
+ def name(self):
+ """
+ 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.
+
+ The 'name' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["name"]
+
+ @name.setter
+ def name(self, val):
+ self["name"] = val
+
+ @property
+ def opacity(self):
+ """
+ Sets the opacity of the annotation (text + arrow).
+
+ The 'opacity' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["opacity"]
+
+ @opacity.setter
+ def opacity(self, val):
+ self["opacity"] = val
+
+ @property
+ def showarrow(self):
+ """
+ Determines whether or not the annotation is drawn with an
+ arrow. If True, `text` is placed near the arrow's tail. If
+ False, `text` lines up with the `x` and `y` provided.
+
+ The 'showarrow' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showarrow"]
+
+ @showarrow.setter
+ def showarrow(self, val):
+ self["showarrow"] = val
+
+ @property
+ def standoff(self):
+ """
+ Sets a distance, in pixels, to move the end arrowhead away from
+ the position it is pointing at, for example to point at the
+ edge of a marker independent of zoom. Note that this shortens
+ the arrow from the `ax` / `ay` vector, in contrast to `xshift`
+ / `yshift` which moves everything by this amount.
+
+ The 'standoff' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["standoff"]
+
+ @standoff.setter
+ def standoff(self, val):
+ self["standoff"] = val
+
+ @property
+ def startarrowhead(self):
+ """
+ Sets the start annotation arrow head style.
+
+ The 'startarrowhead' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [0, 8]
+
+ Returns
+ -------
+ int
+ """
+ return self["startarrowhead"]
+
+ @startarrowhead.setter
+ def startarrowhead(self, val):
+ self["startarrowhead"] = val
+
+ @property
+ def startarrowsize(self):
+ """
+ Sets the size of the start annotation arrow head, relative to
+ `arrowwidth`. A value of 1 (default) gives a head about 3x as
+ wide as the line.
+
+ The 'startarrowsize' property is a number and may be specified as:
+ - An int or float in the interval [0.3, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["startarrowsize"]
+
+ @startarrowsize.setter
+ def startarrowsize(self, val):
+ self["startarrowsize"] = val
+
+ @property
+ def startstandoff(self):
+ """
+ Sets a distance, in pixels, to move the start arrowhead away
+ from the position it is pointing at, for example to point at
+ the edge of a marker independent of zoom. Note that this
+ shortens the arrow from the `ax` / `ay` vector, in contrast to
+ `xshift` / `yshift` which moves everything by this amount.
+
+ The 'startstandoff' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["startstandoff"]
+
+ @startstandoff.setter
+ def startstandoff(self, val):
+ self["startstandoff"] = val
+
+ @property
+ def templateitemname(self):
+ """
+ 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`.
+
+ The 'templateitemname' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["templateitemname"]
+
+ @templateitemname.setter
+ def templateitemname(self, val):
+ self["templateitemname"] = val
+
+ @property
+ def text(self):
+ """
+ Sets the text associated with this annotation. Plotly uses a
+ subset of HTML tags to do things like newline (<br>), bold
+ (<b></b>), italics (<i></i>), hyperlinks (<a href='...'></a>).
+ Tags <em>, <sup>, <sub>, <s>, <u> <span> are also supported.
+
+ 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
+
+ @property
+ def textangle(self):
+ """
+ Sets the angle at which the `text` is drawn with respect to the
+ horizontal.
+
+ The 'textangle' property is a angle (in degrees) that may be
+ specified as a number between -180 and 180.
+ Numeric values outside this range are converted to the equivalent value
+ (e.g. 270 is converted to -90).
+
+ Returns
+ -------
+ int|float
+ """
+ return self["textangle"]
+
+ @textangle.setter
+ def textangle(self, val):
+ self["textangle"] = val
+
+ @property
+ def valign(self):
+ """
+ Sets the vertical alignment of the `text` within the box. Has
+ an effect only if an explicit height is set to override the
+ text height.
+
+ 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
+
+ @property
+ def visible(self):
+ """
+ Determines whether or not this annotation is visible.
+
+ The 'visible' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["visible"]
+
+ @visible.setter
+ def visible(self, val):
+ self["visible"] = val
+
+ @property
+ def width(self):
+ """
+ Sets an explicit width for the text box. null (default) lets
+ the text set the box width. Wider text will be clipped. There
+ is no automatic wrapping; use <br> to start a new line.
+
+ The 'width' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["width"]
+
+ @width.setter
+ def width(self, val):
+ self["width"] = val
+
+ @property
+ def x(self):
+ """
+ Sets the annotation's x position.
+
+ The 'x' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["x"]
+
+ @x.setter
+ def x(self, val):
+ self["x"] = val
+
+ @property
+ def xanchor(self):
+ """
+ Sets the text box's horizontal position anchor This anchor
+ binds the `x` position to the "left", "center" or "right" of
+ the annotation. For example, if `x` is set to 1, `xref` to
+ "paper" and `xanchor` to "right" then the right-most portion of
+ the annotation lines up with the right-most edge of the
+ plotting area. If "auto", the anchor is equivalent to "center"
+ for data-referenced annotations or if there is an arrow,
+ whereas for paper-referenced with no arrow, the anchor picked
+ corresponds to the closest side.
+
+ 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
+
+ @property
+ def xshift(self):
+ """
+ Shifts the position of the whole annotation and arrow to the
+ right (positive) or left (negative) by this many pixels.
+
+ The 'xshift' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["xshift"]
+
+ @xshift.setter
+ def xshift(self, val):
+ self["xshift"] = val
+
+ @property
+ def y(self):
+ """
+ Sets the annotation's y position.
+
+ The 'y' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["y"]
+
+ @y.setter
+ def y(self, val):
+ self["y"] = val
+
+ @property
+ def yanchor(self):
+ """
+ Sets the text box's vertical position anchor This anchor binds
+ the `y` position to the "top", "middle" or "bottom" of the
+ annotation. For example, if `y` is set to 1, `yref` to "paper"
+ and `yanchor` to "top" then the top-most portion of the
+ annotation lines up with the top-most edge of the plotting
+ area. If "auto", the anchor is equivalent to "middle" for data-
+ referenced annotations or if there is an arrow, whereas for
+ paper-referenced with no arrow, the anchor picked corresponds
+ to the closest side.
+
+ 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
+
+ @property
+ def yshift(self):
+ """
+ Shifts the position of the whole annotation and arrow up
+ (positive) or down (negative) by this many pixels.
+
+ The 'yshift' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["yshift"]
+
+ @yshift.setter
+ def yshift(self, val):
+ self["yshift"] = val
+
+ @property
+ def z(self):
+ """
+ Sets the annotation's z position.
+
+ The 'z' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["z"]
+
+ @z.setter
+ def z(self, val):
+ self["z"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ align
+ Sets the horizontal alignment of the `text` within the
+ box. Has an effect only if `text` spans two or more
+ lines (i.e. `text` contains one or more <br> HTML tags)
+ or if an explicit width is set to override the text
+ width.
+ arrowcolor
+ Sets the color of the annotation arrow.
+ arrowhead
+ Sets the end annotation arrow head style.
+ arrowside
+ Sets the annotation arrow head position.
+ arrowsize
+ Sets the size of the end annotation arrow head,
+ relative to `arrowwidth`. A value of 1 (default) gives
+ a head about 3x as wide as the line.
+ arrowwidth
+ Sets the width (in px) of annotation arrow line.
+ ax
+ Sets the x component of the arrow tail about the arrow
+ head (in pixels).
+ ay
+ Sets the y component of the arrow tail about the arrow
+ head (in pixels).
+ bgcolor
+ Sets the background color of the annotation.
+ bordercolor
+ Sets the color of the border enclosing the annotation
+ `text`.
+ borderpad
+ Sets the padding (in px) between the `text` and the
+ enclosing border.
+ borderwidth
+ Sets the width (in px) of the border enclosing the
+ annotation `text`.
+ captureevents
+ Determines whether the annotation text box captures
+ mouse move and click events, or allows those events to
+ pass through to data points in the plot that may be
+ behind the annotation. By default `captureevents` is
+ False unless `hovertext` is provided. If you use the
+ event `plotly_clickannotation` without `hovertext` you
+ must explicitly enable `captureevents`.
+ font
+ Sets the annotation text font.
+ height
+ Sets an explicit height for the text box. null
+ (default) lets the text set the box height. Taller text
+ will be clipped.
+ hoverlabel
+ :class:`plotly.graph_objects.layout.scene.annotation.Ho
+ verlabel` instance or dict with compatible properties
+ hovertext
+ Sets text to appear when hovering over this annotation.
+ If omitted or blank, no hover label will appear.
+ 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.
+ opacity
+ Sets the opacity of the annotation (text + arrow).
+ showarrow
+ Determines whether or not the annotation is drawn with
+ an arrow. If True, `text` is placed near the arrow's
+ tail. If False, `text` lines up with the `x` and `y`
+ provided.
+ standoff
+ Sets a distance, in pixels, to move the end arrowhead
+ away from the position it is pointing at, for example
+ to point at the edge of a marker independent of zoom.
+ Note that this shortens the arrow from the `ax` / `ay`
+ vector, in contrast to `xshift` / `yshift` which moves
+ everything by this amount.
+ startarrowhead
+ Sets the start annotation arrow head style.
+ startarrowsize
+ Sets the size of the start annotation arrow head,
+ relative to `arrowwidth`. A value of 1 (default) gives
+ a head about 3x as wide as the line.
+ startstandoff
+ Sets a distance, in pixels, to move the start arrowhead
+ away from the position it is pointing at, for example
+ to point at the edge of a marker independent of zoom.
+ Note that this shortens the arrow from the `ax` / `ay`
+ vector, in contrast to `xshift` / `yshift` which moves
+ everything by this amount.
+ 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`.
+ text
+ Sets the text associated with this annotation. Plotly
+ uses a subset of HTML tags to do things like newline
+ (<br>), bold (<b></b>), italics (<i></i>), hyperlinks
+ (<a href='...'></a>). Tags <em>, <sup>, <sub>, <s>, <u>
+ <span> are also supported.
+ textangle
+ Sets the angle at which the `text` is drawn with
+ respect to the horizontal.
+ valign
+ Sets the vertical alignment of the `text` within the
+ box. Has an effect only if an explicit height is set to
+ override the text height.
+ visible
+ Determines whether or not this annotation is visible.
+ width
+ Sets an explicit width for the text box. null (default)
+ lets the text set the box width. Wider text will be
+ clipped. There is no automatic wrapping; use <br> to
+ start a new line.
+ x
+ Sets the annotation's x position.
+ xanchor
+ Sets the text box's horizontal position anchor This
+ anchor binds the `x` position to the "left", "center"
+ or "right" of the annotation. For example, if `x` is
+ set to 1, `xref` to "paper" and `xanchor` to "right"
+ then the right-most portion of the annotation lines up
+ with the right-most edge of the plotting area. If
+ "auto", the anchor is equivalent to "center" for data-
+ referenced annotations or if there is an arrow, whereas
+ for paper-referenced with no arrow, the anchor picked
+ corresponds to the closest side.
+ xshift
+ Shifts the position of the whole annotation and arrow
+ to the right (positive) or left (negative) by this many
+ pixels.
+ y
+ Sets the annotation's y position.
+ yanchor
+ Sets the text box's vertical position anchor This
+ anchor binds the `y` position to the "top", "middle" or
+ "bottom" of the annotation. For example, if `y` is set
+ to 1, `yref` to "paper" and `yanchor` to "top" then the
+ top-most portion of the annotation lines up with the
+ top-most edge of the plotting area. If "auto", the
+ anchor is equivalent to "middle" for data-referenced
+ annotations or if there is an arrow, whereas for paper-
+ referenced with no arrow, the anchor picked corresponds
+ to the closest side.
+ yshift
+ Shifts the position of the whole annotation and arrow
+ up (positive) or down (negative) by this many pixels.
+ z
+ Sets the annotation's z position.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ align=None,
+ arrowcolor=None,
+ arrowhead=None,
+ arrowside=None,
+ arrowsize=None,
+ arrowwidth=None,
+ ax=None,
+ ay=None,
+ bgcolor=None,
+ bordercolor=None,
+ borderpad=None,
+ borderwidth=None,
+ captureevents=None,
+ font=None,
+ height=None,
+ hoverlabel=None,
+ hovertext=None,
+ name=None,
+ opacity=None,
+ showarrow=None,
+ standoff=None,
+ startarrowhead=None,
+ startarrowsize=None,
+ startstandoff=None,
+ templateitemname=None,
+ text=None,
+ textangle=None,
+ valign=None,
+ visible=None,
+ width=None,
+ x=None,
+ xanchor=None,
+ xshift=None,
+ y=None,
+ yanchor=None,
+ yshift=None,
+ z=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Annotation object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.scene.Annotation`
+ align
+ Sets the horizontal alignment of the `text` within the
+ box. Has an effect only if `text` spans two or more
+ lines (i.e. `text` contains one or more <br> HTML tags)
+ or if an explicit width is set to override the text
+ width.
+ arrowcolor
+ Sets the color of the annotation arrow.
+ arrowhead
+ Sets the end annotation arrow head style.
+ arrowside
+ Sets the annotation arrow head position.
+ arrowsize
+ Sets the size of the end annotation arrow head,
+ relative to `arrowwidth`. A value of 1 (default) gives
+ a head about 3x as wide as the line.
+ arrowwidth
+ Sets the width (in px) of annotation arrow line.
+ ax
+ Sets the x component of the arrow tail about the arrow
+ head (in pixels).
+ ay
+ Sets the y component of the arrow tail about the arrow
+ head (in pixels).
+ bgcolor
+ Sets the background color of the annotation.
+ bordercolor
+ Sets the color of the border enclosing the annotation
+ `text`.
+ borderpad
+ Sets the padding (in px) between the `text` and the
+ enclosing border.
+ borderwidth
+ Sets the width (in px) of the border enclosing the
+ annotation `text`.
+ captureevents
+ Determines whether the annotation text box captures
+ mouse move and click events, or allows those events to
+ pass through to data points in the plot that may be
+ behind the annotation. By default `captureevents` is
+ False unless `hovertext` is provided. If you use the
+ event `plotly_clickannotation` without `hovertext` you
+ must explicitly enable `captureevents`.
+ font
+ Sets the annotation text font.
+ height
+ Sets an explicit height for the text box. null
+ (default) lets the text set the box height. Taller text
+ will be clipped.
+ hoverlabel
+ :class:`plotly.graph_objects.layout.scene.annotation.Ho
+ verlabel` instance or dict with compatible properties
+ hovertext
+ Sets text to appear when hovering over this annotation.
+ If omitted or blank, no hover label will appear.
+ 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.
+ opacity
+ Sets the opacity of the annotation (text + arrow).
+ showarrow
+ Determines whether or not the annotation is drawn with
+ an arrow. If True, `text` is placed near the arrow's
+ tail. If False, `text` lines up with the `x` and `y`
+ provided.
+ standoff
+ Sets a distance, in pixels, to move the end arrowhead
+ away from the position it is pointing at, for example
+ to point at the edge of a marker independent of zoom.
+ Note that this shortens the arrow from the `ax` / `ay`
+ vector, in contrast to `xshift` / `yshift` which moves
+ everything by this amount.
+ startarrowhead
+ Sets the start annotation arrow head style.
+ startarrowsize
+ Sets the size of the start annotation arrow head,
+ relative to `arrowwidth`. A value of 1 (default) gives
+ a head about 3x as wide as the line.
+ startstandoff
+ Sets a distance, in pixels, to move the start arrowhead
+ away from the position it is pointing at, for example
+ to point at the edge of a marker independent of zoom.
+ Note that this shortens the arrow from the `ax` / `ay`
+ vector, in contrast to `xshift` / `yshift` which moves
+ everything by this amount.
+ 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`.
+ text
+ Sets the text associated with this annotation. Plotly
+ uses a subset of HTML tags to do things like newline
+ (<br>), bold (<b></b>), italics (<i></i>), hyperlinks
+ (<a href='...'></a>). Tags <em>, <sup>, <sub>, <s>, <u>
+ <span> are also supported.
+ textangle
+ Sets the angle at which the `text` is drawn with
+ respect to the horizontal.
+ valign
+ Sets the vertical alignment of the `text` within the
+ box. Has an effect only if an explicit height is set to
+ override the text height.
+ visible
+ Determines whether or not this annotation is visible.
+ width
+ Sets an explicit width for the text box. null (default)
+ lets the text set the box width. Wider text will be
+ clipped. There is no automatic wrapping; use <br> to
+ start a new line.
+ x
+ Sets the annotation's x position.
+ xanchor
+ Sets the text box's horizontal position anchor This
+ anchor binds the `x` position to the "left", "center"
+ or "right" of the annotation. For example, if `x` is
+ set to 1, `xref` to "paper" and `xanchor` to "right"
+ then the right-most portion of the annotation lines up
+ with the right-most edge of the plotting area. If
+ "auto", the anchor is equivalent to "center" for data-
+ referenced annotations or if there is an arrow, whereas
+ for paper-referenced with no arrow, the anchor picked
+ corresponds to the closest side.
+ xshift
+ Shifts the position of the whole annotation and arrow
+ to the right (positive) or left (negative) by this many
+ pixels.
+ y
+ Sets the annotation's y position.
+ yanchor
+ Sets the text box's vertical position anchor This
+ anchor binds the `y` position to the "top", "middle" or
+ "bottom" of the annotation. For example, if `y` is set
+ to 1, `yref` to "paper" and `yanchor` to "top" then the
+ top-most portion of the annotation lines up with the
+ top-most edge of the plotting area. If "auto", the
+ anchor is equivalent to "middle" for data-referenced
+ annotations or if there is an arrow, whereas for paper-
+ referenced with no arrow, the anchor picked corresponds
+ to the closest side.
+ yshift
+ Shifts the position of the whole annotation and arrow
+ up (positive) or down (negative) by this many pixels.
+ z
+ Sets the annotation's z position.
+
+ Returns
+ -------
+ Annotation
+ """
+ super().__init__("annotations")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.scene.Annotation
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.scene.Annotation`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("align", arg, align)
+ self._set_property("arrowcolor", arg, arrowcolor)
+ self._set_property("arrowhead", arg, arrowhead)
+ self._set_property("arrowside", arg, arrowside)
+ self._set_property("arrowsize", arg, arrowsize)
+ self._set_property("arrowwidth", arg, arrowwidth)
+ self._set_property("ax", arg, ax)
+ self._set_property("ay", arg, ay)
+ self._set_property("bgcolor", arg, bgcolor)
+ self._set_property("bordercolor", arg, bordercolor)
+ self._set_property("borderpad", arg, borderpad)
+ self._set_property("borderwidth", arg, borderwidth)
+ self._set_property("captureevents", arg, captureevents)
+ self._set_property("font", arg, font)
+ self._set_property("height", arg, height)
+ self._set_property("hoverlabel", arg, hoverlabel)
+ self._set_property("hovertext", arg, hovertext)
+ self._set_property("name", arg, name)
+ self._set_property("opacity", arg, opacity)
+ self._set_property("showarrow", arg, showarrow)
+ self._set_property("standoff", arg, standoff)
+ self._set_property("startarrowhead", arg, startarrowhead)
+ self._set_property("startarrowsize", arg, startarrowsize)
+ self._set_property("startstandoff", arg, startstandoff)
+ self._set_property("templateitemname", arg, templateitemname)
+ self._set_property("text", arg, text)
+ self._set_property("textangle", arg, textangle)
+ self._set_property("valign", arg, valign)
+ self._set_property("visible", arg, visible)
+ self._set_property("width", arg, width)
+ self._set_property("x", arg, x)
+ self._set_property("xanchor", arg, xanchor)
+ self._set_property("xshift", arg, xshift)
+ self._set_property("y", arg, y)
+ self._set_property("yanchor", arg, yanchor)
+ self._set_property("yshift", arg, yshift)
+ self._set_property("z", arg, z)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/_aspectratio.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/_aspectratio.py
new file mode 100644
index 0000000..62e1729
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/_aspectratio.py
@@ -0,0 +1,119 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Aspectratio(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.scene"
+ _path_str = "layout.scene.aspectratio"
+ _valid_props = {"x", "y", "z"}
+
+ @property
+ def x(self):
+ """
+ The 'x' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["x"]
+
+ @x.setter
+ def x(self, val):
+ self["x"] = val
+
+ @property
+ def y(self):
+ """
+ The 'y' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["y"]
+
+ @y.setter
+ def y(self, val):
+ self["y"] = val
+
+ @property
+ def z(self):
+ """
+ The 'z' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["z"]
+
+ @z.setter
+ def z(self, val):
+ self["z"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ x
+
+ y
+
+ z
+
+ """
+
+ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
+ """
+ Construct a new Aspectratio object
+
+ Sets this scene's axis aspectratio.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.scene.Aspectratio`
+ x
+
+ y
+
+ z
+
+
+ Returns
+ -------
+ Aspectratio
+ """
+ super().__init__("aspectratio")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.scene.Aspectratio
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.scene.Aspectratio`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("x", arg, x)
+ self._set_property("y", arg, y)
+ self._set_property("z", arg, z)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/_camera.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/_camera.py
new file mode 100644
index 0000000..cd73985
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/_camera.py
@@ -0,0 +1,183 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Camera(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.scene"
+ _path_str = "layout.scene.camera"
+ _valid_props = {"center", "eye", "projection", "up"}
+
+ @property
+ def center(self):
+ """
+ Sets the (x,y,z) components of the 'center' camera vector This
+ vector determines the translation (x,y,z) space about the
+ center of this scene. By default, there is no such translation.
+
+ The 'center' property is an instance of Center
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.scene.camera.Center`
+ - A dict of string/value properties that will be passed
+ to the Center constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.scene.camera.Center
+ """
+ return self["center"]
+
+ @center.setter
+ def center(self, val):
+ self["center"] = val
+
+ @property
+ def eye(self):
+ """
+ Sets the (x,y,z) components of the 'eye' camera vector. This
+ vector determines the view point about the origin of this
+ scene.
+
+ The 'eye' property is an instance of Eye
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.scene.camera.Eye`
+ - A dict of string/value properties that will be passed
+ to the Eye constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.scene.camera.Eye
+ """
+ return self["eye"]
+
+ @eye.setter
+ def eye(self, val):
+ self["eye"] = val
+
+ @property
+ def projection(self):
+ """
+ The 'projection' property is an instance of Projection
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.scene.camera.Projection`
+ - A dict of string/value properties that will be passed
+ to the Projection constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.scene.camera.Projection
+ """
+ return self["projection"]
+
+ @projection.setter
+ def projection(self, val):
+ self["projection"] = val
+
+ @property
+ def up(self):
+ """
+ Sets the (x,y,z) components of the 'up' camera vector. This
+ vector determines the up direction of this scene with respect
+ to the page. The default is *{x: 0, y: 0, z: 1}* which means
+ that the z axis points up.
+
+ The 'up' property is an instance of Up
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.scene.camera.Up`
+ - A dict of string/value properties that will be passed
+ to the Up constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.scene.camera.Up
+ """
+ return self["up"]
+
+ @up.setter
+ def up(self, val):
+ self["up"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ center
+ Sets the (x,y,z) components of the 'center' camera
+ vector This vector determines the translation (x,y,z)
+ space about the center of this scene. By default, there
+ is no such translation.
+ eye
+ Sets the (x,y,z) components of the 'eye' camera vector.
+ This vector determines the view point about the origin
+ of this scene.
+ projection
+ :class:`plotly.graph_objects.layout.scene.camera.Projec
+ tion` instance or dict with compatible properties
+ up
+ Sets the (x,y,z) components of the 'up' camera vector.
+ This vector determines the up direction of this scene
+ with respect to the page. The default is *{x: 0, y: 0,
+ z: 1}* which means that the z axis points up.
+ """
+
+ def __init__(
+ self, arg=None, center=None, eye=None, projection=None, up=None, **kwargs
+ ):
+ """
+ Construct a new Camera object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.scene.Camera`
+ center
+ Sets the (x,y,z) components of the 'center' camera
+ vector This vector determines the translation (x,y,z)
+ space about the center of this scene. By default, there
+ is no such translation.
+ eye
+ Sets the (x,y,z) components of the 'eye' camera vector.
+ This vector determines the view point about the origin
+ of this scene.
+ projection
+ :class:`plotly.graph_objects.layout.scene.camera.Projec
+ tion` instance or dict with compatible properties
+ up
+ Sets the (x,y,z) components of the 'up' camera vector.
+ This vector determines the up direction of this scene
+ with respect to the page. The default is *{x: 0, y: 0,
+ z: 1}* which means that the z axis points up.
+
+ Returns
+ -------
+ Camera
+ """
+ super().__init__("camera")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.scene.Camera
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.scene.Camera`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("center", arg, center)
+ self._set_property("eye", arg, eye)
+ self._set_property("projection", arg, projection)
+ self._set_property("up", arg, up)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/_domain.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/_domain.py
new file mode 100644
index 0000000..ef03c38
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/_domain.py
@@ -0,0 +1,170 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Domain(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.scene"
+ _path_str = "layout.scene.domain"
+ _valid_props = {"column", "row", "x", "y"}
+
+ @property
+ def column(self):
+ """
+ If there is a layout grid, use the domain for this column in
+ the grid for this scene subplot .
+
+ The 'column' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [0, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["column"]
+
+ @column.setter
+ def column(self, val):
+ self["column"] = val
+
+ @property
+ def row(self):
+ """
+ If there is a layout grid, use the domain for this row in the
+ grid for this scene subplot .
+
+ The 'row' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [0, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["row"]
+
+ @row.setter
+ def row(self, val):
+ self["row"] = val
+
+ @property
+ def x(self):
+ """
+ Sets the horizontal domain of this scene subplot (in plot
+ fraction).
+
+ The 'x' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'x[0]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+ (1) The 'x[1]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ list
+ """
+ return self["x"]
+
+ @x.setter
+ def x(self, val):
+ self["x"] = val
+
+ @property
+ def y(self):
+ """
+ Sets the vertical domain of this scene subplot (in plot
+ fraction).
+
+ The 'y' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'y[0]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+ (1) The 'y[1]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ list
+ """
+ return self["y"]
+
+ @y.setter
+ def y(self, val):
+ self["y"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ column
+ If there is a layout grid, use the domain for this
+ column in the grid for this scene subplot .
+ row
+ If there is a layout grid, use the domain for this row
+ in the grid for this scene subplot .
+ x
+ Sets the horizontal domain of this scene subplot (in
+ plot fraction).
+ y
+ Sets the vertical domain of this scene subplot (in plot
+ fraction).
+ """
+
+ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
+ """
+ Construct a new Domain object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.scene.Domain`
+ column
+ If there is a layout grid, use the domain for this
+ column in the grid for this scene subplot .
+ row
+ If there is a layout grid, use the domain for this row
+ in the grid for this scene subplot .
+ x
+ Sets the horizontal domain of this scene subplot (in
+ plot fraction).
+ y
+ Sets the vertical domain of this scene subplot (in plot
+ fraction).
+
+ Returns
+ -------
+ Domain
+ """
+ super().__init__("domain")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.scene.Domain
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.scene.Domain`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("column", arg, column)
+ self._set_property("row", arg, row)
+ self._set_property("x", arg, x)
+ self._set_property("y", arg, y)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/_xaxis.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/_xaxis.py
new file mode 100644
index 0000000..3158a2e
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/_xaxis.py
@@ -0,0 +1,2111 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class XAxis(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.scene"
+ _path_str = "layout.scene.xaxis"
+ _valid_props = {
+ "autorange",
+ "autorangeoptions",
+ "autotypenumbers",
+ "backgroundcolor",
+ "calendar",
+ "categoryarray",
+ "categoryarraysrc",
+ "categoryorder",
+ "color",
+ "dtick",
+ "exponentformat",
+ "gridcolor",
+ "gridwidth",
+ "hoverformat",
+ "labelalias",
+ "linecolor",
+ "linewidth",
+ "maxallowed",
+ "minallowed",
+ "minexponent",
+ "mirror",
+ "nticks",
+ "range",
+ "rangemode",
+ "separatethousands",
+ "showaxeslabels",
+ "showbackground",
+ "showexponent",
+ "showgrid",
+ "showline",
+ "showspikes",
+ "showticklabels",
+ "showtickprefix",
+ "showticksuffix",
+ "spikecolor",
+ "spikesides",
+ "spikethickness",
+ "tick0",
+ "tickangle",
+ "tickcolor",
+ "tickfont",
+ "tickformat",
+ "tickformatstopdefaults",
+ "tickformatstops",
+ "ticklen",
+ "tickmode",
+ "tickprefix",
+ "ticks",
+ "ticksuffix",
+ "ticktext",
+ "ticktextsrc",
+ "tickvals",
+ "tickvalssrc",
+ "tickwidth",
+ "title",
+ "type",
+ "visible",
+ "zeroline",
+ "zerolinecolor",
+ "zerolinewidth",
+ }
+
+ @property
+ def autorange(self):
+ """
+ Determines whether or not the range of this axis is computed in
+ relation to the input data. See `rangemode` for more info. If
+ `range` is provided and it has a value for both the lower and
+ upper bound, `autorange` is set to False. Using "min" applies
+ autorange only to set the minimum. Using "max" applies
+ autorange only to set the maximum. Using *min reversed* applies
+ autorange only to set the minimum on a reversed axis. Using
+ *max reversed* applies autorange only to set the maximum on a
+ reversed axis. Using "reversed" applies autorange on both ends
+ and reverses the axis direction.
+
+ The 'autorange' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ [True, False, 'reversed', 'min reversed', 'max reversed',
+ 'min', 'max']
+
+ Returns
+ -------
+ Any
+ """
+ return self["autorange"]
+
+ @autorange.setter
+ def autorange(self, val):
+ self["autorange"] = val
+
+ @property
+ def autorangeoptions(self):
+ """
+ The 'autorangeoptions' property is an instance of Autorangeoptions
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.scene.xaxis.Autorangeoptions`
+ - A dict of string/value properties that will be passed
+ to the Autorangeoptions constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.scene.xaxis.Autorangeoptions
+ """
+ return self["autorangeoptions"]
+
+ @autorangeoptions.setter
+ def autorangeoptions(self, val):
+ self["autorangeoptions"] = val
+
+ @property
+ def autotypenumbers(self):
+ """
+ Using "strict" a numeric string in trace data is not converted
+ to a number. Using *convert types* a numeric string in trace
+ data may be treated as a number during automatic axis `type`
+ detection. Defaults to layout.autotypenumbers.
+
+ The 'autotypenumbers' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['convert types', 'strict']
+
+ Returns
+ -------
+ Any
+ """
+ return self["autotypenumbers"]
+
+ @autotypenumbers.setter
+ def autotypenumbers(self, val):
+ self["autotypenumbers"] = val
+
+ @property
+ def backgroundcolor(self):
+ """
+ Sets the background color of this axis' wall.
+
+ The 'backgroundcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["backgroundcolor"]
+
+ @backgroundcolor.setter
+ def backgroundcolor(self, val):
+ self["backgroundcolor"] = val
+
+ @property
+ def calendar(self):
+ """
+ Sets the calendar system to use for `range` and `tick0` if this
+ is a date axis. This does not set the calendar for interpreting
+ data on this axis, that's specified in the trace or via the
+ global `layout.calendar`
+
+ The 'calendar' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['chinese', 'coptic', 'discworld', 'ethiopian',
+ 'gregorian', 'hebrew', 'islamic', 'jalali', 'julian',
+ 'mayan', 'nanakshahi', 'nepali', 'persian', 'taiwan',
+ 'thai', 'ummalqura']
+
+ Returns
+ -------
+ Any
+ """
+ return self["calendar"]
+
+ @calendar.setter
+ def calendar(self, val):
+ self["calendar"] = val
+
+ @property
+ def categoryarray(self):
+ """
+ Sets the order in which categories on this axis appear. Only
+ has an effect if `categoryorder` is set to "array". Used with
+ `categoryorder`.
+
+ The 'categoryarray' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["categoryarray"]
+
+ @categoryarray.setter
+ def categoryarray(self, val):
+ self["categoryarray"] = val
+
+ @property
+ def categoryarraysrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for
+ `categoryarray`.
+
+ The 'categoryarraysrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["categoryarraysrc"]
+
+ @categoryarraysrc.setter
+ def categoryarraysrc(self, val):
+ self["categoryarraysrc"] = val
+
+ @property
+ def categoryorder(self):
+ """
+ Specifies the ordering logic for the case of categorical
+ variables. By default, plotly uses "trace", which specifies the
+ order that is present in the data supplied. Set `categoryorder`
+ to *category ascending* or *category descending* if order
+ should be determined by the alphanumerical order of the
+ category names. Set `categoryorder` to "array" to derive the
+ ordering from the attribute `categoryarray`. If a category is
+ not found in the `categoryarray` array, the sorting behavior
+ for that attribute will be identical to the "trace" mode. The
+ unspecified categories will follow the categories in
+ `categoryarray`. Set `categoryorder` to *total ascending* or
+ *total descending* if order should be determined by the
+ numerical order of the values. Similarly, the order can be
+ determined by the min, max, sum, mean, geometric mean or median
+ of all the values.
+
+ The 'categoryorder' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['trace', 'category ascending', 'category descending',
+ 'array', 'total ascending', 'total descending', 'min
+ ascending', 'min descending', 'max ascending', 'max
+ descending', 'sum ascending', 'sum descending', 'mean
+ ascending', 'mean descending', 'geometric mean ascending',
+ 'geometric mean descending', 'median ascending', 'median
+ descending']
+
+ Returns
+ -------
+ Any
+ """
+ return self["categoryorder"]
+
+ @categoryorder.setter
+ def categoryorder(self, val):
+ self["categoryorder"] = val
+
+ @property
+ def color(self):
+ """
+ Sets default for all colors associated with this axis all at
+ once: line, font, tick, and grid colors. Grid color is
+ lightened by blending this with the plot background Individual
+ pieces can override this.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def dtick(self):
+ """
+ Sets the step in-between ticks on this axis. Use with `tick0`.
+ Must be a positive number, or special strings available to
+ "log" and "date" axes. If the axis `type` is "log", then ticks
+ are set every 10^(n*dtick) where n is the tick number. For
+ example, to set a tick mark at 1, 10, 100, 1000, ... set dtick
+ to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2.
+ To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special values;
+ "L<f>", where `f` is a positive number, gives ticks linearly
+ spaced in value (but not position). For example `tick0` = 0.1,
+ `dtick` = "L0.5" will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To
+ show powers of 10 plus small digits between, use "D1" (all
+ digits) or "D2" (only 2 and 5). `tick0` is ignored for "D1" and
+ "D2". If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval between
+ ticks to one day, set `dtick` to 86400000.0. "date" also has
+ special values "M<n>" gives ticks spaced by a number of months.
+ `n` must be a positive integer. To set ticks on the 15th of
+ every third month, set `tick0` to "2000-01-15" and `dtick` to
+ "M3". To set ticks every 4 years, set `dtick` to "M48"
+
+ The 'dtick' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["dtick"]
+
+ @dtick.setter
+ def dtick(self, val):
+ self["dtick"] = val
+
+ @property
+ def exponentformat(self):
+ """
+ Determines a formatting rule for the tick exponents. For
+ example, consider the number 1,000,000,000. If "none", it
+ appears as 1,000,000,000. If "e", 1e+9. If "E", 1E+9. If
+ "power", 1x10^9 (with 9 in a super script). If "SI", 1G. If
+ "B", 1B.
+
+ The 'exponentformat' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['none', 'e', 'E', 'power', 'SI', 'B']
+
+ Returns
+ -------
+ Any
+ """
+ return self["exponentformat"]
+
+ @exponentformat.setter
+ def exponentformat(self, val):
+ self["exponentformat"] = val
+
+ @property
+ def gridcolor(self):
+ """
+ Sets the color of the grid lines.
+
+ The 'gridcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["gridcolor"]
+
+ @gridcolor.setter
+ def gridcolor(self, val):
+ self["gridcolor"] = val
+
+ @property
+ def gridwidth(self):
+ """
+ Sets the width (in px) of the grid lines.
+
+ The 'gridwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["gridwidth"]
+
+ @gridwidth.setter
+ def gridwidth(self, val):
+ self["gridwidth"] = val
+
+ @property
+ def hoverformat(self):
+ """
+ Sets the hover text formatting rule using d3 formatting mini-
+ languages which are very similar to those in Python. For
+ numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format. And for
+ dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to d3's date
+ formatter: "%h" for half of the year as a decimal number as
+ well as "%{n}f" for fractional seconds with n digits. For
+ example, *2016-10-13 09:15:23.456* with tickformat
+ "%H~%M~%S.%2f" would display "09~15~23.46"
+
+ The 'hoverformat' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["hoverformat"]
+
+ @hoverformat.setter
+ def hoverformat(self, val):
+ self["hoverformat"] = val
+
+ @property
+ def labelalias(self):
+ """
+ Replacement text for specific tick or hover labels. For example
+ using {US: 'USA', CA: 'Canada'} changes US to USA and CA to
+ Canada. The labels we would have shown must match the keys
+ exactly, after adding any tickprefix or ticksuffix. For
+ negative numbers the minus sign symbol used (U+2212) is wider
+ than the regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis type, and
+ both keys (if needed) and values (if desired) can include html-
+ like tags or MathJax.
+
+ The 'labelalias' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["labelalias"]
+
+ @labelalias.setter
+ def labelalias(self, val):
+ self["labelalias"] = val
+
+ @property
+ def linecolor(self):
+ """
+ Sets the axis line color.
+
+ The 'linecolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["linecolor"]
+
+ @linecolor.setter
+ def linecolor(self, val):
+ self["linecolor"] = val
+
+ @property
+ def linewidth(self):
+ """
+ Sets the width (in px) of the axis line.
+
+ The 'linewidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["linewidth"]
+
+ @linewidth.setter
+ def linewidth(self, val):
+ self["linewidth"] = val
+
+ @property
+ def maxallowed(self):
+ """
+ Determines the maximum range of this axis.
+
+ The 'maxallowed' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["maxallowed"]
+
+ @maxallowed.setter
+ def maxallowed(self, val):
+ self["maxallowed"] = val
+
+ @property
+ def minallowed(self):
+ """
+ Determines the minimum range of this axis.
+
+ The 'minallowed' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["minallowed"]
+
+ @minallowed.setter
+ def minallowed(self, val):
+ self["minallowed"] = val
+
+ @property
+ def minexponent(self):
+ """
+ Hide SI prefix for 10^n if |n| is below this number. This only
+ has an effect when `tickformat` is "SI" or "B".
+
+ The 'minexponent' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["minexponent"]
+
+ @minexponent.setter
+ def minexponent(self, val):
+ self["minexponent"] = val
+
+ @property
+ def mirror(self):
+ """
+ Determines if the axis lines or/and ticks are mirrored to the
+ opposite side of the plotting area. If True, the axis lines are
+ mirrored. If "ticks", the axis lines and ticks are mirrored. If
+ False, mirroring is disable. If "all", axis lines are mirrored
+ on all shared-axes subplots. If "allticks", axis lines and
+ ticks are mirrored on all shared-axes subplots.
+
+ The 'mirror' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ [True, 'ticks', False, 'all', 'allticks']
+
+ Returns
+ -------
+ Any
+ """
+ return self["mirror"]
+
+ @mirror.setter
+ def mirror(self, val):
+ self["mirror"] = val
+
+ @property
+ def nticks(self):
+ """
+ Specifies the maximum number of ticks for the particular axis.
+ The actual number of ticks will be chosen automatically to be
+ less than or equal to `nticks`. Has an effect only if
+ `tickmode` is set to "auto".
+
+ The 'nticks' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [0, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["nticks"]
+
+ @nticks.setter
+ def nticks(self, val):
+ self["nticks"] = val
+
+ @property
+ def range(self):
+ """
+ Sets the range of this axis. If the axis `type` is "log", then
+ you must take the log of your desired range (e.g. to set the
+ range from 1 to 100, set the range from 0 to 2). If the axis
+ `type` is "date", it should be date strings, like date data,
+ though Date objects and unix milliseconds will be accepted and
+ converted to strings. If the axis `type` is "category", it
+ should be numbers, using the scale where each category is
+ assigned a serial number from zero in the order it appears.
+ Leaving either or both elements `null` impacts the default
+ `autorange`.
+
+ The 'range' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'range[0]' property accepts values of any type
+ (1) The 'range[1]' property accepts values of any type
+
+ Returns
+ -------
+ list
+ """
+ return self["range"]
+
+ @range.setter
+ def range(self, val):
+ self["range"] = val
+
+ @property
+ def rangemode(self):
+ """
+ If "normal", the range is computed in relation to the extrema
+ of the input data. If "tozero", the range extends to 0,
+ regardless of the input data If "nonnegative", the range is
+ non-negative, regardless of the input data. Applies only to
+ linear axes.
+
+ The 'rangemode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'tozero', 'nonnegative']
+
+ Returns
+ -------
+ Any
+ """
+ return self["rangemode"]
+
+ @rangemode.setter
+ def rangemode(self, val):
+ self["rangemode"] = val
+
+ @property
+ def separatethousands(self):
+ """
+ If "true", even 4-digit integers are separated
+
+ The 'separatethousands' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["separatethousands"]
+
+ @separatethousands.setter
+ def separatethousands(self, val):
+ self["separatethousands"] = val
+
+ @property
+ def showaxeslabels(self):
+ """
+ Sets whether or not this axis is labeled
+
+ The 'showaxeslabels' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showaxeslabels"]
+
+ @showaxeslabels.setter
+ def showaxeslabels(self, val):
+ self["showaxeslabels"] = val
+
+ @property
+ def showbackground(self):
+ """
+ Sets whether or not this axis' wall has a background color.
+
+ The 'showbackground' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showbackground"]
+
+ @showbackground.setter
+ def showbackground(self, val):
+ self["showbackground"] = val
+
+ @property
+ def showexponent(self):
+ """
+ If "all", all exponents are shown besides their significands.
+ If "first", only the exponent of the first tick is shown. If
+ "last", only the exponent of the last tick is shown. If "none",
+ no exponents appear.
+
+ The 'showexponent' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showexponent"]
+
+ @showexponent.setter
+ def showexponent(self, val):
+ self["showexponent"] = val
+
+ @property
+ def showgrid(self):
+ """
+ Determines whether or not grid lines are drawn. If True, the
+ grid lines are drawn at every tick mark.
+
+ The 'showgrid' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showgrid"]
+
+ @showgrid.setter
+ def showgrid(self, val):
+ self["showgrid"] = val
+
+ @property
+ def showline(self):
+ """
+ Determines whether or not a line bounding this axis is drawn.
+
+ The 'showline' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showline"]
+
+ @showline.setter
+ def showline(self, val):
+ self["showline"] = val
+
+ @property
+ def showspikes(self):
+ """
+ Sets whether or not spikes starting from data points to this
+ axis' wall are shown on hover.
+
+ The 'showspikes' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showspikes"]
+
+ @showspikes.setter
+ def showspikes(self, val):
+ self["showspikes"] = val
+
+ @property
+ def showticklabels(self):
+ """
+ Determines whether or not the tick labels are drawn.
+
+ The 'showticklabels' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showticklabels"]
+
+ @showticklabels.setter
+ def showticklabels(self, val):
+ self["showticklabels"] = val
+
+ @property
+ def showtickprefix(self):
+ """
+ If "all", all tick labels are displayed with a prefix. If
+ "first", only the first tick is displayed with a prefix. If
+ "last", only the last tick is displayed with a suffix. If
+ "none", tick prefixes are hidden.
+
+ The 'showtickprefix' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showtickprefix"]
+
+ @showtickprefix.setter
+ def showtickprefix(self, val):
+ self["showtickprefix"] = val
+
+ @property
+ def showticksuffix(self):
+ """
+ Same as `showtickprefix` but for tick suffixes.
+
+ The 'showticksuffix' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showticksuffix"]
+
+ @showticksuffix.setter
+ def showticksuffix(self, val):
+ self["showticksuffix"] = val
+
+ @property
+ def spikecolor(self):
+ """
+ Sets the color of the spikes.
+
+ The 'spikecolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["spikecolor"]
+
+ @spikecolor.setter
+ def spikecolor(self, val):
+ self["spikecolor"] = val
+
+ @property
+ def spikesides(self):
+ """
+ Sets whether or not spikes extending from the projection data
+ points to this axis' wall boundaries are shown on hover.
+
+ The 'spikesides' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["spikesides"]
+
+ @spikesides.setter
+ def spikesides(self, val):
+ self["spikesides"] = val
+
+ @property
+ def spikethickness(self):
+ """
+ Sets the thickness (in px) of the spikes.
+
+ The 'spikethickness' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["spikethickness"]
+
+ @spikethickness.setter
+ def spikethickness(self, val):
+ self["spikethickness"] = val
+
+ @property
+ def tick0(self):
+ """
+ Sets the placement of the first tick on this axis. Use with
+ `dtick`. If the axis `type` is "log", then you must take the
+ log of your starting tick (e.g. to set the starting tick to
+ 100, set the `tick0` to 2) except when `dtick`=*L<f>* (see
+ `dtick` for more info). If the axis `type` is "date", it should
+ be a date string, like date data. If the axis `type` is
+ "category", it should be a number, using the scale where each
+ category is assigned a serial number from zero in the order it
+ appears.
+
+ The 'tick0' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["tick0"]
+
+ @tick0.setter
+ def tick0(self, val):
+ self["tick0"] = val
+
+ @property
+ def tickangle(self):
+ """
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the tick
+ labels vertically.
+
+ The 'tickangle' property is a angle (in degrees) that may be
+ specified as a number between -180 and 180.
+ Numeric values outside this range are converted to the equivalent value
+ (e.g. 270 is converted to -90).
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tickangle"]
+
+ @tickangle.setter
+ def tickangle(self, val):
+ self["tickangle"] = val
+
+ @property
+ def tickcolor(self):
+ """
+ Sets the tick color.
+
+ The 'tickcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["tickcolor"]
+
+ @tickcolor.setter
+ def tickcolor(self, val):
+ self["tickcolor"] = val
+
+ @property
+ def tickfont(self):
+ """
+ Sets the tick font.
+
+ The 'tickfont' property is an instance of Tickfont
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.scene.xaxis.Tickfont`
+ - A dict of string/value properties that will be passed
+ to the Tickfont constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.scene.xaxis.Tickfont
+ """
+ return self["tickfont"]
+
+ @tickfont.setter
+ def tickfont(self, val):
+ self["tickfont"] = val
+
+ @property
+ def tickformat(self):
+ """
+ Sets the tick label formatting rule using d3 formatting mini-
+ languages which are very similar to those in Python. For
+ numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format. And for
+ dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to d3's date
+ formatter: "%h" for half of the year as a decimal number as
+ well as "%{n}f" for fractional seconds with n digits. For
+ example, *2016-10-13 09:15:23.456* with tickformat
+ "%H~%M~%S.%2f" would display "09~15~23.46"
+
+ The 'tickformat' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["tickformat"]
+
+ @tickformat.setter
+ def tickformat(self, val):
+ self["tickformat"] = val
+
+ @property
+ def tickformatstops(self):
+ """
+ The 'tickformatstops' property is a tuple of instances of
+ Tickformatstop that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.scene.xaxis.Tickformatstop
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Tickformatstop constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.scene.xaxis.Tickformatstop]
+ """
+ return self["tickformatstops"]
+
+ @tickformatstops.setter
+ def tickformatstops(self, val):
+ self["tickformatstops"] = val
+
+ @property
+ def tickformatstopdefaults(self):
+ """
+ When used in a template (as
+ layout.template.layout.scene.xaxis.tickformatstopdefaults),
+ sets the default property values to use for elements of
+ layout.scene.xaxis.tickformatstops
+
+ The 'tickformatstopdefaults' property is an instance of Tickformatstop
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.scene.xaxis.Tickformatstop`
+ - A dict of string/value properties that will be passed
+ to the Tickformatstop constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.scene.xaxis.Tickformatstop
+ """
+ return self["tickformatstopdefaults"]
+
+ @tickformatstopdefaults.setter
+ def tickformatstopdefaults(self, val):
+ self["tickformatstopdefaults"] = val
+
+ @property
+ def ticklen(self):
+ """
+ Sets the tick length (in px).
+
+ The 'ticklen' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["ticklen"]
+
+ @ticklen.setter
+ def ticklen(self, val):
+ self["ticklen"] = val
+
+ @property
+ def tickmode(self):
+ """
+ Sets the tick mode for this axis. If "auto", the number of
+ ticks is set via `nticks`. If "linear", the placement of the
+ ticks is determined by a starting position `tick0` and a tick
+ step `dtick` ("linear" is the default value if `tick0` and
+ `dtick` are provided). If "array", the placement of the ticks
+ is set via `tickvals` and the tick text is `ticktext`. ("array"
+ is the default value if `tickvals` is provided).
+
+ The 'tickmode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['auto', 'linear', 'array']
+
+ Returns
+ -------
+ Any
+ """
+ return self["tickmode"]
+
+ @tickmode.setter
+ def tickmode(self, val):
+ self["tickmode"] = val
+
+ @property
+ def tickprefix(self):
+ """
+ Sets a tick label prefix.
+
+ The 'tickprefix' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["tickprefix"]
+
+ @tickprefix.setter
+ def tickprefix(self, val):
+ self["tickprefix"] = val
+
+ @property
+ def ticks(self):
+ """
+ Determines whether ticks are drawn or not. If "", this axis'
+ ticks are not drawn. If "outside" ("inside"), this axis' are
+ drawn outside (inside) the axis lines.
+
+ The 'ticks' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['outside', 'inside', '']
+
+ Returns
+ -------
+ Any
+ """
+ return self["ticks"]
+
+ @ticks.setter
+ def ticks(self, val):
+ self["ticks"] = val
+
+ @property
+ def ticksuffix(self):
+ """
+ Sets a tick label suffix.
+
+ The 'ticksuffix' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["ticksuffix"]
+
+ @ticksuffix.setter
+ def ticksuffix(self, val):
+ self["ticksuffix"] = val
+
+ @property
+ def ticktext(self):
+ """
+ Sets the text displayed at the ticks position via `tickvals`.
+ Only has an effect if `tickmode` is set to "array". Used with
+ `tickvals`.
+
+ The 'ticktext' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["ticktext"]
+
+ @ticktext.setter
+ def ticktext(self, val):
+ self["ticktext"] = val
+
+ @property
+ def ticktextsrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `ticktext`.
+
+ The 'ticktextsrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["ticktextsrc"]
+
+ @ticktextsrc.setter
+ def ticktextsrc(self, val):
+ self["ticktextsrc"] = val
+
+ @property
+ def tickvals(self):
+ """
+ Sets the values at which ticks on this axis appear. Only has an
+ effect if `tickmode` is set to "array". Used with `ticktext`.
+
+ The 'tickvals' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["tickvals"]
+
+ @tickvals.setter
+ def tickvals(self, val):
+ self["tickvals"] = val
+
+ @property
+ def tickvalssrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `tickvals`.
+
+ The 'tickvalssrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["tickvalssrc"]
+
+ @tickvalssrc.setter
+ def tickvalssrc(self, val):
+ self["tickvalssrc"] = val
+
+ @property
+ def tickwidth(self):
+ """
+ Sets the tick width (in px).
+
+ The 'tickwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tickwidth"]
+
+ @tickwidth.setter
+ def tickwidth(self, val):
+ self["tickwidth"] = val
+
+ @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.scene.xaxis.Title`
+ - A dict of string/value properties that will be passed
+ to the Title constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.scene.xaxis.Title
+ """
+ return self["title"]
+
+ @title.setter
+ def title(self, val):
+ self["title"] = val
+
+ @property
+ def type(self):
+ """
+ Sets the axis type. By default, plotly attempts to determined
+ the axis type by looking into the data of the traces that
+ referenced the axis in question.
+
+ The 'type' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['-', 'linear', 'log', 'date', 'category']
+
+ Returns
+ -------
+ Any
+ """
+ return self["type"]
+
+ @type.setter
+ def type(self, val):
+ self["type"] = val
+
+ @property
+ def visible(self):
+ """
+ A single toggle to hide the axis while preserving interaction
+ like dragging. Default is true when a cheater plot is present
+ on the axis, otherwise false
+
+ The 'visible' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["visible"]
+
+ @visible.setter
+ def visible(self, val):
+ self["visible"] = val
+
+ @property
+ def zeroline(self):
+ """
+ Determines whether or not a line is drawn at along the 0 value
+ of this axis. If True, the zero line is drawn on top of the
+ grid lines.
+
+ The 'zeroline' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["zeroline"]
+
+ @zeroline.setter
+ def zeroline(self, val):
+ self["zeroline"] = val
+
+ @property
+ def zerolinecolor(self):
+ """
+ Sets the line color of the zero line.
+
+ The 'zerolinecolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["zerolinecolor"]
+
+ @zerolinecolor.setter
+ def zerolinecolor(self, val):
+ self["zerolinecolor"] = val
+
+ @property
+ def zerolinewidth(self):
+ """
+ Sets the width (in px) of the zero line.
+
+ The 'zerolinewidth' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["zerolinewidth"]
+
+ @zerolinewidth.setter
+ def zerolinewidth(self, val):
+ self["zerolinewidth"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ autorange
+ Determines whether or not the range of this axis is
+ computed in relation to the input data. See `rangemode`
+ for more info. If `range` is provided and it has a
+ value for both the lower and upper bound, `autorange`
+ is set to False. Using "min" applies autorange only to
+ set the minimum. Using "max" applies autorange only to
+ set the maximum. Using *min reversed* applies autorange
+ only to set the minimum on a reversed axis. Using *max
+ reversed* applies autorange only to set the maximum on
+ a reversed axis. Using "reversed" applies autorange on
+ both ends and reverses the axis direction.
+ autorangeoptions
+ :class:`plotly.graph_objects.layout.scene.xaxis.Autoran
+ geoptions` instance or dict with compatible properties
+ autotypenumbers
+ Using "strict" a numeric string in trace data is not
+ converted to a number. Using *convert types* a numeric
+ string in trace data may be treated as a number during
+ automatic axis `type` detection. Defaults to
+ layout.autotypenumbers.
+ backgroundcolor
+ Sets the background color of this axis' wall.
+ calendar
+ Sets the calendar system to use for `range` and `tick0`
+ if this is a date axis. This does not set the calendar
+ for interpreting data on this axis, that's specified in
+ the trace or via the global `layout.calendar`
+ categoryarray
+ Sets the order in which categories on this axis appear.
+ Only has an effect if `categoryorder` is set to
+ "array". Used with `categoryorder`.
+ categoryarraysrc
+ Sets the source reference on Chart Studio Cloud for
+ `categoryarray`.
+ categoryorder
+ Specifies the ordering logic for the case of
+ categorical variables. By default, plotly uses "trace",
+ which specifies the order that is present in the data
+ supplied. Set `categoryorder` to *category ascending*
+ or *category descending* if order should be determined
+ by the alphanumerical order of the category names. Set
+ `categoryorder` to "array" to derive the ordering from
+ the attribute `categoryarray`. If a category is not
+ found in the `categoryarray` array, the sorting
+ behavior for that attribute will be identical to the
+ "trace" mode. The unspecified categories will follow
+ the categories in `categoryarray`. Set `categoryorder`
+ to *total ascending* or *total descending* if order
+ should be determined by the numerical order of the
+ values. Similarly, the order can be determined by the
+ min, max, sum, mean, geometric mean or median of all
+ the values.
+ color
+ Sets default for all colors associated with this axis
+ all at once: line, font, tick, and grid colors. Grid
+ color is lightened by blending this with the plot
+ background Individual pieces can override this.
+ dtick
+ Sets the step in-between ticks on this axis. Use with
+ `tick0`. Must be a positive number, or special strings
+ available to "log" and "date" axes. If the axis `type`
+ is "log", then ticks are set every 10^(n*dtick) where n
+ is the tick number. For example, to set a tick mark at
+ 1, 10, 100, 1000, ... set dtick to 1. To set tick marks
+ at 1, 100, 10000, ... set dtick to 2. To set tick marks
+ at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special
+ values; "L<f>", where `f` is a positive number, gives
+ ticks linearly spaced in value (but not position). For
+ example `tick0` = 0.1, `dtick` = "L0.5" will put ticks
+ at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus
+ small digits between, use "D1" (all digits) or "D2"
+ (only 2 and 5). `tick0` is ignored for "D1" and "D2".
+ If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval
+ between ticks to one day, set `dtick` to 86400000.0.
+ "date" also has special values "M<n>" gives ticks
+ spaced by a number of months. `n` must be a positive
+ integer. To set ticks on the 15th of every third month,
+ set `tick0` to "2000-01-15" and `dtick` to "M3". To set
+ ticks every 4 years, set `dtick` to "M48"
+ exponentformat
+ Determines a formatting rule for the tick exponents.
+ For example, consider the number 1,000,000,000. If
+ "none", it appears as 1,000,000,000. If "e", 1e+9. If
+ "E", 1E+9. If "power", 1x10^9 (with 9 in a super
+ script). If "SI", 1G. If "B", 1B.
+ gridcolor
+ Sets the color of the grid lines.
+ gridwidth
+ Sets the width (in px) of the grid lines.
+ hoverformat
+ Sets the hover text formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ labelalias
+ Replacement text for specific tick or hover labels. For
+ example using {US: 'USA', CA: 'Canada'} changes US to
+ USA and CA to Canada. The labels we would have shown
+ must match the keys exactly, after adding any
+ tickprefix or ticksuffix. For negative numbers the
+ minus sign symbol used (U+2212) is wider than the
+ regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis
+ type, and both keys (if needed) and values (if desired)
+ can include html-like tags or MathJax.
+ linecolor
+ Sets the axis line color.
+ linewidth
+ Sets the width (in px) of the axis line.
+ maxallowed
+ Determines the maximum range of this axis.
+ minallowed
+ Determines the minimum range of this axis.
+ minexponent
+ Hide SI prefix for 10^n if |n| is below this number.
+ This only has an effect when `tickformat` is "SI" or
+ "B".
+ mirror
+ Determines if the axis lines or/and ticks are mirrored
+ to the opposite side of the plotting area. If True, the
+ axis lines are mirrored. If "ticks", the axis lines and
+ ticks are mirrored. If False, mirroring is disable. If
+ "all", axis lines are mirrored on all shared-axes
+ subplots. If "allticks", axis lines and ticks are
+ mirrored on all shared-axes subplots.
+ nticks
+ Specifies the maximum number of ticks for the
+ particular axis. The actual number of ticks will be
+ chosen automatically to be less than or equal to
+ `nticks`. Has an effect only if `tickmode` is set to
+ "auto".
+ range
+ Sets the range of this axis. If the axis `type` is
+ "log", then you must take the log of your desired range
+ (e.g. to set the range from 1 to 100, set the range
+ from 0 to 2). If the axis `type` is "date", it should
+ be date strings, like date data, though Date objects
+ and unix milliseconds will be accepted and converted to
+ strings. If the axis `type` is "category", it should be
+ numbers, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears. Leaving either or both elements `null` impacts
+ the default `autorange`.
+ rangemode
+ If "normal", the range is computed in relation to the
+ extrema of the input data. If "tozero", the range
+ extends to 0, regardless of the input data If
+ "nonnegative", the range is non-negative, regardless of
+ the input data. Applies only to linear axes.
+ separatethousands
+ If "true", even 4-digit integers are separated
+ showaxeslabels
+ Sets whether or not this axis is labeled
+ showbackground
+ Sets whether or not this axis' wall has a background
+ color.
+ showexponent
+ If "all", all exponents are shown besides their
+ significands. If "first", only the exponent of the
+ first tick is shown. If "last", only the exponent of
+ the last tick is shown. If "none", no exponents appear.
+ showgrid
+ Determines whether or not grid lines are drawn. If
+ True, the grid lines are drawn at every tick mark.
+ showline
+ Determines whether or not a line bounding this axis is
+ drawn.
+ showspikes
+ Sets whether or not spikes starting from data points to
+ this axis' wall are shown on hover.
+ showticklabels
+ Determines whether or not the tick labels are drawn.
+ showtickprefix
+ If "all", all tick labels are displayed with a prefix.
+ If "first", only the first tick is displayed with a
+ prefix. If "last", only the last tick is displayed with
+ a suffix. If "none", tick prefixes are hidden.
+ showticksuffix
+ Same as `showtickprefix` but for tick suffixes.
+ spikecolor
+ Sets the color of the spikes.
+ spikesides
+ Sets whether or not spikes extending from the
+ projection data points to this axis' wall boundaries
+ are shown on hover.
+ spikethickness
+ Sets the thickness (in px) of the spikes.
+ tick0
+ Sets the placement of the first tick on this axis. Use
+ with `dtick`. If the axis `type` is "log", then you
+ must take the log of your starting tick (e.g. to set
+ the starting tick to 100, set the `tick0` to 2) except
+ when `dtick`=*L<f>* (see `dtick` for more info). If the
+ axis `type` is "date", it should be a date string, like
+ date data. If the axis `type` is "category", it should
+ be a number, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears.
+ tickangle
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the
+ tick labels vertically.
+ tickcolor
+ Sets the tick color.
+ tickfont
+ Sets the tick font.
+ tickformat
+ Sets the tick label formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ tickformatstops
+ A tuple of :class:`plotly.graph_objects.layout.scene.xa
+ xis.Tickformatstop` instances or dicts with compatible
+ properties
+ tickformatstopdefaults
+ When used in a template (as layout.template.layout.scen
+ e.xaxis.tickformatstopdefaults), sets the default
+ property values to use for elements of
+ layout.scene.xaxis.tickformatstops
+ ticklen
+ Sets the tick length (in px).
+ tickmode
+ Sets the tick mode for this axis. If "auto", the number
+ of ticks is set via `nticks`. If "linear", the
+ placement of the ticks is determined by a starting
+ position `tick0` and a tick step `dtick` ("linear" is
+ the default value if `tick0` and `dtick` are provided).
+ If "array", the placement of the ticks is set via
+ `tickvals` and the tick text is `ticktext`. ("array" is
+ the default value if `tickvals` is provided).
+ tickprefix
+ Sets a tick label prefix.
+ ticks
+ Determines whether ticks are drawn or not. If "", this
+ axis' ticks are not drawn. If "outside" ("inside"),
+ this axis' are drawn outside (inside) the axis lines.
+ ticksuffix
+ Sets a tick label suffix.
+ ticktext
+ Sets the text displayed at the ticks position via
+ `tickvals`. Only has an effect if `tickmode` is set to
+ "array". Used with `tickvals`.
+ ticktextsrc
+ Sets the source reference on Chart Studio Cloud for
+ `ticktext`.
+ tickvals
+ Sets the values at which ticks on this axis appear.
+ Only has an effect if `tickmode` is set to "array".
+ Used with `ticktext`.
+ tickvalssrc
+ Sets the source reference on Chart Studio Cloud for
+ `tickvals`.
+ tickwidth
+ Sets the tick width (in px).
+ title
+ :class:`plotly.graph_objects.layout.scene.xaxis.Title`
+ instance or dict with compatible properties
+ type
+ Sets the axis type. By default, plotly attempts to
+ determined the axis type by looking into the data of
+ the traces that referenced the axis in question.
+ visible
+ A single toggle to hide the axis while preserving
+ interaction like dragging. Default is true when a
+ cheater plot is present on the axis, otherwise false
+ zeroline
+ Determines whether or not a line is drawn at along the
+ 0 value of this axis. If True, the zero line is drawn
+ on top of the grid lines.
+ zerolinecolor
+ Sets the line color of the zero line.
+ zerolinewidth
+ Sets the width (in px) of the zero line.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ autorange=None,
+ autorangeoptions=None,
+ autotypenumbers=None,
+ backgroundcolor=None,
+ calendar=None,
+ categoryarray=None,
+ categoryarraysrc=None,
+ categoryorder=None,
+ color=None,
+ dtick=None,
+ exponentformat=None,
+ gridcolor=None,
+ gridwidth=None,
+ hoverformat=None,
+ labelalias=None,
+ linecolor=None,
+ linewidth=None,
+ maxallowed=None,
+ minallowed=None,
+ minexponent=None,
+ mirror=None,
+ nticks=None,
+ range=None,
+ rangemode=None,
+ separatethousands=None,
+ showaxeslabels=None,
+ showbackground=None,
+ showexponent=None,
+ showgrid=None,
+ showline=None,
+ showspikes=None,
+ showticklabels=None,
+ showtickprefix=None,
+ showticksuffix=None,
+ spikecolor=None,
+ spikesides=None,
+ spikethickness=None,
+ tick0=None,
+ tickangle=None,
+ tickcolor=None,
+ tickfont=None,
+ tickformat=None,
+ tickformatstops=None,
+ tickformatstopdefaults=None,
+ ticklen=None,
+ tickmode=None,
+ tickprefix=None,
+ ticks=None,
+ ticksuffix=None,
+ ticktext=None,
+ ticktextsrc=None,
+ tickvals=None,
+ tickvalssrc=None,
+ tickwidth=None,
+ title=None,
+ type=None,
+ visible=None,
+ zeroline=None,
+ zerolinecolor=None,
+ zerolinewidth=None,
+ **kwargs,
+ ):
+ """
+ Construct a new XAxis object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.scene.XAxis`
+ autorange
+ Determines whether or not the range of this axis is
+ computed in relation to the input data. See `rangemode`
+ for more info. If `range` is provided and it has a
+ value for both the lower and upper bound, `autorange`
+ is set to False. Using "min" applies autorange only to
+ set the minimum. Using "max" applies autorange only to
+ set the maximum. Using *min reversed* applies autorange
+ only to set the minimum on a reversed axis. Using *max
+ reversed* applies autorange only to set the maximum on
+ a reversed axis. Using "reversed" applies autorange on
+ both ends and reverses the axis direction.
+ autorangeoptions
+ :class:`plotly.graph_objects.layout.scene.xaxis.Autoran
+ geoptions` instance or dict with compatible properties
+ autotypenumbers
+ Using "strict" a numeric string in trace data is not
+ converted to a number. Using *convert types* a numeric
+ string in trace data may be treated as a number during
+ automatic axis `type` detection. Defaults to
+ layout.autotypenumbers.
+ backgroundcolor
+ Sets the background color of this axis' wall.
+ calendar
+ Sets the calendar system to use for `range` and `tick0`
+ if this is a date axis. This does not set the calendar
+ for interpreting data on this axis, that's specified in
+ the trace or via the global `layout.calendar`
+ categoryarray
+ Sets the order in which categories on this axis appear.
+ Only has an effect if `categoryorder` is set to
+ "array". Used with `categoryorder`.
+ categoryarraysrc
+ Sets the source reference on Chart Studio Cloud for
+ `categoryarray`.
+ categoryorder
+ Specifies the ordering logic for the case of
+ categorical variables. By default, plotly uses "trace",
+ which specifies the order that is present in the data
+ supplied. Set `categoryorder` to *category ascending*
+ or *category descending* if order should be determined
+ by the alphanumerical order of the category names. Set
+ `categoryorder` to "array" to derive the ordering from
+ the attribute `categoryarray`. If a category is not
+ found in the `categoryarray` array, the sorting
+ behavior for that attribute will be identical to the
+ "trace" mode. The unspecified categories will follow
+ the categories in `categoryarray`. Set `categoryorder`
+ to *total ascending* or *total descending* if order
+ should be determined by the numerical order of the
+ values. Similarly, the order can be determined by the
+ min, max, sum, mean, geometric mean or median of all
+ the values.
+ color
+ Sets default for all colors associated with this axis
+ all at once: line, font, tick, and grid colors. Grid
+ color is lightened by blending this with the plot
+ background Individual pieces can override this.
+ dtick
+ Sets the step in-between ticks on this axis. Use with
+ `tick0`. Must be a positive number, or special strings
+ available to "log" and "date" axes. If the axis `type`
+ is "log", then ticks are set every 10^(n*dtick) where n
+ is the tick number. For example, to set a tick mark at
+ 1, 10, 100, 1000, ... set dtick to 1. To set tick marks
+ at 1, 100, 10000, ... set dtick to 2. To set tick marks
+ at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special
+ values; "L<f>", where `f` is a positive number, gives
+ ticks linearly spaced in value (but not position). For
+ example `tick0` = 0.1, `dtick` = "L0.5" will put ticks
+ at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus
+ small digits between, use "D1" (all digits) or "D2"
+ (only 2 and 5). `tick0` is ignored for "D1" and "D2".
+ If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval
+ between ticks to one day, set `dtick` to 86400000.0.
+ "date" also has special values "M<n>" gives ticks
+ spaced by a number of months. `n` must be a positive
+ integer. To set ticks on the 15th of every third month,
+ set `tick0` to "2000-01-15" and `dtick` to "M3". To set
+ ticks every 4 years, set `dtick` to "M48"
+ exponentformat
+ Determines a formatting rule for the tick exponents.
+ For example, consider the number 1,000,000,000. If
+ "none", it appears as 1,000,000,000. If "e", 1e+9. If
+ "E", 1E+9. If "power", 1x10^9 (with 9 in a super
+ script). If "SI", 1G. If "B", 1B.
+ gridcolor
+ Sets the color of the grid lines.
+ gridwidth
+ Sets the width (in px) of the grid lines.
+ hoverformat
+ Sets the hover text formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ labelalias
+ Replacement text for specific tick or hover labels. For
+ example using {US: 'USA', CA: 'Canada'} changes US to
+ USA and CA to Canada. The labels we would have shown
+ must match the keys exactly, after adding any
+ tickprefix or ticksuffix. For negative numbers the
+ minus sign symbol used (U+2212) is wider than the
+ regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis
+ type, and both keys (if needed) and values (if desired)
+ can include html-like tags or MathJax.
+ linecolor
+ Sets the axis line color.
+ linewidth
+ Sets the width (in px) of the axis line.
+ maxallowed
+ Determines the maximum range of this axis.
+ minallowed
+ Determines the minimum range of this axis.
+ minexponent
+ Hide SI prefix for 10^n if |n| is below this number.
+ This only has an effect when `tickformat` is "SI" or
+ "B".
+ mirror
+ Determines if the axis lines or/and ticks are mirrored
+ to the opposite side of the plotting area. If True, the
+ axis lines are mirrored. If "ticks", the axis lines and
+ ticks are mirrored. If False, mirroring is disable. If
+ "all", axis lines are mirrored on all shared-axes
+ subplots. If "allticks", axis lines and ticks are
+ mirrored on all shared-axes subplots.
+ nticks
+ Specifies the maximum number of ticks for the
+ particular axis. The actual number of ticks will be
+ chosen automatically to be less than or equal to
+ `nticks`. Has an effect only if `tickmode` is set to
+ "auto".
+ range
+ Sets the range of this axis. If the axis `type` is
+ "log", then you must take the log of your desired range
+ (e.g. to set the range from 1 to 100, set the range
+ from 0 to 2). If the axis `type` is "date", it should
+ be date strings, like date data, though Date objects
+ and unix milliseconds will be accepted and converted to
+ strings. If the axis `type` is "category", it should be
+ numbers, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears. Leaving either or both elements `null` impacts
+ the default `autorange`.
+ rangemode
+ If "normal", the range is computed in relation to the
+ extrema of the input data. If "tozero", the range
+ extends to 0, regardless of the input data If
+ "nonnegative", the range is non-negative, regardless of
+ the input data. Applies only to linear axes.
+ separatethousands
+ If "true", even 4-digit integers are separated
+ showaxeslabels
+ Sets whether or not this axis is labeled
+ showbackground
+ Sets whether or not this axis' wall has a background
+ color.
+ showexponent
+ If "all", all exponents are shown besides their
+ significands. If "first", only the exponent of the
+ first tick is shown. If "last", only the exponent of
+ the last tick is shown. If "none", no exponents appear.
+ showgrid
+ Determines whether or not grid lines are drawn. If
+ True, the grid lines are drawn at every tick mark.
+ showline
+ Determines whether or not a line bounding this axis is
+ drawn.
+ showspikes
+ Sets whether or not spikes starting from data points to
+ this axis' wall are shown on hover.
+ showticklabels
+ Determines whether or not the tick labels are drawn.
+ showtickprefix
+ If "all", all tick labels are displayed with a prefix.
+ If "first", only the first tick is displayed with a
+ prefix. If "last", only the last tick is displayed with
+ a suffix. If "none", tick prefixes are hidden.
+ showticksuffix
+ Same as `showtickprefix` but for tick suffixes.
+ spikecolor
+ Sets the color of the spikes.
+ spikesides
+ Sets whether or not spikes extending from the
+ projection data points to this axis' wall boundaries
+ are shown on hover.
+ spikethickness
+ Sets the thickness (in px) of the spikes.
+ tick0
+ Sets the placement of the first tick on this axis. Use
+ with `dtick`. If the axis `type` is "log", then you
+ must take the log of your starting tick (e.g. to set
+ the starting tick to 100, set the `tick0` to 2) except
+ when `dtick`=*L<f>* (see `dtick` for more info). If the
+ axis `type` is "date", it should be a date string, like
+ date data. If the axis `type` is "category", it should
+ be a number, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears.
+ tickangle
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the
+ tick labels vertically.
+ tickcolor
+ Sets the tick color.
+ tickfont
+ Sets the tick font.
+ tickformat
+ Sets the tick label formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ tickformatstops
+ A tuple of :class:`plotly.graph_objects.layout.scene.xa
+ xis.Tickformatstop` instances or dicts with compatible
+ properties
+ tickformatstopdefaults
+ When used in a template (as layout.template.layout.scen
+ e.xaxis.tickformatstopdefaults), sets the default
+ property values to use for elements of
+ layout.scene.xaxis.tickformatstops
+ ticklen
+ Sets the tick length (in px).
+ tickmode
+ Sets the tick mode for this axis. If "auto", the number
+ of ticks is set via `nticks`. If "linear", the
+ placement of the ticks is determined by a starting
+ position `tick0` and a tick step `dtick` ("linear" is
+ the default value if `tick0` and `dtick` are provided).
+ If "array", the placement of the ticks is set via
+ `tickvals` and the tick text is `ticktext`. ("array" is
+ the default value if `tickvals` is provided).
+ tickprefix
+ Sets a tick label prefix.
+ ticks
+ Determines whether ticks are drawn or not. If "", this
+ axis' ticks are not drawn. If "outside" ("inside"),
+ this axis' are drawn outside (inside) the axis lines.
+ ticksuffix
+ Sets a tick label suffix.
+ ticktext
+ Sets the text displayed at the ticks position via
+ `tickvals`. Only has an effect if `tickmode` is set to
+ "array". Used with `tickvals`.
+ ticktextsrc
+ Sets the source reference on Chart Studio Cloud for
+ `ticktext`.
+ tickvals
+ Sets the values at which ticks on this axis appear.
+ Only has an effect if `tickmode` is set to "array".
+ Used with `ticktext`.
+ tickvalssrc
+ Sets the source reference on Chart Studio Cloud for
+ `tickvals`.
+ tickwidth
+ Sets the tick width (in px).
+ title
+ :class:`plotly.graph_objects.layout.scene.xaxis.Title`
+ instance or dict with compatible properties
+ type
+ Sets the axis type. By default, plotly attempts to
+ determined the axis type by looking into the data of
+ the traces that referenced the axis in question.
+ visible
+ A single toggle to hide the axis while preserving
+ interaction like dragging. Default is true when a
+ cheater plot is present on the axis, otherwise false
+ zeroline
+ Determines whether or not a line is drawn at along the
+ 0 value of this axis. If True, the zero line is drawn
+ on top of the grid lines.
+ zerolinecolor
+ Sets the line color of the zero line.
+ zerolinewidth
+ Sets the width (in px) of the zero line.
+
+ Returns
+ -------
+ XAxis
+ """
+ super().__init__("xaxis")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.scene.XAxis
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.scene.XAxis`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("autorange", arg, autorange)
+ self._set_property("autorangeoptions", arg, autorangeoptions)
+ self._set_property("autotypenumbers", arg, autotypenumbers)
+ self._set_property("backgroundcolor", arg, backgroundcolor)
+ self._set_property("calendar", arg, calendar)
+ self._set_property("categoryarray", arg, categoryarray)
+ self._set_property("categoryarraysrc", arg, categoryarraysrc)
+ self._set_property("categoryorder", arg, categoryorder)
+ self._set_property("color", arg, color)
+ self._set_property("dtick", arg, dtick)
+ self._set_property("exponentformat", arg, exponentformat)
+ self._set_property("gridcolor", arg, gridcolor)
+ self._set_property("gridwidth", arg, gridwidth)
+ self._set_property("hoverformat", arg, hoverformat)
+ self._set_property("labelalias", arg, labelalias)
+ self._set_property("linecolor", arg, linecolor)
+ self._set_property("linewidth", arg, linewidth)
+ self._set_property("maxallowed", arg, maxallowed)
+ self._set_property("minallowed", arg, minallowed)
+ self._set_property("minexponent", arg, minexponent)
+ self._set_property("mirror", arg, mirror)
+ self._set_property("nticks", arg, nticks)
+ self._set_property("range", arg, range)
+ self._set_property("rangemode", arg, rangemode)
+ self._set_property("separatethousands", arg, separatethousands)
+ self._set_property("showaxeslabels", arg, showaxeslabels)
+ self._set_property("showbackground", arg, showbackground)
+ self._set_property("showexponent", arg, showexponent)
+ self._set_property("showgrid", arg, showgrid)
+ self._set_property("showline", arg, showline)
+ self._set_property("showspikes", arg, showspikes)
+ self._set_property("showticklabels", arg, showticklabels)
+ self._set_property("showtickprefix", arg, showtickprefix)
+ self._set_property("showticksuffix", arg, showticksuffix)
+ self._set_property("spikecolor", arg, spikecolor)
+ self._set_property("spikesides", arg, spikesides)
+ self._set_property("spikethickness", arg, spikethickness)
+ self._set_property("tick0", arg, tick0)
+ self._set_property("tickangle", arg, tickangle)
+ self._set_property("tickcolor", arg, tickcolor)
+ self._set_property("tickfont", arg, tickfont)
+ self._set_property("tickformat", arg, tickformat)
+ self._set_property("tickformatstops", arg, tickformatstops)
+ self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
+ self._set_property("ticklen", arg, ticklen)
+ self._set_property("tickmode", arg, tickmode)
+ self._set_property("tickprefix", arg, tickprefix)
+ self._set_property("ticks", arg, ticks)
+ self._set_property("ticksuffix", arg, ticksuffix)
+ self._set_property("ticktext", arg, ticktext)
+ self._set_property("ticktextsrc", arg, ticktextsrc)
+ self._set_property("tickvals", arg, tickvals)
+ self._set_property("tickvalssrc", arg, tickvalssrc)
+ self._set_property("tickwidth", arg, tickwidth)
+ self._set_property("title", arg, title)
+ self._set_property("type", arg, type)
+ self._set_property("visible", arg, visible)
+ self._set_property("zeroline", arg, zeroline)
+ self._set_property("zerolinecolor", arg, zerolinecolor)
+ self._set_property("zerolinewidth", arg, zerolinewidth)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/_yaxis.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/_yaxis.py
new file mode 100644
index 0000000..852837d
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/_yaxis.py
@@ -0,0 +1,2111 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class YAxis(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.scene"
+ _path_str = "layout.scene.yaxis"
+ _valid_props = {
+ "autorange",
+ "autorangeoptions",
+ "autotypenumbers",
+ "backgroundcolor",
+ "calendar",
+ "categoryarray",
+ "categoryarraysrc",
+ "categoryorder",
+ "color",
+ "dtick",
+ "exponentformat",
+ "gridcolor",
+ "gridwidth",
+ "hoverformat",
+ "labelalias",
+ "linecolor",
+ "linewidth",
+ "maxallowed",
+ "minallowed",
+ "minexponent",
+ "mirror",
+ "nticks",
+ "range",
+ "rangemode",
+ "separatethousands",
+ "showaxeslabels",
+ "showbackground",
+ "showexponent",
+ "showgrid",
+ "showline",
+ "showspikes",
+ "showticklabels",
+ "showtickprefix",
+ "showticksuffix",
+ "spikecolor",
+ "spikesides",
+ "spikethickness",
+ "tick0",
+ "tickangle",
+ "tickcolor",
+ "tickfont",
+ "tickformat",
+ "tickformatstopdefaults",
+ "tickformatstops",
+ "ticklen",
+ "tickmode",
+ "tickprefix",
+ "ticks",
+ "ticksuffix",
+ "ticktext",
+ "ticktextsrc",
+ "tickvals",
+ "tickvalssrc",
+ "tickwidth",
+ "title",
+ "type",
+ "visible",
+ "zeroline",
+ "zerolinecolor",
+ "zerolinewidth",
+ }
+
+ @property
+ def autorange(self):
+ """
+ Determines whether or not the range of this axis is computed in
+ relation to the input data. See `rangemode` for more info. If
+ `range` is provided and it has a value for both the lower and
+ upper bound, `autorange` is set to False. Using "min" applies
+ autorange only to set the minimum. Using "max" applies
+ autorange only to set the maximum. Using *min reversed* applies
+ autorange only to set the minimum on a reversed axis. Using
+ *max reversed* applies autorange only to set the maximum on a
+ reversed axis. Using "reversed" applies autorange on both ends
+ and reverses the axis direction.
+
+ The 'autorange' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ [True, False, 'reversed', 'min reversed', 'max reversed',
+ 'min', 'max']
+
+ Returns
+ -------
+ Any
+ """
+ return self["autorange"]
+
+ @autorange.setter
+ def autorange(self, val):
+ self["autorange"] = val
+
+ @property
+ def autorangeoptions(self):
+ """
+ The 'autorangeoptions' property is an instance of Autorangeoptions
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.scene.yaxis.Autorangeoptions`
+ - A dict of string/value properties that will be passed
+ to the Autorangeoptions constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.scene.yaxis.Autorangeoptions
+ """
+ return self["autorangeoptions"]
+
+ @autorangeoptions.setter
+ def autorangeoptions(self, val):
+ self["autorangeoptions"] = val
+
+ @property
+ def autotypenumbers(self):
+ """
+ Using "strict" a numeric string in trace data is not converted
+ to a number. Using *convert types* a numeric string in trace
+ data may be treated as a number during automatic axis `type`
+ detection. Defaults to layout.autotypenumbers.
+
+ The 'autotypenumbers' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['convert types', 'strict']
+
+ Returns
+ -------
+ Any
+ """
+ return self["autotypenumbers"]
+
+ @autotypenumbers.setter
+ def autotypenumbers(self, val):
+ self["autotypenumbers"] = val
+
+ @property
+ def backgroundcolor(self):
+ """
+ Sets the background color of this axis' wall.
+
+ The 'backgroundcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["backgroundcolor"]
+
+ @backgroundcolor.setter
+ def backgroundcolor(self, val):
+ self["backgroundcolor"] = val
+
+ @property
+ def calendar(self):
+ """
+ Sets the calendar system to use for `range` and `tick0` if this
+ is a date axis. This does not set the calendar for interpreting
+ data on this axis, that's specified in the trace or via the
+ global `layout.calendar`
+
+ The 'calendar' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['chinese', 'coptic', 'discworld', 'ethiopian',
+ 'gregorian', 'hebrew', 'islamic', 'jalali', 'julian',
+ 'mayan', 'nanakshahi', 'nepali', 'persian', 'taiwan',
+ 'thai', 'ummalqura']
+
+ Returns
+ -------
+ Any
+ """
+ return self["calendar"]
+
+ @calendar.setter
+ def calendar(self, val):
+ self["calendar"] = val
+
+ @property
+ def categoryarray(self):
+ """
+ Sets the order in which categories on this axis appear. Only
+ has an effect if `categoryorder` is set to "array". Used with
+ `categoryorder`.
+
+ The 'categoryarray' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["categoryarray"]
+
+ @categoryarray.setter
+ def categoryarray(self, val):
+ self["categoryarray"] = val
+
+ @property
+ def categoryarraysrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for
+ `categoryarray`.
+
+ The 'categoryarraysrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["categoryarraysrc"]
+
+ @categoryarraysrc.setter
+ def categoryarraysrc(self, val):
+ self["categoryarraysrc"] = val
+
+ @property
+ def categoryorder(self):
+ """
+ Specifies the ordering logic for the case of categorical
+ variables. By default, plotly uses "trace", which specifies the
+ order that is present in the data supplied. Set `categoryorder`
+ to *category ascending* or *category descending* if order
+ should be determined by the alphanumerical order of the
+ category names. Set `categoryorder` to "array" to derive the
+ ordering from the attribute `categoryarray`. If a category is
+ not found in the `categoryarray` array, the sorting behavior
+ for that attribute will be identical to the "trace" mode. The
+ unspecified categories will follow the categories in
+ `categoryarray`. Set `categoryorder` to *total ascending* or
+ *total descending* if order should be determined by the
+ numerical order of the values. Similarly, the order can be
+ determined by the min, max, sum, mean, geometric mean or median
+ of all the values.
+
+ The 'categoryorder' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['trace', 'category ascending', 'category descending',
+ 'array', 'total ascending', 'total descending', 'min
+ ascending', 'min descending', 'max ascending', 'max
+ descending', 'sum ascending', 'sum descending', 'mean
+ ascending', 'mean descending', 'geometric mean ascending',
+ 'geometric mean descending', 'median ascending', 'median
+ descending']
+
+ Returns
+ -------
+ Any
+ """
+ return self["categoryorder"]
+
+ @categoryorder.setter
+ def categoryorder(self, val):
+ self["categoryorder"] = val
+
+ @property
+ def color(self):
+ """
+ Sets default for all colors associated with this axis all at
+ once: line, font, tick, and grid colors. Grid color is
+ lightened by blending this with the plot background Individual
+ pieces can override this.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def dtick(self):
+ """
+ Sets the step in-between ticks on this axis. Use with `tick0`.
+ Must be a positive number, or special strings available to
+ "log" and "date" axes. If the axis `type` is "log", then ticks
+ are set every 10^(n*dtick) where n is the tick number. For
+ example, to set a tick mark at 1, 10, 100, 1000, ... set dtick
+ to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2.
+ To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special values;
+ "L<f>", where `f` is a positive number, gives ticks linearly
+ spaced in value (but not position). For example `tick0` = 0.1,
+ `dtick` = "L0.5" will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To
+ show powers of 10 plus small digits between, use "D1" (all
+ digits) or "D2" (only 2 and 5). `tick0` is ignored for "D1" and
+ "D2". If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval between
+ ticks to one day, set `dtick` to 86400000.0. "date" also has
+ special values "M<n>" gives ticks spaced by a number of months.
+ `n` must be a positive integer. To set ticks on the 15th of
+ every third month, set `tick0` to "2000-01-15" and `dtick` to
+ "M3". To set ticks every 4 years, set `dtick` to "M48"
+
+ The 'dtick' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["dtick"]
+
+ @dtick.setter
+ def dtick(self, val):
+ self["dtick"] = val
+
+ @property
+ def exponentformat(self):
+ """
+ Determines a formatting rule for the tick exponents. For
+ example, consider the number 1,000,000,000. If "none", it
+ appears as 1,000,000,000. If "e", 1e+9. If "E", 1E+9. If
+ "power", 1x10^9 (with 9 in a super script). If "SI", 1G. If
+ "B", 1B.
+
+ The 'exponentformat' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['none', 'e', 'E', 'power', 'SI', 'B']
+
+ Returns
+ -------
+ Any
+ """
+ return self["exponentformat"]
+
+ @exponentformat.setter
+ def exponentformat(self, val):
+ self["exponentformat"] = val
+
+ @property
+ def gridcolor(self):
+ """
+ Sets the color of the grid lines.
+
+ The 'gridcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["gridcolor"]
+
+ @gridcolor.setter
+ def gridcolor(self, val):
+ self["gridcolor"] = val
+
+ @property
+ def gridwidth(self):
+ """
+ Sets the width (in px) of the grid lines.
+
+ The 'gridwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["gridwidth"]
+
+ @gridwidth.setter
+ def gridwidth(self, val):
+ self["gridwidth"] = val
+
+ @property
+ def hoverformat(self):
+ """
+ Sets the hover text formatting rule using d3 formatting mini-
+ languages which are very similar to those in Python. For
+ numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format. And for
+ dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to d3's date
+ formatter: "%h" for half of the year as a decimal number as
+ well as "%{n}f" for fractional seconds with n digits. For
+ example, *2016-10-13 09:15:23.456* with tickformat
+ "%H~%M~%S.%2f" would display "09~15~23.46"
+
+ The 'hoverformat' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["hoverformat"]
+
+ @hoverformat.setter
+ def hoverformat(self, val):
+ self["hoverformat"] = val
+
+ @property
+ def labelalias(self):
+ """
+ Replacement text for specific tick or hover labels. For example
+ using {US: 'USA', CA: 'Canada'} changes US to USA and CA to
+ Canada. The labels we would have shown must match the keys
+ exactly, after adding any tickprefix or ticksuffix. For
+ negative numbers the minus sign symbol used (U+2212) is wider
+ than the regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis type, and
+ both keys (if needed) and values (if desired) can include html-
+ like tags or MathJax.
+
+ The 'labelalias' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["labelalias"]
+
+ @labelalias.setter
+ def labelalias(self, val):
+ self["labelalias"] = val
+
+ @property
+ def linecolor(self):
+ """
+ Sets the axis line color.
+
+ The 'linecolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["linecolor"]
+
+ @linecolor.setter
+ def linecolor(self, val):
+ self["linecolor"] = val
+
+ @property
+ def linewidth(self):
+ """
+ Sets the width (in px) of the axis line.
+
+ The 'linewidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["linewidth"]
+
+ @linewidth.setter
+ def linewidth(self, val):
+ self["linewidth"] = val
+
+ @property
+ def maxallowed(self):
+ """
+ Determines the maximum range of this axis.
+
+ The 'maxallowed' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["maxallowed"]
+
+ @maxallowed.setter
+ def maxallowed(self, val):
+ self["maxallowed"] = val
+
+ @property
+ def minallowed(self):
+ """
+ Determines the minimum range of this axis.
+
+ The 'minallowed' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["minallowed"]
+
+ @minallowed.setter
+ def minallowed(self, val):
+ self["minallowed"] = val
+
+ @property
+ def minexponent(self):
+ """
+ Hide SI prefix for 10^n if |n| is below this number. This only
+ has an effect when `tickformat` is "SI" or "B".
+
+ The 'minexponent' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["minexponent"]
+
+ @minexponent.setter
+ def minexponent(self, val):
+ self["minexponent"] = val
+
+ @property
+ def mirror(self):
+ """
+ Determines if the axis lines or/and ticks are mirrored to the
+ opposite side of the plotting area. If True, the axis lines are
+ mirrored. If "ticks", the axis lines and ticks are mirrored. If
+ False, mirroring is disable. If "all", axis lines are mirrored
+ on all shared-axes subplots. If "allticks", axis lines and
+ ticks are mirrored on all shared-axes subplots.
+
+ The 'mirror' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ [True, 'ticks', False, 'all', 'allticks']
+
+ Returns
+ -------
+ Any
+ """
+ return self["mirror"]
+
+ @mirror.setter
+ def mirror(self, val):
+ self["mirror"] = val
+
+ @property
+ def nticks(self):
+ """
+ Specifies the maximum number of ticks for the particular axis.
+ The actual number of ticks will be chosen automatically to be
+ less than or equal to `nticks`. Has an effect only if
+ `tickmode` is set to "auto".
+
+ The 'nticks' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [0, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["nticks"]
+
+ @nticks.setter
+ def nticks(self, val):
+ self["nticks"] = val
+
+ @property
+ def range(self):
+ """
+ Sets the range of this axis. If the axis `type` is "log", then
+ you must take the log of your desired range (e.g. to set the
+ range from 1 to 100, set the range from 0 to 2). If the axis
+ `type` is "date", it should be date strings, like date data,
+ though Date objects and unix milliseconds will be accepted and
+ converted to strings. If the axis `type` is "category", it
+ should be numbers, using the scale where each category is
+ assigned a serial number from zero in the order it appears.
+ Leaving either or both elements `null` impacts the default
+ `autorange`.
+
+ The 'range' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'range[0]' property accepts values of any type
+ (1) The 'range[1]' property accepts values of any type
+
+ Returns
+ -------
+ list
+ """
+ return self["range"]
+
+ @range.setter
+ def range(self, val):
+ self["range"] = val
+
+ @property
+ def rangemode(self):
+ """
+ If "normal", the range is computed in relation to the extrema
+ of the input data. If "tozero", the range extends to 0,
+ regardless of the input data If "nonnegative", the range is
+ non-negative, regardless of the input data. Applies only to
+ linear axes.
+
+ The 'rangemode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'tozero', 'nonnegative']
+
+ Returns
+ -------
+ Any
+ """
+ return self["rangemode"]
+
+ @rangemode.setter
+ def rangemode(self, val):
+ self["rangemode"] = val
+
+ @property
+ def separatethousands(self):
+ """
+ If "true", even 4-digit integers are separated
+
+ The 'separatethousands' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["separatethousands"]
+
+ @separatethousands.setter
+ def separatethousands(self, val):
+ self["separatethousands"] = val
+
+ @property
+ def showaxeslabels(self):
+ """
+ Sets whether or not this axis is labeled
+
+ The 'showaxeslabels' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showaxeslabels"]
+
+ @showaxeslabels.setter
+ def showaxeslabels(self, val):
+ self["showaxeslabels"] = val
+
+ @property
+ def showbackground(self):
+ """
+ Sets whether or not this axis' wall has a background color.
+
+ The 'showbackground' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showbackground"]
+
+ @showbackground.setter
+ def showbackground(self, val):
+ self["showbackground"] = val
+
+ @property
+ def showexponent(self):
+ """
+ If "all", all exponents are shown besides their significands.
+ If "first", only the exponent of the first tick is shown. If
+ "last", only the exponent of the last tick is shown. If "none",
+ no exponents appear.
+
+ The 'showexponent' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showexponent"]
+
+ @showexponent.setter
+ def showexponent(self, val):
+ self["showexponent"] = val
+
+ @property
+ def showgrid(self):
+ """
+ Determines whether or not grid lines are drawn. If True, the
+ grid lines are drawn at every tick mark.
+
+ The 'showgrid' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showgrid"]
+
+ @showgrid.setter
+ def showgrid(self, val):
+ self["showgrid"] = val
+
+ @property
+ def showline(self):
+ """
+ Determines whether or not a line bounding this axis is drawn.
+
+ The 'showline' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showline"]
+
+ @showline.setter
+ def showline(self, val):
+ self["showline"] = val
+
+ @property
+ def showspikes(self):
+ """
+ Sets whether or not spikes starting from data points to this
+ axis' wall are shown on hover.
+
+ The 'showspikes' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showspikes"]
+
+ @showspikes.setter
+ def showspikes(self, val):
+ self["showspikes"] = val
+
+ @property
+ def showticklabels(self):
+ """
+ Determines whether or not the tick labels are drawn.
+
+ The 'showticklabels' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showticklabels"]
+
+ @showticklabels.setter
+ def showticklabels(self, val):
+ self["showticklabels"] = val
+
+ @property
+ def showtickprefix(self):
+ """
+ If "all", all tick labels are displayed with a prefix. If
+ "first", only the first tick is displayed with a prefix. If
+ "last", only the last tick is displayed with a suffix. If
+ "none", tick prefixes are hidden.
+
+ The 'showtickprefix' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showtickprefix"]
+
+ @showtickprefix.setter
+ def showtickprefix(self, val):
+ self["showtickprefix"] = val
+
+ @property
+ def showticksuffix(self):
+ """
+ Same as `showtickprefix` but for tick suffixes.
+
+ The 'showticksuffix' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showticksuffix"]
+
+ @showticksuffix.setter
+ def showticksuffix(self, val):
+ self["showticksuffix"] = val
+
+ @property
+ def spikecolor(self):
+ """
+ Sets the color of the spikes.
+
+ The 'spikecolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["spikecolor"]
+
+ @spikecolor.setter
+ def spikecolor(self, val):
+ self["spikecolor"] = val
+
+ @property
+ def spikesides(self):
+ """
+ Sets whether or not spikes extending from the projection data
+ points to this axis' wall boundaries are shown on hover.
+
+ The 'spikesides' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["spikesides"]
+
+ @spikesides.setter
+ def spikesides(self, val):
+ self["spikesides"] = val
+
+ @property
+ def spikethickness(self):
+ """
+ Sets the thickness (in px) of the spikes.
+
+ The 'spikethickness' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["spikethickness"]
+
+ @spikethickness.setter
+ def spikethickness(self, val):
+ self["spikethickness"] = val
+
+ @property
+ def tick0(self):
+ """
+ Sets the placement of the first tick on this axis. Use with
+ `dtick`. If the axis `type` is "log", then you must take the
+ log of your starting tick (e.g. to set the starting tick to
+ 100, set the `tick0` to 2) except when `dtick`=*L<f>* (see
+ `dtick` for more info). If the axis `type` is "date", it should
+ be a date string, like date data. If the axis `type` is
+ "category", it should be a number, using the scale where each
+ category is assigned a serial number from zero in the order it
+ appears.
+
+ The 'tick0' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["tick0"]
+
+ @tick0.setter
+ def tick0(self, val):
+ self["tick0"] = val
+
+ @property
+ def tickangle(self):
+ """
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the tick
+ labels vertically.
+
+ The 'tickangle' property is a angle (in degrees) that may be
+ specified as a number between -180 and 180.
+ Numeric values outside this range are converted to the equivalent value
+ (e.g. 270 is converted to -90).
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tickangle"]
+
+ @tickangle.setter
+ def tickangle(self, val):
+ self["tickangle"] = val
+
+ @property
+ def tickcolor(self):
+ """
+ Sets the tick color.
+
+ The 'tickcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["tickcolor"]
+
+ @tickcolor.setter
+ def tickcolor(self, val):
+ self["tickcolor"] = val
+
+ @property
+ def tickfont(self):
+ """
+ Sets the tick font.
+
+ The 'tickfont' property is an instance of Tickfont
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.scene.yaxis.Tickfont`
+ - A dict of string/value properties that will be passed
+ to the Tickfont constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.scene.yaxis.Tickfont
+ """
+ return self["tickfont"]
+
+ @tickfont.setter
+ def tickfont(self, val):
+ self["tickfont"] = val
+
+ @property
+ def tickformat(self):
+ """
+ Sets the tick label formatting rule using d3 formatting mini-
+ languages which are very similar to those in Python. For
+ numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format. And for
+ dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to d3's date
+ formatter: "%h" for half of the year as a decimal number as
+ well as "%{n}f" for fractional seconds with n digits. For
+ example, *2016-10-13 09:15:23.456* with tickformat
+ "%H~%M~%S.%2f" would display "09~15~23.46"
+
+ The 'tickformat' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["tickformat"]
+
+ @tickformat.setter
+ def tickformat(self, val):
+ self["tickformat"] = val
+
+ @property
+ def tickformatstops(self):
+ """
+ The 'tickformatstops' property is a tuple of instances of
+ Tickformatstop that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.scene.yaxis.Tickformatstop
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Tickformatstop constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.scene.yaxis.Tickformatstop]
+ """
+ return self["tickformatstops"]
+
+ @tickformatstops.setter
+ def tickformatstops(self, val):
+ self["tickformatstops"] = val
+
+ @property
+ def tickformatstopdefaults(self):
+ """
+ When used in a template (as
+ layout.template.layout.scene.yaxis.tickformatstopdefaults),
+ sets the default property values to use for elements of
+ layout.scene.yaxis.tickformatstops
+
+ The 'tickformatstopdefaults' property is an instance of Tickformatstop
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.scene.yaxis.Tickformatstop`
+ - A dict of string/value properties that will be passed
+ to the Tickformatstop constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.scene.yaxis.Tickformatstop
+ """
+ return self["tickformatstopdefaults"]
+
+ @tickformatstopdefaults.setter
+ def tickformatstopdefaults(self, val):
+ self["tickformatstopdefaults"] = val
+
+ @property
+ def ticklen(self):
+ """
+ Sets the tick length (in px).
+
+ The 'ticklen' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["ticklen"]
+
+ @ticklen.setter
+ def ticklen(self, val):
+ self["ticklen"] = val
+
+ @property
+ def tickmode(self):
+ """
+ Sets the tick mode for this axis. If "auto", the number of
+ ticks is set via `nticks`. If "linear", the placement of the
+ ticks is determined by a starting position `tick0` and a tick
+ step `dtick` ("linear" is the default value if `tick0` and
+ `dtick` are provided). If "array", the placement of the ticks
+ is set via `tickvals` and the tick text is `ticktext`. ("array"
+ is the default value if `tickvals` is provided).
+
+ The 'tickmode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['auto', 'linear', 'array']
+
+ Returns
+ -------
+ Any
+ """
+ return self["tickmode"]
+
+ @tickmode.setter
+ def tickmode(self, val):
+ self["tickmode"] = val
+
+ @property
+ def tickprefix(self):
+ """
+ Sets a tick label prefix.
+
+ The 'tickprefix' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["tickprefix"]
+
+ @tickprefix.setter
+ def tickprefix(self, val):
+ self["tickprefix"] = val
+
+ @property
+ def ticks(self):
+ """
+ Determines whether ticks are drawn or not. If "", this axis'
+ ticks are not drawn. If "outside" ("inside"), this axis' are
+ drawn outside (inside) the axis lines.
+
+ The 'ticks' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['outside', 'inside', '']
+
+ Returns
+ -------
+ Any
+ """
+ return self["ticks"]
+
+ @ticks.setter
+ def ticks(self, val):
+ self["ticks"] = val
+
+ @property
+ def ticksuffix(self):
+ """
+ Sets a tick label suffix.
+
+ The 'ticksuffix' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["ticksuffix"]
+
+ @ticksuffix.setter
+ def ticksuffix(self, val):
+ self["ticksuffix"] = val
+
+ @property
+ def ticktext(self):
+ """
+ Sets the text displayed at the ticks position via `tickvals`.
+ Only has an effect if `tickmode` is set to "array". Used with
+ `tickvals`.
+
+ The 'ticktext' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["ticktext"]
+
+ @ticktext.setter
+ def ticktext(self, val):
+ self["ticktext"] = val
+
+ @property
+ def ticktextsrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `ticktext`.
+
+ The 'ticktextsrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["ticktextsrc"]
+
+ @ticktextsrc.setter
+ def ticktextsrc(self, val):
+ self["ticktextsrc"] = val
+
+ @property
+ def tickvals(self):
+ """
+ Sets the values at which ticks on this axis appear. Only has an
+ effect if `tickmode` is set to "array". Used with `ticktext`.
+
+ The 'tickvals' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["tickvals"]
+
+ @tickvals.setter
+ def tickvals(self, val):
+ self["tickvals"] = val
+
+ @property
+ def tickvalssrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `tickvals`.
+
+ The 'tickvalssrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["tickvalssrc"]
+
+ @tickvalssrc.setter
+ def tickvalssrc(self, val):
+ self["tickvalssrc"] = val
+
+ @property
+ def tickwidth(self):
+ """
+ Sets the tick width (in px).
+
+ The 'tickwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tickwidth"]
+
+ @tickwidth.setter
+ def tickwidth(self, val):
+ self["tickwidth"] = val
+
+ @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.scene.yaxis.Title`
+ - A dict of string/value properties that will be passed
+ to the Title constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.scene.yaxis.Title
+ """
+ return self["title"]
+
+ @title.setter
+ def title(self, val):
+ self["title"] = val
+
+ @property
+ def type(self):
+ """
+ Sets the axis type. By default, plotly attempts to determined
+ the axis type by looking into the data of the traces that
+ referenced the axis in question.
+
+ The 'type' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['-', 'linear', 'log', 'date', 'category']
+
+ Returns
+ -------
+ Any
+ """
+ return self["type"]
+
+ @type.setter
+ def type(self, val):
+ self["type"] = val
+
+ @property
+ def visible(self):
+ """
+ A single toggle to hide the axis while preserving interaction
+ like dragging. Default is true when a cheater plot is present
+ on the axis, otherwise false
+
+ The 'visible' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["visible"]
+
+ @visible.setter
+ def visible(self, val):
+ self["visible"] = val
+
+ @property
+ def zeroline(self):
+ """
+ Determines whether or not a line is drawn at along the 0 value
+ of this axis. If True, the zero line is drawn on top of the
+ grid lines.
+
+ The 'zeroline' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["zeroline"]
+
+ @zeroline.setter
+ def zeroline(self, val):
+ self["zeroline"] = val
+
+ @property
+ def zerolinecolor(self):
+ """
+ Sets the line color of the zero line.
+
+ The 'zerolinecolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["zerolinecolor"]
+
+ @zerolinecolor.setter
+ def zerolinecolor(self, val):
+ self["zerolinecolor"] = val
+
+ @property
+ def zerolinewidth(self):
+ """
+ Sets the width (in px) of the zero line.
+
+ The 'zerolinewidth' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["zerolinewidth"]
+
+ @zerolinewidth.setter
+ def zerolinewidth(self, val):
+ self["zerolinewidth"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ autorange
+ Determines whether or not the range of this axis is
+ computed in relation to the input data. See `rangemode`
+ for more info. If `range` is provided and it has a
+ value for both the lower and upper bound, `autorange`
+ is set to False. Using "min" applies autorange only to
+ set the minimum. Using "max" applies autorange only to
+ set the maximum. Using *min reversed* applies autorange
+ only to set the minimum on a reversed axis. Using *max
+ reversed* applies autorange only to set the maximum on
+ a reversed axis. Using "reversed" applies autorange on
+ both ends and reverses the axis direction.
+ autorangeoptions
+ :class:`plotly.graph_objects.layout.scene.yaxis.Autoran
+ geoptions` instance or dict with compatible properties
+ autotypenumbers
+ Using "strict" a numeric string in trace data is not
+ converted to a number. Using *convert types* a numeric
+ string in trace data may be treated as a number during
+ automatic axis `type` detection. Defaults to
+ layout.autotypenumbers.
+ backgroundcolor
+ Sets the background color of this axis' wall.
+ calendar
+ Sets the calendar system to use for `range` and `tick0`
+ if this is a date axis. This does not set the calendar
+ for interpreting data on this axis, that's specified in
+ the trace or via the global `layout.calendar`
+ categoryarray
+ Sets the order in which categories on this axis appear.
+ Only has an effect if `categoryorder` is set to
+ "array". Used with `categoryorder`.
+ categoryarraysrc
+ Sets the source reference on Chart Studio Cloud for
+ `categoryarray`.
+ categoryorder
+ Specifies the ordering logic for the case of
+ categorical variables. By default, plotly uses "trace",
+ which specifies the order that is present in the data
+ supplied. Set `categoryorder` to *category ascending*
+ or *category descending* if order should be determined
+ by the alphanumerical order of the category names. Set
+ `categoryorder` to "array" to derive the ordering from
+ the attribute `categoryarray`. If a category is not
+ found in the `categoryarray` array, the sorting
+ behavior for that attribute will be identical to the
+ "trace" mode. The unspecified categories will follow
+ the categories in `categoryarray`. Set `categoryorder`
+ to *total ascending* or *total descending* if order
+ should be determined by the numerical order of the
+ values. Similarly, the order can be determined by the
+ min, max, sum, mean, geometric mean or median of all
+ the values.
+ color
+ Sets default for all colors associated with this axis
+ all at once: line, font, tick, and grid colors. Grid
+ color is lightened by blending this with the plot
+ background Individual pieces can override this.
+ dtick
+ Sets the step in-between ticks on this axis. Use with
+ `tick0`. Must be a positive number, or special strings
+ available to "log" and "date" axes. If the axis `type`
+ is "log", then ticks are set every 10^(n*dtick) where n
+ is the tick number. For example, to set a tick mark at
+ 1, 10, 100, 1000, ... set dtick to 1. To set tick marks
+ at 1, 100, 10000, ... set dtick to 2. To set tick marks
+ at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special
+ values; "L<f>", where `f` is a positive number, gives
+ ticks linearly spaced in value (but not position). For
+ example `tick0` = 0.1, `dtick` = "L0.5" will put ticks
+ at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus
+ small digits between, use "D1" (all digits) or "D2"
+ (only 2 and 5). `tick0` is ignored for "D1" and "D2".
+ If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval
+ between ticks to one day, set `dtick` to 86400000.0.
+ "date" also has special values "M<n>" gives ticks
+ spaced by a number of months. `n` must be a positive
+ integer. To set ticks on the 15th of every third month,
+ set `tick0` to "2000-01-15" and `dtick` to "M3". To set
+ ticks every 4 years, set `dtick` to "M48"
+ exponentformat
+ Determines a formatting rule for the tick exponents.
+ For example, consider the number 1,000,000,000. If
+ "none", it appears as 1,000,000,000. If "e", 1e+9. If
+ "E", 1E+9. If "power", 1x10^9 (with 9 in a super
+ script). If "SI", 1G. If "B", 1B.
+ gridcolor
+ Sets the color of the grid lines.
+ gridwidth
+ Sets the width (in px) of the grid lines.
+ hoverformat
+ Sets the hover text formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ labelalias
+ Replacement text for specific tick or hover labels. For
+ example using {US: 'USA', CA: 'Canada'} changes US to
+ USA and CA to Canada. The labels we would have shown
+ must match the keys exactly, after adding any
+ tickprefix or ticksuffix. For negative numbers the
+ minus sign symbol used (U+2212) is wider than the
+ regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis
+ type, and both keys (if needed) and values (if desired)
+ can include html-like tags or MathJax.
+ linecolor
+ Sets the axis line color.
+ linewidth
+ Sets the width (in px) of the axis line.
+ maxallowed
+ Determines the maximum range of this axis.
+ minallowed
+ Determines the minimum range of this axis.
+ minexponent
+ Hide SI prefix for 10^n if |n| is below this number.
+ This only has an effect when `tickformat` is "SI" or
+ "B".
+ mirror
+ Determines if the axis lines or/and ticks are mirrored
+ to the opposite side of the plotting area. If True, the
+ axis lines are mirrored. If "ticks", the axis lines and
+ ticks are mirrored. If False, mirroring is disable. If
+ "all", axis lines are mirrored on all shared-axes
+ subplots. If "allticks", axis lines and ticks are
+ mirrored on all shared-axes subplots.
+ nticks
+ Specifies the maximum number of ticks for the
+ particular axis. The actual number of ticks will be
+ chosen automatically to be less than or equal to
+ `nticks`. Has an effect only if `tickmode` is set to
+ "auto".
+ range
+ Sets the range of this axis. If the axis `type` is
+ "log", then you must take the log of your desired range
+ (e.g. to set the range from 1 to 100, set the range
+ from 0 to 2). If the axis `type` is "date", it should
+ be date strings, like date data, though Date objects
+ and unix milliseconds will be accepted and converted to
+ strings. If the axis `type` is "category", it should be
+ numbers, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears. Leaving either or both elements `null` impacts
+ the default `autorange`.
+ rangemode
+ If "normal", the range is computed in relation to the
+ extrema of the input data. If "tozero", the range
+ extends to 0, regardless of the input data If
+ "nonnegative", the range is non-negative, regardless of
+ the input data. Applies only to linear axes.
+ separatethousands
+ If "true", even 4-digit integers are separated
+ showaxeslabels
+ Sets whether or not this axis is labeled
+ showbackground
+ Sets whether or not this axis' wall has a background
+ color.
+ showexponent
+ If "all", all exponents are shown besides their
+ significands. If "first", only the exponent of the
+ first tick is shown. If "last", only the exponent of
+ the last tick is shown. If "none", no exponents appear.
+ showgrid
+ Determines whether or not grid lines are drawn. If
+ True, the grid lines are drawn at every tick mark.
+ showline
+ Determines whether or not a line bounding this axis is
+ drawn.
+ showspikes
+ Sets whether or not spikes starting from data points to
+ this axis' wall are shown on hover.
+ showticklabels
+ Determines whether or not the tick labels are drawn.
+ showtickprefix
+ If "all", all tick labels are displayed with a prefix.
+ If "first", only the first tick is displayed with a
+ prefix. If "last", only the last tick is displayed with
+ a suffix. If "none", tick prefixes are hidden.
+ showticksuffix
+ Same as `showtickprefix` but for tick suffixes.
+ spikecolor
+ Sets the color of the spikes.
+ spikesides
+ Sets whether or not spikes extending from the
+ projection data points to this axis' wall boundaries
+ are shown on hover.
+ spikethickness
+ Sets the thickness (in px) of the spikes.
+ tick0
+ Sets the placement of the first tick on this axis. Use
+ with `dtick`. If the axis `type` is "log", then you
+ must take the log of your starting tick (e.g. to set
+ the starting tick to 100, set the `tick0` to 2) except
+ when `dtick`=*L<f>* (see `dtick` for more info). If the
+ axis `type` is "date", it should be a date string, like
+ date data. If the axis `type` is "category", it should
+ be a number, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears.
+ tickangle
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the
+ tick labels vertically.
+ tickcolor
+ Sets the tick color.
+ tickfont
+ Sets the tick font.
+ tickformat
+ Sets the tick label formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ tickformatstops
+ A tuple of :class:`plotly.graph_objects.layout.scene.ya
+ xis.Tickformatstop` instances or dicts with compatible
+ properties
+ tickformatstopdefaults
+ When used in a template (as layout.template.layout.scen
+ e.yaxis.tickformatstopdefaults), sets the default
+ property values to use for elements of
+ layout.scene.yaxis.tickformatstops
+ ticklen
+ Sets the tick length (in px).
+ tickmode
+ Sets the tick mode for this axis. If "auto", the number
+ of ticks is set via `nticks`. If "linear", the
+ placement of the ticks is determined by a starting
+ position `tick0` and a tick step `dtick` ("linear" is
+ the default value if `tick0` and `dtick` are provided).
+ If "array", the placement of the ticks is set via
+ `tickvals` and the tick text is `ticktext`. ("array" is
+ the default value if `tickvals` is provided).
+ tickprefix
+ Sets a tick label prefix.
+ ticks
+ Determines whether ticks are drawn or not. If "", this
+ axis' ticks are not drawn. If "outside" ("inside"),
+ this axis' are drawn outside (inside) the axis lines.
+ ticksuffix
+ Sets a tick label suffix.
+ ticktext
+ Sets the text displayed at the ticks position via
+ `tickvals`. Only has an effect if `tickmode` is set to
+ "array". Used with `tickvals`.
+ ticktextsrc
+ Sets the source reference on Chart Studio Cloud for
+ `ticktext`.
+ tickvals
+ Sets the values at which ticks on this axis appear.
+ Only has an effect if `tickmode` is set to "array".
+ Used with `ticktext`.
+ tickvalssrc
+ Sets the source reference on Chart Studio Cloud for
+ `tickvals`.
+ tickwidth
+ Sets the tick width (in px).
+ title
+ :class:`plotly.graph_objects.layout.scene.yaxis.Title`
+ instance or dict with compatible properties
+ type
+ Sets the axis type. By default, plotly attempts to
+ determined the axis type by looking into the data of
+ the traces that referenced the axis in question.
+ visible
+ A single toggle to hide the axis while preserving
+ interaction like dragging. Default is true when a
+ cheater plot is present on the axis, otherwise false
+ zeroline
+ Determines whether or not a line is drawn at along the
+ 0 value of this axis. If True, the zero line is drawn
+ on top of the grid lines.
+ zerolinecolor
+ Sets the line color of the zero line.
+ zerolinewidth
+ Sets the width (in px) of the zero line.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ autorange=None,
+ autorangeoptions=None,
+ autotypenumbers=None,
+ backgroundcolor=None,
+ calendar=None,
+ categoryarray=None,
+ categoryarraysrc=None,
+ categoryorder=None,
+ color=None,
+ dtick=None,
+ exponentformat=None,
+ gridcolor=None,
+ gridwidth=None,
+ hoverformat=None,
+ labelalias=None,
+ linecolor=None,
+ linewidth=None,
+ maxallowed=None,
+ minallowed=None,
+ minexponent=None,
+ mirror=None,
+ nticks=None,
+ range=None,
+ rangemode=None,
+ separatethousands=None,
+ showaxeslabels=None,
+ showbackground=None,
+ showexponent=None,
+ showgrid=None,
+ showline=None,
+ showspikes=None,
+ showticklabels=None,
+ showtickprefix=None,
+ showticksuffix=None,
+ spikecolor=None,
+ spikesides=None,
+ spikethickness=None,
+ tick0=None,
+ tickangle=None,
+ tickcolor=None,
+ tickfont=None,
+ tickformat=None,
+ tickformatstops=None,
+ tickformatstopdefaults=None,
+ ticklen=None,
+ tickmode=None,
+ tickprefix=None,
+ ticks=None,
+ ticksuffix=None,
+ ticktext=None,
+ ticktextsrc=None,
+ tickvals=None,
+ tickvalssrc=None,
+ tickwidth=None,
+ title=None,
+ type=None,
+ visible=None,
+ zeroline=None,
+ zerolinecolor=None,
+ zerolinewidth=None,
+ **kwargs,
+ ):
+ """
+ Construct a new YAxis object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.scene.YAxis`
+ autorange
+ Determines whether or not the range of this axis is
+ computed in relation to the input data. See `rangemode`
+ for more info. If `range` is provided and it has a
+ value for both the lower and upper bound, `autorange`
+ is set to False. Using "min" applies autorange only to
+ set the minimum. Using "max" applies autorange only to
+ set the maximum. Using *min reversed* applies autorange
+ only to set the minimum on a reversed axis. Using *max
+ reversed* applies autorange only to set the maximum on
+ a reversed axis. Using "reversed" applies autorange on
+ both ends and reverses the axis direction.
+ autorangeoptions
+ :class:`plotly.graph_objects.layout.scene.yaxis.Autoran
+ geoptions` instance or dict with compatible properties
+ autotypenumbers
+ Using "strict" a numeric string in trace data is not
+ converted to a number. Using *convert types* a numeric
+ string in trace data may be treated as a number during
+ automatic axis `type` detection. Defaults to
+ layout.autotypenumbers.
+ backgroundcolor
+ Sets the background color of this axis' wall.
+ calendar
+ Sets the calendar system to use for `range` and `tick0`
+ if this is a date axis. This does not set the calendar
+ for interpreting data on this axis, that's specified in
+ the trace or via the global `layout.calendar`
+ categoryarray
+ Sets the order in which categories on this axis appear.
+ Only has an effect if `categoryorder` is set to
+ "array". Used with `categoryorder`.
+ categoryarraysrc
+ Sets the source reference on Chart Studio Cloud for
+ `categoryarray`.
+ categoryorder
+ Specifies the ordering logic for the case of
+ categorical variables. By default, plotly uses "trace",
+ which specifies the order that is present in the data
+ supplied. Set `categoryorder` to *category ascending*
+ or *category descending* if order should be determined
+ by the alphanumerical order of the category names. Set
+ `categoryorder` to "array" to derive the ordering from
+ the attribute `categoryarray`. If a category is not
+ found in the `categoryarray` array, the sorting
+ behavior for that attribute will be identical to the
+ "trace" mode. The unspecified categories will follow
+ the categories in `categoryarray`. Set `categoryorder`
+ to *total ascending* or *total descending* if order
+ should be determined by the numerical order of the
+ values. Similarly, the order can be determined by the
+ min, max, sum, mean, geometric mean or median of all
+ the values.
+ color
+ Sets default for all colors associated with this axis
+ all at once: line, font, tick, and grid colors. Grid
+ color is lightened by blending this with the plot
+ background Individual pieces can override this.
+ dtick
+ Sets the step in-between ticks on this axis. Use with
+ `tick0`. Must be a positive number, or special strings
+ available to "log" and "date" axes. If the axis `type`
+ is "log", then ticks are set every 10^(n*dtick) where n
+ is the tick number. For example, to set a tick mark at
+ 1, 10, 100, 1000, ... set dtick to 1. To set tick marks
+ at 1, 100, 10000, ... set dtick to 2. To set tick marks
+ at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special
+ values; "L<f>", where `f` is a positive number, gives
+ ticks linearly spaced in value (but not position). For
+ example `tick0` = 0.1, `dtick` = "L0.5" will put ticks
+ at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus
+ small digits between, use "D1" (all digits) or "D2"
+ (only 2 and 5). `tick0` is ignored for "D1" and "D2".
+ If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval
+ between ticks to one day, set `dtick` to 86400000.0.
+ "date" also has special values "M<n>" gives ticks
+ spaced by a number of months. `n` must be a positive
+ integer. To set ticks on the 15th of every third month,
+ set `tick0` to "2000-01-15" and `dtick` to "M3". To set
+ ticks every 4 years, set `dtick` to "M48"
+ exponentformat
+ Determines a formatting rule for the tick exponents.
+ For example, consider the number 1,000,000,000. If
+ "none", it appears as 1,000,000,000. If "e", 1e+9. If
+ "E", 1E+9. If "power", 1x10^9 (with 9 in a super
+ script). If "SI", 1G. If "B", 1B.
+ gridcolor
+ Sets the color of the grid lines.
+ gridwidth
+ Sets the width (in px) of the grid lines.
+ hoverformat
+ Sets the hover text formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ labelalias
+ Replacement text for specific tick or hover labels. For
+ example using {US: 'USA', CA: 'Canada'} changes US to
+ USA and CA to Canada. The labels we would have shown
+ must match the keys exactly, after adding any
+ tickprefix or ticksuffix. For negative numbers the
+ minus sign symbol used (U+2212) is wider than the
+ regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis
+ type, and both keys (if needed) and values (if desired)
+ can include html-like tags or MathJax.
+ linecolor
+ Sets the axis line color.
+ linewidth
+ Sets the width (in px) of the axis line.
+ maxallowed
+ Determines the maximum range of this axis.
+ minallowed
+ Determines the minimum range of this axis.
+ minexponent
+ Hide SI prefix for 10^n if |n| is below this number.
+ This only has an effect when `tickformat` is "SI" or
+ "B".
+ mirror
+ Determines if the axis lines or/and ticks are mirrored
+ to the opposite side of the plotting area. If True, the
+ axis lines are mirrored. If "ticks", the axis lines and
+ ticks are mirrored. If False, mirroring is disable. If
+ "all", axis lines are mirrored on all shared-axes
+ subplots. If "allticks", axis lines and ticks are
+ mirrored on all shared-axes subplots.
+ nticks
+ Specifies the maximum number of ticks for the
+ particular axis. The actual number of ticks will be
+ chosen automatically to be less than or equal to
+ `nticks`. Has an effect only if `tickmode` is set to
+ "auto".
+ range
+ Sets the range of this axis. If the axis `type` is
+ "log", then you must take the log of your desired range
+ (e.g. to set the range from 1 to 100, set the range
+ from 0 to 2). If the axis `type` is "date", it should
+ be date strings, like date data, though Date objects
+ and unix milliseconds will be accepted and converted to
+ strings. If the axis `type` is "category", it should be
+ numbers, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears. Leaving either or both elements `null` impacts
+ the default `autorange`.
+ rangemode
+ If "normal", the range is computed in relation to the
+ extrema of the input data. If "tozero", the range
+ extends to 0, regardless of the input data If
+ "nonnegative", the range is non-negative, regardless of
+ the input data. Applies only to linear axes.
+ separatethousands
+ If "true", even 4-digit integers are separated
+ showaxeslabels
+ Sets whether or not this axis is labeled
+ showbackground
+ Sets whether or not this axis' wall has a background
+ color.
+ showexponent
+ If "all", all exponents are shown besides their
+ significands. If "first", only the exponent of the
+ first tick is shown. If "last", only the exponent of
+ the last tick is shown. If "none", no exponents appear.
+ showgrid
+ Determines whether or not grid lines are drawn. If
+ True, the grid lines are drawn at every tick mark.
+ showline
+ Determines whether or not a line bounding this axis is
+ drawn.
+ showspikes
+ Sets whether or not spikes starting from data points to
+ this axis' wall are shown on hover.
+ showticklabels
+ Determines whether or not the tick labels are drawn.
+ showtickprefix
+ If "all", all tick labels are displayed with a prefix.
+ If "first", only the first tick is displayed with a
+ prefix. If "last", only the last tick is displayed with
+ a suffix. If "none", tick prefixes are hidden.
+ showticksuffix
+ Same as `showtickprefix` but for tick suffixes.
+ spikecolor
+ Sets the color of the spikes.
+ spikesides
+ Sets whether or not spikes extending from the
+ projection data points to this axis' wall boundaries
+ are shown on hover.
+ spikethickness
+ Sets the thickness (in px) of the spikes.
+ tick0
+ Sets the placement of the first tick on this axis. Use
+ with `dtick`. If the axis `type` is "log", then you
+ must take the log of your starting tick (e.g. to set
+ the starting tick to 100, set the `tick0` to 2) except
+ when `dtick`=*L<f>* (see `dtick` for more info). If the
+ axis `type` is "date", it should be a date string, like
+ date data. If the axis `type` is "category", it should
+ be a number, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears.
+ tickangle
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the
+ tick labels vertically.
+ tickcolor
+ Sets the tick color.
+ tickfont
+ Sets the tick font.
+ tickformat
+ Sets the tick label formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ tickformatstops
+ A tuple of :class:`plotly.graph_objects.layout.scene.ya
+ xis.Tickformatstop` instances or dicts with compatible
+ properties
+ tickformatstopdefaults
+ When used in a template (as layout.template.layout.scen
+ e.yaxis.tickformatstopdefaults), sets the default
+ property values to use for elements of
+ layout.scene.yaxis.tickformatstops
+ ticklen
+ Sets the tick length (in px).
+ tickmode
+ Sets the tick mode for this axis. If "auto", the number
+ of ticks is set via `nticks`. If "linear", the
+ placement of the ticks is determined by a starting
+ position `tick0` and a tick step `dtick` ("linear" is
+ the default value if `tick0` and `dtick` are provided).
+ If "array", the placement of the ticks is set via
+ `tickvals` and the tick text is `ticktext`. ("array" is
+ the default value if `tickvals` is provided).
+ tickprefix
+ Sets a tick label prefix.
+ ticks
+ Determines whether ticks are drawn or not. If "", this
+ axis' ticks are not drawn. If "outside" ("inside"),
+ this axis' are drawn outside (inside) the axis lines.
+ ticksuffix
+ Sets a tick label suffix.
+ ticktext
+ Sets the text displayed at the ticks position via
+ `tickvals`. Only has an effect if `tickmode` is set to
+ "array". Used with `tickvals`.
+ ticktextsrc
+ Sets the source reference on Chart Studio Cloud for
+ `ticktext`.
+ tickvals
+ Sets the values at which ticks on this axis appear.
+ Only has an effect if `tickmode` is set to "array".
+ Used with `ticktext`.
+ tickvalssrc
+ Sets the source reference on Chart Studio Cloud for
+ `tickvals`.
+ tickwidth
+ Sets the tick width (in px).
+ title
+ :class:`plotly.graph_objects.layout.scene.yaxis.Title`
+ instance or dict with compatible properties
+ type
+ Sets the axis type. By default, plotly attempts to
+ determined the axis type by looking into the data of
+ the traces that referenced the axis in question.
+ visible
+ A single toggle to hide the axis while preserving
+ interaction like dragging. Default is true when a
+ cheater plot is present on the axis, otherwise false
+ zeroline
+ Determines whether or not a line is drawn at along the
+ 0 value of this axis. If True, the zero line is drawn
+ on top of the grid lines.
+ zerolinecolor
+ Sets the line color of the zero line.
+ zerolinewidth
+ Sets the width (in px) of the zero line.
+
+ Returns
+ -------
+ YAxis
+ """
+ super().__init__("yaxis")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.scene.YAxis
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.scene.YAxis`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("autorange", arg, autorange)
+ self._set_property("autorangeoptions", arg, autorangeoptions)
+ self._set_property("autotypenumbers", arg, autotypenumbers)
+ self._set_property("backgroundcolor", arg, backgroundcolor)
+ self._set_property("calendar", arg, calendar)
+ self._set_property("categoryarray", arg, categoryarray)
+ self._set_property("categoryarraysrc", arg, categoryarraysrc)
+ self._set_property("categoryorder", arg, categoryorder)
+ self._set_property("color", arg, color)
+ self._set_property("dtick", arg, dtick)
+ self._set_property("exponentformat", arg, exponentformat)
+ self._set_property("gridcolor", arg, gridcolor)
+ self._set_property("gridwidth", arg, gridwidth)
+ self._set_property("hoverformat", arg, hoverformat)
+ self._set_property("labelalias", arg, labelalias)
+ self._set_property("linecolor", arg, linecolor)
+ self._set_property("linewidth", arg, linewidth)
+ self._set_property("maxallowed", arg, maxallowed)
+ self._set_property("minallowed", arg, minallowed)
+ self._set_property("minexponent", arg, minexponent)
+ self._set_property("mirror", arg, mirror)
+ self._set_property("nticks", arg, nticks)
+ self._set_property("range", arg, range)
+ self._set_property("rangemode", arg, rangemode)
+ self._set_property("separatethousands", arg, separatethousands)
+ self._set_property("showaxeslabels", arg, showaxeslabels)
+ self._set_property("showbackground", arg, showbackground)
+ self._set_property("showexponent", arg, showexponent)
+ self._set_property("showgrid", arg, showgrid)
+ self._set_property("showline", arg, showline)
+ self._set_property("showspikes", arg, showspikes)
+ self._set_property("showticklabels", arg, showticklabels)
+ self._set_property("showtickprefix", arg, showtickprefix)
+ self._set_property("showticksuffix", arg, showticksuffix)
+ self._set_property("spikecolor", arg, spikecolor)
+ self._set_property("spikesides", arg, spikesides)
+ self._set_property("spikethickness", arg, spikethickness)
+ self._set_property("tick0", arg, tick0)
+ self._set_property("tickangle", arg, tickangle)
+ self._set_property("tickcolor", arg, tickcolor)
+ self._set_property("tickfont", arg, tickfont)
+ self._set_property("tickformat", arg, tickformat)
+ self._set_property("tickformatstops", arg, tickformatstops)
+ self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
+ self._set_property("ticklen", arg, ticklen)
+ self._set_property("tickmode", arg, tickmode)
+ self._set_property("tickprefix", arg, tickprefix)
+ self._set_property("ticks", arg, ticks)
+ self._set_property("ticksuffix", arg, ticksuffix)
+ self._set_property("ticktext", arg, ticktext)
+ self._set_property("ticktextsrc", arg, ticktextsrc)
+ self._set_property("tickvals", arg, tickvals)
+ self._set_property("tickvalssrc", arg, tickvalssrc)
+ self._set_property("tickwidth", arg, tickwidth)
+ self._set_property("title", arg, title)
+ self._set_property("type", arg, type)
+ self._set_property("visible", arg, visible)
+ self._set_property("zeroline", arg, zeroline)
+ self._set_property("zerolinecolor", arg, zerolinecolor)
+ self._set_property("zerolinewidth", arg, zerolinewidth)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/_zaxis.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/_zaxis.py
new file mode 100644
index 0000000..81936c6
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/_zaxis.py
@@ -0,0 +1,2111 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class ZAxis(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.scene"
+ _path_str = "layout.scene.zaxis"
+ _valid_props = {
+ "autorange",
+ "autorangeoptions",
+ "autotypenumbers",
+ "backgroundcolor",
+ "calendar",
+ "categoryarray",
+ "categoryarraysrc",
+ "categoryorder",
+ "color",
+ "dtick",
+ "exponentformat",
+ "gridcolor",
+ "gridwidth",
+ "hoverformat",
+ "labelalias",
+ "linecolor",
+ "linewidth",
+ "maxallowed",
+ "minallowed",
+ "minexponent",
+ "mirror",
+ "nticks",
+ "range",
+ "rangemode",
+ "separatethousands",
+ "showaxeslabels",
+ "showbackground",
+ "showexponent",
+ "showgrid",
+ "showline",
+ "showspikes",
+ "showticklabels",
+ "showtickprefix",
+ "showticksuffix",
+ "spikecolor",
+ "spikesides",
+ "spikethickness",
+ "tick0",
+ "tickangle",
+ "tickcolor",
+ "tickfont",
+ "tickformat",
+ "tickformatstopdefaults",
+ "tickformatstops",
+ "ticklen",
+ "tickmode",
+ "tickprefix",
+ "ticks",
+ "ticksuffix",
+ "ticktext",
+ "ticktextsrc",
+ "tickvals",
+ "tickvalssrc",
+ "tickwidth",
+ "title",
+ "type",
+ "visible",
+ "zeroline",
+ "zerolinecolor",
+ "zerolinewidth",
+ }
+
+ @property
+ def autorange(self):
+ """
+ Determines whether or not the range of this axis is computed in
+ relation to the input data. See `rangemode` for more info. If
+ `range` is provided and it has a value for both the lower and
+ upper bound, `autorange` is set to False. Using "min" applies
+ autorange only to set the minimum. Using "max" applies
+ autorange only to set the maximum. Using *min reversed* applies
+ autorange only to set the minimum on a reversed axis. Using
+ *max reversed* applies autorange only to set the maximum on a
+ reversed axis. Using "reversed" applies autorange on both ends
+ and reverses the axis direction.
+
+ The 'autorange' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ [True, False, 'reversed', 'min reversed', 'max reversed',
+ 'min', 'max']
+
+ Returns
+ -------
+ Any
+ """
+ return self["autorange"]
+
+ @autorange.setter
+ def autorange(self, val):
+ self["autorange"] = val
+
+ @property
+ def autorangeoptions(self):
+ """
+ The 'autorangeoptions' property is an instance of Autorangeoptions
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.scene.zaxis.Autorangeoptions`
+ - A dict of string/value properties that will be passed
+ to the Autorangeoptions constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.scene.zaxis.Autorangeoptions
+ """
+ return self["autorangeoptions"]
+
+ @autorangeoptions.setter
+ def autorangeoptions(self, val):
+ self["autorangeoptions"] = val
+
+ @property
+ def autotypenumbers(self):
+ """
+ Using "strict" a numeric string in trace data is not converted
+ to a number. Using *convert types* a numeric string in trace
+ data may be treated as a number during automatic axis `type`
+ detection. Defaults to layout.autotypenumbers.
+
+ The 'autotypenumbers' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['convert types', 'strict']
+
+ Returns
+ -------
+ Any
+ """
+ return self["autotypenumbers"]
+
+ @autotypenumbers.setter
+ def autotypenumbers(self, val):
+ self["autotypenumbers"] = val
+
+ @property
+ def backgroundcolor(self):
+ """
+ Sets the background color of this axis' wall.
+
+ The 'backgroundcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["backgroundcolor"]
+
+ @backgroundcolor.setter
+ def backgroundcolor(self, val):
+ self["backgroundcolor"] = val
+
+ @property
+ def calendar(self):
+ """
+ Sets the calendar system to use for `range` and `tick0` if this
+ is a date axis. This does not set the calendar for interpreting
+ data on this axis, that's specified in the trace or via the
+ global `layout.calendar`
+
+ The 'calendar' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['chinese', 'coptic', 'discworld', 'ethiopian',
+ 'gregorian', 'hebrew', 'islamic', 'jalali', 'julian',
+ 'mayan', 'nanakshahi', 'nepali', 'persian', 'taiwan',
+ 'thai', 'ummalqura']
+
+ Returns
+ -------
+ Any
+ """
+ return self["calendar"]
+
+ @calendar.setter
+ def calendar(self, val):
+ self["calendar"] = val
+
+ @property
+ def categoryarray(self):
+ """
+ Sets the order in which categories on this axis appear. Only
+ has an effect if `categoryorder` is set to "array". Used with
+ `categoryorder`.
+
+ The 'categoryarray' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["categoryarray"]
+
+ @categoryarray.setter
+ def categoryarray(self, val):
+ self["categoryarray"] = val
+
+ @property
+ def categoryarraysrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for
+ `categoryarray`.
+
+ The 'categoryarraysrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["categoryarraysrc"]
+
+ @categoryarraysrc.setter
+ def categoryarraysrc(self, val):
+ self["categoryarraysrc"] = val
+
+ @property
+ def categoryorder(self):
+ """
+ Specifies the ordering logic for the case of categorical
+ variables. By default, plotly uses "trace", which specifies the
+ order that is present in the data supplied. Set `categoryorder`
+ to *category ascending* or *category descending* if order
+ should be determined by the alphanumerical order of the
+ category names. Set `categoryorder` to "array" to derive the
+ ordering from the attribute `categoryarray`. If a category is
+ not found in the `categoryarray` array, the sorting behavior
+ for that attribute will be identical to the "trace" mode. The
+ unspecified categories will follow the categories in
+ `categoryarray`. Set `categoryorder` to *total ascending* or
+ *total descending* if order should be determined by the
+ numerical order of the values. Similarly, the order can be
+ determined by the min, max, sum, mean, geometric mean or median
+ of all the values.
+
+ The 'categoryorder' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['trace', 'category ascending', 'category descending',
+ 'array', 'total ascending', 'total descending', 'min
+ ascending', 'min descending', 'max ascending', 'max
+ descending', 'sum ascending', 'sum descending', 'mean
+ ascending', 'mean descending', 'geometric mean ascending',
+ 'geometric mean descending', 'median ascending', 'median
+ descending']
+
+ Returns
+ -------
+ Any
+ """
+ return self["categoryorder"]
+
+ @categoryorder.setter
+ def categoryorder(self, val):
+ self["categoryorder"] = val
+
+ @property
+ def color(self):
+ """
+ Sets default for all colors associated with this axis all at
+ once: line, font, tick, and grid colors. Grid color is
+ lightened by blending this with the plot background Individual
+ pieces can override this.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def dtick(self):
+ """
+ Sets the step in-between ticks on this axis. Use with `tick0`.
+ Must be a positive number, or special strings available to
+ "log" and "date" axes. If the axis `type` is "log", then ticks
+ are set every 10^(n*dtick) where n is the tick number. For
+ example, to set a tick mark at 1, 10, 100, 1000, ... set dtick
+ to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2.
+ To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special values;
+ "L<f>", where `f` is a positive number, gives ticks linearly
+ spaced in value (but not position). For example `tick0` = 0.1,
+ `dtick` = "L0.5" will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To
+ show powers of 10 plus small digits between, use "D1" (all
+ digits) or "D2" (only 2 and 5). `tick0` is ignored for "D1" and
+ "D2". If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval between
+ ticks to one day, set `dtick` to 86400000.0. "date" also has
+ special values "M<n>" gives ticks spaced by a number of months.
+ `n` must be a positive integer. To set ticks on the 15th of
+ every third month, set `tick0` to "2000-01-15" and `dtick` to
+ "M3". To set ticks every 4 years, set `dtick` to "M48"
+
+ The 'dtick' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["dtick"]
+
+ @dtick.setter
+ def dtick(self, val):
+ self["dtick"] = val
+
+ @property
+ def exponentformat(self):
+ """
+ Determines a formatting rule for the tick exponents. For
+ example, consider the number 1,000,000,000. If "none", it
+ appears as 1,000,000,000. If "e", 1e+9. If "E", 1E+9. If
+ "power", 1x10^9 (with 9 in a super script). If "SI", 1G. If
+ "B", 1B.
+
+ The 'exponentformat' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['none', 'e', 'E', 'power', 'SI', 'B']
+
+ Returns
+ -------
+ Any
+ """
+ return self["exponentformat"]
+
+ @exponentformat.setter
+ def exponentformat(self, val):
+ self["exponentformat"] = val
+
+ @property
+ def gridcolor(self):
+ """
+ Sets the color of the grid lines.
+
+ The 'gridcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["gridcolor"]
+
+ @gridcolor.setter
+ def gridcolor(self, val):
+ self["gridcolor"] = val
+
+ @property
+ def gridwidth(self):
+ """
+ Sets the width (in px) of the grid lines.
+
+ The 'gridwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["gridwidth"]
+
+ @gridwidth.setter
+ def gridwidth(self, val):
+ self["gridwidth"] = val
+
+ @property
+ def hoverformat(self):
+ """
+ Sets the hover text formatting rule using d3 formatting mini-
+ languages which are very similar to those in Python. For
+ numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format. And for
+ dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to d3's date
+ formatter: "%h" for half of the year as a decimal number as
+ well as "%{n}f" for fractional seconds with n digits. For
+ example, *2016-10-13 09:15:23.456* with tickformat
+ "%H~%M~%S.%2f" would display "09~15~23.46"
+
+ The 'hoverformat' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["hoverformat"]
+
+ @hoverformat.setter
+ def hoverformat(self, val):
+ self["hoverformat"] = val
+
+ @property
+ def labelalias(self):
+ """
+ Replacement text for specific tick or hover labels. For example
+ using {US: 'USA', CA: 'Canada'} changes US to USA and CA to
+ Canada. The labels we would have shown must match the keys
+ exactly, after adding any tickprefix or ticksuffix. For
+ negative numbers the minus sign symbol used (U+2212) is wider
+ than the regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis type, and
+ both keys (if needed) and values (if desired) can include html-
+ like tags or MathJax.
+
+ The 'labelalias' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["labelalias"]
+
+ @labelalias.setter
+ def labelalias(self, val):
+ self["labelalias"] = val
+
+ @property
+ def linecolor(self):
+ """
+ Sets the axis line color.
+
+ The 'linecolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["linecolor"]
+
+ @linecolor.setter
+ def linecolor(self, val):
+ self["linecolor"] = val
+
+ @property
+ def linewidth(self):
+ """
+ Sets the width (in px) of the axis line.
+
+ The 'linewidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["linewidth"]
+
+ @linewidth.setter
+ def linewidth(self, val):
+ self["linewidth"] = val
+
+ @property
+ def maxallowed(self):
+ """
+ Determines the maximum range of this axis.
+
+ The 'maxallowed' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["maxallowed"]
+
+ @maxallowed.setter
+ def maxallowed(self, val):
+ self["maxallowed"] = val
+
+ @property
+ def minallowed(self):
+ """
+ Determines the minimum range of this axis.
+
+ The 'minallowed' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["minallowed"]
+
+ @minallowed.setter
+ def minallowed(self, val):
+ self["minallowed"] = val
+
+ @property
+ def minexponent(self):
+ """
+ Hide SI prefix for 10^n if |n| is below this number. This only
+ has an effect when `tickformat` is "SI" or "B".
+
+ The 'minexponent' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["minexponent"]
+
+ @minexponent.setter
+ def minexponent(self, val):
+ self["minexponent"] = val
+
+ @property
+ def mirror(self):
+ """
+ Determines if the axis lines or/and ticks are mirrored to the
+ opposite side of the plotting area. If True, the axis lines are
+ mirrored. If "ticks", the axis lines and ticks are mirrored. If
+ False, mirroring is disable. If "all", axis lines are mirrored
+ on all shared-axes subplots. If "allticks", axis lines and
+ ticks are mirrored on all shared-axes subplots.
+
+ The 'mirror' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ [True, 'ticks', False, 'all', 'allticks']
+
+ Returns
+ -------
+ Any
+ """
+ return self["mirror"]
+
+ @mirror.setter
+ def mirror(self, val):
+ self["mirror"] = val
+
+ @property
+ def nticks(self):
+ """
+ Specifies the maximum number of ticks for the particular axis.
+ The actual number of ticks will be chosen automatically to be
+ less than or equal to `nticks`. Has an effect only if
+ `tickmode` is set to "auto".
+
+ The 'nticks' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [0, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["nticks"]
+
+ @nticks.setter
+ def nticks(self, val):
+ self["nticks"] = val
+
+ @property
+ def range(self):
+ """
+ Sets the range of this axis. If the axis `type` is "log", then
+ you must take the log of your desired range (e.g. to set the
+ range from 1 to 100, set the range from 0 to 2). If the axis
+ `type` is "date", it should be date strings, like date data,
+ though Date objects and unix milliseconds will be accepted and
+ converted to strings. If the axis `type` is "category", it
+ should be numbers, using the scale where each category is
+ assigned a serial number from zero in the order it appears.
+ Leaving either or both elements `null` impacts the default
+ `autorange`.
+
+ The 'range' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'range[0]' property accepts values of any type
+ (1) The 'range[1]' property accepts values of any type
+
+ Returns
+ -------
+ list
+ """
+ return self["range"]
+
+ @range.setter
+ def range(self, val):
+ self["range"] = val
+
+ @property
+ def rangemode(self):
+ """
+ If "normal", the range is computed in relation to the extrema
+ of the input data. If "tozero", the range extends to 0,
+ regardless of the input data If "nonnegative", the range is
+ non-negative, regardless of the input data. Applies only to
+ linear axes.
+
+ The 'rangemode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'tozero', 'nonnegative']
+
+ Returns
+ -------
+ Any
+ """
+ return self["rangemode"]
+
+ @rangemode.setter
+ def rangemode(self, val):
+ self["rangemode"] = val
+
+ @property
+ def separatethousands(self):
+ """
+ If "true", even 4-digit integers are separated
+
+ The 'separatethousands' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["separatethousands"]
+
+ @separatethousands.setter
+ def separatethousands(self, val):
+ self["separatethousands"] = val
+
+ @property
+ def showaxeslabels(self):
+ """
+ Sets whether or not this axis is labeled
+
+ The 'showaxeslabels' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showaxeslabels"]
+
+ @showaxeslabels.setter
+ def showaxeslabels(self, val):
+ self["showaxeslabels"] = val
+
+ @property
+ def showbackground(self):
+ """
+ Sets whether or not this axis' wall has a background color.
+
+ The 'showbackground' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showbackground"]
+
+ @showbackground.setter
+ def showbackground(self, val):
+ self["showbackground"] = val
+
+ @property
+ def showexponent(self):
+ """
+ If "all", all exponents are shown besides their significands.
+ If "first", only the exponent of the first tick is shown. If
+ "last", only the exponent of the last tick is shown. If "none",
+ no exponents appear.
+
+ The 'showexponent' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showexponent"]
+
+ @showexponent.setter
+ def showexponent(self, val):
+ self["showexponent"] = val
+
+ @property
+ def showgrid(self):
+ """
+ Determines whether or not grid lines are drawn. If True, the
+ grid lines are drawn at every tick mark.
+
+ The 'showgrid' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showgrid"]
+
+ @showgrid.setter
+ def showgrid(self, val):
+ self["showgrid"] = val
+
+ @property
+ def showline(self):
+ """
+ Determines whether or not a line bounding this axis is drawn.
+
+ The 'showline' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showline"]
+
+ @showline.setter
+ def showline(self, val):
+ self["showline"] = val
+
+ @property
+ def showspikes(self):
+ """
+ Sets whether or not spikes starting from data points to this
+ axis' wall are shown on hover.
+
+ The 'showspikes' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showspikes"]
+
+ @showspikes.setter
+ def showspikes(self, val):
+ self["showspikes"] = val
+
+ @property
+ def showticklabels(self):
+ """
+ Determines whether or not the tick labels are drawn.
+
+ The 'showticklabels' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showticklabels"]
+
+ @showticklabels.setter
+ def showticklabels(self, val):
+ self["showticklabels"] = val
+
+ @property
+ def showtickprefix(self):
+ """
+ If "all", all tick labels are displayed with a prefix. If
+ "first", only the first tick is displayed with a prefix. If
+ "last", only the last tick is displayed with a suffix. If
+ "none", tick prefixes are hidden.
+
+ The 'showtickprefix' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showtickprefix"]
+
+ @showtickprefix.setter
+ def showtickprefix(self, val):
+ self["showtickprefix"] = val
+
+ @property
+ def showticksuffix(self):
+ """
+ Same as `showtickprefix` but for tick suffixes.
+
+ The 'showticksuffix' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showticksuffix"]
+
+ @showticksuffix.setter
+ def showticksuffix(self, val):
+ self["showticksuffix"] = val
+
+ @property
+ def spikecolor(self):
+ """
+ Sets the color of the spikes.
+
+ The 'spikecolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["spikecolor"]
+
+ @spikecolor.setter
+ def spikecolor(self, val):
+ self["spikecolor"] = val
+
+ @property
+ def spikesides(self):
+ """
+ Sets whether or not spikes extending from the projection data
+ points to this axis' wall boundaries are shown on hover.
+
+ The 'spikesides' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["spikesides"]
+
+ @spikesides.setter
+ def spikesides(self, val):
+ self["spikesides"] = val
+
+ @property
+ def spikethickness(self):
+ """
+ Sets the thickness (in px) of the spikes.
+
+ The 'spikethickness' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["spikethickness"]
+
+ @spikethickness.setter
+ def spikethickness(self, val):
+ self["spikethickness"] = val
+
+ @property
+ def tick0(self):
+ """
+ Sets the placement of the first tick on this axis. Use with
+ `dtick`. If the axis `type` is "log", then you must take the
+ log of your starting tick (e.g. to set the starting tick to
+ 100, set the `tick0` to 2) except when `dtick`=*L<f>* (see
+ `dtick` for more info). If the axis `type` is "date", it should
+ be a date string, like date data. If the axis `type` is
+ "category", it should be a number, using the scale where each
+ category is assigned a serial number from zero in the order it
+ appears.
+
+ The 'tick0' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["tick0"]
+
+ @tick0.setter
+ def tick0(self, val):
+ self["tick0"] = val
+
+ @property
+ def tickangle(self):
+ """
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the tick
+ labels vertically.
+
+ The 'tickangle' property is a angle (in degrees) that may be
+ specified as a number between -180 and 180.
+ Numeric values outside this range are converted to the equivalent value
+ (e.g. 270 is converted to -90).
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tickangle"]
+
+ @tickangle.setter
+ def tickangle(self, val):
+ self["tickangle"] = val
+
+ @property
+ def tickcolor(self):
+ """
+ Sets the tick color.
+
+ The 'tickcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["tickcolor"]
+
+ @tickcolor.setter
+ def tickcolor(self, val):
+ self["tickcolor"] = val
+
+ @property
+ def tickfont(self):
+ """
+ Sets the tick font.
+
+ The 'tickfont' property is an instance of Tickfont
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.scene.zaxis.Tickfont`
+ - A dict of string/value properties that will be passed
+ to the Tickfont constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.scene.zaxis.Tickfont
+ """
+ return self["tickfont"]
+
+ @tickfont.setter
+ def tickfont(self, val):
+ self["tickfont"] = val
+
+ @property
+ def tickformat(self):
+ """
+ Sets the tick label formatting rule using d3 formatting mini-
+ languages which are very similar to those in Python. For
+ numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format. And for
+ dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to d3's date
+ formatter: "%h" for half of the year as a decimal number as
+ well as "%{n}f" for fractional seconds with n digits. For
+ example, *2016-10-13 09:15:23.456* with tickformat
+ "%H~%M~%S.%2f" would display "09~15~23.46"
+
+ The 'tickformat' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["tickformat"]
+
+ @tickformat.setter
+ def tickformat(self, val):
+ self["tickformat"] = val
+
+ @property
+ def tickformatstops(self):
+ """
+ The 'tickformatstops' property is a tuple of instances of
+ Tickformatstop that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.scene.zaxis.Tickformatstop
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Tickformatstop constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.scene.zaxis.Tickformatstop]
+ """
+ return self["tickformatstops"]
+
+ @tickformatstops.setter
+ def tickformatstops(self, val):
+ self["tickformatstops"] = val
+
+ @property
+ def tickformatstopdefaults(self):
+ """
+ When used in a template (as
+ layout.template.layout.scene.zaxis.tickformatstopdefaults),
+ sets the default property values to use for elements of
+ layout.scene.zaxis.tickformatstops
+
+ The 'tickformatstopdefaults' property is an instance of Tickformatstop
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.scene.zaxis.Tickformatstop`
+ - A dict of string/value properties that will be passed
+ to the Tickformatstop constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.scene.zaxis.Tickformatstop
+ """
+ return self["tickformatstopdefaults"]
+
+ @tickformatstopdefaults.setter
+ def tickformatstopdefaults(self, val):
+ self["tickformatstopdefaults"] = val
+
+ @property
+ def ticklen(self):
+ """
+ Sets the tick length (in px).
+
+ The 'ticklen' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["ticklen"]
+
+ @ticklen.setter
+ def ticklen(self, val):
+ self["ticklen"] = val
+
+ @property
+ def tickmode(self):
+ """
+ Sets the tick mode for this axis. If "auto", the number of
+ ticks is set via `nticks`. If "linear", the placement of the
+ ticks is determined by a starting position `tick0` and a tick
+ step `dtick` ("linear" is the default value if `tick0` and
+ `dtick` are provided). If "array", the placement of the ticks
+ is set via `tickvals` and the tick text is `ticktext`. ("array"
+ is the default value if `tickvals` is provided).
+
+ The 'tickmode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['auto', 'linear', 'array']
+
+ Returns
+ -------
+ Any
+ """
+ return self["tickmode"]
+
+ @tickmode.setter
+ def tickmode(self, val):
+ self["tickmode"] = val
+
+ @property
+ def tickprefix(self):
+ """
+ Sets a tick label prefix.
+
+ The 'tickprefix' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["tickprefix"]
+
+ @tickprefix.setter
+ def tickprefix(self, val):
+ self["tickprefix"] = val
+
+ @property
+ def ticks(self):
+ """
+ Determines whether ticks are drawn or not. If "", this axis'
+ ticks are not drawn. If "outside" ("inside"), this axis' are
+ drawn outside (inside) the axis lines.
+
+ The 'ticks' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['outside', 'inside', '']
+
+ Returns
+ -------
+ Any
+ """
+ return self["ticks"]
+
+ @ticks.setter
+ def ticks(self, val):
+ self["ticks"] = val
+
+ @property
+ def ticksuffix(self):
+ """
+ Sets a tick label suffix.
+
+ The 'ticksuffix' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["ticksuffix"]
+
+ @ticksuffix.setter
+ def ticksuffix(self, val):
+ self["ticksuffix"] = val
+
+ @property
+ def ticktext(self):
+ """
+ Sets the text displayed at the ticks position via `tickvals`.
+ Only has an effect if `tickmode` is set to "array". Used with
+ `tickvals`.
+
+ The 'ticktext' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["ticktext"]
+
+ @ticktext.setter
+ def ticktext(self, val):
+ self["ticktext"] = val
+
+ @property
+ def ticktextsrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `ticktext`.
+
+ The 'ticktextsrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["ticktextsrc"]
+
+ @ticktextsrc.setter
+ def ticktextsrc(self, val):
+ self["ticktextsrc"] = val
+
+ @property
+ def tickvals(self):
+ """
+ Sets the values at which ticks on this axis appear. Only has an
+ effect if `tickmode` is set to "array". Used with `ticktext`.
+
+ The 'tickvals' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["tickvals"]
+
+ @tickvals.setter
+ def tickvals(self, val):
+ self["tickvals"] = val
+
+ @property
+ def tickvalssrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `tickvals`.
+
+ The 'tickvalssrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["tickvalssrc"]
+
+ @tickvalssrc.setter
+ def tickvalssrc(self, val):
+ self["tickvalssrc"] = val
+
+ @property
+ def tickwidth(self):
+ """
+ Sets the tick width (in px).
+
+ The 'tickwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tickwidth"]
+
+ @tickwidth.setter
+ def tickwidth(self, val):
+ self["tickwidth"] = val
+
+ @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.scene.zaxis.Title`
+ - A dict of string/value properties that will be passed
+ to the Title constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.scene.zaxis.Title
+ """
+ return self["title"]
+
+ @title.setter
+ def title(self, val):
+ self["title"] = val
+
+ @property
+ def type(self):
+ """
+ Sets the axis type. By default, plotly attempts to determined
+ the axis type by looking into the data of the traces that
+ referenced the axis in question.
+
+ The 'type' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['-', 'linear', 'log', 'date', 'category']
+
+ Returns
+ -------
+ Any
+ """
+ return self["type"]
+
+ @type.setter
+ def type(self, val):
+ self["type"] = val
+
+ @property
+ def visible(self):
+ """
+ A single toggle to hide the axis while preserving interaction
+ like dragging. Default is true when a cheater plot is present
+ on the axis, otherwise false
+
+ The 'visible' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["visible"]
+
+ @visible.setter
+ def visible(self, val):
+ self["visible"] = val
+
+ @property
+ def zeroline(self):
+ """
+ Determines whether or not a line is drawn at along the 0 value
+ of this axis. If True, the zero line is drawn on top of the
+ grid lines.
+
+ The 'zeroline' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["zeroline"]
+
+ @zeroline.setter
+ def zeroline(self, val):
+ self["zeroline"] = val
+
+ @property
+ def zerolinecolor(self):
+ """
+ Sets the line color of the zero line.
+
+ The 'zerolinecolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["zerolinecolor"]
+
+ @zerolinecolor.setter
+ def zerolinecolor(self, val):
+ self["zerolinecolor"] = val
+
+ @property
+ def zerolinewidth(self):
+ """
+ Sets the width (in px) of the zero line.
+
+ The 'zerolinewidth' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["zerolinewidth"]
+
+ @zerolinewidth.setter
+ def zerolinewidth(self, val):
+ self["zerolinewidth"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ autorange
+ Determines whether or not the range of this axis is
+ computed in relation to the input data. See `rangemode`
+ for more info. If `range` is provided and it has a
+ value for both the lower and upper bound, `autorange`
+ is set to False. Using "min" applies autorange only to
+ set the minimum. Using "max" applies autorange only to
+ set the maximum. Using *min reversed* applies autorange
+ only to set the minimum on a reversed axis. Using *max
+ reversed* applies autorange only to set the maximum on
+ a reversed axis. Using "reversed" applies autorange on
+ both ends and reverses the axis direction.
+ autorangeoptions
+ :class:`plotly.graph_objects.layout.scene.zaxis.Autoran
+ geoptions` instance or dict with compatible properties
+ autotypenumbers
+ Using "strict" a numeric string in trace data is not
+ converted to a number. Using *convert types* a numeric
+ string in trace data may be treated as a number during
+ automatic axis `type` detection. Defaults to
+ layout.autotypenumbers.
+ backgroundcolor
+ Sets the background color of this axis' wall.
+ calendar
+ Sets the calendar system to use for `range` and `tick0`
+ if this is a date axis. This does not set the calendar
+ for interpreting data on this axis, that's specified in
+ the trace or via the global `layout.calendar`
+ categoryarray
+ Sets the order in which categories on this axis appear.
+ Only has an effect if `categoryorder` is set to
+ "array". Used with `categoryorder`.
+ categoryarraysrc
+ Sets the source reference on Chart Studio Cloud for
+ `categoryarray`.
+ categoryorder
+ Specifies the ordering logic for the case of
+ categorical variables. By default, plotly uses "trace",
+ which specifies the order that is present in the data
+ supplied. Set `categoryorder` to *category ascending*
+ or *category descending* if order should be determined
+ by the alphanumerical order of the category names. Set
+ `categoryorder` to "array" to derive the ordering from
+ the attribute `categoryarray`. If a category is not
+ found in the `categoryarray` array, the sorting
+ behavior for that attribute will be identical to the
+ "trace" mode. The unspecified categories will follow
+ the categories in `categoryarray`. Set `categoryorder`
+ to *total ascending* or *total descending* if order
+ should be determined by the numerical order of the
+ values. Similarly, the order can be determined by the
+ min, max, sum, mean, geometric mean or median of all
+ the values.
+ color
+ Sets default for all colors associated with this axis
+ all at once: line, font, tick, and grid colors. Grid
+ color is lightened by blending this with the plot
+ background Individual pieces can override this.
+ dtick
+ Sets the step in-between ticks on this axis. Use with
+ `tick0`. Must be a positive number, or special strings
+ available to "log" and "date" axes. If the axis `type`
+ is "log", then ticks are set every 10^(n*dtick) where n
+ is the tick number. For example, to set a tick mark at
+ 1, 10, 100, 1000, ... set dtick to 1. To set tick marks
+ at 1, 100, 10000, ... set dtick to 2. To set tick marks
+ at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special
+ values; "L<f>", where `f` is a positive number, gives
+ ticks linearly spaced in value (but not position). For
+ example `tick0` = 0.1, `dtick` = "L0.5" will put ticks
+ at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus
+ small digits between, use "D1" (all digits) or "D2"
+ (only 2 and 5). `tick0` is ignored for "D1" and "D2".
+ If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval
+ between ticks to one day, set `dtick` to 86400000.0.
+ "date" also has special values "M<n>" gives ticks
+ spaced by a number of months. `n` must be a positive
+ integer. To set ticks on the 15th of every third month,
+ set `tick0` to "2000-01-15" and `dtick` to "M3". To set
+ ticks every 4 years, set `dtick` to "M48"
+ exponentformat
+ Determines a formatting rule for the tick exponents.
+ For example, consider the number 1,000,000,000. If
+ "none", it appears as 1,000,000,000. If "e", 1e+9. If
+ "E", 1E+9. If "power", 1x10^9 (with 9 in a super
+ script). If "SI", 1G. If "B", 1B.
+ gridcolor
+ Sets the color of the grid lines.
+ gridwidth
+ Sets the width (in px) of the grid lines.
+ hoverformat
+ Sets the hover text formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ labelalias
+ Replacement text for specific tick or hover labels. For
+ example using {US: 'USA', CA: 'Canada'} changes US to
+ USA and CA to Canada. The labels we would have shown
+ must match the keys exactly, after adding any
+ tickprefix or ticksuffix. For negative numbers the
+ minus sign symbol used (U+2212) is wider than the
+ regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis
+ type, and both keys (if needed) and values (if desired)
+ can include html-like tags or MathJax.
+ linecolor
+ Sets the axis line color.
+ linewidth
+ Sets the width (in px) of the axis line.
+ maxallowed
+ Determines the maximum range of this axis.
+ minallowed
+ Determines the minimum range of this axis.
+ minexponent
+ Hide SI prefix for 10^n if |n| is below this number.
+ This only has an effect when `tickformat` is "SI" or
+ "B".
+ mirror
+ Determines if the axis lines or/and ticks are mirrored
+ to the opposite side of the plotting area. If True, the
+ axis lines are mirrored. If "ticks", the axis lines and
+ ticks are mirrored. If False, mirroring is disable. If
+ "all", axis lines are mirrored on all shared-axes
+ subplots. If "allticks", axis lines and ticks are
+ mirrored on all shared-axes subplots.
+ nticks
+ Specifies the maximum number of ticks for the
+ particular axis. The actual number of ticks will be
+ chosen automatically to be less than or equal to
+ `nticks`. Has an effect only if `tickmode` is set to
+ "auto".
+ range
+ Sets the range of this axis. If the axis `type` is
+ "log", then you must take the log of your desired range
+ (e.g. to set the range from 1 to 100, set the range
+ from 0 to 2). If the axis `type` is "date", it should
+ be date strings, like date data, though Date objects
+ and unix milliseconds will be accepted and converted to
+ strings. If the axis `type` is "category", it should be
+ numbers, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears. Leaving either or both elements `null` impacts
+ the default `autorange`.
+ rangemode
+ If "normal", the range is computed in relation to the
+ extrema of the input data. If "tozero", the range
+ extends to 0, regardless of the input data If
+ "nonnegative", the range is non-negative, regardless of
+ the input data. Applies only to linear axes.
+ separatethousands
+ If "true", even 4-digit integers are separated
+ showaxeslabels
+ Sets whether or not this axis is labeled
+ showbackground
+ Sets whether or not this axis' wall has a background
+ color.
+ showexponent
+ If "all", all exponents are shown besides their
+ significands. If "first", only the exponent of the
+ first tick is shown. If "last", only the exponent of
+ the last tick is shown. If "none", no exponents appear.
+ showgrid
+ Determines whether or not grid lines are drawn. If
+ True, the grid lines are drawn at every tick mark.
+ showline
+ Determines whether or not a line bounding this axis is
+ drawn.
+ showspikes
+ Sets whether or not spikes starting from data points to
+ this axis' wall are shown on hover.
+ showticklabels
+ Determines whether or not the tick labels are drawn.
+ showtickprefix
+ If "all", all tick labels are displayed with a prefix.
+ If "first", only the first tick is displayed with a
+ prefix. If "last", only the last tick is displayed with
+ a suffix. If "none", tick prefixes are hidden.
+ showticksuffix
+ Same as `showtickprefix` but for tick suffixes.
+ spikecolor
+ Sets the color of the spikes.
+ spikesides
+ Sets whether or not spikes extending from the
+ projection data points to this axis' wall boundaries
+ are shown on hover.
+ spikethickness
+ Sets the thickness (in px) of the spikes.
+ tick0
+ Sets the placement of the first tick on this axis. Use
+ with `dtick`. If the axis `type` is "log", then you
+ must take the log of your starting tick (e.g. to set
+ the starting tick to 100, set the `tick0` to 2) except
+ when `dtick`=*L<f>* (see `dtick` for more info). If the
+ axis `type` is "date", it should be a date string, like
+ date data. If the axis `type` is "category", it should
+ be a number, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears.
+ tickangle
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the
+ tick labels vertically.
+ tickcolor
+ Sets the tick color.
+ tickfont
+ Sets the tick font.
+ tickformat
+ Sets the tick label formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ tickformatstops
+ A tuple of :class:`plotly.graph_objects.layout.scene.za
+ xis.Tickformatstop` instances or dicts with compatible
+ properties
+ tickformatstopdefaults
+ When used in a template (as layout.template.layout.scen
+ e.zaxis.tickformatstopdefaults), sets the default
+ property values to use for elements of
+ layout.scene.zaxis.tickformatstops
+ ticklen
+ Sets the tick length (in px).
+ tickmode
+ Sets the tick mode for this axis. If "auto", the number
+ of ticks is set via `nticks`. If "linear", the
+ placement of the ticks is determined by a starting
+ position `tick0` and a tick step `dtick` ("linear" is
+ the default value if `tick0` and `dtick` are provided).
+ If "array", the placement of the ticks is set via
+ `tickvals` and the tick text is `ticktext`. ("array" is
+ the default value if `tickvals` is provided).
+ tickprefix
+ Sets a tick label prefix.
+ ticks
+ Determines whether ticks are drawn or not. If "", this
+ axis' ticks are not drawn. If "outside" ("inside"),
+ this axis' are drawn outside (inside) the axis lines.
+ ticksuffix
+ Sets a tick label suffix.
+ ticktext
+ Sets the text displayed at the ticks position via
+ `tickvals`. Only has an effect if `tickmode` is set to
+ "array". Used with `tickvals`.
+ ticktextsrc
+ Sets the source reference on Chart Studio Cloud for
+ `ticktext`.
+ tickvals
+ Sets the values at which ticks on this axis appear.
+ Only has an effect if `tickmode` is set to "array".
+ Used with `ticktext`.
+ tickvalssrc
+ Sets the source reference on Chart Studio Cloud for
+ `tickvals`.
+ tickwidth
+ Sets the tick width (in px).
+ title
+ :class:`plotly.graph_objects.layout.scene.zaxis.Title`
+ instance or dict with compatible properties
+ type
+ Sets the axis type. By default, plotly attempts to
+ determined the axis type by looking into the data of
+ the traces that referenced the axis in question.
+ visible
+ A single toggle to hide the axis while preserving
+ interaction like dragging. Default is true when a
+ cheater plot is present on the axis, otherwise false
+ zeroline
+ Determines whether or not a line is drawn at along the
+ 0 value of this axis. If True, the zero line is drawn
+ on top of the grid lines.
+ zerolinecolor
+ Sets the line color of the zero line.
+ zerolinewidth
+ Sets the width (in px) of the zero line.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ autorange=None,
+ autorangeoptions=None,
+ autotypenumbers=None,
+ backgroundcolor=None,
+ calendar=None,
+ categoryarray=None,
+ categoryarraysrc=None,
+ categoryorder=None,
+ color=None,
+ dtick=None,
+ exponentformat=None,
+ gridcolor=None,
+ gridwidth=None,
+ hoverformat=None,
+ labelalias=None,
+ linecolor=None,
+ linewidth=None,
+ maxallowed=None,
+ minallowed=None,
+ minexponent=None,
+ mirror=None,
+ nticks=None,
+ range=None,
+ rangemode=None,
+ separatethousands=None,
+ showaxeslabels=None,
+ showbackground=None,
+ showexponent=None,
+ showgrid=None,
+ showline=None,
+ showspikes=None,
+ showticklabels=None,
+ showtickprefix=None,
+ showticksuffix=None,
+ spikecolor=None,
+ spikesides=None,
+ spikethickness=None,
+ tick0=None,
+ tickangle=None,
+ tickcolor=None,
+ tickfont=None,
+ tickformat=None,
+ tickformatstops=None,
+ tickformatstopdefaults=None,
+ ticklen=None,
+ tickmode=None,
+ tickprefix=None,
+ ticks=None,
+ ticksuffix=None,
+ ticktext=None,
+ ticktextsrc=None,
+ tickvals=None,
+ tickvalssrc=None,
+ tickwidth=None,
+ title=None,
+ type=None,
+ visible=None,
+ zeroline=None,
+ zerolinecolor=None,
+ zerolinewidth=None,
+ **kwargs,
+ ):
+ """
+ Construct a new ZAxis object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.scene.ZAxis`
+ autorange
+ Determines whether or not the range of this axis is
+ computed in relation to the input data. See `rangemode`
+ for more info. If `range` is provided and it has a
+ value for both the lower and upper bound, `autorange`
+ is set to False. Using "min" applies autorange only to
+ set the minimum. Using "max" applies autorange only to
+ set the maximum. Using *min reversed* applies autorange
+ only to set the minimum on a reversed axis. Using *max
+ reversed* applies autorange only to set the maximum on
+ a reversed axis. Using "reversed" applies autorange on
+ both ends and reverses the axis direction.
+ autorangeoptions
+ :class:`plotly.graph_objects.layout.scene.zaxis.Autoran
+ geoptions` instance or dict with compatible properties
+ autotypenumbers
+ Using "strict" a numeric string in trace data is not
+ converted to a number. Using *convert types* a numeric
+ string in trace data may be treated as a number during
+ automatic axis `type` detection. Defaults to
+ layout.autotypenumbers.
+ backgroundcolor
+ Sets the background color of this axis' wall.
+ calendar
+ Sets the calendar system to use for `range` and `tick0`
+ if this is a date axis. This does not set the calendar
+ for interpreting data on this axis, that's specified in
+ the trace or via the global `layout.calendar`
+ categoryarray
+ Sets the order in which categories on this axis appear.
+ Only has an effect if `categoryorder` is set to
+ "array". Used with `categoryorder`.
+ categoryarraysrc
+ Sets the source reference on Chart Studio Cloud for
+ `categoryarray`.
+ categoryorder
+ Specifies the ordering logic for the case of
+ categorical variables. By default, plotly uses "trace",
+ which specifies the order that is present in the data
+ supplied. Set `categoryorder` to *category ascending*
+ or *category descending* if order should be determined
+ by the alphanumerical order of the category names. Set
+ `categoryorder` to "array" to derive the ordering from
+ the attribute `categoryarray`. If a category is not
+ found in the `categoryarray` array, the sorting
+ behavior for that attribute will be identical to the
+ "trace" mode. The unspecified categories will follow
+ the categories in `categoryarray`. Set `categoryorder`
+ to *total ascending* or *total descending* if order
+ should be determined by the numerical order of the
+ values. Similarly, the order can be determined by the
+ min, max, sum, mean, geometric mean or median of all
+ the values.
+ color
+ Sets default for all colors associated with this axis
+ all at once: line, font, tick, and grid colors. Grid
+ color is lightened by blending this with the plot
+ background Individual pieces can override this.
+ dtick
+ Sets the step in-between ticks on this axis. Use with
+ `tick0`. Must be a positive number, or special strings
+ available to "log" and "date" axes. If the axis `type`
+ is "log", then ticks are set every 10^(n*dtick) where n
+ is the tick number. For example, to set a tick mark at
+ 1, 10, 100, 1000, ... set dtick to 1. To set tick marks
+ at 1, 100, 10000, ... set dtick to 2. To set tick marks
+ at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special
+ values; "L<f>", where `f` is a positive number, gives
+ ticks linearly spaced in value (but not position). For
+ example `tick0` = 0.1, `dtick` = "L0.5" will put ticks
+ at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus
+ small digits between, use "D1" (all digits) or "D2"
+ (only 2 and 5). `tick0` is ignored for "D1" and "D2".
+ If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval
+ between ticks to one day, set `dtick` to 86400000.0.
+ "date" also has special values "M<n>" gives ticks
+ spaced by a number of months. `n` must be a positive
+ integer. To set ticks on the 15th of every third month,
+ set `tick0` to "2000-01-15" and `dtick` to "M3". To set
+ ticks every 4 years, set `dtick` to "M48"
+ exponentformat
+ Determines a formatting rule for the tick exponents.
+ For example, consider the number 1,000,000,000. If
+ "none", it appears as 1,000,000,000. If "e", 1e+9. If
+ "E", 1E+9. If "power", 1x10^9 (with 9 in a super
+ script). If "SI", 1G. If "B", 1B.
+ gridcolor
+ Sets the color of the grid lines.
+ gridwidth
+ Sets the width (in px) of the grid lines.
+ hoverformat
+ Sets the hover text formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ labelalias
+ Replacement text for specific tick or hover labels. For
+ example using {US: 'USA', CA: 'Canada'} changes US to
+ USA and CA to Canada. The labels we would have shown
+ must match the keys exactly, after adding any
+ tickprefix or ticksuffix. For negative numbers the
+ minus sign symbol used (U+2212) is wider than the
+ regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis
+ type, and both keys (if needed) and values (if desired)
+ can include html-like tags or MathJax.
+ linecolor
+ Sets the axis line color.
+ linewidth
+ Sets the width (in px) of the axis line.
+ maxallowed
+ Determines the maximum range of this axis.
+ minallowed
+ Determines the minimum range of this axis.
+ minexponent
+ Hide SI prefix for 10^n if |n| is below this number.
+ This only has an effect when `tickformat` is "SI" or
+ "B".
+ mirror
+ Determines if the axis lines or/and ticks are mirrored
+ to the opposite side of the plotting area. If True, the
+ axis lines are mirrored. If "ticks", the axis lines and
+ ticks are mirrored. If False, mirroring is disable. If
+ "all", axis lines are mirrored on all shared-axes
+ subplots. If "allticks", axis lines and ticks are
+ mirrored on all shared-axes subplots.
+ nticks
+ Specifies the maximum number of ticks for the
+ particular axis. The actual number of ticks will be
+ chosen automatically to be less than or equal to
+ `nticks`. Has an effect only if `tickmode` is set to
+ "auto".
+ range
+ Sets the range of this axis. If the axis `type` is
+ "log", then you must take the log of your desired range
+ (e.g. to set the range from 1 to 100, set the range
+ from 0 to 2). If the axis `type` is "date", it should
+ be date strings, like date data, though Date objects
+ and unix milliseconds will be accepted and converted to
+ strings. If the axis `type` is "category", it should be
+ numbers, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears. Leaving either or both elements `null` impacts
+ the default `autorange`.
+ rangemode
+ If "normal", the range is computed in relation to the
+ extrema of the input data. If "tozero", the range
+ extends to 0, regardless of the input data If
+ "nonnegative", the range is non-negative, regardless of
+ the input data. Applies only to linear axes.
+ separatethousands
+ If "true", even 4-digit integers are separated
+ showaxeslabels
+ Sets whether or not this axis is labeled
+ showbackground
+ Sets whether or not this axis' wall has a background
+ color.
+ showexponent
+ If "all", all exponents are shown besides their
+ significands. If "first", only the exponent of the
+ first tick is shown. If "last", only the exponent of
+ the last tick is shown. If "none", no exponents appear.
+ showgrid
+ Determines whether or not grid lines are drawn. If
+ True, the grid lines are drawn at every tick mark.
+ showline
+ Determines whether or not a line bounding this axis is
+ drawn.
+ showspikes
+ Sets whether or not spikes starting from data points to
+ this axis' wall are shown on hover.
+ showticklabels
+ Determines whether or not the tick labels are drawn.
+ showtickprefix
+ If "all", all tick labels are displayed with a prefix.
+ If "first", only the first tick is displayed with a
+ prefix. If "last", only the last tick is displayed with
+ a suffix. If "none", tick prefixes are hidden.
+ showticksuffix
+ Same as `showtickprefix` but for tick suffixes.
+ spikecolor
+ Sets the color of the spikes.
+ spikesides
+ Sets whether or not spikes extending from the
+ projection data points to this axis' wall boundaries
+ are shown on hover.
+ spikethickness
+ Sets the thickness (in px) of the spikes.
+ tick0
+ Sets the placement of the first tick on this axis. Use
+ with `dtick`. If the axis `type` is "log", then you
+ must take the log of your starting tick (e.g. to set
+ the starting tick to 100, set the `tick0` to 2) except
+ when `dtick`=*L<f>* (see `dtick` for more info). If the
+ axis `type` is "date", it should be a date string, like
+ date data. If the axis `type` is "category", it should
+ be a number, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears.
+ tickangle
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the
+ tick labels vertically.
+ tickcolor
+ Sets the tick color.
+ tickfont
+ Sets the tick font.
+ tickformat
+ Sets the tick label formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ tickformatstops
+ A tuple of :class:`plotly.graph_objects.layout.scene.za
+ xis.Tickformatstop` instances or dicts with compatible
+ properties
+ tickformatstopdefaults
+ When used in a template (as layout.template.layout.scen
+ e.zaxis.tickformatstopdefaults), sets the default
+ property values to use for elements of
+ layout.scene.zaxis.tickformatstops
+ ticklen
+ Sets the tick length (in px).
+ tickmode
+ Sets the tick mode for this axis. If "auto", the number
+ of ticks is set via `nticks`. If "linear", the
+ placement of the ticks is determined by a starting
+ position `tick0` and a tick step `dtick` ("linear" is
+ the default value if `tick0` and `dtick` are provided).
+ If "array", the placement of the ticks is set via
+ `tickvals` and the tick text is `ticktext`. ("array" is
+ the default value if `tickvals` is provided).
+ tickprefix
+ Sets a tick label prefix.
+ ticks
+ Determines whether ticks are drawn or not. If "", this
+ axis' ticks are not drawn. If "outside" ("inside"),
+ this axis' are drawn outside (inside) the axis lines.
+ ticksuffix
+ Sets a tick label suffix.
+ ticktext
+ Sets the text displayed at the ticks position via
+ `tickvals`. Only has an effect if `tickmode` is set to
+ "array". Used with `tickvals`.
+ ticktextsrc
+ Sets the source reference on Chart Studio Cloud for
+ `ticktext`.
+ tickvals
+ Sets the values at which ticks on this axis appear.
+ Only has an effect if `tickmode` is set to "array".
+ Used with `ticktext`.
+ tickvalssrc
+ Sets the source reference on Chart Studio Cloud for
+ `tickvals`.
+ tickwidth
+ Sets the tick width (in px).
+ title
+ :class:`plotly.graph_objects.layout.scene.zaxis.Title`
+ instance or dict with compatible properties
+ type
+ Sets the axis type. By default, plotly attempts to
+ determined the axis type by looking into the data of
+ the traces that referenced the axis in question.
+ visible
+ A single toggle to hide the axis while preserving
+ interaction like dragging. Default is true when a
+ cheater plot is present on the axis, otherwise false
+ zeroline
+ Determines whether or not a line is drawn at along the
+ 0 value of this axis. If True, the zero line is drawn
+ on top of the grid lines.
+ zerolinecolor
+ Sets the line color of the zero line.
+ zerolinewidth
+ Sets the width (in px) of the zero line.
+
+ Returns
+ -------
+ ZAxis
+ """
+ super().__init__("zaxis")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.scene.ZAxis
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.scene.ZAxis`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("autorange", arg, autorange)
+ self._set_property("autorangeoptions", arg, autorangeoptions)
+ self._set_property("autotypenumbers", arg, autotypenumbers)
+ self._set_property("backgroundcolor", arg, backgroundcolor)
+ self._set_property("calendar", arg, calendar)
+ self._set_property("categoryarray", arg, categoryarray)
+ self._set_property("categoryarraysrc", arg, categoryarraysrc)
+ self._set_property("categoryorder", arg, categoryorder)
+ self._set_property("color", arg, color)
+ self._set_property("dtick", arg, dtick)
+ self._set_property("exponentformat", arg, exponentformat)
+ self._set_property("gridcolor", arg, gridcolor)
+ self._set_property("gridwidth", arg, gridwidth)
+ self._set_property("hoverformat", arg, hoverformat)
+ self._set_property("labelalias", arg, labelalias)
+ self._set_property("linecolor", arg, linecolor)
+ self._set_property("linewidth", arg, linewidth)
+ self._set_property("maxallowed", arg, maxallowed)
+ self._set_property("minallowed", arg, minallowed)
+ self._set_property("minexponent", arg, minexponent)
+ self._set_property("mirror", arg, mirror)
+ self._set_property("nticks", arg, nticks)
+ self._set_property("range", arg, range)
+ self._set_property("rangemode", arg, rangemode)
+ self._set_property("separatethousands", arg, separatethousands)
+ self._set_property("showaxeslabels", arg, showaxeslabels)
+ self._set_property("showbackground", arg, showbackground)
+ self._set_property("showexponent", arg, showexponent)
+ self._set_property("showgrid", arg, showgrid)
+ self._set_property("showline", arg, showline)
+ self._set_property("showspikes", arg, showspikes)
+ self._set_property("showticklabels", arg, showticklabels)
+ self._set_property("showtickprefix", arg, showtickprefix)
+ self._set_property("showticksuffix", arg, showticksuffix)
+ self._set_property("spikecolor", arg, spikecolor)
+ self._set_property("spikesides", arg, spikesides)
+ self._set_property("spikethickness", arg, spikethickness)
+ self._set_property("tick0", arg, tick0)
+ self._set_property("tickangle", arg, tickangle)
+ self._set_property("tickcolor", arg, tickcolor)
+ self._set_property("tickfont", arg, tickfont)
+ self._set_property("tickformat", arg, tickformat)
+ self._set_property("tickformatstops", arg, tickformatstops)
+ self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
+ self._set_property("ticklen", arg, ticklen)
+ self._set_property("tickmode", arg, tickmode)
+ self._set_property("tickprefix", arg, tickprefix)
+ self._set_property("ticks", arg, ticks)
+ self._set_property("ticksuffix", arg, ticksuffix)
+ self._set_property("ticktext", arg, ticktext)
+ self._set_property("ticktextsrc", arg, ticktextsrc)
+ self._set_property("tickvals", arg, tickvals)
+ self._set_property("tickvalssrc", arg, tickvalssrc)
+ self._set_property("tickwidth", arg, tickwidth)
+ self._set_property("title", arg, title)
+ self._set_property("type", arg, type)
+ self._set_property("visible", arg, visible)
+ self._set_property("zeroline", arg, zeroline)
+ self._set_property("zerolinecolor", arg, zerolinecolor)
+ self._set_property("zerolinewidth", arg, zerolinewidth)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/annotation/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/annotation/__init__.py
new file mode 100644
index 0000000..372a9f2
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/annotation/__init__.py
@@ -0,0 +1,13 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._font import Font
+ from ._hoverlabel import Hoverlabel
+ from . import hoverlabel
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__, [".hoverlabel"], ["._font.Font", "._hoverlabel.Hoverlabel"]
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/annotation/_font.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/annotation/_font.py
new file mode 100644
index 0000000..d4a686a
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/annotation/_font.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Font(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.scene.annotation"
+ _path_str = "layout.scene.annotation.font"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Font object
+
+ Sets the annotation text font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.scene.annotation.Font`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Font
+ """
+ super().__init__("font")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.scene.annotation.Font
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.scene.annotation.Font`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/annotation/_hoverlabel.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/annotation/_hoverlabel.py
new file mode 100644
index 0000000..32232be
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/annotation/_hoverlabel.py
@@ -0,0 +1,151 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Hoverlabel(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.scene.annotation"
+ _path_str = "layout.scene.annotation.hoverlabel"
+ _valid_props = {"bgcolor", "bordercolor", "font"}
+
+ @property
+ def bgcolor(self):
+ """
+ Sets the background color of the hover label. By default uses
+ the annotation's `bgcolor` made opaque, or white if it was
+ transparent.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["bgcolor"]
+
+ @bgcolor.setter
+ def bgcolor(self, val):
+ self["bgcolor"] = val
+
+ @property
+ def bordercolor(self):
+ """
+ Sets the border color of the hover label. By default uses
+ either dark grey or white, for maximum contrast with
+ `hoverlabel.bgcolor`.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["bordercolor"]
+
+ @bordercolor.setter
+ def bordercolor(self, val):
+ self["bordercolor"] = val
+
+ @property
+ def font(self):
+ """
+ Sets the hover label text font. By default uses the global
+ hover font and size, with color from `hoverlabel.bordercolor`.
+
+ The 'font' property is an instance of Font
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.scene.annotation.hoverlabel.Font`
+ - A dict of string/value properties that will be passed
+ to the Font constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.scene.annotation.hoverlabel.Font
+ """
+ return self["font"]
+
+ @font.setter
+ def font(self, val):
+ self["font"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ bgcolor
+ Sets the background color of the hover label. By
+ default uses the annotation's `bgcolor` made opaque, or
+ white if it was transparent.
+ bordercolor
+ Sets the border color of the hover label. By default
+ uses either dark grey or white, for maximum contrast
+ with `hoverlabel.bgcolor`.
+ font
+ Sets the hover label text font. By default uses the
+ global hover font and size, with color from
+ `hoverlabel.bordercolor`.
+ """
+
+ def __init__(self, arg=None, bgcolor=None, bordercolor=None, font=None, **kwargs):
+ """
+ Construct a new Hoverlabel object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.scene.a
+ nnotation.Hoverlabel`
+ bgcolor
+ Sets the background color of the hover label. By
+ default uses the annotation's `bgcolor` made opaque, or
+ white if it was transparent.
+ bordercolor
+ Sets the border color of the hover label. By default
+ uses either dark grey or white, for maximum contrast
+ with `hoverlabel.bgcolor`.
+ font
+ Sets the hover label text font. By default uses the
+ global hover font and size, with color from
+ `hoverlabel.bordercolor`.
+
+ Returns
+ -------
+ Hoverlabel
+ """
+ super().__init__("hoverlabel")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.scene.annotation.Hoverlabel
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.scene.annotation.Hoverlabel`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("bgcolor", arg, bgcolor)
+ self._set_property("bordercolor", arg, bordercolor)
+ self._set_property("font", arg, font)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/annotation/hoverlabel/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/annotation/hoverlabel/__init__.py
new file mode 100644
index 0000000..56f600d
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/annotation/hoverlabel/__init__.py
@@ -0,0 +1,9 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._font import Font
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/annotation/hoverlabel/_font.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/annotation/hoverlabel/_font.py
new file mode 100644
index 0000000..04b66f2
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/annotation/hoverlabel/_font.py
@@ -0,0 +1,335 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Font(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.scene.annotation.hoverlabel"
+ _path_str = "layout.scene.annotation.hoverlabel.font"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Font object
+
+ Sets the hover label text font. By default uses the global
+ hover font and size, with color from `hoverlabel.bordercolor`.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.scene.a
+ nnotation.hoverlabel.Font`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Font
+ """
+ super().__init__("font")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.scene.annotation.hoverlabel.Font
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.scene.annotation.hoverlabel.Font`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/camera/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/camera/__init__.py
new file mode 100644
index 0000000..76c8894
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/camera/__init__.py
@@ -0,0 +1,16 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._center import Center
+ from ._eye import Eye
+ from ._projection import Projection
+ from ._up import Up
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__,
+ [],
+ ["._center.Center", "._eye.Eye", "._projection.Projection", "._up.Up"],
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/camera/_center.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/camera/_center.py
new file mode 100644
index 0000000..b64f441
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/camera/_center.py
@@ -0,0 +1,121 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Center(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.scene.camera"
+ _path_str = "layout.scene.camera.center"
+ _valid_props = {"x", "y", "z"}
+
+ @property
+ def x(self):
+ """
+ The 'x' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["x"]
+
+ @x.setter
+ def x(self, val):
+ self["x"] = val
+
+ @property
+ def y(self):
+ """
+ The 'y' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["y"]
+
+ @y.setter
+ def y(self, val):
+ self["y"] = val
+
+ @property
+ def z(self):
+ """
+ The 'z' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["z"]
+
+ @z.setter
+ def z(self, val):
+ self["z"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ x
+
+ y
+
+ z
+
+ """
+
+ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
+ """
+ Construct a new Center object
+
+ Sets the (x,y,z) components of the 'center' camera vector This
+ vector determines the translation (x,y,z) space about the
+ center of this scene. By default, there is no such translation.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.scene.camera.Center`
+ x
+
+ y
+
+ z
+
+
+ Returns
+ -------
+ Center
+ """
+ super().__init__("center")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.scene.camera.Center
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.scene.camera.Center`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("x", arg, x)
+ self._set_property("y", arg, y)
+ self._set_property("z", arg, z)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/camera/_eye.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/camera/_eye.py
new file mode 100644
index 0000000..19767a8
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/camera/_eye.py
@@ -0,0 +1,121 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Eye(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.scene.camera"
+ _path_str = "layout.scene.camera.eye"
+ _valid_props = {"x", "y", "z"}
+
+ @property
+ def x(self):
+ """
+ The 'x' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["x"]
+
+ @x.setter
+ def x(self, val):
+ self["x"] = val
+
+ @property
+ def y(self):
+ """
+ The 'y' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["y"]
+
+ @y.setter
+ def y(self, val):
+ self["y"] = val
+
+ @property
+ def z(self):
+ """
+ The 'z' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["z"]
+
+ @z.setter
+ def z(self, val):
+ self["z"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ x
+
+ y
+
+ z
+
+ """
+
+ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
+ """
+ Construct a new Eye object
+
+ Sets the (x,y,z) components of the 'eye' camera vector. This
+ vector determines the view point about the origin of this
+ scene.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.scene.camera.Eye`
+ x
+
+ y
+
+ z
+
+
+ Returns
+ -------
+ Eye
+ """
+ super().__init__("eye")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.scene.camera.Eye
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.scene.camera.Eye`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("x", arg, x)
+ self._set_property("y", arg, y)
+ self._set_property("z", arg, z)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/camera/_projection.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/camera/_projection.py
new file mode 100644
index 0000000..58b936e
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/camera/_projection.py
@@ -0,0 +1,83 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Projection(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.scene.camera"
+ _path_str = "layout.scene.camera.projection"
+ _valid_props = {"type"}
+
+ @property
+ def type(self):
+ """
+ Sets the projection type. The projection type could be either
+ "perspective" or "orthographic". The default is "perspective".
+
+ The 'type' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['perspective', 'orthographic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["type"]
+
+ @type.setter
+ def type(self, val):
+ self["type"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ type
+ Sets the projection type. The projection type could be
+ either "perspective" or "orthographic". The default is
+ "perspective".
+ """
+
+ def __init__(self, arg=None, type=None, **kwargs):
+ """
+ Construct a new Projection object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.scene.c
+ amera.Projection`
+ type
+ Sets the projection type. The projection type could be
+ either "perspective" or "orthographic". The default is
+ "perspective".
+
+ Returns
+ -------
+ Projection
+ """
+ super().__init__("projection")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.scene.camera.Projection
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.scene.camera.Projection`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("type", arg, type)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/camera/_up.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/camera/_up.py
new file mode 100644
index 0000000..1f307ec
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/camera/_up.py
@@ -0,0 +1,122 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Up(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.scene.camera"
+ _path_str = "layout.scene.camera.up"
+ _valid_props = {"x", "y", "z"}
+
+ @property
+ def x(self):
+ """
+ The 'x' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["x"]
+
+ @x.setter
+ def x(self, val):
+ self["x"] = val
+
+ @property
+ def y(self):
+ """
+ The 'y' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["y"]
+
+ @y.setter
+ def y(self, val):
+ self["y"] = val
+
+ @property
+ def z(self):
+ """
+ The 'z' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["z"]
+
+ @z.setter
+ def z(self, val):
+ self["z"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ x
+
+ y
+
+ z
+
+ """
+
+ def __init__(self, arg=None, x=None, y=None, z=None, **kwargs):
+ """
+ Construct a new Up object
+
+ Sets the (x,y,z) components of the 'up' camera vector. This
+ vector determines the up direction of this scene with respect
+ to the page. The default is *{x: 0, y: 0, z: 1}* which means
+ that the z axis points up.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.scene.camera.Up`
+ x
+
+ y
+
+ z
+
+
+ Returns
+ -------
+ Up
+ """
+ super().__init__("up")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.scene.camera.Up
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.scene.camera.Up`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("x", arg, x)
+ self._set_property("y", arg, y)
+ self._set_property("z", arg, z)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/xaxis/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/xaxis/__init__.py
new file mode 100644
index 0000000..d58e980
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/xaxis/__init__.py
@@ -0,0 +1,22 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._autorangeoptions import Autorangeoptions
+ from ._tickfont import Tickfont
+ from ._tickformatstop import Tickformatstop
+ from ._title import Title
+ from . import title
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__,
+ [".title"],
+ [
+ "._autorangeoptions.Autorangeoptions",
+ "._tickfont.Tickfont",
+ "._tickformatstop.Tickformatstop",
+ "._title.Title",
+ ],
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/xaxis/_autorangeoptions.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/xaxis/_autorangeoptions.py
new file mode 100644
index 0000000..707a38e
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/xaxis/_autorangeoptions.py
@@ -0,0 +1,216 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Autorangeoptions(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.scene.xaxis"
+ _path_str = "layout.scene.xaxis.autorangeoptions"
+ _valid_props = {
+ "clipmax",
+ "clipmin",
+ "include",
+ "includesrc",
+ "maxallowed",
+ "minallowed",
+ }
+
+ @property
+ def clipmax(self):
+ """
+ Clip autorange maximum if it goes beyond this value. Has no
+ effect when `autorangeoptions.maxallowed` is provided.
+
+ The 'clipmax' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["clipmax"]
+
+ @clipmax.setter
+ def clipmax(self, val):
+ self["clipmax"] = val
+
+ @property
+ def clipmin(self):
+ """
+ Clip autorange minimum if it goes beyond this value. Has no
+ effect when `autorangeoptions.minallowed` is provided.
+
+ The 'clipmin' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["clipmin"]
+
+ @clipmin.setter
+ def clipmin(self, val):
+ self["clipmin"] = val
+
+ @property
+ def include(self):
+ """
+ Ensure this value is included in autorange.
+
+ The 'include' property accepts values of any type
+
+ Returns
+ -------
+ Any|numpy.ndarray
+ """
+ return self["include"]
+
+ @include.setter
+ def include(self, val):
+ self["include"] = val
+
+ @property
+ def includesrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `include`.
+
+ The 'includesrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["includesrc"]
+
+ @includesrc.setter
+ def includesrc(self, val):
+ self["includesrc"] = val
+
+ @property
+ def maxallowed(self):
+ """
+ Use this value exactly as autorange maximum.
+
+ The 'maxallowed' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["maxallowed"]
+
+ @maxallowed.setter
+ def maxallowed(self, val):
+ self["maxallowed"] = val
+
+ @property
+ def minallowed(self):
+ """
+ Use this value exactly as autorange minimum.
+
+ The 'minallowed' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["minallowed"]
+
+ @minallowed.setter
+ def minallowed(self, val):
+ self["minallowed"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ clipmax
+ Clip autorange maximum if it goes beyond this value.
+ Has no effect when `autorangeoptions.maxallowed` is
+ provided.
+ clipmin
+ Clip autorange minimum if it goes beyond this value.
+ Has no effect when `autorangeoptions.minallowed` is
+ provided.
+ include
+ Ensure this value is included in autorange.
+ includesrc
+ Sets the source reference on Chart Studio Cloud for
+ `include`.
+ maxallowed
+ Use this value exactly as autorange maximum.
+ minallowed
+ Use this value exactly as autorange minimum.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ clipmax=None,
+ clipmin=None,
+ include=None,
+ includesrc=None,
+ maxallowed=None,
+ minallowed=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Autorangeoptions object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.scene.x
+ axis.Autorangeoptions`
+ clipmax
+ Clip autorange maximum if it goes beyond this value.
+ Has no effect when `autorangeoptions.maxallowed` is
+ provided.
+ clipmin
+ Clip autorange minimum if it goes beyond this value.
+ Has no effect when `autorangeoptions.minallowed` is
+ provided.
+ include
+ Ensure this value is included in autorange.
+ includesrc
+ Sets the source reference on Chart Studio Cloud for
+ `include`.
+ maxallowed
+ Use this value exactly as autorange maximum.
+ minallowed
+ Use this value exactly as autorange minimum.
+
+ Returns
+ -------
+ Autorangeoptions
+ """
+ super().__init__("autorangeoptions")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.scene.xaxis.Autorangeoptions
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.scene.xaxis.Autorangeoptions`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("clipmax", arg, clipmax)
+ self._set_property("clipmin", arg, clipmin)
+ self._set_property("include", arg, include)
+ self._set_property("includesrc", arg, includesrc)
+ self._set_property("maxallowed", arg, maxallowed)
+ self._set_property("minallowed", arg, minallowed)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/xaxis/_tickfont.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/xaxis/_tickfont.py
new file mode 100644
index 0000000..d9d2628
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/xaxis/_tickfont.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Tickfont(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.scene.xaxis"
+ _path_str = "layout.scene.xaxis.tickfont"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Tickfont object
+
+ Sets the tick font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.scene.xaxis.Tickfont`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Tickfont
+ """
+ super().__init__("tickfont")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.scene.xaxis.Tickfont
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.scene.xaxis.Tickfont`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/xaxis/_tickformatstop.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/xaxis/_tickformatstop.py
new file mode 100644
index 0000000..8953f2c
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/xaxis/_tickformatstop.py
@@ -0,0 +1,241 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Tickformatstop(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.scene.xaxis"
+ _path_str = "layout.scene.xaxis.tickformatstop"
+ _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
+
+ @property
+ def dtickrange(self):
+ """
+ range [*min*, *max*], where "min", "max" - dtick values which
+ describe some zoom level, it is possible to omit "min" or "max"
+ value by passing "null"
+
+ The 'dtickrange' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'dtickrange[0]' property accepts values of any type
+ (1) The 'dtickrange[1]' property accepts values of any type
+
+ Returns
+ -------
+ list
+ """
+ return self["dtickrange"]
+
+ @dtickrange.setter
+ def dtickrange(self, val):
+ self["dtickrange"] = val
+
+ @property
+ def enabled(self):
+ """
+ Determines whether or not this stop is used. If `false`, this
+ stop is ignored even within its `dtickrange`.
+
+ The 'enabled' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["enabled"]
+
+ @enabled.setter
+ def enabled(self, val):
+ self["enabled"] = val
+
+ @property
+ def name(self):
+ """
+ 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.
+
+ The 'name' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["name"]
+
+ @name.setter
+ def name(self, val):
+ self["name"] = val
+
+ @property
+ def templateitemname(self):
+ """
+ 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`.
+
+ The 'templateitemname' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["templateitemname"]
+
+ @templateitemname.setter
+ def templateitemname(self, val):
+ self["templateitemname"] = val
+
+ @property
+ def value(self):
+ """
+ string - dtickformat for described zoom level, the same as
+ "tickformat"
+
+ The 'value' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["value"]
+
+ @value.setter
+ def value(self, val):
+ self["value"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ dtickrange
+ range [*min*, *max*], where "min", "max" - dtick values
+ which describe some zoom level, it is possible to omit
+ "min" or "max" value by passing "null"
+ enabled
+ Determines whether or not this stop is used. If
+ `false`, this stop is ignored even within its
+ `dtickrange`.
+ 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`.
+ value
+ string - dtickformat for described zoom level, the same
+ as "tickformat"
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ dtickrange=None,
+ enabled=None,
+ name=None,
+ templateitemname=None,
+ value=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Tickformatstop object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.scene.x
+ axis.Tickformatstop`
+ dtickrange
+ range [*min*, *max*], where "min", "max" - dtick values
+ which describe some zoom level, it is possible to omit
+ "min" or "max" value by passing "null"
+ enabled
+ Determines whether or not this stop is used. If
+ `false`, this stop is ignored even within its
+ `dtickrange`.
+ 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`.
+ value
+ string - dtickformat for described zoom level, the same
+ as "tickformat"
+
+ Returns
+ -------
+ Tickformatstop
+ """
+ super().__init__("tickformatstops")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.scene.xaxis.Tickformatstop
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.scene.xaxis.Tickformatstop`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("dtickrange", arg, dtickrange)
+ self._set_property("enabled", arg, enabled)
+ self._set_property("name", arg, name)
+ self._set_property("templateitemname", arg, templateitemname)
+ self._set_property("value", arg, value)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/xaxis/_title.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/xaxis/_title.py
new file mode 100644
index 0000000..b2be9aa
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/xaxis/_title.py
@@ -0,0 +1,104 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Title(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.scene.xaxis"
+ _path_str = "layout.scene.xaxis.title"
+ _valid_props = {"font", "text"}
+
+ @property
+ def font(self):
+ """
+ Sets this axis' title font.
+
+ The 'font' property is an instance of Font
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.scene.xaxis.title.Font`
+ - A dict of string/value properties that will be passed
+ to the Font constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.scene.xaxis.title.Font
+ """
+ return self["font"]
+
+ @font.setter
+ def font(self, val):
+ self["font"] = val
+
+ @property
+ def text(self):
+ """
+ Sets the title of this axis.
+
+ 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
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ font
+ Sets this axis' title font.
+ text
+ Sets the title of this axis.
+ """
+
+ def __init__(self, arg=None, font=None, text=None, **kwargs):
+ """
+ Construct a new Title object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.scene.xaxis.Title`
+ font
+ Sets this axis' title font.
+ text
+ Sets the title of this axis.
+
+ Returns
+ -------
+ Title
+ """
+ super().__init__("title")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.scene.xaxis.Title
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.scene.xaxis.Title`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("font", arg, font)
+ self._set_property("text", arg, text)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/xaxis/title/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/xaxis/title/__init__.py
new file mode 100644
index 0000000..56f600d
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/xaxis/title/__init__.py
@@ -0,0 +1,9 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._font import Font
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/xaxis/title/_font.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/xaxis/title/_font.py
new file mode 100644
index 0000000..46dc7b4
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/xaxis/title/_font.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Font(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.scene.xaxis.title"
+ _path_str = "layout.scene.xaxis.title.font"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Font object
+
+ Sets this axis' title font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.scene.x
+ axis.title.Font`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Font
+ """
+ super().__init__("font")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.scene.xaxis.title.Font
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.scene.xaxis.title.Font`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/yaxis/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/yaxis/__init__.py
new file mode 100644
index 0000000..d58e980
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/yaxis/__init__.py
@@ -0,0 +1,22 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._autorangeoptions import Autorangeoptions
+ from ._tickfont import Tickfont
+ from ._tickformatstop import Tickformatstop
+ from ._title import Title
+ from . import title
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__,
+ [".title"],
+ [
+ "._autorangeoptions.Autorangeoptions",
+ "._tickfont.Tickfont",
+ "._tickformatstop.Tickformatstop",
+ "._title.Title",
+ ],
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/yaxis/_autorangeoptions.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/yaxis/_autorangeoptions.py
new file mode 100644
index 0000000..1f57def
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/yaxis/_autorangeoptions.py
@@ -0,0 +1,216 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Autorangeoptions(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.scene.yaxis"
+ _path_str = "layout.scene.yaxis.autorangeoptions"
+ _valid_props = {
+ "clipmax",
+ "clipmin",
+ "include",
+ "includesrc",
+ "maxallowed",
+ "minallowed",
+ }
+
+ @property
+ def clipmax(self):
+ """
+ Clip autorange maximum if it goes beyond this value. Has no
+ effect when `autorangeoptions.maxallowed` is provided.
+
+ The 'clipmax' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["clipmax"]
+
+ @clipmax.setter
+ def clipmax(self, val):
+ self["clipmax"] = val
+
+ @property
+ def clipmin(self):
+ """
+ Clip autorange minimum if it goes beyond this value. Has no
+ effect when `autorangeoptions.minallowed` is provided.
+
+ The 'clipmin' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["clipmin"]
+
+ @clipmin.setter
+ def clipmin(self, val):
+ self["clipmin"] = val
+
+ @property
+ def include(self):
+ """
+ Ensure this value is included in autorange.
+
+ The 'include' property accepts values of any type
+
+ Returns
+ -------
+ Any|numpy.ndarray
+ """
+ return self["include"]
+
+ @include.setter
+ def include(self, val):
+ self["include"] = val
+
+ @property
+ def includesrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `include`.
+
+ The 'includesrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["includesrc"]
+
+ @includesrc.setter
+ def includesrc(self, val):
+ self["includesrc"] = val
+
+ @property
+ def maxallowed(self):
+ """
+ Use this value exactly as autorange maximum.
+
+ The 'maxallowed' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["maxallowed"]
+
+ @maxallowed.setter
+ def maxallowed(self, val):
+ self["maxallowed"] = val
+
+ @property
+ def minallowed(self):
+ """
+ Use this value exactly as autorange minimum.
+
+ The 'minallowed' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["minallowed"]
+
+ @minallowed.setter
+ def minallowed(self, val):
+ self["minallowed"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ clipmax
+ Clip autorange maximum if it goes beyond this value.
+ Has no effect when `autorangeoptions.maxallowed` is
+ provided.
+ clipmin
+ Clip autorange minimum if it goes beyond this value.
+ Has no effect when `autorangeoptions.minallowed` is
+ provided.
+ include
+ Ensure this value is included in autorange.
+ includesrc
+ Sets the source reference on Chart Studio Cloud for
+ `include`.
+ maxallowed
+ Use this value exactly as autorange maximum.
+ minallowed
+ Use this value exactly as autorange minimum.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ clipmax=None,
+ clipmin=None,
+ include=None,
+ includesrc=None,
+ maxallowed=None,
+ minallowed=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Autorangeoptions object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.scene.y
+ axis.Autorangeoptions`
+ clipmax
+ Clip autorange maximum if it goes beyond this value.
+ Has no effect when `autorangeoptions.maxallowed` is
+ provided.
+ clipmin
+ Clip autorange minimum if it goes beyond this value.
+ Has no effect when `autorangeoptions.minallowed` is
+ provided.
+ include
+ Ensure this value is included in autorange.
+ includesrc
+ Sets the source reference on Chart Studio Cloud for
+ `include`.
+ maxallowed
+ Use this value exactly as autorange maximum.
+ minallowed
+ Use this value exactly as autorange minimum.
+
+ Returns
+ -------
+ Autorangeoptions
+ """
+ super().__init__("autorangeoptions")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.scene.yaxis.Autorangeoptions
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.scene.yaxis.Autorangeoptions`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("clipmax", arg, clipmax)
+ self._set_property("clipmin", arg, clipmin)
+ self._set_property("include", arg, include)
+ self._set_property("includesrc", arg, includesrc)
+ self._set_property("maxallowed", arg, maxallowed)
+ self._set_property("minallowed", arg, minallowed)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/yaxis/_tickfont.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/yaxis/_tickfont.py
new file mode 100644
index 0000000..ff12147
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/yaxis/_tickfont.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Tickfont(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.scene.yaxis"
+ _path_str = "layout.scene.yaxis.tickfont"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Tickfont object
+
+ Sets the tick font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.scene.yaxis.Tickfont`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Tickfont
+ """
+ super().__init__("tickfont")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.scene.yaxis.Tickfont
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.scene.yaxis.Tickfont`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/yaxis/_tickformatstop.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/yaxis/_tickformatstop.py
new file mode 100644
index 0000000..faf7540
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/yaxis/_tickformatstop.py
@@ -0,0 +1,241 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Tickformatstop(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.scene.yaxis"
+ _path_str = "layout.scene.yaxis.tickformatstop"
+ _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
+
+ @property
+ def dtickrange(self):
+ """
+ range [*min*, *max*], where "min", "max" - dtick values which
+ describe some zoom level, it is possible to omit "min" or "max"
+ value by passing "null"
+
+ The 'dtickrange' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'dtickrange[0]' property accepts values of any type
+ (1) The 'dtickrange[1]' property accepts values of any type
+
+ Returns
+ -------
+ list
+ """
+ return self["dtickrange"]
+
+ @dtickrange.setter
+ def dtickrange(self, val):
+ self["dtickrange"] = val
+
+ @property
+ def enabled(self):
+ """
+ Determines whether or not this stop is used. If `false`, this
+ stop is ignored even within its `dtickrange`.
+
+ The 'enabled' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["enabled"]
+
+ @enabled.setter
+ def enabled(self, val):
+ self["enabled"] = val
+
+ @property
+ def name(self):
+ """
+ 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.
+
+ The 'name' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["name"]
+
+ @name.setter
+ def name(self, val):
+ self["name"] = val
+
+ @property
+ def templateitemname(self):
+ """
+ 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`.
+
+ The 'templateitemname' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["templateitemname"]
+
+ @templateitemname.setter
+ def templateitemname(self, val):
+ self["templateitemname"] = val
+
+ @property
+ def value(self):
+ """
+ string - dtickformat for described zoom level, the same as
+ "tickformat"
+
+ The 'value' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["value"]
+
+ @value.setter
+ def value(self, val):
+ self["value"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ dtickrange
+ range [*min*, *max*], where "min", "max" - dtick values
+ which describe some zoom level, it is possible to omit
+ "min" or "max" value by passing "null"
+ enabled
+ Determines whether or not this stop is used. If
+ `false`, this stop is ignored even within its
+ `dtickrange`.
+ 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`.
+ value
+ string - dtickformat for described zoom level, the same
+ as "tickformat"
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ dtickrange=None,
+ enabled=None,
+ name=None,
+ templateitemname=None,
+ value=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Tickformatstop object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.scene.y
+ axis.Tickformatstop`
+ dtickrange
+ range [*min*, *max*], where "min", "max" - dtick values
+ which describe some zoom level, it is possible to omit
+ "min" or "max" value by passing "null"
+ enabled
+ Determines whether or not this stop is used. If
+ `false`, this stop is ignored even within its
+ `dtickrange`.
+ 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`.
+ value
+ string - dtickformat for described zoom level, the same
+ as "tickformat"
+
+ Returns
+ -------
+ Tickformatstop
+ """
+ super().__init__("tickformatstops")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.scene.yaxis.Tickformatstop
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.scene.yaxis.Tickformatstop`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("dtickrange", arg, dtickrange)
+ self._set_property("enabled", arg, enabled)
+ self._set_property("name", arg, name)
+ self._set_property("templateitemname", arg, templateitemname)
+ self._set_property("value", arg, value)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/yaxis/_title.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/yaxis/_title.py
new file mode 100644
index 0000000..296c622
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/yaxis/_title.py
@@ -0,0 +1,104 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Title(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.scene.yaxis"
+ _path_str = "layout.scene.yaxis.title"
+ _valid_props = {"font", "text"}
+
+ @property
+ def font(self):
+ """
+ Sets this axis' title font.
+
+ The 'font' property is an instance of Font
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.scene.yaxis.title.Font`
+ - A dict of string/value properties that will be passed
+ to the Font constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.scene.yaxis.title.Font
+ """
+ return self["font"]
+
+ @font.setter
+ def font(self, val):
+ self["font"] = val
+
+ @property
+ def text(self):
+ """
+ Sets the title of this axis.
+
+ 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
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ font
+ Sets this axis' title font.
+ text
+ Sets the title of this axis.
+ """
+
+ def __init__(self, arg=None, font=None, text=None, **kwargs):
+ """
+ Construct a new Title object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.scene.yaxis.Title`
+ font
+ Sets this axis' title font.
+ text
+ Sets the title of this axis.
+
+ Returns
+ -------
+ Title
+ """
+ super().__init__("title")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.scene.yaxis.Title
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.scene.yaxis.Title`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("font", arg, font)
+ self._set_property("text", arg, text)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/yaxis/title/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/yaxis/title/__init__.py
new file mode 100644
index 0000000..56f600d
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/yaxis/title/__init__.py
@@ -0,0 +1,9 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._font import Font
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/yaxis/title/_font.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/yaxis/title/_font.py
new file mode 100644
index 0000000..81c436c
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/yaxis/title/_font.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Font(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.scene.yaxis.title"
+ _path_str = "layout.scene.yaxis.title.font"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Font object
+
+ Sets this axis' title font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.scene.y
+ axis.title.Font`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Font
+ """
+ super().__init__("font")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.scene.yaxis.title.Font
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.scene.yaxis.title.Font`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/zaxis/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/zaxis/__init__.py
new file mode 100644
index 0000000..d58e980
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/zaxis/__init__.py
@@ -0,0 +1,22 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._autorangeoptions import Autorangeoptions
+ from ._tickfont import Tickfont
+ from ._tickformatstop import Tickformatstop
+ from ._title import Title
+ from . import title
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__,
+ [".title"],
+ [
+ "._autorangeoptions.Autorangeoptions",
+ "._tickfont.Tickfont",
+ "._tickformatstop.Tickformatstop",
+ "._title.Title",
+ ],
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/zaxis/_autorangeoptions.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/zaxis/_autorangeoptions.py
new file mode 100644
index 0000000..ca4a8db
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/zaxis/_autorangeoptions.py
@@ -0,0 +1,216 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Autorangeoptions(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.scene.zaxis"
+ _path_str = "layout.scene.zaxis.autorangeoptions"
+ _valid_props = {
+ "clipmax",
+ "clipmin",
+ "include",
+ "includesrc",
+ "maxallowed",
+ "minallowed",
+ }
+
+ @property
+ def clipmax(self):
+ """
+ Clip autorange maximum if it goes beyond this value. Has no
+ effect when `autorangeoptions.maxallowed` is provided.
+
+ The 'clipmax' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["clipmax"]
+
+ @clipmax.setter
+ def clipmax(self, val):
+ self["clipmax"] = val
+
+ @property
+ def clipmin(self):
+ """
+ Clip autorange minimum if it goes beyond this value. Has no
+ effect when `autorangeoptions.minallowed` is provided.
+
+ The 'clipmin' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["clipmin"]
+
+ @clipmin.setter
+ def clipmin(self, val):
+ self["clipmin"] = val
+
+ @property
+ def include(self):
+ """
+ Ensure this value is included in autorange.
+
+ The 'include' property accepts values of any type
+
+ Returns
+ -------
+ Any|numpy.ndarray
+ """
+ return self["include"]
+
+ @include.setter
+ def include(self, val):
+ self["include"] = val
+
+ @property
+ def includesrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `include`.
+
+ The 'includesrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["includesrc"]
+
+ @includesrc.setter
+ def includesrc(self, val):
+ self["includesrc"] = val
+
+ @property
+ def maxallowed(self):
+ """
+ Use this value exactly as autorange maximum.
+
+ The 'maxallowed' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["maxallowed"]
+
+ @maxallowed.setter
+ def maxallowed(self, val):
+ self["maxallowed"] = val
+
+ @property
+ def minallowed(self):
+ """
+ Use this value exactly as autorange minimum.
+
+ The 'minallowed' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["minallowed"]
+
+ @minallowed.setter
+ def minallowed(self, val):
+ self["minallowed"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ clipmax
+ Clip autorange maximum if it goes beyond this value.
+ Has no effect when `autorangeoptions.maxallowed` is
+ provided.
+ clipmin
+ Clip autorange minimum if it goes beyond this value.
+ Has no effect when `autorangeoptions.minallowed` is
+ provided.
+ include
+ Ensure this value is included in autorange.
+ includesrc
+ Sets the source reference on Chart Studio Cloud for
+ `include`.
+ maxallowed
+ Use this value exactly as autorange maximum.
+ minallowed
+ Use this value exactly as autorange minimum.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ clipmax=None,
+ clipmin=None,
+ include=None,
+ includesrc=None,
+ maxallowed=None,
+ minallowed=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Autorangeoptions object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.scene.z
+ axis.Autorangeoptions`
+ clipmax
+ Clip autorange maximum if it goes beyond this value.
+ Has no effect when `autorangeoptions.maxallowed` is
+ provided.
+ clipmin
+ Clip autorange minimum if it goes beyond this value.
+ Has no effect when `autorangeoptions.minallowed` is
+ provided.
+ include
+ Ensure this value is included in autorange.
+ includesrc
+ Sets the source reference on Chart Studio Cloud for
+ `include`.
+ maxallowed
+ Use this value exactly as autorange maximum.
+ minallowed
+ Use this value exactly as autorange minimum.
+
+ Returns
+ -------
+ Autorangeoptions
+ """
+ super().__init__("autorangeoptions")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.scene.zaxis.Autorangeoptions
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.scene.zaxis.Autorangeoptions`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("clipmax", arg, clipmax)
+ self._set_property("clipmin", arg, clipmin)
+ self._set_property("include", arg, include)
+ self._set_property("includesrc", arg, includesrc)
+ self._set_property("maxallowed", arg, maxallowed)
+ self._set_property("minallowed", arg, minallowed)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/zaxis/_tickfont.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/zaxis/_tickfont.py
new file mode 100644
index 0000000..7146405
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/zaxis/_tickfont.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Tickfont(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.scene.zaxis"
+ _path_str = "layout.scene.zaxis.tickfont"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Tickfont object
+
+ Sets the tick font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.scene.zaxis.Tickfont`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Tickfont
+ """
+ super().__init__("tickfont")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.scene.zaxis.Tickfont
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.scene.zaxis.Tickfont`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/zaxis/_tickformatstop.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/zaxis/_tickformatstop.py
new file mode 100644
index 0000000..1d6cc95
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/zaxis/_tickformatstop.py
@@ -0,0 +1,241 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Tickformatstop(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.scene.zaxis"
+ _path_str = "layout.scene.zaxis.tickformatstop"
+ _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
+
+ @property
+ def dtickrange(self):
+ """
+ range [*min*, *max*], where "min", "max" - dtick values which
+ describe some zoom level, it is possible to omit "min" or "max"
+ value by passing "null"
+
+ The 'dtickrange' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'dtickrange[0]' property accepts values of any type
+ (1) The 'dtickrange[1]' property accepts values of any type
+
+ Returns
+ -------
+ list
+ """
+ return self["dtickrange"]
+
+ @dtickrange.setter
+ def dtickrange(self, val):
+ self["dtickrange"] = val
+
+ @property
+ def enabled(self):
+ """
+ Determines whether or not this stop is used. If `false`, this
+ stop is ignored even within its `dtickrange`.
+
+ The 'enabled' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["enabled"]
+
+ @enabled.setter
+ def enabled(self, val):
+ self["enabled"] = val
+
+ @property
+ def name(self):
+ """
+ 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.
+
+ The 'name' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["name"]
+
+ @name.setter
+ def name(self, val):
+ self["name"] = val
+
+ @property
+ def templateitemname(self):
+ """
+ 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`.
+
+ The 'templateitemname' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["templateitemname"]
+
+ @templateitemname.setter
+ def templateitemname(self, val):
+ self["templateitemname"] = val
+
+ @property
+ def value(self):
+ """
+ string - dtickformat for described zoom level, the same as
+ "tickformat"
+
+ The 'value' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["value"]
+
+ @value.setter
+ def value(self, val):
+ self["value"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ dtickrange
+ range [*min*, *max*], where "min", "max" - dtick values
+ which describe some zoom level, it is possible to omit
+ "min" or "max" value by passing "null"
+ enabled
+ Determines whether or not this stop is used. If
+ `false`, this stop is ignored even within its
+ `dtickrange`.
+ 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`.
+ value
+ string - dtickformat for described zoom level, the same
+ as "tickformat"
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ dtickrange=None,
+ enabled=None,
+ name=None,
+ templateitemname=None,
+ value=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Tickformatstop object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.scene.z
+ axis.Tickformatstop`
+ dtickrange
+ range [*min*, *max*], where "min", "max" - dtick values
+ which describe some zoom level, it is possible to omit
+ "min" or "max" value by passing "null"
+ enabled
+ Determines whether or not this stop is used. If
+ `false`, this stop is ignored even within its
+ `dtickrange`.
+ 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`.
+ value
+ string - dtickformat for described zoom level, the same
+ as "tickformat"
+
+ Returns
+ -------
+ Tickformatstop
+ """
+ super().__init__("tickformatstops")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.scene.zaxis.Tickformatstop
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.scene.zaxis.Tickformatstop`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("dtickrange", arg, dtickrange)
+ self._set_property("enabled", arg, enabled)
+ self._set_property("name", arg, name)
+ self._set_property("templateitemname", arg, templateitemname)
+ self._set_property("value", arg, value)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/zaxis/_title.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/zaxis/_title.py
new file mode 100644
index 0000000..ae7e476
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/zaxis/_title.py
@@ -0,0 +1,104 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Title(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.scene.zaxis"
+ _path_str = "layout.scene.zaxis.title"
+ _valid_props = {"font", "text"}
+
+ @property
+ def font(self):
+ """
+ Sets this axis' title font.
+
+ The 'font' property is an instance of Font
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.scene.zaxis.title.Font`
+ - A dict of string/value properties that will be passed
+ to the Font constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.scene.zaxis.title.Font
+ """
+ return self["font"]
+
+ @font.setter
+ def font(self, val):
+ self["font"] = val
+
+ @property
+ def text(self):
+ """
+ Sets the title of this axis.
+
+ 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
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ font
+ Sets this axis' title font.
+ text
+ Sets the title of this axis.
+ """
+
+ def __init__(self, arg=None, font=None, text=None, **kwargs):
+ """
+ Construct a new Title object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.scene.zaxis.Title`
+ font
+ Sets this axis' title font.
+ text
+ Sets the title of this axis.
+
+ Returns
+ -------
+ Title
+ """
+ super().__init__("title")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.scene.zaxis.Title
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.scene.zaxis.Title`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("font", arg, font)
+ self._set_property("text", arg, text)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/zaxis/title/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/zaxis/title/__init__.py
new file mode 100644
index 0000000..56f600d
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/zaxis/title/__init__.py
@@ -0,0 +1,9 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._font import Font
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/zaxis/title/_font.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/zaxis/title/_font.py
new file mode 100644
index 0000000..54972c0
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/scene/zaxis/title/_font.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Font(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.scene.zaxis.title"
+ _path_str = "layout.scene.zaxis.title.font"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Font object
+
+ Sets this axis' title font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.scene.z
+ axis.title.Font`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Font
+ """
+ super().__init__("font")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.scene.zaxis.title.Font
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.scene.zaxis.title.Font`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/selection/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/selection/__init__.py
new file mode 100644
index 0000000..33e42c0
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/selection/__init__.py
@@ -0,0 +1,9 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._line import Line
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(__name__, [], ["._line.Line"])
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/selection/_line.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/selection/_line.py
new file mode 100644
index 0000000..aeecc17
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/selection/_line.py
@@ -0,0 +1,139 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Line(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.selection"
+ _path_str = "layout.selection.line"
+ _valid_props = {"color", "dash", "width"}
+
+ @property
+ def color(self):
+ """
+ Sets the line color.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def dash(self):
+ """
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+
+ The 'dash' property is an enumeration that may be specified as:
+ - One of the following dash styles:
+ ['solid', 'dot', 'dash', 'longdash', 'dashdot', 'longdashdot']
+ - A string containing a dash length list in pixels or percentages
+ (e.g. '5px 10px 2px 2px', '5, 10, 2, 2', '10% 20% 40%', etc.)
+
+ Returns
+ -------
+ str
+ """
+ return self["dash"]
+
+ @dash.setter
+ def dash(self, val):
+ self["dash"] = val
+
+ @property
+ def width(self):
+ """
+ Sets the line width (in px).
+
+ The 'width' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["width"]
+
+ @width.setter
+ def width(self, val):
+ self["width"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+ Sets the line color.
+ dash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ width
+ Sets the line width (in px).
+ """
+
+ def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
+ """
+ Construct a new Line object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.selection.Line`
+ color
+ Sets the line color.
+ dash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ width
+ Sets the line width (in px).
+
+ Returns
+ -------
+ Line
+ """
+ super().__init__("line")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.selection.Line
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.selection.Line`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("dash", arg, dash)
+ self._set_property("width", arg, width)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/__init__.py
new file mode 100644
index 0000000..9192b99
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/__init__.py
@@ -0,0 +1,17 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._label import Label
+ from ._legendgrouptitle import Legendgrouptitle
+ from ._line import Line
+ from . import label
+ from . import legendgrouptitle
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__,
+ [".label", ".legendgrouptitle"],
+ ["._label.Label", "._legendgrouptitle.Legendgrouptitle", "._line.Line"],
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/_label.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/_label.py
new file mode 100644
index 0000000..81028c6
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/_label.py
@@ -0,0 +1,396 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Label(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.shape"
+ _path_str = "layout.shape.label"
+ _valid_props = {
+ "font",
+ "padding",
+ "text",
+ "textangle",
+ "textposition",
+ "texttemplate",
+ "xanchor",
+ "yanchor",
+ }
+
+ @property
+ def font(self):
+ """
+ Sets the shape label text font.
+
+ The 'font' property is an instance of Font
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.shape.label.Font`
+ - A dict of string/value properties that will be passed
+ to the Font constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.shape.label.Font
+ """
+ return self["font"]
+
+ @font.setter
+ def font(self, val):
+ self["font"] = val
+
+ @property
+ def padding(self):
+ """
+ Sets padding (in px) between edge of label and edge of shape.
+
+ The 'padding' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["padding"]
+
+ @padding.setter
+ def padding(self, val):
+ self["padding"] = val
+
+ @property
+ def text(self):
+ """
+ Sets the text to display with shape. It is also used for legend
+ item if `name` is not provided.
+
+ 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
+
+ @property
+ def textangle(self):
+ """
+ Sets the angle at which the label text is drawn with respect to
+ the horizontal. For lines, angle "auto" is the same angle as
+ the line. For all other shapes, angle "auto" is horizontal.
+
+ The 'textangle' property is a angle (in degrees) that may be
+ specified as a number between -180 and 180.
+ Numeric values outside this range are converted to the equivalent value
+ (e.g. 270 is converted to -90).
+
+ Returns
+ -------
+ int|float
+ """
+ return self["textangle"]
+
+ @textangle.setter
+ def textangle(self, val):
+ self["textangle"] = val
+
+ @property
+ def textposition(self):
+ """
+ Sets the position of the label text relative to the shape.
+ Supported values for rectangles, circles and paths are *top
+ left*, *top center*, *top right*, *middle left*, *middle
+ center*, *middle right*, *bottom left*, *bottom center*, and
+ *bottom right*. Supported values for lines are "start",
+ "middle", and "end". Default: *middle center* for rectangles,
+ circles, and paths; "middle" for lines.
+
+ 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', 'start', 'middle', 'end']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textposition"]
+
+ @textposition.setter
+ def textposition(self, val):
+ self["textposition"] = val
+
+ @property
+ def texttemplate(self):
+ """
+ Template string used for rendering the shape's label. Note that
+ this will override `text`. Variables are inserted using
+ %{variable}, for example "x0: %{x0}". Numbers are formatted
+ using d3-format's syntax %{variable:d3-format}, for example
+ "Price: %{x0:$.2f}". See
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format for
+ details on the formatting syntax. Dates are formatted using
+ d3-time-format's syntax %{variable|d3-time-format}, for example
+ "Day: %{x0|%m %b %Y}". See https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format for details on the date
+ formatting syntax. A single multiplication or division
+ operation may be applied to numeric variables, and combined
+ with d3 number formatting, for example "Length in cm:
+ %{x0*2.54}", "%{slope*60:.1f} meters per second." For log axes,
+ variable values are given in log units. For date axes, x/y
+ coordinate variables and center variables use datetimes, while
+ all other variable values use values in ms. Finally, the
+ template string has access to variables `x0`, `x1`, `y0`, `y1`,
+ `slope`, `dx`, `dy`, `width`, `height`, `length`, `xcenter` and
+ `ycenter`.
+
+ The 'texttemplate' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["texttemplate"]
+
+ @texttemplate.setter
+ def texttemplate(self, val):
+ self["texttemplate"] = val
+
+ @property
+ def xanchor(self):
+ """
+ Sets the label's horizontal position anchor This anchor binds
+ the specified `textposition` to the "left", "center" or "right"
+ of the label text. For example, if `textposition` is set to
+ *top right* and `xanchor` to "right" then the right-most
+ portion of the label text lines up with the right-most edge of
+ the shape.
+
+ 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
+
+ @property
+ def yanchor(self):
+ """
+ Sets the label's vertical position anchor This anchor binds the
+ specified `textposition` to the "top", "middle" or "bottom" of
+ the label text. For example, if `textposition` is set to *top
+ right* and `yanchor` to "top" then the top-most portion of the
+ label text lines up with the top-most edge of the shape.
+
+ The 'yanchor' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['top', 'middle', 'bottom']
+
+ Returns
+ -------
+ Any
+ """
+ return self["yanchor"]
+
+ @yanchor.setter
+ def yanchor(self, val):
+ self["yanchor"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ font
+ Sets the shape label text font.
+ padding
+ Sets padding (in px) between edge of label and edge of
+ shape.
+ text
+ Sets the text to display with shape. It is also used
+ for legend item if `name` is not provided.
+ textangle
+ Sets the angle at which the label text is drawn with
+ respect to the horizontal. For lines, angle "auto" is
+ the same angle as the line. For all other shapes, angle
+ "auto" is horizontal.
+ textposition
+ Sets the position of the label text relative to the
+ shape. Supported values for rectangles, circles and
+ paths are *top left*, *top center*, *top right*,
+ *middle left*, *middle center*, *middle right*, *bottom
+ left*, *bottom center*, and *bottom right*. Supported
+ values for lines are "start", "middle", and "end".
+ Default: *middle center* for rectangles, circles, and
+ paths; "middle" for lines.
+ texttemplate
+ Template string used for rendering the shape's label.
+ Note that this will override `text`. Variables are
+ inserted using %{variable}, for example "x0: %{x0}".
+ Numbers are formatted using d3-format's syntax
+ %{variable:d3-format}, for example "Price: %{x0:$.2f}".
+ See
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format
+ for details on the formatting syntax. Dates are
+ formatted using d3-time-format's syntax
+ %{variable|d3-time-format}, for example "Day: %{x0|%m
+ %b %Y}". See https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format for details on the
+ date formatting syntax. A single multiplication or
+ division operation may be applied to numeric variables,
+ and combined with d3 number formatting, for example
+ "Length in cm: %{x0*2.54}", "%{slope*60:.1f} meters per
+ second." For log axes, variable values are given in log
+ units. For date axes, x/y coordinate variables and
+ center variables use datetimes, while all other
+ variable values use values in ms. Finally, the template
+ string has access to variables `x0`, `x1`, `y0`, `y1`,
+ `slope`, `dx`, `dy`, `width`, `height`, `length`,
+ `xcenter` and `ycenter`.
+ xanchor
+ Sets the label's horizontal position anchor This anchor
+ binds the specified `textposition` to the "left",
+ "center" or "right" of the label text. For example, if
+ `textposition` is set to *top right* and `xanchor` to
+ "right" then the right-most portion of the label text
+ lines up with the right-most edge of the shape.
+ yanchor
+ Sets the label's vertical position anchor This anchor
+ binds the specified `textposition` to the "top",
+ "middle" or "bottom" of the label text. For example, if
+ `textposition` is set to *top right* and `yanchor` to
+ "top" then the top-most portion of the label text lines
+ up with the top-most edge of the shape.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ font=None,
+ padding=None,
+ text=None,
+ textangle=None,
+ textposition=None,
+ texttemplate=None,
+ xanchor=None,
+ yanchor=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Label object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.shape.Label`
+ font
+ Sets the shape label text font.
+ padding
+ Sets padding (in px) between edge of label and edge of
+ shape.
+ text
+ Sets the text to display with shape. It is also used
+ for legend item if `name` is not provided.
+ textangle
+ Sets the angle at which the label text is drawn with
+ respect to the horizontal. For lines, angle "auto" is
+ the same angle as the line. For all other shapes, angle
+ "auto" is horizontal.
+ textposition
+ Sets the position of the label text relative to the
+ shape. Supported values for rectangles, circles and
+ paths are *top left*, *top center*, *top right*,
+ *middle left*, *middle center*, *middle right*, *bottom
+ left*, *bottom center*, and *bottom right*. Supported
+ values for lines are "start", "middle", and "end".
+ Default: *middle center* for rectangles, circles, and
+ paths; "middle" for lines.
+ texttemplate
+ Template string used for rendering the shape's label.
+ Note that this will override `text`. Variables are
+ inserted using %{variable}, for example "x0: %{x0}".
+ Numbers are formatted using d3-format's syntax
+ %{variable:d3-format}, for example "Price: %{x0:$.2f}".
+ See
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format
+ for details on the formatting syntax. Dates are
+ formatted using d3-time-format's syntax
+ %{variable|d3-time-format}, for example "Day: %{x0|%m
+ %b %Y}". See https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format for details on the
+ date formatting syntax. A single multiplication or
+ division operation may be applied to numeric variables,
+ and combined with d3 number formatting, for example
+ "Length in cm: %{x0*2.54}", "%{slope*60:.1f} meters per
+ second." For log axes, variable values are given in log
+ units. For date axes, x/y coordinate variables and
+ center variables use datetimes, while all other
+ variable values use values in ms. Finally, the template
+ string has access to variables `x0`, `x1`, `y0`, `y1`,
+ `slope`, `dx`, `dy`, `width`, `height`, `length`,
+ `xcenter` and `ycenter`.
+ xanchor
+ Sets the label's horizontal position anchor This anchor
+ binds the specified `textposition` to the "left",
+ "center" or "right" of the label text. For example, if
+ `textposition` is set to *top right* and `xanchor` to
+ "right" then the right-most portion of the label text
+ lines up with the right-most edge of the shape.
+ yanchor
+ Sets the label's vertical position anchor This anchor
+ binds the specified `textposition` to the "top",
+ "middle" or "bottom" of the label text. For example, if
+ `textposition` is set to *top right* and `yanchor` to
+ "top" then the top-most portion of the label text lines
+ up with the top-most edge of the shape.
+
+ Returns
+ -------
+ Label
+ """
+ super().__init__("label")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.shape.Label
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.shape.Label`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("font", arg, font)
+ self._set_property("padding", arg, padding)
+ self._set_property("text", arg, text)
+ self._set_property("textangle", arg, textangle)
+ self._set_property("textposition", arg, textposition)
+ self._set_property("texttemplate", arg, texttemplate)
+ self._set_property("xanchor", arg, xanchor)
+ self._set_property("yanchor", arg, yanchor)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/_legendgrouptitle.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/_legendgrouptitle.py
new file mode 100644
index 0000000..898c1fb
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/_legendgrouptitle.py
@@ -0,0 +1,104 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Legendgrouptitle(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.shape"
+ _path_str = "layout.shape.legendgrouptitle"
+ _valid_props = {"font", "text"}
+
+ @property
+ def font(self):
+ """
+ Sets this legend group's title font.
+
+ The 'font' property is an instance of Font
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.shape.legendgrouptitle.Font`
+ - A dict of string/value properties that will be passed
+ to the Font constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.shape.legendgrouptitle.Font
+ """
+ return self["font"]
+
+ @font.setter
+ def font(self, val):
+ self["font"] = val
+
+ @property
+ def text(self):
+ """
+ Sets the title of the legend group.
+
+ 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
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ font
+ Sets this legend group's title font.
+ text
+ Sets the title of the legend group.
+ """
+
+ def __init__(self, arg=None, font=None, text=None, **kwargs):
+ """
+ Construct a new Legendgrouptitle object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.shape.L
+ egendgrouptitle`
+ font
+ Sets this legend group's title font.
+ text
+ Sets the title of the legend group.
+
+ Returns
+ -------
+ Legendgrouptitle
+ """
+ super().__init__("legendgrouptitle")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.shape.Legendgrouptitle
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.shape.Legendgrouptitle`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("font", arg, font)
+ self._set_property("text", arg, text)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/_line.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/_line.py
new file mode 100644
index 0000000..b59b472
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/_line.py
@@ -0,0 +1,139 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Line(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.shape"
+ _path_str = "layout.shape.line"
+ _valid_props = {"color", "dash", "width"}
+
+ @property
+ def color(self):
+ """
+ Sets the line color.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def dash(self):
+ """
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+
+ The 'dash' property is an enumeration that may be specified as:
+ - One of the following dash styles:
+ ['solid', 'dot', 'dash', 'longdash', 'dashdot', 'longdashdot']
+ - A string containing a dash length list in pixels or percentages
+ (e.g. '5px 10px 2px 2px', '5, 10, 2, 2', '10% 20% 40%', etc.)
+
+ Returns
+ -------
+ str
+ """
+ return self["dash"]
+
+ @dash.setter
+ def dash(self, val):
+ self["dash"] = val
+
+ @property
+ def width(self):
+ """
+ Sets the line width (in px).
+
+ The 'width' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["width"]
+
+ @width.setter
+ def width(self, val):
+ self["width"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+ Sets the line color.
+ dash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ width
+ Sets the line width (in px).
+ """
+
+ def __init__(self, arg=None, color=None, dash=None, width=None, **kwargs):
+ """
+ Construct a new Line object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.shape.Line`
+ color
+ Sets the line color.
+ dash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ width
+ Sets the line width (in px).
+
+ Returns
+ -------
+ Line
+ """
+ super().__init__("line")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.shape.Line
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.shape.Line`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("dash", arg, dash)
+ self._set_property("width", arg, width)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/label/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/label/__init__.py
new file mode 100644
index 0000000..56f600d
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/label/__init__.py
@@ -0,0 +1,9 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._font import Font
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/label/_font.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/label/_font.py
new file mode 100644
index 0000000..d80142d
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/label/_font.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Font(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.shape.label"
+ _path_str = "layout.shape.label.font"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Font object
+
+ Sets the shape label text font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.shape.label.Font`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Font
+ """
+ super().__init__("font")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.shape.label.Font
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.shape.label.Font`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/legendgrouptitle/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/legendgrouptitle/__init__.py
new file mode 100644
index 0000000..56f600d
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/legendgrouptitle/__init__.py
@@ -0,0 +1,9 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._font import Font
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/legendgrouptitle/_font.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/legendgrouptitle/_font.py
new file mode 100644
index 0000000..c547c64
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/shape/legendgrouptitle/_font.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Font(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.shape.legendgrouptitle"
+ _path_str = "layout.shape.legendgrouptitle.font"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Font object
+
+ Sets this legend group's title font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.shape.l
+ egendgrouptitle.Font`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Font
+ """
+ super().__init__("font")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.shape.legendgrouptitle.Font
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.shape.legendgrouptitle.Font`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/__init__.py
new file mode 100644
index 0000000..071bb99
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/__init__.py
@@ -0,0 +1,24 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._currentvalue import Currentvalue
+ from ._font import Font
+ from ._pad import Pad
+ from ._step import Step
+ from ._transition import Transition
+ from . import currentvalue
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__,
+ [".currentvalue"],
+ [
+ "._currentvalue.Currentvalue",
+ "._font.Font",
+ "._pad.Pad",
+ "._step.Step",
+ "._transition.Transition",
+ ],
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/_currentvalue.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/_currentvalue.py
new file mode 100644
index 0000000..d25d72b
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/_currentvalue.py
@@ -0,0 +1,220 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Currentvalue(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.slider"
+ _path_str = "layout.slider.currentvalue"
+ _valid_props = {"font", "offset", "prefix", "suffix", "visible", "xanchor"}
+
+ @property
+ def font(self):
+ """
+ Sets the font of the current value label text.
+
+ The 'font' property is an instance of Font
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.slider.currentvalue.Font`
+ - A dict of string/value properties that will be passed
+ to the Font constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.slider.currentvalue.Font
+ """
+ return self["font"]
+
+ @font.setter
+ def font(self, val):
+ self["font"] = val
+
+ @property
+ def offset(self):
+ """
+ The amount of space, in pixels, between the current value label
+ and the slider.
+
+ The 'offset' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["offset"]
+
+ @offset.setter
+ def offset(self, val):
+ self["offset"] = val
+
+ @property
+ def prefix(self):
+ """
+ When currentvalue.visible is true, this sets the prefix of the
+ label.
+
+ The 'prefix' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["prefix"]
+
+ @prefix.setter
+ def prefix(self, val):
+ self["prefix"] = val
+
+ @property
+ def suffix(self):
+ """
+ When currentvalue.visible is true, this sets the suffix of the
+ label.
+
+ The 'suffix' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["suffix"]
+
+ @suffix.setter
+ def suffix(self, val):
+ self["suffix"] = val
+
+ @property
+ def visible(self):
+ """
+ Shows the currently-selected value above the slider.
+
+ The 'visible' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["visible"]
+
+ @visible.setter
+ def visible(self, val):
+ self["visible"] = val
+
+ @property
+ def xanchor(self):
+ """
+ The alignment of the value readout relative to the length of
+ the slider.
+
+ The 'xanchor' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['left', 'center', 'right']
+
+ Returns
+ -------
+ Any
+ """
+ return self["xanchor"]
+
+ @xanchor.setter
+ def xanchor(self, val):
+ self["xanchor"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ font
+ Sets the font of the current value label text.
+ offset
+ The amount of space, in pixels, between the current
+ value label and the slider.
+ prefix
+ When currentvalue.visible is true, this sets the prefix
+ of the label.
+ suffix
+ When currentvalue.visible is true, this sets the suffix
+ of the label.
+ visible
+ Shows the currently-selected value above the slider.
+ xanchor
+ The alignment of the value readout relative to the
+ length of the slider.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ font=None,
+ offset=None,
+ prefix=None,
+ suffix=None,
+ visible=None,
+ xanchor=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Currentvalue object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.slider.Currentvalue`
+ font
+ Sets the font of the current value label text.
+ offset
+ The amount of space, in pixels, between the current
+ value label and the slider.
+ prefix
+ When currentvalue.visible is true, this sets the prefix
+ of the label.
+ suffix
+ When currentvalue.visible is true, this sets the suffix
+ of the label.
+ visible
+ Shows the currently-selected value above the slider.
+ xanchor
+ The alignment of the value readout relative to the
+ length of the slider.
+
+ Returns
+ -------
+ Currentvalue
+ """
+ super().__init__("currentvalue")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.slider.Currentvalue
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.slider.Currentvalue`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("font", arg, font)
+ self._set_property("offset", arg, offset)
+ self._set_property("prefix", arg, prefix)
+ self._set_property("suffix", arg, suffix)
+ self._set_property("visible", arg, visible)
+ self._set_property("xanchor", arg, xanchor)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/_font.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/_font.py
new file mode 100644
index 0000000..4141210
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/_font.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Font(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.slider"
+ _path_str = "layout.slider.font"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Font object
+
+ Sets the font of the slider step labels.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.slider.Font`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Font
+ """
+ super().__init__("font")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.slider.Font
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.slider.Font`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/_pad.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/_pad.py
new file mode 100644
index 0000000..dfee202
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/_pad.py
@@ -0,0 +1,159 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Pad(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.slider"
+ _path_str = "layout.slider.pad"
+ _valid_props = {"b", "l", "r", "t"}
+
+ @property
+ def b(self):
+ """
+ The amount of padding (in px) along the bottom of the
+ component.
+
+ The 'b' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["b"]
+
+ @b.setter
+ def b(self, val):
+ self["b"] = val
+
+ @property
+ def l(self):
+ """
+ The amount of padding (in px) on the left side of the
+ component.
+
+ The 'l' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["l"]
+
+ @l.setter
+ def l(self, val):
+ self["l"] = val
+
+ @property
+ def r(self):
+ """
+ The amount of padding (in px) on the right side of the
+ component.
+
+ The 'r' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["r"]
+
+ @r.setter
+ def r(self, val):
+ self["r"] = val
+
+ @property
+ def t(self):
+ """
+ The amount of padding (in px) along the top of the component.
+
+ The 't' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["t"]
+
+ @t.setter
+ def t(self, val):
+ self["t"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ b
+ The amount of padding (in px) along the bottom of the
+ component.
+ l
+ The amount of padding (in px) on the left side of the
+ component.
+ r
+ The amount of padding (in px) on the right side of the
+ component.
+ t
+ The amount of padding (in px) along the top of the
+ component.
+ """
+
+ def __init__(self, arg=None, b=None, l=None, r=None, t=None, **kwargs):
+ """
+ Construct a new Pad object
+
+ Set the padding of the slider component along each side.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.slider.Pad`
+ b
+ The amount of padding (in px) along the bottom of the
+ component.
+ l
+ The amount of padding (in px) on the left side of the
+ component.
+ r
+ The amount of padding (in px) on the right side of the
+ component.
+ t
+ The amount of padding (in px) along the top of the
+ component.
+
+ Returns
+ -------
+ Pad
+ """
+ super().__init__("pad")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.slider.Pad
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.slider.Pad`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("b", arg, b)
+ self._set_property("l", arg, l)
+ self._set_property("r", arg, r)
+ self._set_property("t", arg, t)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/_step.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/_step.py
new file mode 100644
index 0000000..bcc3d92
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/_step.py
@@ -0,0 +1,354 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Step(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.slider"
+ _path_str = "layout.slider.step"
+ _valid_props = {
+ "args",
+ "execute",
+ "label",
+ "method",
+ "name",
+ "templateitemname",
+ "value",
+ "visible",
+ }
+
+ @property
+ def args(self):
+ """
+ Sets the arguments values to be passed to the Plotly method set
+ in `method` on slide.
+
+ The 'args' property is an info array that may be specified as:
+
+ * a list or tuple of up to 3 elements where:
+ (0) The 'args[0]' property accepts values of any type
+ (1) The 'args[1]' property accepts values of any type
+ (2) The 'args[2]' property accepts values of any type
+
+ Returns
+ -------
+ list
+ """
+ return self["args"]
+
+ @args.setter
+ def args(self, val):
+ self["args"] = val
+
+ @property
+ def execute(self):
+ """
+ When true, the API method is executed. When false, all other
+ behaviors are the same and command execution is skipped. This
+ may be useful when hooking into, for example, the
+ `plotly_sliderchange` method and executing the API command
+ manually without losing the benefit of the slider automatically
+ binding to the state of the plot through the specification of
+ `method` and `args`.
+
+ The 'execute' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["execute"]
+
+ @execute.setter
+ def execute(self, val):
+ self["execute"] = val
+
+ @property
+ def label(self):
+ """
+ Sets the text label to appear on the slider
+
+ The 'label' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["label"]
+
+ @label.setter
+ def label(self, val):
+ self["label"] = val
+
+ @property
+ def method(self):
+ """
+ Sets the Plotly method to be called when the slider value is
+ changed. If the `skip` method is used, the API slider will
+ function as normal but will perform no API calls and will not
+ bind automatically to state updates. This may be used to create
+ a component interface and attach to slider events manually via
+ JavaScript.
+
+ The 'method' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['restyle', 'relayout', 'animate', 'update', 'skip']
+
+ Returns
+ -------
+ Any
+ """
+ return self["method"]
+
+ @method.setter
+ def method(self, val):
+ self["method"] = val
+
+ @property
+ def name(self):
+ """
+ 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.
+
+ The 'name' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["name"]
+
+ @name.setter
+ def name(self, val):
+ self["name"] = val
+
+ @property
+ def templateitemname(self):
+ """
+ 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`.
+
+ The 'templateitemname' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["templateitemname"]
+
+ @templateitemname.setter
+ def templateitemname(self, val):
+ self["templateitemname"] = val
+
+ @property
+ def value(self):
+ """
+ Sets the value of the slider step, used to refer to the step
+ programatically. Defaults to the slider label if not provided.
+
+ The 'value' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["value"]
+
+ @value.setter
+ def value(self, val):
+ self["value"] = val
+
+ @property
+ def visible(self):
+ """
+ Determines whether or not this step is included in the slider.
+
+ The 'visible' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["visible"]
+
+ @visible.setter
+ def visible(self, val):
+ self["visible"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ args
+ Sets the arguments values to be passed to the Plotly
+ method set in `method` on slide.
+ execute
+ When true, the API method is executed. When false, all
+ other behaviors are the same and command execution is
+ skipped. This may be useful when hooking into, for
+ example, the `plotly_sliderchange` method and executing
+ the API command manually without losing the benefit of
+ the slider automatically binding to the state of the
+ plot through the specification of `method` and `args`.
+ label
+ Sets the text label to appear on the slider
+ method
+ Sets the Plotly method to be called when the slider
+ value is changed. If the `skip` method is used, the API
+ slider will function as normal but will perform no API
+ calls and will not bind automatically to state updates.
+ This may be used to create a component interface and
+ attach to slider events manually via JavaScript.
+ 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`.
+ value
+ Sets the value of the slider step, used to refer to the
+ step programatically. Defaults to the slider label if
+ not provided.
+ visible
+ Determines whether or not this step is included in the
+ slider.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ args=None,
+ execute=None,
+ label=None,
+ method=None,
+ name=None,
+ templateitemname=None,
+ value=None,
+ visible=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Step object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.slider.Step`
+ args
+ Sets the arguments values to be passed to the Plotly
+ method set in `method` on slide.
+ execute
+ When true, the API method is executed. When false, all
+ other behaviors are the same and command execution is
+ skipped. This may be useful when hooking into, for
+ example, the `plotly_sliderchange` method and executing
+ the API command manually without losing the benefit of
+ the slider automatically binding to the state of the
+ plot through the specification of `method` and `args`.
+ label
+ Sets the text label to appear on the slider
+ method
+ Sets the Plotly method to be called when the slider
+ value is changed. If the `skip` method is used, the API
+ slider will function as normal but will perform no API
+ calls and will not bind automatically to state updates.
+ This may be used to create a component interface and
+ attach to slider events manually via JavaScript.
+ 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`.
+ value
+ Sets the value of the slider step, used to refer to the
+ step programatically. Defaults to the slider label if
+ not provided.
+ visible
+ Determines whether or not this step is included in the
+ slider.
+
+ Returns
+ -------
+ Step
+ """
+ super().__init__("steps")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.slider.Step
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.slider.Step`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("args", arg, args)
+ self._set_property("execute", arg, execute)
+ self._set_property("label", arg, label)
+ self._set_property("method", arg, method)
+ self._set_property("name", arg, name)
+ self._set_property("templateitemname", arg, templateitemname)
+ self._set_property("value", arg, value)
+ self._set_property("visible", arg, visible)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/_transition.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/_transition.py
new file mode 100644
index 0000000..7fbc3aa
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/_transition.py
@@ -0,0 +1,109 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Transition(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.slider"
+ _path_str = "layout.slider.transition"
+ _valid_props = {"duration", "easing"}
+
+ @property
+ def duration(self):
+ """
+ Sets the duration of the slider transition
+
+ The 'duration' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["duration"]
+
+ @duration.setter
+ def duration(self, val):
+ self["duration"] = val
+
+ @property
+ def easing(self):
+ """
+ Sets the easing function of the slider transition
+
+ The 'easing' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['linear', 'quad', 'cubic', 'sin', 'exp', 'circle',
+ 'elastic', 'back', 'bounce', 'linear-in', 'quad-in',
+ 'cubic-in', 'sin-in', 'exp-in', 'circle-in', 'elastic-in',
+ 'back-in', 'bounce-in', 'linear-out', 'quad-out',
+ 'cubic-out', 'sin-out', 'exp-out', 'circle-out',
+ 'elastic-out', 'back-out', 'bounce-out', 'linear-in-out',
+ 'quad-in-out', 'cubic-in-out', 'sin-in-out', 'exp-in-out',
+ 'circle-in-out', 'elastic-in-out', 'back-in-out',
+ 'bounce-in-out']
+
+ Returns
+ -------
+ Any
+ """
+ return self["easing"]
+
+ @easing.setter
+ def easing(self, val):
+ self["easing"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ duration
+ Sets the duration of the slider transition
+ easing
+ Sets the easing function of the slider transition
+ """
+
+ def __init__(self, arg=None, duration=None, easing=None, **kwargs):
+ """
+ Construct a new Transition object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.slider.Transition`
+ duration
+ Sets the duration of the slider transition
+ easing
+ Sets the easing function of the slider transition
+
+ Returns
+ -------
+ Transition
+ """
+ super().__init__("transition")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.slider.Transition
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.slider.Transition`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("duration", arg, duration)
+ self._set_property("easing", arg, easing)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/currentvalue/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/currentvalue/__init__.py
new file mode 100644
index 0000000..56f600d
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/currentvalue/__init__.py
@@ -0,0 +1,9 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._font import Font
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/currentvalue/_font.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/currentvalue/_font.py
new file mode 100644
index 0000000..60743f4
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/slider/currentvalue/_font.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Font(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.slider.currentvalue"
+ _path_str = "layout.slider.currentvalue.font"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Font object
+
+ Sets the font of the current value label text.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.slider.
+ currentvalue.Font`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Font
+ """
+ super().__init__("font")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.slider.currentvalue.Font
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.slider.currentvalue.Font`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/__init__.py
new file mode 100644
index 0000000..f809fe8
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/__init__.py
@@ -0,0 +1,17 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._domain import Domain
+ from ._imaginaryaxis import Imaginaryaxis
+ from ._realaxis import Realaxis
+ from . import imaginaryaxis
+ from . import realaxis
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__,
+ [".imaginaryaxis", ".realaxis"],
+ ["._domain.Domain", "._imaginaryaxis.Imaginaryaxis", "._realaxis.Realaxis"],
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/_domain.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/_domain.py
new file mode 100644
index 0000000..bbfd610
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/_domain.py
@@ -0,0 +1,170 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Domain(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.smith"
+ _path_str = "layout.smith.domain"
+ _valid_props = {"column", "row", "x", "y"}
+
+ @property
+ def column(self):
+ """
+ If there is a layout grid, use the domain for this column in
+ the grid for this smith subplot .
+
+ The 'column' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [0, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["column"]
+
+ @column.setter
+ def column(self, val):
+ self["column"] = val
+
+ @property
+ def row(self):
+ """
+ If there is a layout grid, use the domain for this row in the
+ grid for this smith subplot .
+
+ The 'row' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [0, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["row"]
+
+ @row.setter
+ def row(self, val):
+ self["row"] = val
+
+ @property
+ def x(self):
+ """
+ Sets the horizontal domain of this smith subplot (in plot
+ fraction).
+
+ The 'x' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'x[0]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+ (1) The 'x[1]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ list
+ """
+ return self["x"]
+
+ @x.setter
+ def x(self, val):
+ self["x"] = val
+
+ @property
+ def y(self):
+ """
+ Sets the vertical domain of this smith subplot (in plot
+ fraction).
+
+ The 'y' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'y[0]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+ (1) The 'y[1]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ list
+ """
+ return self["y"]
+
+ @y.setter
+ def y(self, val):
+ self["y"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ column
+ If there is a layout grid, use the domain for this
+ column in the grid for this smith subplot .
+ row
+ If there is a layout grid, use the domain for this row
+ in the grid for this smith subplot .
+ x
+ Sets the horizontal domain of this smith subplot (in
+ plot fraction).
+ y
+ Sets the vertical domain of this smith subplot (in plot
+ fraction).
+ """
+
+ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
+ """
+ Construct a new Domain object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.smith.Domain`
+ column
+ If there is a layout grid, use the domain for this
+ column in the grid for this smith subplot .
+ row
+ If there is a layout grid, use the domain for this row
+ in the grid for this smith subplot .
+ x
+ Sets the horizontal domain of this smith subplot (in
+ plot fraction).
+ y
+ Sets the vertical domain of this smith subplot (in plot
+ fraction).
+
+ Returns
+ -------
+ Domain
+ """
+ super().__init__("domain")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.smith.Domain
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.smith.Domain`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("column", arg, column)
+ self._set_property("row", arg, row)
+ self._set_property("x", arg, x)
+ self._set_property("y", arg, y)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/_imaginaryaxis.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/_imaginaryaxis.py
new file mode 100644
index 0000000..85ae07a
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/_imaginaryaxis.py
@@ -0,0 +1,865 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Imaginaryaxis(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.smith"
+ _path_str = "layout.smith.imaginaryaxis"
+ _valid_props = {
+ "color",
+ "gridcolor",
+ "griddash",
+ "gridwidth",
+ "hoverformat",
+ "labelalias",
+ "layer",
+ "linecolor",
+ "linewidth",
+ "showgrid",
+ "showline",
+ "showticklabels",
+ "showtickprefix",
+ "showticksuffix",
+ "tickcolor",
+ "tickfont",
+ "tickformat",
+ "ticklen",
+ "tickprefix",
+ "ticks",
+ "ticksuffix",
+ "tickvals",
+ "tickvalssrc",
+ "tickwidth",
+ "visible",
+ }
+
+ @property
+ def color(self):
+ """
+ Sets default for all colors associated with this axis all at
+ once: line, font, tick, and grid colors. Grid color is
+ lightened by blending this with the plot background Individual
+ pieces can override this.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def gridcolor(self):
+ """
+ Sets the color of the grid lines.
+
+ The 'gridcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["gridcolor"]
+
+ @gridcolor.setter
+ def gridcolor(self, val):
+ self["gridcolor"] = val
+
+ @property
+ def griddash(self):
+ """
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+
+ The 'griddash' property is an enumeration that may be specified as:
+ - One of the following dash styles:
+ ['solid', 'dot', 'dash', 'longdash', 'dashdot', 'longdashdot']
+ - A string containing a dash length list in pixels or percentages
+ (e.g. '5px 10px 2px 2px', '5, 10, 2, 2', '10% 20% 40%', etc.)
+
+ Returns
+ -------
+ str
+ """
+ return self["griddash"]
+
+ @griddash.setter
+ def griddash(self, val):
+ self["griddash"] = val
+
+ @property
+ def gridwidth(self):
+ """
+ Sets the width (in px) of the grid lines.
+
+ The 'gridwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["gridwidth"]
+
+ @gridwidth.setter
+ def gridwidth(self, val):
+ self["gridwidth"] = val
+
+ @property
+ def hoverformat(self):
+ """
+ Sets the hover text formatting rule using d3 formatting mini-
+ languages which are very similar to those in Python. For
+ numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format. And for
+ dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to d3's date
+ formatter: "%h" for half of the year as a decimal number as
+ well as "%{n}f" for fractional seconds with n digits. For
+ example, *2016-10-13 09:15:23.456* with tickformat
+ "%H~%M~%S.%2f" would display "09~15~23.46"
+
+ The 'hoverformat' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["hoverformat"]
+
+ @hoverformat.setter
+ def hoverformat(self, val):
+ self["hoverformat"] = val
+
+ @property
+ def labelalias(self):
+ """
+ Replacement text for specific tick or hover labels. For example
+ using {US: 'USA', CA: 'Canada'} changes US to USA and CA to
+ Canada. The labels we would have shown must match the keys
+ exactly, after adding any tickprefix or ticksuffix. For
+ negative numbers the minus sign symbol used (U+2212) is wider
+ than the regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis type, and
+ both keys (if needed) and values (if desired) can include html-
+ like tags or MathJax.
+
+ The 'labelalias' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["labelalias"]
+
+ @labelalias.setter
+ def labelalias(self, val):
+ self["labelalias"] = val
+
+ @property
+ def layer(self):
+ """
+ Sets the layer on which this axis is displayed. If *above
+ traces*, this axis is displayed above all the subplot's traces
+ If *below traces*, this axis is displayed below all the
+ subplot's traces, but above the grid lines. Useful when used
+ together with scatter-like traces with `cliponaxis` set to
+ False to show markers and/or text nodes above this axis.
+
+ The 'layer' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['above traces', 'below traces']
+
+ Returns
+ -------
+ Any
+ """
+ return self["layer"]
+
+ @layer.setter
+ def layer(self, val):
+ self["layer"] = val
+
+ @property
+ def linecolor(self):
+ """
+ Sets the axis line color.
+
+ The 'linecolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["linecolor"]
+
+ @linecolor.setter
+ def linecolor(self, val):
+ self["linecolor"] = val
+
+ @property
+ def linewidth(self):
+ """
+ Sets the width (in px) of the axis line.
+
+ The 'linewidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["linewidth"]
+
+ @linewidth.setter
+ def linewidth(self, val):
+ self["linewidth"] = val
+
+ @property
+ def showgrid(self):
+ """
+ Determines whether or not grid lines are drawn. If True, the
+ grid lines are drawn at every tick mark.
+
+ The 'showgrid' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showgrid"]
+
+ @showgrid.setter
+ def showgrid(self, val):
+ self["showgrid"] = val
+
+ @property
+ def showline(self):
+ """
+ Determines whether or not a line bounding this axis is drawn.
+
+ The 'showline' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showline"]
+
+ @showline.setter
+ def showline(self, val):
+ self["showline"] = val
+
+ @property
+ def showticklabels(self):
+ """
+ Determines whether or not the tick labels are drawn.
+
+ The 'showticklabels' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showticklabels"]
+
+ @showticklabels.setter
+ def showticklabels(self, val):
+ self["showticklabels"] = val
+
+ @property
+ def showtickprefix(self):
+ """
+ If "all", all tick labels are displayed with a prefix. If
+ "first", only the first tick is displayed with a prefix. If
+ "last", only the last tick is displayed with a suffix. If
+ "none", tick prefixes are hidden.
+
+ The 'showtickprefix' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showtickprefix"]
+
+ @showtickprefix.setter
+ def showtickprefix(self, val):
+ self["showtickprefix"] = val
+
+ @property
+ def showticksuffix(self):
+ """
+ Same as `showtickprefix` but for tick suffixes.
+
+ The 'showticksuffix' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showticksuffix"]
+
+ @showticksuffix.setter
+ def showticksuffix(self, val):
+ self["showticksuffix"] = val
+
+ @property
+ def tickcolor(self):
+ """
+ Sets the tick color.
+
+ The 'tickcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["tickcolor"]
+
+ @tickcolor.setter
+ def tickcolor(self, val):
+ self["tickcolor"] = val
+
+ @property
+ def tickfont(self):
+ """
+ Sets the tick font.
+
+ The 'tickfont' property is an instance of Tickfont
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.smith.imaginaryaxis.Tickfont`
+ - A dict of string/value properties that will be passed
+ to the Tickfont constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.smith.imaginaryaxis.Tickfont
+ """
+ return self["tickfont"]
+
+ @tickfont.setter
+ def tickfont(self, val):
+ self["tickfont"] = val
+
+ @property
+ def tickformat(self):
+ """
+ Sets the tick label formatting rule using d3 formatting mini-
+ languages which are very similar to those in Python. For
+ numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format. And for
+ dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to d3's date
+ formatter: "%h" for half of the year as a decimal number as
+ well as "%{n}f" for fractional seconds with n digits. For
+ example, *2016-10-13 09:15:23.456* with tickformat
+ "%H~%M~%S.%2f" would display "09~15~23.46"
+
+ The 'tickformat' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["tickformat"]
+
+ @tickformat.setter
+ def tickformat(self, val):
+ self["tickformat"] = val
+
+ @property
+ def ticklen(self):
+ """
+ Sets the tick length (in px).
+
+ The 'ticklen' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["ticklen"]
+
+ @ticklen.setter
+ def ticklen(self, val):
+ self["ticklen"] = val
+
+ @property
+ def tickprefix(self):
+ """
+ Sets a tick label prefix.
+
+ The 'tickprefix' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["tickprefix"]
+
+ @tickprefix.setter
+ def tickprefix(self, val):
+ self["tickprefix"] = val
+
+ @property
+ def ticks(self):
+ """
+ Determines whether ticks are drawn or not. If "", this axis'
+ ticks are not drawn. If "outside" ("inside"), this axis' are
+ drawn outside (inside) the axis lines.
+
+ The 'ticks' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['outside', 'inside', '']
+
+ Returns
+ -------
+ Any
+ """
+ return self["ticks"]
+
+ @ticks.setter
+ def ticks(self, val):
+ self["ticks"] = val
+
+ @property
+ def ticksuffix(self):
+ """
+ Sets a tick label suffix.
+
+ The 'ticksuffix' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["ticksuffix"]
+
+ @ticksuffix.setter
+ def ticksuffix(self, val):
+ self["ticksuffix"] = val
+
+ @property
+ def tickvals(self):
+ """
+ Sets the values at which ticks on this axis appear. Defaults to
+ `realaxis.tickvals` plus the same as negatives and zero.
+
+ The 'tickvals' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["tickvals"]
+
+ @tickvals.setter
+ def tickvals(self, val):
+ self["tickvals"] = val
+
+ @property
+ def tickvalssrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `tickvals`.
+
+ The 'tickvalssrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["tickvalssrc"]
+
+ @tickvalssrc.setter
+ def tickvalssrc(self, val):
+ self["tickvalssrc"] = val
+
+ @property
+ def tickwidth(self):
+ """
+ Sets the tick width (in px).
+
+ The 'tickwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tickwidth"]
+
+ @tickwidth.setter
+ def tickwidth(self, val):
+ self["tickwidth"] = val
+
+ @property
+ def visible(self):
+ """
+ A single toggle to hide the axis while preserving interaction
+ like dragging. Default is true when a cheater plot is present
+ on the axis, otherwise false
+
+ The 'visible' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["visible"]
+
+ @visible.setter
+ def visible(self, val):
+ self["visible"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+ Sets default for all colors associated with this axis
+ all at once: line, font, tick, and grid colors. Grid
+ color is lightened by blending this with the plot
+ background Individual pieces can override this.
+ gridcolor
+ Sets the color of the grid lines.
+ griddash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ gridwidth
+ Sets the width (in px) of the grid lines.
+ hoverformat
+ Sets the hover text formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ labelalias
+ Replacement text for specific tick or hover labels. For
+ example using {US: 'USA', CA: 'Canada'} changes US to
+ USA and CA to Canada. The labels we would have shown
+ must match the keys exactly, after adding any
+ tickprefix or ticksuffix. For negative numbers the
+ minus sign symbol used (U+2212) is wider than the
+ regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis
+ type, and both keys (if needed) and values (if desired)
+ can include html-like tags or MathJax.
+ layer
+ Sets the layer on which this axis is displayed. If
+ *above traces*, this axis is displayed above all the
+ subplot's traces If *below traces*, this axis is
+ displayed below all the subplot's traces, but above the
+ grid lines. Useful when used together with scatter-like
+ traces with `cliponaxis` set to False to show markers
+ and/or text nodes above this axis.
+ linecolor
+ Sets the axis line color.
+ linewidth
+ Sets the width (in px) of the axis line.
+ showgrid
+ Determines whether or not grid lines are drawn. If
+ True, the grid lines are drawn at every tick mark.
+ showline
+ Determines whether or not a line bounding this axis is
+ drawn.
+ showticklabels
+ Determines whether or not the tick labels are drawn.
+ showtickprefix
+ If "all", all tick labels are displayed with a prefix.
+ If "first", only the first tick is displayed with a
+ prefix. If "last", only the last tick is displayed with
+ a suffix. If "none", tick prefixes are hidden.
+ showticksuffix
+ Same as `showtickprefix` but for tick suffixes.
+ tickcolor
+ Sets the tick color.
+ tickfont
+ Sets the tick font.
+ tickformat
+ Sets the tick label formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ ticklen
+ Sets the tick length (in px).
+ tickprefix
+ Sets a tick label prefix.
+ ticks
+ Determines whether ticks are drawn or not. If "", this
+ axis' ticks are not drawn. If "outside" ("inside"),
+ this axis' are drawn outside (inside) the axis lines.
+ ticksuffix
+ Sets a tick label suffix.
+ tickvals
+ Sets the values at which ticks on this axis appear.
+ Defaults to `realaxis.tickvals` plus the same as
+ negatives and zero.
+ tickvalssrc
+ Sets the source reference on Chart Studio Cloud for
+ `tickvals`.
+ tickwidth
+ Sets the tick width (in px).
+ visible
+ A single toggle to hide the axis while preserving
+ interaction like dragging. Default is true when a
+ cheater plot is present on the axis, otherwise false
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ gridcolor=None,
+ griddash=None,
+ gridwidth=None,
+ hoverformat=None,
+ labelalias=None,
+ layer=None,
+ linecolor=None,
+ linewidth=None,
+ showgrid=None,
+ showline=None,
+ showticklabels=None,
+ showtickprefix=None,
+ showticksuffix=None,
+ tickcolor=None,
+ tickfont=None,
+ tickformat=None,
+ ticklen=None,
+ tickprefix=None,
+ ticks=None,
+ ticksuffix=None,
+ tickvals=None,
+ tickvalssrc=None,
+ tickwidth=None,
+ visible=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Imaginaryaxis object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.smith.Imaginaryaxis`
+ color
+ Sets default for all colors associated with this axis
+ all at once: line, font, tick, and grid colors. Grid
+ color is lightened by blending this with the plot
+ background Individual pieces can override this.
+ gridcolor
+ Sets the color of the grid lines.
+ griddash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ gridwidth
+ Sets the width (in px) of the grid lines.
+ hoverformat
+ Sets the hover text formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ labelalias
+ Replacement text for specific tick or hover labels. For
+ example using {US: 'USA', CA: 'Canada'} changes US to
+ USA and CA to Canada. The labels we would have shown
+ must match the keys exactly, after adding any
+ tickprefix or ticksuffix. For negative numbers the
+ minus sign symbol used (U+2212) is wider than the
+ regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis
+ type, and both keys (if needed) and values (if desired)
+ can include html-like tags or MathJax.
+ layer
+ Sets the layer on which this axis is displayed. If
+ *above traces*, this axis is displayed above all the
+ subplot's traces If *below traces*, this axis is
+ displayed below all the subplot's traces, but above the
+ grid lines. Useful when used together with scatter-like
+ traces with `cliponaxis` set to False to show markers
+ and/or text nodes above this axis.
+ linecolor
+ Sets the axis line color.
+ linewidth
+ Sets the width (in px) of the axis line.
+ showgrid
+ Determines whether or not grid lines are drawn. If
+ True, the grid lines are drawn at every tick mark.
+ showline
+ Determines whether or not a line bounding this axis is
+ drawn.
+ showticklabels
+ Determines whether or not the tick labels are drawn.
+ showtickprefix
+ If "all", all tick labels are displayed with a prefix.
+ If "first", only the first tick is displayed with a
+ prefix. If "last", only the last tick is displayed with
+ a suffix. If "none", tick prefixes are hidden.
+ showticksuffix
+ Same as `showtickprefix` but for tick suffixes.
+ tickcolor
+ Sets the tick color.
+ tickfont
+ Sets the tick font.
+ tickformat
+ Sets the tick label formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ ticklen
+ Sets the tick length (in px).
+ tickprefix
+ Sets a tick label prefix.
+ ticks
+ Determines whether ticks are drawn or not. If "", this
+ axis' ticks are not drawn. If "outside" ("inside"),
+ this axis' are drawn outside (inside) the axis lines.
+ ticksuffix
+ Sets a tick label suffix.
+ tickvals
+ Sets the values at which ticks on this axis appear.
+ Defaults to `realaxis.tickvals` plus the same as
+ negatives and zero.
+ tickvalssrc
+ Sets the source reference on Chart Studio Cloud for
+ `tickvals`.
+ tickwidth
+ Sets the tick width (in px).
+ visible
+ A single toggle to hide the axis while preserving
+ interaction like dragging. Default is true when a
+ cheater plot is present on the axis, otherwise false
+
+ Returns
+ -------
+ Imaginaryaxis
+ """
+ super().__init__("imaginaryaxis")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.smith.Imaginaryaxis
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.smith.Imaginaryaxis`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("gridcolor", arg, gridcolor)
+ self._set_property("griddash", arg, griddash)
+ self._set_property("gridwidth", arg, gridwidth)
+ self._set_property("hoverformat", arg, hoverformat)
+ self._set_property("labelalias", arg, labelalias)
+ self._set_property("layer", arg, layer)
+ self._set_property("linecolor", arg, linecolor)
+ self._set_property("linewidth", arg, linewidth)
+ self._set_property("showgrid", arg, showgrid)
+ self._set_property("showline", arg, showline)
+ self._set_property("showticklabels", arg, showticklabels)
+ self._set_property("showtickprefix", arg, showtickprefix)
+ self._set_property("showticksuffix", arg, showticksuffix)
+ self._set_property("tickcolor", arg, tickcolor)
+ self._set_property("tickfont", arg, tickfont)
+ self._set_property("tickformat", arg, tickformat)
+ self._set_property("ticklen", arg, ticklen)
+ self._set_property("tickprefix", arg, tickprefix)
+ self._set_property("ticks", arg, ticks)
+ self._set_property("ticksuffix", arg, ticksuffix)
+ self._set_property("tickvals", arg, tickvals)
+ self._set_property("tickvalssrc", arg, tickvalssrc)
+ self._set_property("tickwidth", arg, tickwidth)
+ self._set_property("visible", arg, visible)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/_realaxis.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/_realaxis.py
new file mode 100644
index 0000000..7a3bf0e
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/_realaxis.py
@@ -0,0 +1,922 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Realaxis(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.smith"
+ _path_str = "layout.smith.realaxis"
+ _valid_props = {
+ "color",
+ "gridcolor",
+ "griddash",
+ "gridwidth",
+ "hoverformat",
+ "labelalias",
+ "layer",
+ "linecolor",
+ "linewidth",
+ "showgrid",
+ "showline",
+ "showticklabels",
+ "showtickprefix",
+ "showticksuffix",
+ "side",
+ "tickangle",
+ "tickcolor",
+ "tickfont",
+ "tickformat",
+ "ticklen",
+ "tickprefix",
+ "ticks",
+ "ticksuffix",
+ "tickvals",
+ "tickvalssrc",
+ "tickwidth",
+ "visible",
+ }
+
+ @property
+ def color(self):
+ """
+ Sets default for all colors associated with this axis all at
+ once: line, font, tick, and grid colors. Grid color is
+ lightened by blending this with the plot background Individual
+ pieces can override this.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def gridcolor(self):
+ """
+ Sets the color of the grid lines.
+
+ The 'gridcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["gridcolor"]
+
+ @gridcolor.setter
+ def gridcolor(self, val):
+ self["gridcolor"] = val
+
+ @property
+ def griddash(self):
+ """
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+
+ The 'griddash' property is an enumeration that may be specified as:
+ - One of the following dash styles:
+ ['solid', 'dot', 'dash', 'longdash', 'dashdot', 'longdashdot']
+ - A string containing a dash length list in pixels or percentages
+ (e.g. '5px 10px 2px 2px', '5, 10, 2, 2', '10% 20% 40%', etc.)
+
+ Returns
+ -------
+ str
+ """
+ return self["griddash"]
+
+ @griddash.setter
+ def griddash(self, val):
+ self["griddash"] = val
+
+ @property
+ def gridwidth(self):
+ """
+ Sets the width (in px) of the grid lines.
+
+ The 'gridwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["gridwidth"]
+
+ @gridwidth.setter
+ def gridwidth(self, val):
+ self["gridwidth"] = val
+
+ @property
+ def hoverformat(self):
+ """
+ Sets the hover text formatting rule using d3 formatting mini-
+ languages which are very similar to those in Python. For
+ numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format. And for
+ dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to d3's date
+ formatter: "%h" for half of the year as a decimal number as
+ well as "%{n}f" for fractional seconds with n digits. For
+ example, *2016-10-13 09:15:23.456* with tickformat
+ "%H~%M~%S.%2f" would display "09~15~23.46"
+
+ The 'hoverformat' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["hoverformat"]
+
+ @hoverformat.setter
+ def hoverformat(self, val):
+ self["hoverformat"] = val
+
+ @property
+ def labelalias(self):
+ """
+ Replacement text for specific tick or hover labels. For example
+ using {US: 'USA', CA: 'Canada'} changes US to USA and CA to
+ Canada. The labels we would have shown must match the keys
+ exactly, after adding any tickprefix or ticksuffix. For
+ negative numbers the minus sign symbol used (U+2212) is wider
+ than the regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis type, and
+ both keys (if needed) and values (if desired) can include html-
+ like tags or MathJax.
+
+ The 'labelalias' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["labelalias"]
+
+ @labelalias.setter
+ def labelalias(self, val):
+ self["labelalias"] = val
+
+ @property
+ def layer(self):
+ """
+ Sets the layer on which this axis is displayed. If *above
+ traces*, this axis is displayed above all the subplot's traces
+ If *below traces*, this axis is displayed below all the
+ subplot's traces, but above the grid lines. Useful when used
+ together with scatter-like traces with `cliponaxis` set to
+ False to show markers and/or text nodes above this axis.
+
+ The 'layer' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['above traces', 'below traces']
+
+ Returns
+ -------
+ Any
+ """
+ return self["layer"]
+
+ @layer.setter
+ def layer(self, val):
+ self["layer"] = val
+
+ @property
+ def linecolor(self):
+ """
+ Sets the axis line color.
+
+ The 'linecolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["linecolor"]
+
+ @linecolor.setter
+ def linecolor(self, val):
+ self["linecolor"] = val
+
+ @property
+ def linewidth(self):
+ """
+ Sets the width (in px) of the axis line.
+
+ The 'linewidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["linewidth"]
+
+ @linewidth.setter
+ def linewidth(self, val):
+ self["linewidth"] = val
+
+ @property
+ def showgrid(self):
+ """
+ Determines whether or not grid lines are drawn. If True, the
+ grid lines are drawn at every tick mark.
+
+ The 'showgrid' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showgrid"]
+
+ @showgrid.setter
+ def showgrid(self, val):
+ self["showgrid"] = val
+
+ @property
+ def showline(self):
+ """
+ Determines whether or not a line bounding this axis is drawn.
+
+ The 'showline' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showline"]
+
+ @showline.setter
+ def showline(self, val):
+ self["showline"] = val
+
+ @property
+ def showticklabels(self):
+ """
+ Determines whether or not the tick labels are drawn.
+
+ The 'showticklabels' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showticklabels"]
+
+ @showticklabels.setter
+ def showticklabels(self, val):
+ self["showticklabels"] = val
+
+ @property
+ def showtickprefix(self):
+ """
+ If "all", all tick labels are displayed with a prefix. If
+ "first", only the first tick is displayed with a prefix. If
+ "last", only the last tick is displayed with a suffix. If
+ "none", tick prefixes are hidden.
+
+ The 'showtickprefix' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showtickprefix"]
+
+ @showtickprefix.setter
+ def showtickprefix(self, val):
+ self["showtickprefix"] = val
+
+ @property
+ def showticksuffix(self):
+ """
+ Same as `showtickprefix` but for tick suffixes.
+
+ The 'showticksuffix' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showticksuffix"]
+
+ @showticksuffix.setter
+ def showticksuffix(self, val):
+ self["showticksuffix"] = val
+
+ @property
+ def side(self):
+ """
+ Determines on which side of real axis line the tick and tick
+ labels appear.
+
+ The 'side' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['top', 'bottom']
+
+ Returns
+ -------
+ Any
+ """
+ return self["side"]
+
+ @side.setter
+ def side(self, val):
+ self["side"] = val
+
+ @property
+ def tickangle(self):
+ """
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the tick
+ labels vertically.
+
+ The 'tickangle' property is a angle (in degrees) that may be
+ specified as a number between -180 and 180.
+ Numeric values outside this range are converted to the equivalent value
+ (e.g. 270 is converted to -90).
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tickangle"]
+
+ @tickangle.setter
+ def tickangle(self, val):
+ self["tickangle"] = val
+
+ @property
+ def tickcolor(self):
+ """
+ Sets the tick color.
+
+ The 'tickcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["tickcolor"]
+
+ @tickcolor.setter
+ def tickcolor(self, val):
+ self["tickcolor"] = val
+
+ @property
+ def tickfont(self):
+ """
+ Sets the tick font.
+
+ The 'tickfont' property is an instance of Tickfont
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.smith.realaxis.Tickfont`
+ - A dict of string/value properties that will be passed
+ to the Tickfont constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.smith.realaxis.Tickfont
+ """
+ return self["tickfont"]
+
+ @tickfont.setter
+ def tickfont(self, val):
+ self["tickfont"] = val
+
+ @property
+ def tickformat(self):
+ """
+ Sets the tick label formatting rule using d3 formatting mini-
+ languages which are very similar to those in Python. For
+ numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format. And for
+ dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to d3's date
+ formatter: "%h" for half of the year as a decimal number as
+ well as "%{n}f" for fractional seconds with n digits. For
+ example, *2016-10-13 09:15:23.456* with tickformat
+ "%H~%M~%S.%2f" would display "09~15~23.46"
+
+ The 'tickformat' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["tickformat"]
+
+ @tickformat.setter
+ def tickformat(self, val):
+ self["tickformat"] = val
+
+ @property
+ def ticklen(self):
+ """
+ Sets the tick length (in px).
+
+ The 'ticklen' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["ticklen"]
+
+ @ticklen.setter
+ def ticklen(self, val):
+ self["ticklen"] = val
+
+ @property
+ def tickprefix(self):
+ """
+ Sets a tick label prefix.
+
+ The 'tickprefix' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["tickprefix"]
+
+ @tickprefix.setter
+ def tickprefix(self, val):
+ self["tickprefix"] = val
+
+ @property
+ def ticks(self):
+ """
+ Determines whether ticks are drawn or not. If "", this axis'
+ ticks are not drawn. If "top" ("bottom"), this axis' are drawn
+ above (below) the axis line.
+
+ The 'ticks' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['top', 'bottom', '']
+
+ Returns
+ -------
+ Any
+ """
+ return self["ticks"]
+
+ @ticks.setter
+ def ticks(self, val):
+ self["ticks"] = val
+
+ @property
+ def ticksuffix(self):
+ """
+ Sets a tick label suffix.
+
+ The 'ticksuffix' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["ticksuffix"]
+
+ @ticksuffix.setter
+ def ticksuffix(self, val):
+ self["ticksuffix"] = val
+
+ @property
+ def tickvals(self):
+ """
+ Sets the values at which ticks on this axis appear.
+
+ The 'tickvals' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["tickvals"]
+
+ @tickvals.setter
+ def tickvals(self, val):
+ self["tickvals"] = val
+
+ @property
+ def tickvalssrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `tickvals`.
+
+ The 'tickvalssrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["tickvalssrc"]
+
+ @tickvalssrc.setter
+ def tickvalssrc(self, val):
+ self["tickvalssrc"] = val
+
+ @property
+ def tickwidth(self):
+ """
+ Sets the tick width (in px).
+
+ The 'tickwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tickwidth"]
+
+ @tickwidth.setter
+ def tickwidth(self, val):
+ self["tickwidth"] = val
+
+ @property
+ def visible(self):
+ """
+ A single toggle to hide the axis while preserving interaction
+ like dragging. Default is true when a cheater plot is present
+ on the axis, otherwise false
+
+ The 'visible' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["visible"]
+
+ @visible.setter
+ def visible(self, val):
+ self["visible"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+ Sets default for all colors associated with this axis
+ all at once: line, font, tick, and grid colors. Grid
+ color is lightened by blending this with the plot
+ background Individual pieces can override this.
+ gridcolor
+ Sets the color of the grid lines.
+ griddash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ gridwidth
+ Sets the width (in px) of the grid lines.
+ hoverformat
+ Sets the hover text formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ labelalias
+ Replacement text for specific tick or hover labels. For
+ example using {US: 'USA', CA: 'Canada'} changes US to
+ USA and CA to Canada. The labels we would have shown
+ must match the keys exactly, after adding any
+ tickprefix or ticksuffix. For negative numbers the
+ minus sign symbol used (U+2212) is wider than the
+ regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis
+ type, and both keys (if needed) and values (if desired)
+ can include html-like tags or MathJax.
+ layer
+ Sets the layer on which this axis is displayed. If
+ *above traces*, this axis is displayed above all the
+ subplot's traces If *below traces*, this axis is
+ displayed below all the subplot's traces, but above the
+ grid lines. Useful when used together with scatter-like
+ traces with `cliponaxis` set to False to show markers
+ and/or text nodes above this axis.
+ linecolor
+ Sets the axis line color.
+ linewidth
+ Sets the width (in px) of the axis line.
+ showgrid
+ Determines whether or not grid lines are drawn. If
+ True, the grid lines are drawn at every tick mark.
+ showline
+ Determines whether or not a line bounding this axis is
+ drawn.
+ showticklabels
+ Determines whether or not the tick labels are drawn.
+ showtickprefix
+ If "all", all tick labels are displayed with a prefix.
+ If "first", only the first tick is displayed with a
+ prefix. If "last", only the last tick is displayed with
+ a suffix. If "none", tick prefixes are hidden.
+ showticksuffix
+ Same as `showtickprefix` but for tick suffixes.
+ side
+ Determines on which side of real axis line the tick and
+ tick labels appear.
+ tickangle
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the
+ tick labels vertically.
+ tickcolor
+ Sets the tick color.
+ tickfont
+ Sets the tick font.
+ tickformat
+ Sets the tick label formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ ticklen
+ Sets the tick length (in px).
+ tickprefix
+ Sets a tick label prefix.
+ ticks
+ Determines whether ticks are drawn or not. If "", this
+ axis' ticks are not drawn. If "top" ("bottom"), this
+ axis' are drawn above (below) the axis line.
+ ticksuffix
+ Sets a tick label suffix.
+ tickvals
+ Sets the values at which ticks on this axis appear.
+ tickvalssrc
+ Sets the source reference on Chart Studio Cloud for
+ `tickvals`.
+ tickwidth
+ Sets the tick width (in px).
+ visible
+ A single toggle to hide the axis while preserving
+ interaction like dragging. Default is true when a
+ cheater plot is present on the axis, otherwise false
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ gridcolor=None,
+ griddash=None,
+ gridwidth=None,
+ hoverformat=None,
+ labelalias=None,
+ layer=None,
+ linecolor=None,
+ linewidth=None,
+ showgrid=None,
+ showline=None,
+ showticklabels=None,
+ showtickprefix=None,
+ showticksuffix=None,
+ side=None,
+ tickangle=None,
+ tickcolor=None,
+ tickfont=None,
+ tickformat=None,
+ ticklen=None,
+ tickprefix=None,
+ ticks=None,
+ ticksuffix=None,
+ tickvals=None,
+ tickvalssrc=None,
+ tickwidth=None,
+ visible=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Realaxis object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.smith.Realaxis`
+ color
+ Sets default for all colors associated with this axis
+ all at once: line, font, tick, and grid colors. Grid
+ color is lightened by blending this with the plot
+ background Individual pieces can override this.
+ gridcolor
+ Sets the color of the grid lines.
+ griddash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ gridwidth
+ Sets the width (in px) of the grid lines.
+ hoverformat
+ Sets the hover text formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ labelalias
+ Replacement text for specific tick or hover labels. For
+ example using {US: 'USA', CA: 'Canada'} changes US to
+ USA and CA to Canada. The labels we would have shown
+ must match the keys exactly, after adding any
+ tickprefix or ticksuffix. For negative numbers the
+ minus sign symbol used (U+2212) is wider than the
+ regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis
+ type, and both keys (if needed) and values (if desired)
+ can include html-like tags or MathJax.
+ layer
+ Sets the layer on which this axis is displayed. If
+ *above traces*, this axis is displayed above all the
+ subplot's traces If *below traces*, this axis is
+ displayed below all the subplot's traces, but above the
+ grid lines. Useful when used together with scatter-like
+ traces with `cliponaxis` set to False to show markers
+ and/or text nodes above this axis.
+ linecolor
+ Sets the axis line color.
+ linewidth
+ Sets the width (in px) of the axis line.
+ showgrid
+ Determines whether or not grid lines are drawn. If
+ True, the grid lines are drawn at every tick mark.
+ showline
+ Determines whether or not a line bounding this axis is
+ drawn.
+ showticklabels
+ Determines whether or not the tick labels are drawn.
+ showtickprefix
+ If "all", all tick labels are displayed with a prefix.
+ If "first", only the first tick is displayed with a
+ prefix. If "last", only the last tick is displayed with
+ a suffix. If "none", tick prefixes are hidden.
+ showticksuffix
+ Same as `showtickprefix` but for tick suffixes.
+ side
+ Determines on which side of real axis line the tick and
+ tick labels appear.
+ tickangle
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the
+ tick labels vertically.
+ tickcolor
+ Sets the tick color.
+ tickfont
+ Sets the tick font.
+ tickformat
+ Sets the tick label formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ ticklen
+ Sets the tick length (in px).
+ tickprefix
+ Sets a tick label prefix.
+ ticks
+ Determines whether ticks are drawn or not. If "", this
+ axis' ticks are not drawn. If "top" ("bottom"), this
+ axis' are drawn above (below) the axis line.
+ ticksuffix
+ Sets a tick label suffix.
+ tickvals
+ Sets the values at which ticks on this axis appear.
+ tickvalssrc
+ Sets the source reference on Chart Studio Cloud for
+ `tickvals`.
+ tickwidth
+ Sets the tick width (in px).
+ visible
+ A single toggle to hide the axis while preserving
+ interaction like dragging. Default is true when a
+ cheater plot is present on the axis, otherwise false
+
+ Returns
+ -------
+ Realaxis
+ """
+ super().__init__("realaxis")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.smith.Realaxis
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.smith.Realaxis`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("gridcolor", arg, gridcolor)
+ self._set_property("griddash", arg, griddash)
+ self._set_property("gridwidth", arg, gridwidth)
+ self._set_property("hoverformat", arg, hoverformat)
+ self._set_property("labelalias", arg, labelalias)
+ self._set_property("layer", arg, layer)
+ self._set_property("linecolor", arg, linecolor)
+ self._set_property("linewidth", arg, linewidth)
+ self._set_property("showgrid", arg, showgrid)
+ self._set_property("showline", arg, showline)
+ self._set_property("showticklabels", arg, showticklabels)
+ self._set_property("showtickprefix", arg, showtickprefix)
+ self._set_property("showticksuffix", arg, showticksuffix)
+ self._set_property("side", arg, side)
+ self._set_property("tickangle", arg, tickangle)
+ self._set_property("tickcolor", arg, tickcolor)
+ self._set_property("tickfont", arg, tickfont)
+ self._set_property("tickformat", arg, tickformat)
+ self._set_property("ticklen", arg, ticklen)
+ self._set_property("tickprefix", arg, tickprefix)
+ self._set_property("ticks", arg, ticks)
+ self._set_property("ticksuffix", arg, ticksuffix)
+ self._set_property("tickvals", arg, tickvals)
+ self._set_property("tickvalssrc", arg, tickvalssrc)
+ self._set_property("tickwidth", arg, tickwidth)
+ self._set_property("visible", arg, visible)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/imaginaryaxis/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/imaginaryaxis/__init__.py
new file mode 100644
index 0000000..c372856
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/imaginaryaxis/__init__.py
@@ -0,0 +1,11 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._tickfont import Tickfont
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__, [], ["._tickfont.Tickfont"]
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/imaginaryaxis/_tickfont.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/imaginaryaxis/_tickfont.py
new file mode 100644
index 0000000..6ecb552
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/imaginaryaxis/_tickfont.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Tickfont(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.smith.imaginaryaxis"
+ _path_str = "layout.smith.imaginaryaxis.tickfont"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Tickfont object
+
+ Sets the tick font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.smith.i
+ maginaryaxis.Tickfont`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Tickfont
+ """
+ super().__init__("tickfont")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.smith.imaginaryaxis.Tickfont
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.smith.imaginaryaxis.Tickfont`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/realaxis/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/realaxis/__init__.py
new file mode 100644
index 0000000..c372856
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/realaxis/__init__.py
@@ -0,0 +1,11 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._tickfont import Tickfont
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__, [], ["._tickfont.Tickfont"]
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/realaxis/_tickfont.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/realaxis/_tickfont.py
new file mode 100644
index 0000000..63d8713
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/smith/realaxis/_tickfont.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Tickfont(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.smith.realaxis"
+ _path_str = "layout.smith.realaxis.tickfont"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Tickfont object
+
+ Sets the tick font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.smith.r
+ ealaxis.Tickfont`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Tickfont
+ """
+ super().__init__("tickfont")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.smith.realaxis.Tickfont
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.smith.realaxis.Tickfont`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/__init__.py
new file mode 100644
index 0000000..388a6b6
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/__init__.py
@@ -0,0 +1,13 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._data import Data
+ from ._layout import Layout
+ from . import data
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__, [".data"], ["._data.Data", "._layout.Layout"]
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/_data.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/_data.py
new file mode 100644
index 0000000..ef3b5f6
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/_data.py
@@ -0,0 +1,1435 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Data(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.template"
+ _path_str = "layout.template.data"
+ _valid_props = {
+ "bar",
+ "barpolar",
+ "box",
+ "candlestick",
+ "carpet",
+ "choropleth",
+ "choroplethmap",
+ "choroplethmapbox",
+ "cone",
+ "contour",
+ "contourcarpet",
+ "densitymap",
+ "densitymapbox",
+ "funnel",
+ "funnelarea",
+ "heatmap",
+ "histogram",
+ "histogram2d",
+ "histogram2dcontour",
+ "icicle",
+ "image",
+ "indicator",
+ "isosurface",
+ "mesh3d",
+ "ohlc",
+ "parcats",
+ "parcoords",
+ "pie",
+ "sankey",
+ "scatter",
+ "scatter3d",
+ "scattercarpet",
+ "scattergeo",
+ "scattergl",
+ "scattermap",
+ "scattermapbox",
+ "scatterpolar",
+ "scatterpolargl",
+ "scattersmith",
+ "scatterternary",
+ "splom",
+ "streamtube",
+ "sunburst",
+ "surface",
+ "table",
+ "treemap",
+ "violin",
+ "volume",
+ "waterfall",
+ }
+
+ @property
+ def barpolar(self):
+ """
+ The 'barpolar' property is a tuple of instances of
+ Barpolar that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Barpolar
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Barpolar constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Barpolar]
+ """
+ return self["barpolar"]
+
+ @barpolar.setter
+ def barpolar(self, val):
+ self["barpolar"] = val
+
+ @property
+ def bar(self):
+ """
+ The 'bar' property is a tuple of instances of
+ Bar that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Bar
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Bar constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Bar]
+ """
+ return self["bar"]
+
+ @bar.setter
+ def bar(self, val):
+ self["bar"] = val
+
+ @property
+ def box(self):
+ """
+ The 'box' property is a tuple of instances of
+ Box that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Box
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Box constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Box]
+ """
+ return self["box"]
+
+ @box.setter
+ def box(self, val):
+ self["box"] = val
+
+ @property
+ def candlestick(self):
+ """
+ The 'candlestick' property is a tuple of instances of
+ Candlestick that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Candlestick
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Candlestick constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Candlestick]
+ """
+ return self["candlestick"]
+
+ @candlestick.setter
+ def candlestick(self, val):
+ self["candlestick"] = val
+
+ @property
+ def carpet(self):
+ """
+ The 'carpet' property is a tuple of instances of
+ Carpet that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Carpet
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Carpet constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Carpet]
+ """
+ return self["carpet"]
+
+ @carpet.setter
+ def carpet(self, val):
+ self["carpet"] = val
+
+ @property
+ def choroplethmapbox(self):
+ """
+ The 'choroplethmapbox' property is a tuple of instances of
+ Choroplethmapbox that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Choroplethmapbox
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Choroplethmapbox constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Choroplethmapbox]
+ """
+ return self["choroplethmapbox"]
+
+ @choroplethmapbox.setter
+ def choroplethmapbox(self, val):
+ self["choroplethmapbox"] = val
+
+ @property
+ def choroplethmap(self):
+ """
+ The 'choroplethmap' property is a tuple of instances of
+ Choroplethmap that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Choroplethmap
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Choroplethmap constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Choroplethmap]
+ """
+ return self["choroplethmap"]
+
+ @choroplethmap.setter
+ def choroplethmap(self, val):
+ self["choroplethmap"] = val
+
+ @property
+ def choropleth(self):
+ """
+ The 'choropleth' property is a tuple of instances of
+ Choropleth that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Choropleth
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Choropleth constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Choropleth]
+ """
+ return self["choropleth"]
+
+ @choropleth.setter
+ def choropleth(self, val):
+ self["choropleth"] = val
+
+ @property
+ def cone(self):
+ """
+ The 'cone' property is a tuple of instances of
+ Cone that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Cone
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Cone constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Cone]
+ """
+ return self["cone"]
+
+ @cone.setter
+ def cone(self, val):
+ self["cone"] = val
+
+ @property
+ def contourcarpet(self):
+ """
+ The 'contourcarpet' property is a tuple of instances of
+ Contourcarpet that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Contourcarpet
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Contourcarpet constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Contourcarpet]
+ """
+ return self["contourcarpet"]
+
+ @contourcarpet.setter
+ def contourcarpet(self, val):
+ self["contourcarpet"] = val
+
+ @property
+ def contour(self):
+ """
+ The 'contour' property is a tuple of instances of
+ Contour that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Contour
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Contour constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Contour]
+ """
+ return self["contour"]
+
+ @contour.setter
+ def contour(self, val):
+ self["contour"] = val
+
+ @property
+ def densitymapbox(self):
+ """
+ The 'densitymapbox' property is a tuple of instances of
+ Densitymapbox that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Densitymapbox
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Densitymapbox constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Densitymapbox]
+ """
+ return self["densitymapbox"]
+
+ @densitymapbox.setter
+ def densitymapbox(self, val):
+ self["densitymapbox"] = val
+
+ @property
+ def densitymap(self):
+ """
+ The 'densitymap' property is a tuple of instances of
+ Densitymap that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Densitymap
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Densitymap constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Densitymap]
+ """
+ return self["densitymap"]
+
+ @densitymap.setter
+ def densitymap(self, val):
+ self["densitymap"] = val
+
+ @property
+ def funnelarea(self):
+ """
+ The 'funnelarea' property is a tuple of instances of
+ Funnelarea that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Funnelarea
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Funnelarea constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Funnelarea]
+ """
+ return self["funnelarea"]
+
+ @funnelarea.setter
+ def funnelarea(self, val):
+ self["funnelarea"] = val
+
+ @property
+ def funnel(self):
+ """
+ The 'funnel' property is a tuple of instances of
+ Funnel that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Funnel
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Funnel constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Funnel]
+ """
+ return self["funnel"]
+
+ @funnel.setter
+ def funnel(self, val):
+ self["funnel"] = val
+
+ @property
+ def heatmap(self):
+ """
+ The 'heatmap' property is a tuple of instances of
+ Heatmap that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Heatmap
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Heatmap constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Heatmap]
+ """
+ return self["heatmap"]
+
+ @heatmap.setter
+ def heatmap(self, val):
+ self["heatmap"] = val
+
+ @property
+ def histogram2dcontour(self):
+ """
+ The 'histogram2dcontour' property is a tuple of instances of
+ Histogram2dContour that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Histogram2dContour
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Histogram2dContour constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Histogram2dContour]
+ """
+ return self["histogram2dcontour"]
+
+ @histogram2dcontour.setter
+ def histogram2dcontour(self, val):
+ self["histogram2dcontour"] = val
+
+ @property
+ def histogram2d(self):
+ """
+ The 'histogram2d' property is a tuple of instances of
+ Histogram2d that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Histogram2d
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Histogram2d constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Histogram2d]
+ """
+ return self["histogram2d"]
+
+ @histogram2d.setter
+ def histogram2d(self, val):
+ self["histogram2d"] = val
+
+ @property
+ def histogram(self):
+ """
+ The 'histogram' property is a tuple of instances of
+ Histogram that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Histogram
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Histogram constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Histogram]
+ """
+ return self["histogram"]
+
+ @histogram.setter
+ def histogram(self, val):
+ self["histogram"] = val
+
+ @property
+ def icicle(self):
+ """
+ The 'icicle' property is a tuple of instances of
+ Icicle that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Icicle
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Icicle constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Icicle]
+ """
+ return self["icicle"]
+
+ @icicle.setter
+ def icicle(self, val):
+ self["icicle"] = val
+
+ @property
+ def image(self):
+ """
+ The 'image' property is a tuple of instances of
+ Image that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Image
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Image constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Image]
+ """
+ return self["image"]
+
+ @image.setter
+ def image(self, val):
+ self["image"] = val
+
+ @property
+ def indicator(self):
+ """
+ The 'indicator' property is a tuple of instances of
+ Indicator that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Indicator
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Indicator constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Indicator]
+ """
+ return self["indicator"]
+
+ @indicator.setter
+ def indicator(self, val):
+ self["indicator"] = val
+
+ @property
+ def isosurface(self):
+ """
+ The 'isosurface' property is a tuple of instances of
+ Isosurface that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Isosurface
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Isosurface constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Isosurface]
+ """
+ return self["isosurface"]
+
+ @isosurface.setter
+ def isosurface(self, val):
+ self["isosurface"] = val
+
+ @property
+ def mesh3d(self):
+ """
+ The 'mesh3d' property is a tuple of instances of
+ Mesh3d that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Mesh3d
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Mesh3d constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Mesh3d]
+ """
+ return self["mesh3d"]
+
+ @mesh3d.setter
+ def mesh3d(self, val):
+ self["mesh3d"] = val
+
+ @property
+ def ohlc(self):
+ """
+ The 'ohlc' property is a tuple of instances of
+ Ohlc that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Ohlc
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Ohlc constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Ohlc]
+ """
+ return self["ohlc"]
+
+ @ohlc.setter
+ def ohlc(self, val):
+ self["ohlc"] = val
+
+ @property
+ def parcats(self):
+ """
+ The 'parcats' property is a tuple of instances of
+ Parcats that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Parcats
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Parcats constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Parcats]
+ """
+ return self["parcats"]
+
+ @parcats.setter
+ def parcats(self, val):
+ self["parcats"] = val
+
+ @property
+ def parcoords(self):
+ """
+ The 'parcoords' property is a tuple of instances of
+ Parcoords that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Parcoords
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Parcoords constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Parcoords]
+ """
+ return self["parcoords"]
+
+ @parcoords.setter
+ def parcoords(self, val):
+ self["parcoords"] = val
+
+ @property
+ def pie(self):
+ """
+ The 'pie' property is a tuple of instances of
+ Pie that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Pie
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Pie constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Pie]
+ """
+ return self["pie"]
+
+ @pie.setter
+ def pie(self, val):
+ self["pie"] = val
+
+ @property
+ def sankey(self):
+ """
+ The 'sankey' property is a tuple of instances of
+ Sankey that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Sankey
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Sankey constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Sankey]
+ """
+ return self["sankey"]
+
+ @sankey.setter
+ def sankey(self, val):
+ self["sankey"] = val
+
+ @property
+ def scatter3d(self):
+ """
+ The 'scatter3d' property is a tuple of instances of
+ Scatter3d that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Scatter3d
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Scatter3d constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Scatter3d]
+ """
+ return self["scatter3d"]
+
+ @scatter3d.setter
+ def scatter3d(self, val):
+ self["scatter3d"] = val
+
+ @property
+ def scattercarpet(self):
+ """
+ The 'scattercarpet' property is a tuple of instances of
+ Scattercarpet that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Scattercarpet
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Scattercarpet constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Scattercarpet]
+ """
+ return self["scattercarpet"]
+
+ @scattercarpet.setter
+ def scattercarpet(self, val):
+ self["scattercarpet"] = val
+
+ @property
+ def scattergeo(self):
+ """
+ The 'scattergeo' property is a tuple of instances of
+ Scattergeo that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Scattergeo
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Scattergeo constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Scattergeo]
+ """
+ return self["scattergeo"]
+
+ @scattergeo.setter
+ def scattergeo(self, val):
+ self["scattergeo"] = val
+
+ @property
+ def scattergl(self):
+ """
+ The 'scattergl' property is a tuple of instances of
+ Scattergl that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Scattergl
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Scattergl constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Scattergl]
+ """
+ return self["scattergl"]
+
+ @scattergl.setter
+ def scattergl(self, val):
+ self["scattergl"] = val
+
+ @property
+ def scattermapbox(self):
+ """
+ The 'scattermapbox' property is a tuple of instances of
+ Scattermapbox that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Scattermapbox
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Scattermapbox constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Scattermapbox]
+ """
+ return self["scattermapbox"]
+
+ @scattermapbox.setter
+ def scattermapbox(self, val):
+ self["scattermapbox"] = val
+
+ @property
+ def scattermap(self):
+ """
+ The 'scattermap' property is a tuple of instances of
+ Scattermap that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Scattermap
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Scattermap constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Scattermap]
+ """
+ return self["scattermap"]
+
+ @scattermap.setter
+ def scattermap(self, val):
+ self["scattermap"] = val
+
+ @property
+ def scatterpolargl(self):
+ """
+ The 'scatterpolargl' property is a tuple of instances of
+ Scatterpolargl that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Scatterpolargl
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Scatterpolargl constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Scatterpolargl]
+ """
+ return self["scatterpolargl"]
+
+ @scatterpolargl.setter
+ def scatterpolargl(self, val):
+ self["scatterpolargl"] = val
+
+ @property
+ def scatterpolar(self):
+ """
+ The 'scatterpolar' property is a tuple of instances of
+ Scatterpolar that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Scatterpolar
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Scatterpolar constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Scatterpolar]
+ """
+ return self["scatterpolar"]
+
+ @scatterpolar.setter
+ def scatterpolar(self, val):
+ self["scatterpolar"] = val
+
+ @property
+ def scatter(self):
+ """
+ The 'scatter' property is a tuple of instances of
+ Scatter that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Scatter
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Scatter constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Scatter]
+ """
+ return self["scatter"]
+
+ @scatter.setter
+ def scatter(self, val):
+ self["scatter"] = val
+
+ @property
+ def scattersmith(self):
+ """
+ The 'scattersmith' property is a tuple of instances of
+ Scattersmith that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Scattersmith
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Scattersmith constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Scattersmith]
+ """
+ return self["scattersmith"]
+
+ @scattersmith.setter
+ def scattersmith(self, val):
+ self["scattersmith"] = val
+
+ @property
+ def scatterternary(self):
+ """
+ The 'scatterternary' property is a tuple of instances of
+ Scatterternary that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Scatterternary
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Scatterternary constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Scatterternary]
+ """
+ return self["scatterternary"]
+
+ @scatterternary.setter
+ def scatterternary(self, val):
+ self["scatterternary"] = val
+
+ @property
+ def splom(self):
+ """
+ The 'splom' property is a tuple of instances of
+ Splom that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Splom
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Splom constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Splom]
+ """
+ return self["splom"]
+
+ @splom.setter
+ def splom(self, val):
+ self["splom"] = val
+
+ @property
+ def streamtube(self):
+ """
+ The 'streamtube' property is a tuple of instances of
+ Streamtube that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Streamtube
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Streamtube constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Streamtube]
+ """
+ return self["streamtube"]
+
+ @streamtube.setter
+ def streamtube(self, val):
+ self["streamtube"] = val
+
+ @property
+ def sunburst(self):
+ """
+ The 'sunburst' property is a tuple of instances of
+ Sunburst that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Sunburst
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Sunburst constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Sunburst]
+ """
+ return self["sunburst"]
+
+ @sunburst.setter
+ def sunburst(self, val):
+ self["sunburst"] = val
+
+ @property
+ def surface(self):
+ """
+ The 'surface' property is a tuple of instances of
+ Surface that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Surface
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Surface constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Surface]
+ """
+ return self["surface"]
+
+ @surface.setter
+ def surface(self, val):
+ self["surface"] = val
+
+ @property
+ def table(self):
+ """
+ The 'table' property is a tuple of instances of
+ Table that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Table
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Table constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Table]
+ """
+ return self["table"]
+
+ @table.setter
+ def table(self, val):
+ self["table"] = val
+
+ @property
+ def treemap(self):
+ """
+ The 'treemap' property is a tuple of instances of
+ Treemap that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Treemap
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Treemap constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Treemap]
+ """
+ return self["treemap"]
+
+ @treemap.setter
+ def treemap(self, val):
+ self["treemap"] = val
+
+ @property
+ def violin(self):
+ """
+ The 'violin' property is a tuple of instances of
+ Violin that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Violin
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Violin constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Violin]
+ """
+ return self["violin"]
+
+ @violin.setter
+ def violin(self, val):
+ self["violin"] = val
+
+ @property
+ def volume(self):
+ """
+ The 'volume' property is a tuple of instances of
+ Volume that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Volume
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Volume constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Volume]
+ """
+ return self["volume"]
+
+ @volume.setter
+ def volume(self, val):
+ self["volume"] = val
+
+ @property
+ def waterfall(self):
+ """
+ The 'waterfall' property is a tuple of instances of
+ Waterfall that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.template.data.Waterfall
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Waterfall constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.template.data.Waterfall]
+ """
+ return self["waterfall"]
+
+ @waterfall.setter
+ def waterfall(self, val):
+ self["waterfall"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ barpolar
+ A tuple of :class:`plotly.graph_objects.Barpolar`
+ instances or dicts with compatible properties
+ bar
+ A tuple of :class:`plotly.graph_objects.Bar` instances
+ or dicts with compatible properties
+ box
+ A tuple of :class:`plotly.graph_objects.Box` instances
+ or dicts with compatible properties
+ candlestick
+ A tuple of :class:`plotly.graph_objects.Candlestick`
+ instances or dicts with compatible properties
+ carpet
+ A tuple of :class:`plotly.graph_objects.Carpet`
+ instances or dicts with compatible properties
+ choroplethmapbox
+ A tuple of
+ :class:`plotly.graph_objects.Choroplethmapbox`
+ instances or dicts with compatible properties
+ choroplethmap
+ A tuple of :class:`plotly.graph_objects.Choroplethmap`
+ instances or dicts with compatible properties
+ choropleth
+ A tuple of :class:`plotly.graph_objects.Choropleth`
+ instances or dicts with compatible properties
+ cone
+ A tuple of :class:`plotly.graph_objects.Cone` instances
+ or dicts with compatible properties
+ contourcarpet
+ A tuple of :class:`plotly.graph_objects.Contourcarpet`
+ instances or dicts with compatible properties
+ contour
+ A tuple of :class:`plotly.graph_objects.Contour`
+ instances or dicts with compatible properties
+ densitymapbox
+ A tuple of :class:`plotly.graph_objects.Densitymapbox`
+ instances or dicts with compatible properties
+ densitymap
+ A tuple of :class:`plotly.graph_objects.Densitymap`
+ instances or dicts with compatible properties
+ funnelarea
+ A tuple of :class:`plotly.graph_objects.Funnelarea`
+ instances or dicts with compatible properties
+ funnel
+ A tuple of :class:`plotly.graph_objects.Funnel`
+ instances or dicts with compatible properties
+ heatmap
+ A tuple of :class:`plotly.graph_objects.Heatmap`
+ instances or dicts with compatible properties
+ histogram2dcontour
+ A tuple of
+ :class:`plotly.graph_objects.Histogram2dContour`
+ instances or dicts with compatible properties
+ histogram2d
+ A tuple of :class:`plotly.graph_objects.Histogram2d`
+ instances or dicts with compatible properties
+ histogram
+ A tuple of :class:`plotly.graph_objects.Histogram`
+ instances or dicts with compatible properties
+ icicle
+ A tuple of :class:`plotly.graph_objects.Icicle`
+ instances or dicts with compatible properties
+ image
+ A tuple of :class:`plotly.graph_objects.Image`
+ instances or dicts with compatible properties
+ indicator
+ A tuple of :class:`plotly.graph_objects.Indicator`
+ instances or dicts with compatible properties
+ isosurface
+ A tuple of :class:`plotly.graph_objects.Isosurface`
+ instances or dicts with compatible properties
+ mesh3d
+ A tuple of :class:`plotly.graph_objects.Mesh3d`
+ instances or dicts with compatible properties
+ ohlc
+ A tuple of :class:`plotly.graph_objects.Ohlc` instances
+ or dicts with compatible properties
+ parcats
+ A tuple of :class:`plotly.graph_objects.Parcats`
+ instances or dicts with compatible properties
+ parcoords
+ A tuple of :class:`plotly.graph_objects.Parcoords`
+ instances or dicts with compatible properties
+ pie
+ A tuple of :class:`plotly.graph_objects.Pie` instances
+ or dicts with compatible properties
+ sankey
+ A tuple of :class:`plotly.graph_objects.Sankey`
+ instances or dicts with compatible properties
+ scatter3d
+ A tuple of :class:`plotly.graph_objects.Scatter3d`
+ instances or dicts with compatible properties
+ scattercarpet
+ A tuple of :class:`plotly.graph_objects.Scattercarpet`
+ instances or dicts with compatible properties
+ scattergeo
+ A tuple of :class:`plotly.graph_objects.Scattergeo`
+ instances or dicts with compatible properties
+ scattergl
+ A tuple of :class:`plotly.graph_objects.Scattergl`
+ instances or dicts with compatible properties
+ scattermapbox
+ A tuple of :class:`plotly.graph_objects.Scattermapbox`
+ instances or dicts with compatible properties
+ scattermap
+ A tuple of :class:`plotly.graph_objects.Scattermap`
+ instances or dicts with compatible properties
+ scatterpolargl
+ A tuple of :class:`plotly.graph_objects.Scatterpolargl`
+ instances or dicts with compatible properties
+ scatterpolar
+ A tuple of :class:`plotly.graph_objects.Scatterpolar`
+ instances or dicts with compatible properties
+ scatter
+ A tuple of :class:`plotly.graph_objects.Scatter`
+ instances or dicts with compatible properties
+ scattersmith
+ A tuple of :class:`plotly.graph_objects.Scattersmith`
+ instances or dicts with compatible properties
+ scatterternary
+ A tuple of :class:`plotly.graph_objects.Scatterternary`
+ instances or dicts with compatible properties
+ splom
+ A tuple of :class:`plotly.graph_objects.Splom`
+ instances or dicts with compatible properties
+ streamtube
+ A tuple of :class:`plotly.graph_objects.Streamtube`
+ instances or dicts with compatible properties
+ sunburst
+ A tuple of :class:`plotly.graph_objects.Sunburst`
+ instances or dicts with compatible properties
+ surface
+ A tuple of :class:`plotly.graph_objects.Surface`
+ instances or dicts with compatible properties
+ table
+ A tuple of :class:`plotly.graph_objects.Table`
+ instances or dicts with compatible properties
+ treemap
+ A tuple of :class:`plotly.graph_objects.Treemap`
+ instances or dicts with compatible properties
+ violin
+ A tuple of :class:`plotly.graph_objects.Violin`
+ instances or dicts with compatible properties
+ volume
+ A tuple of :class:`plotly.graph_objects.Volume`
+ instances or dicts with compatible properties
+ waterfall
+ A tuple of :class:`plotly.graph_objects.Waterfall`
+ instances or dicts with compatible properties
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ barpolar=None,
+ bar=None,
+ box=None,
+ candlestick=None,
+ carpet=None,
+ choroplethmapbox=None,
+ choroplethmap=None,
+ choropleth=None,
+ cone=None,
+ contourcarpet=None,
+ contour=None,
+ densitymapbox=None,
+ densitymap=None,
+ funnelarea=None,
+ funnel=None,
+ heatmap=None,
+ histogram2dcontour=None,
+ histogram2d=None,
+ histogram=None,
+ icicle=None,
+ image=None,
+ indicator=None,
+ isosurface=None,
+ mesh3d=None,
+ ohlc=None,
+ parcats=None,
+ parcoords=None,
+ pie=None,
+ sankey=None,
+ scatter3d=None,
+ scattercarpet=None,
+ scattergeo=None,
+ scattergl=None,
+ scattermapbox=None,
+ scattermap=None,
+ scatterpolargl=None,
+ scatterpolar=None,
+ scatter=None,
+ scattersmith=None,
+ scatterternary=None,
+ splom=None,
+ streamtube=None,
+ sunburst=None,
+ surface=None,
+ table=None,
+ treemap=None,
+ violin=None,
+ volume=None,
+ waterfall=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Data object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.template.Data`
+ barpolar
+ A tuple of :class:`plotly.graph_objects.Barpolar`
+ instances or dicts with compatible properties
+ bar
+ A tuple of :class:`plotly.graph_objects.Bar` instances
+ or dicts with compatible properties
+ box
+ A tuple of :class:`plotly.graph_objects.Box` instances
+ or dicts with compatible properties
+ candlestick
+ A tuple of :class:`plotly.graph_objects.Candlestick`
+ instances or dicts with compatible properties
+ carpet
+ A tuple of :class:`plotly.graph_objects.Carpet`
+ instances or dicts with compatible properties
+ choroplethmapbox
+ A tuple of
+ :class:`plotly.graph_objects.Choroplethmapbox`
+ instances or dicts with compatible properties
+ choroplethmap
+ A tuple of :class:`plotly.graph_objects.Choroplethmap`
+ instances or dicts with compatible properties
+ choropleth
+ A tuple of :class:`plotly.graph_objects.Choropleth`
+ instances or dicts with compatible properties
+ cone
+ A tuple of :class:`plotly.graph_objects.Cone` instances
+ or dicts with compatible properties
+ contourcarpet
+ A tuple of :class:`plotly.graph_objects.Contourcarpet`
+ instances or dicts with compatible properties
+ contour
+ A tuple of :class:`plotly.graph_objects.Contour`
+ instances or dicts with compatible properties
+ densitymapbox
+ A tuple of :class:`plotly.graph_objects.Densitymapbox`
+ instances or dicts with compatible properties
+ densitymap
+ A tuple of :class:`plotly.graph_objects.Densitymap`
+ instances or dicts with compatible properties
+ funnelarea
+ A tuple of :class:`plotly.graph_objects.Funnelarea`
+ instances or dicts with compatible properties
+ funnel
+ A tuple of :class:`plotly.graph_objects.Funnel`
+ instances or dicts with compatible properties
+ heatmap
+ A tuple of :class:`plotly.graph_objects.Heatmap`
+ instances or dicts with compatible properties
+ histogram2dcontour
+ A tuple of
+ :class:`plotly.graph_objects.Histogram2dContour`
+ instances or dicts with compatible properties
+ histogram2d
+ A tuple of :class:`plotly.graph_objects.Histogram2d`
+ instances or dicts with compatible properties
+ histogram
+ A tuple of :class:`plotly.graph_objects.Histogram`
+ instances or dicts with compatible properties
+ icicle
+ A tuple of :class:`plotly.graph_objects.Icicle`
+ instances or dicts with compatible properties
+ image
+ A tuple of :class:`plotly.graph_objects.Image`
+ instances or dicts with compatible properties
+ indicator
+ A tuple of :class:`plotly.graph_objects.Indicator`
+ instances or dicts with compatible properties
+ isosurface
+ A tuple of :class:`plotly.graph_objects.Isosurface`
+ instances or dicts with compatible properties
+ mesh3d
+ A tuple of :class:`plotly.graph_objects.Mesh3d`
+ instances or dicts with compatible properties
+ ohlc
+ A tuple of :class:`plotly.graph_objects.Ohlc` instances
+ or dicts with compatible properties
+ parcats
+ A tuple of :class:`plotly.graph_objects.Parcats`
+ instances or dicts with compatible properties
+ parcoords
+ A tuple of :class:`plotly.graph_objects.Parcoords`
+ instances or dicts with compatible properties
+ pie
+ A tuple of :class:`plotly.graph_objects.Pie` instances
+ or dicts with compatible properties
+ sankey
+ A tuple of :class:`plotly.graph_objects.Sankey`
+ instances or dicts with compatible properties
+ scatter3d
+ A tuple of :class:`plotly.graph_objects.Scatter3d`
+ instances or dicts with compatible properties
+ scattercarpet
+ A tuple of :class:`plotly.graph_objects.Scattercarpet`
+ instances or dicts with compatible properties
+ scattergeo
+ A tuple of :class:`plotly.graph_objects.Scattergeo`
+ instances or dicts with compatible properties
+ scattergl
+ A tuple of :class:`plotly.graph_objects.Scattergl`
+ instances or dicts with compatible properties
+ scattermapbox
+ A tuple of :class:`plotly.graph_objects.Scattermapbox`
+ instances or dicts with compatible properties
+ scattermap
+ A tuple of :class:`plotly.graph_objects.Scattermap`
+ instances or dicts with compatible properties
+ scatterpolargl
+ A tuple of :class:`plotly.graph_objects.Scatterpolargl`
+ instances or dicts with compatible properties
+ scatterpolar
+ A tuple of :class:`plotly.graph_objects.Scatterpolar`
+ instances or dicts with compatible properties
+ scatter
+ A tuple of :class:`plotly.graph_objects.Scatter`
+ instances or dicts with compatible properties
+ scattersmith
+ A tuple of :class:`plotly.graph_objects.Scattersmith`
+ instances or dicts with compatible properties
+ scatterternary
+ A tuple of :class:`plotly.graph_objects.Scatterternary`
+ instances or dicts with compatible properties
+ splom
+ A tuple of :class:`plotly.graph_objects.Splom`
+ instances or dicts with compatible properties
+ streamtube
+ A tuple of :class:`plotly.graph_objects.Streamtube`
+ instances or dicts with compatible properties
+ sunburst
+ A tuple of :class:`plotly.graph_objects.Sunburst`
+ instances or dicts with compatible properties
+ surface
+ A tuple of :class:`plotly.graph_objects.Surface`
+ instances or dicts with compatible properties
+ table
+ A tuple of :class:`plotly.graph_objects.Table`
+ instances or dicts with compatible properties
+ treemap
+ A tuple of :class:`plotly.graph_objects.Treemap`
+ instances or dicts with compatible properties
+ violin
+ A tuple of :class:`plotly.graph_objects.Violin`
+ instances or dicts with compatible properties
+ volume
+ A tuple of :class:`plotly.graph_objects.Volume`
+ instances or dicts with compatible properties
+ waterfall
+ A tuple of :class:`plotly.graph_objects.Waterfall`
+ instances or dicts with compatible properties
+
+ Returns
+ -------
+ Data
+ """
+ super().__init__("data")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.template.Data
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.template.Data`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("barpolar", arg, barpolar)
+ self._set_property("bar", arg, bar)
+ self._set_property("box", arg, box)
+ self._set_property("candlestick", arg, candlestick)
+ self._set_property("carpet", arg, carpet)
+ self._set_property("choroplethmapbox", arg, choroplethmapbox)
+ self._set_property("choroplethmap", arg, choroplethmap)
+ self._set_property("choropleth", arg, choropleth)
+ self._set_property("cone", arg, cone)
+ self._set_property("contourcarpet", arg, contourcarpet)
+ self._set_property("contour", arg, contour)
+ self._set_property("densitymapbox", arg, densitymapbox)
+ self._set_property("densitymap", arg, densitymap)
+ self._set_property("funnelarea", arg, funnelarea)
+ self._set_property("funnel", arg, funnel)
+ self._set_property("heatmap", arg, heatmap)
+ self._set_property("histogram2dcontour", arg, histogram2dcontour)
+ self._set_property("histogram2d", arg, histogram2d)
+ self._set_property("histogram", arg, histogram)
+ self._set_property("icicle", arg, icicle)
+ self._set_property("image", arg, image)
+ self._set_property("indicator", arg, indicator)
+ self._set_property("isosurface", arg, isosurface)
+ self._set_property("mesh3d", arg, mesh3d)
+ self._set_property("ohlc", arg, ohlc)
+ self._set_property("parcats", arg, parcats)
+ self._set_property("parcoords", arg, parcoords)
+ self._set_property("pie", arg, pie)
+ self._set_property("sankey", arg, sankey)
+ self._set_property("scatter3d", arg, scatter3d)
+ self._set_property("scattercarpet", arg, scattercarpet)
+ self._set_property("scattergeo", arg, scattergeo)
+ self._set_property("scattergl", arg, scattergl)
+ self._set_property("scattermapbox", arg, scattermapbox)
+ self._set_property("scattermap", arg, scattermap)
+ self._set_property("scatterpolargl", arg, scatterpolargl)
+ self._set_property("scatterpolar", arg, scatterpolar)
+ self._set_property("scatter", arg, scatter)
+ self._set_property("scattersmith", arg, scattersmith)
+ self._set_property("scatterternary", arg, scatterternary)
+ self._set_property("splom", arg, splom)
+ self._set_property("streamtube", arg, streamtube)
+ self._set_property("sunburst", arg, sunburst)
+ self._set_property("surface", arg, surface)
+ self._set_property("table", arg, table)
+ self._set_property("treemap", arg, treemap)
+ self._set_property("violin", arg, violin)
+ self._set_property("volume", arg, volume)
+ self._set_property("waterfall", arg, waterfall)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/_layout.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/_layout.py
new file mode 100644
index 0000000..058b60b
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/_layout.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Layout
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/__init__.py
new file mode 100644
index 0000000..1ce619d
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/__init__.py
@@ -0,0 +1,111 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._bar import Bar
+ from ._barpolar import Barpolar
+ from ._box import Box
+ from ._candlestick import Candlestick
+ from ._carpet import Carpet
+ from ._choropleth import Choropleth
+ from ._choroplethmap import Choroplethmap
+ from ._choroplethmapbox import Choroplethmapbox
+ from ._cone import Cone
+ from ._contour import Contour
+ from ._contourcarpet import Contourcarpet
+ from ._densitymap import Densitymap
+ from ._densitymapbox import Densitymapbox
+ from ._funnel import Funnel
+ from ._funnelarea import Funnelarea
+ from ._heatmap import Heatmap
+ from ._histogram import Histogram
+ from ._histogram2d import Histogram2d
+ from ._histogram2dcontour import Histogram2dContour
+ from ._icicle import Icicle
+ from ._image import Image
+ from ._indicator import Indicator
+ from ._isosurface import Isosurface
+ from ._mesh3d import Mesh3d
+ from ._ohlc import Ohlc
+ from ._parcats import Parcats
+ from ._parcoords import Parcoords
+ from ._pie import Pie
+ from ._sankey import Sankey
+ from ._scatter import Scatter
+ from ._scatter3d import Scatter3d
+ from ._scattercarpet import Scattercarpet
+ from ._scattergeo import Scattergeo
+ from ._scattergl import Scattergl
+ from ._scattermap import Scattermap
+ from ._scattermapbox import Scattermapbox
+ from ._scatterpolar import Scatterpolar
+ from ._scatterpolargl import Scatterpolargl
+ from ._scattersmith import Scattersmith
+ from ._scatterternary import Scatterternary
+ from ._splom import Splom
+ from ._streamtube import Streamtube
+ from ._sunburst import Sunburst
+ from ._surface import Surface
+ from ._table import Table
+ from ._treemap import Treemap
+ from ._violin import Violin
+ from ._volume import Volume
+ from ._waterfall import Waterfall
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__,
+ [],
+ [
+ "._bar.Bar",
+ "._barpolar.Barpolar",
+ "._box.Box",
+ "._candlestick.Candlestick",
+ "._carpet.Carpet",
+ "._choropleth.Choropleth",
+ "._choroplethmap.Choroplethmap",
+ "._choroplethmapbox.Choroplethmapbox",
+ "._cone.Cone",
+ "._contour.Contour",
+ "._contourcarpet.Contourcarpet",
+ "._densitymap.Densitymap",
+ "._densitymapbox.Densitymapbox",
+ "._funnel.Funnel",
+ "._funnelarea.Funnelarea",
+ "._heatmap.Heatmap",
+ "._histogram.Histogram",
+ "._histogram2d.Histogram2d",
+ "._histogram2dcontour.Histogram2dContour",
+ "._icicle.Icicle",
+ "._image.Image",
+ "._indicator.Indicator",
+ "._isosurface.Isosurface",
+ "._mesh3d.Mesh3d",
+ "._ohlc.Ohlc",
+ "._parcats.Parcats",
+ "._parcoords.Parcoords",
+ "._pie.Pie",
+ "._sankey.Sankey",
+ "._scatter.Scatter",
+ "._scatter3d.Scatter3d",
+ "._scattercarpet.Scattercarpet",
+ "._scattergeo.Scattergeo",
+ "._scattergl.Scattergl",
+ "._scattermap.Scattermap",
+ "._scattermapbox.Scattermapbox",
+ "._scatterpolar.Scatterpolar",
+ "._scatterpolargl.Scatterpolargl",
+ "._scattersmith.Scattersmith",
+ "._scatterternary.Scatterternary",
+ "._splom.Splom",
+ "._streamtube.Streamtube",
+ "._sunburst.Sunburst",
+ "._surface.Surface",
+ "._table.Table",
+ "._treemap.Treemap",
+ "._violin.Violin",
+ "._volume.Volume",
+ "._waterfall.Waterfall",
+ ],
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_bar.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_bar.py
new file mode 100644
index 0000000..5a800e6
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_bar.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Bar
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_barpolar.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_barpolar.py
new file mode 100644
index 0000000..18abed8
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_barpolar.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Barpolar
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_box.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_box.py
new file mode 100644
index 0000000..ffdd1d9
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_box.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Box
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_candlestick.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_candlestick.py
new file mode 100644
index 0000000..5d11b44
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_candlestick.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Candlestick
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_carpet.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_carpet.py
new file mode 100644
index 0000000..b923d73
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_carpet.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Carpet
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_choropleth.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_choropleth.py
new file mode 100644
index 0000000..733e127
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_choropleth.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Choropleth
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_choroplethmap.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_choroplethmap.py
new file mode 100644
index 0000000..855102a
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_choroplethmap.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Choroplethmap
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_choroplethmapbox.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_choroplethmapbox.py
new file mode 100644
index 0000000..220b935
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_choroplethmapbox.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Choroplethmapbox
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_cone.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_cone.py
new file mode 100644
index 0000000..7a28452
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_cone.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Cone
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_contour.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_contour.py
new file mode 100644
index 0000000..e474909
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_contour.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Contour
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_contourcarpet.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_contourcarpet.py
new file mode 100644
index 0000000..6240faf
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_contourcarpet.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Contourcarpet
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_densitymap.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_densitymap.py
new file mode 100644
index 0000000..c73e108
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_densitymap.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Densitymap
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_densitymapbox.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_densitymapbox.py
new file mode 100644
index 0000000..d655b21
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_densitymapbox.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Densitymapbox
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_funnel.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_funnel.py
new file mode 100644
index 0000000..70e2ba7
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_funnel.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Funnel
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_funnelarea.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_funnelarea.py
new file mode 100644
index 0000000..242d0fc
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_funnelarea.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Funnelarea
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_heatmap.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_heatmap.py
new file mode 100644
index 0000000..6098ee8
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_heatmap.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Heatmap
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_histogram.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_histogram.py
new file mode 100644
index 0000000..7ba4c6d
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_histogram.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Histogram
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_histogram2d.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_histogram2d.py
new file mode 100644
index 0000000..710f7f9
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_histogram2d.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Histogram2d
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_histogram2dcontour.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_histogram2dcontour.py
new file mode 100644
index 0000000..94af41a
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_histogram2dcontour.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Histogram2dContour
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_icicle.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_icicle.py
new file mode 100644
index 0000000..6749cbe
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_icicle.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Icicle
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_image.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_image.py
new file mode 100644
index 0000000..828920a
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_image.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Image
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_indicator.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_indicator.py
new file mode 100644
index 0000000..a5a488f
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_indicator.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Indicator
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_isosurface.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_isosurface.py
new file mode 100644
index 0000000..5a7885a
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_isosurface.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Isosurface
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_mesh3d.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_mesh3d.py
new file mode 100644
index 0000000..2172a23
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_mesh3d.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Mesh3d
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_ohlc.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_ohlc.py
new file mode 100644
index 0000000..d3f8574
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_ohlc.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Ohlc
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_parcats.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_parcats.py
new file mode 100644
index 0000000..9b0290b
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_parcats.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Parcats
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_parcoords.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_parcoords.py
new file mode 100644
index 0000000..ccf5629
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_parcoords.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Parcoords
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_pie.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_pie.py
new file mode 100644
index 0000000..0625fd2
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_pie.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Pie
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_sankey.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_sankey.py
new file mode 100644
index 0000000..b572f65
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_sankey.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Sankey
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scatter.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scatter.py
new file mode 100644
index 0000000..afcfab3
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scatter.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Scatter
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scatter3d.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scatter3d.py
new file mode 100644
index 0000000..9314622
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scatter3d.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Scatter3d
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scattercarpet.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scattercarpet.py
new file mode 100644
index 0000000..26d87ca
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scattercarpet.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Scattercarpet
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scattergeo.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scattergeo.py
new file mode 100644
index 0000000..34308e1
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scattergeo.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Scattergeo
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scattergl.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scattergl.py
new file mode 100644
index 0000000..30bd371
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scattergl.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Scattergl
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scattermap.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scattermap.py
new file mode 100644
index 0000000..5a494e2
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scattermap.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Scattermap
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scattermapbox.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scattermapbox.py
new file mode 100644
index 0000000..6c3333a
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scattermapbox.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Scattermapbox
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scatterpolar.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scatterpolar.py
new file mode 100644
index 0000000..e1417b2
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scatterpolar.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Scatterpolar
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scatterpolargl.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scatterpolargl.py
new file mode 100644
index 0000000..60b023a
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scatterpolargl.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Scatterpolargl
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scattersmith.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scattersmith.py
new file mode 100644
index 0000000..e2dcf41
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scattersmith.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Scattersmith
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scatterternary.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scatterternary.py
new file mode 100644
index 0000000..2221ead
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_scatterternary.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Scatterternary
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_splom.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_splom.py
new file mode 100644
index 0000000..0909cdf
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_splom.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Splom
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_streamtube.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_streamtube.py
new file mode 100644
index 0000000..8b23c31
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_streamtube.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Streamtube
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_sunburst.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_sunburst.py
new file mode 100644
index 0000000..1b9511c
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_sunburst.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Sunburst
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_surface.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_surface.py
new file mode 100644
index 0000000..cfaa55d
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_surface.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Surface
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_table.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_table.py
new file mode 100644
index 0000000..2b6d4ad
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_table.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Table
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_treemap.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_treemap.py
new file mode 100644
index 0000000..5c648e7
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_treemap.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Treemap
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_violin.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_violin.py
new file mode 100644
index 0000000..23221b6
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_violin.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Violin
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_volume.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_volume.py
new file mode 100644
index 0000000..1128580
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_volume.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Volume
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_waterfall.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_waterfall.py
new file mode 100644
index 0000000..c45e785
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/template/data/_waterfall.py
@@ -0,0 +1 @@
+from plotly.graph_objs import Waterfall
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/__init__.py
new file mode 100644
index 0000000..a9ba0ff
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/__init__.py
@@ -0,0 +1,19 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._aaxis import Aaxis
+ from ._baxis import Baxis
+ from ._caxis import Caxis
+ from ._domain import Domain
+ from . import aaxis
+ from . import baxis
+ from . import caxis
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__,
+ [".aaxis", ".baxis", ".caxis"],
+ ["._aaxis.Aaxis", "._baxis.Baxis", "._caxis.Caxis", "._domain.Domain"],
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/_aaxis.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/_aaxis.py
new file mode 100644
index 0000000..636e68a
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/_aaxis.py
@@ -0,0 +1,1474 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Aaxis(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.ternary"
+ _path_str = "layout.ternary.aaxis"
+ _valid_props = {
+ "color",
+ "dtick",
+ "exponentformat",
+ "gridcolor",
+ "griddash",
+ "gridwidth",
+ "hoverformat",
+ "labelalias",
+ "layer",
+ "linecolor",
+ "linewidth",
+ "min",
+ "minexponent",
+ "nticks",
+ "separatethousands",
+ "showexponent",
+ "showgrid",
+ "showline",
+ "showticklabels",
+ "showtickprefix",
+ "showticksuffix",
+ "tick0",
+ "tickangle",
+ "tickcolor",
+ "tickfont",
+ "tickformat",
+ "tickformatstopdefaults",
+ "tickformatstops",
+ "ticklabelstep",
+ "ticklen",
+ "tickmode",
+ "tickprefix",
+ "ticks",
+ "ticksuffix",
+ "ticktext",
+ "ticktextsrc",
+ "tickvals",
+ "tickvalssrc",
+ "tickwidth",
+ "title",
+ "uirevision",
+ }
+
+ @property
+ def color(self):
+ """
+ Sets default for all colors associated with this axis all at
+ once: line, font, tick, and grid colors. Grid color is
+ lightened by blending this with the plot background Individual
+ pieces can override this.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def dtick(self):
+ """
+ Sets the step in-between ticks on this axis. Use with `tick0`.
+ Must be a positive number, or special strings available to
+ "log" and "date" axes. If the axis `type` is "log", then ticks
+ are set every 10^(n*dtick) where n is the tick number. For
+ example, to set a tick mark at 1, 10, 100, 1000, ... set dtick
+ to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2.
+ To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special values;
+ "L<f>", where `f` is a positive number, gives ticks linearly
+ spaced in value (but not position). For example `tick0` = 0.1,
+ `dtick` = "L0.5" will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To
+ show powers of 10 plus small digits between, use "D1" (all
+ digits) or "D2" (only 2 and 5). `tick0` is ignored for "D1" and
+ "D2". If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval between
+ ticks to one day, set `dtick` to 86400000.0. "date" also has
+ special values "M<n>" gives ticks spaced by a number of months.
+ `n` must be a positive integer. To set ticks on the 15th of
+ every third month, set `tick0` to "2000-01-15" and `dtick` to
+ "M3". To set ticks every 4 years, set `dtick` to "M48"
+
+ The 'dtick' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["dtick"]
+
+ @dtick.setter
+ def dtick(self, val):
+ self["dtick"] = val
+
+ @property
+ def exponentformat(self):
+ """
+ Determines a formatting rule for the tick exponents. For
+ example, consider the number 1,000,000,000. If "none", it
+ appears as 1,000,000,000. If "e", 1e+9. If "E", 1E+9. If
+ "power", 1x10^9 (with 9 in a super script). If "SI", 1G. If
+ "B", 1B.
+
+ The 'exponentformat' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['none', 'e', 'E', 'power', 'SI', 'B']
+
+ Returns
+ -------
+ Any
+ """
+ return self["exponentformat"]
+
+ @exponentformat.setter
+ def exponentformat(self, val):
+ self["exponentformat"] = val
+
+ @property
+ def gridcolor(self):
+ """
+ Sets the color of the grid lines.
+
+ The 'gridcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["gridcolor"]
+
+ @gridcolor.setter
+ def gridcolor(self, val):
+ self["gridcolor"] = val
+
+ @property
+ def griddash(self):
+ """
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+
+ The 'griddash' property is an enumeration that may be specified as:
+ - One of the following dash styles:
+ ['solid', 'dot', 'dash', 'longdash', 'dashdot', 'longdashdot']
+ - A string containing a dash length list in pixels or percentages
+ (e.g. '5px 10px 2px 2px', '5, 10, 2, 2', '10% 20% 40%', etc.)
+
+ Returns
+ -------
+ str
+ """
+ return self["griddash"]
+
+ @griddash.setter
+ def griddash(self, val):
+ self["griddash"] = val
+
+ @property
+ def gridwidth(self):
+ """
+ Sets the width (in px) of the grid lines.
+
+ The 'gridwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["gridwidth"]
+
+ @gridwidth.setter
+ def gridwidth(self, val):
+ self["gridwidth"] = val
+
+ @property
+ def hoverformat(self):
+ """
+ Sets the hover text formatting rule using d3 formatting mini-
+ languages which are very similar to those in Python. For
+ numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format. And for
+ dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to d3's date
+ formatter: "%h" for half of the year as a decimal number as
+ well as "%{n}f" for fractional seconds with n digits. For
+ example, *2016-10-13 09:15:23.456* with tickformat
+ "%H~%M~%S.%2f" would display "09~15~23.46"
+
+ The 'hoverformat' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["hoverformat"]
+
+ @hoverformat.setter
+ def hoverformat(self, val):
+ self["hoverformat"] = val
+
+ @property
+ def labelalias(self):
+ """
+ Replacement text for specific tick or hover labels. For example
+ using {US: 'USA', CA: 'Canada'} changes US to USA and CA to
+ Canada. The labels we would have shown must match the keys
+ exactly, after adding any tickprefix or ticksuffix. For
+ negative numbers the minus sign symbol used (U+2212) is wider
+ than the regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis type, and
+ both keys (if needed) and values (if desired) can include html-
+ like tags or MathJax.
+
+ The 'labelalias' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["labelalias"]
+
+ @labelalias.setter
+ def labelalias(self, val):
+ self["labelalias"] = val
+
+ @property
+ def layer(self):
+ """
+ Sets the layer on which this axis is displayed. If *above
+ traces*, this axis is displayed above all the subplot's traces
+ If *below traces*, this axis is displayed below all the
+ subplot's traces, but above the grid lines. Useful when used
+ together with scatter-like traces with `cliponaxis` set to
+ False to show markers and/or text nodes above this axis.
+
+ The 'layer' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['above traces', 'below traces']
+
+ Returns
+ -------
+ Any
+ """
+ return self["layer"]
+
+ @layer.setter
+ def layer(self, val):
+ self["layer"] = val
+
+ @property
+ def linecolor(self):
+ """
+ Sets the axis line color.
+
+ The 'linecolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["linecolor"]
+
+ @linecolor.setter
+ def linecolor(self, val):
+ self["linecolor"] = val
+
+ @property
+ def linewidth(self):
+ """
+ Sets the width (in px) of the axis line.
+
+ The 'linewidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["linewidth"]
+
+ @linewidth.setter
+ def linewidth(self, val):
+ self["linewidth"] = val
+
+ @property
+ def min(self):
+ """
+ The minimum value visible on this axis. The maximum is
+ determined by the sum minus the minimum values of the other two
+ axes. The full view corresponds to all the minima set to zero.
+
+ The 'min' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["min"]
+
+ @min.setter
+ def min(self, val):
+ self["min"] = val
+
+ @property
+ def minexponent(self):
+ """
+ Hide SI prefix for 10^n if |n| is below this number. This only
+ has an effect when `tickformat` is "SI" or "B".
+
+ The 'minexponent' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["minexponent"]
+
+ @minexponent.setter
+ def minexponent(self, val):
+ self["minexponent"] = val
+
+ @property
+ def nticks(self):
+ """
+ Specifies the maximum number of ticks for the particular axis.
+ The actual number of ticks will be chosen automatically to be
+ less than or equal to `nticks`. Has an effect only if
+ `tickmode` is set to "auto".
+
+ The 'nticks' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["nticks"]
+
+ @nticks.setter
+ def nticks(self, val):
+ self["nticks"] = val
+
+ @property
+ def separatethousands(self):
+ """
+ If "true", even 4-digit integers are separated
+
+ The 'separatethousands' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["separatethousands"]
+
+ @separatethousands.setter
+ def separatethousands(self, val):
+ self["separatethousands"] = val
+
+ @property
+ def showexponent(self):
+ """
+ If "all", all exponents are shown besides their significands.
+ If "first", only the exponent of the first tick is shown. If
+ "last", only the exponent of the last tick is shown. If "none",
+ no exponents appear.
+
+ The 'showexponent' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showexponent"]
+
+ @showexponent.setter
+ def showexponent(self, val):
+ self["showexponent"] = val
+
+ @property
+ def showgrid(self):
+ """
+ Determines whether or not grid lines are drawn. If True, the
+ grid lines are drawn at every tick mark.
+
+ The 'showgrid' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showgrid"]
+
+ @showgrid.setter
+ def showgrid(self, val):
+ self["showgrid"] = val
+
+ @property
+ def showline(self):
+ """
+ Determines whether or not a line bounding this axis is drawn.
+
+ The 'showline' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showline"]
+
+ @showline.setter
+ def showline(self, val):
+ self["showline"] = val
+
+ @property
+ def showticklabels(self):
+ """
+ Determines whether or not the tick labels are drawn.
+
+ The 'showticklabels' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showticklabels"]
+
+ @showticklabels.setter
+ def showticklabels(self, val):
+ self["showticklabels"] = val
+
+ @property
+ def showtickprefix(self):
+ """
+ If "all", all tick labels are displayed with a prefix. If
+ "first", only the first tick is displayed with a prefix. If
+ "last", only the last tick is displayed with a suffix. If
+ "none", tick prefixes are hidden.
+
+ The 'showtickprefix' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showtickprefix"]
+
+ @showtickprefix.setter
+ def showtickprefix(self, val):
+ self["showtickprefix"] = val
+
+ @property
+ def showticksuffix(self):
+ """
+ Same as `showtickprefix` but for tick suffixes.
+
+ The 'showticksuffix' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showticksuffix"]
+
+ @showticksuffix.setter
+ def showticksuffix(self, val):
+ self["showticksuffix"] = val
+
+ @property
+ def tick0(self):
+ """
+ Sets the placement of the first tick on this axis. Use with
+ `dtick`. If the axis `type` is "log", then you must take the
+ log of your starting tick (e.g. to set the starting tick to
+ 100, set the `tick0` to 2) except when `dtick`=*L<f>* (see
+ `dtick` for more info). If the axis `type` is "date", it should
+ be a date string, like date data. If the axis `type` is
+ "category", it should be a number, using the scale where each
+ category is assigned a serial number from zero in the order it
+ appears.
+
+ The 'tick0' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["tick0"]
+
+ @tick0.setter
+ def tick0(self, val):
+ self["tick0"] = val
+
+ @property
+ def tickangle(self):
+ """
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the tick
+ labels vertically.
+
+ The 'tickangle' property is a angle (in degrees) that may be
+ specified as a number between -180 and 180.
+ Numeric values outside this range are converted to the equivalent value
+ (e.g. 270 is converted to -90).
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tickangle"]
+
+ @tickangle.setter
+ def tickangle(self, val):
+ self["tickangle"] = val
+
+ @property
+ def tickcolor(self):
+ """
+ Sets the tick color.
+
+ The 'tickcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["tickcolor"]
+
+ @tickcolor.setter
+ def tickcolor(self, val):
+ self["tickcolor"] = val
+
+ @property
+ def tickfont(self):
+ """
+ Sets the tick font.
+
+ The 'tickfont' property is an instance of Tickfont
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.ternary.aaxis.Tickfont`
+ - A dict of string/value properties that will be passed
+ to the Tickfont constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.ternary.aaxis.Tickfont
+ """
+ return self["tickfont"]
+
+ @tickfont.setter
+ def tickfont(self, val):
+ self["tickfont"] = val
+
+ @property
+ def tickformat(self):
+ """
+ Sets the tick label formatting rule using d3 formatting mini-
+ languages which are very similar to those in Python. For
+ numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format. And for
+ dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to d3's date
+ formatter: "%h" for half of the year as a decimal number as
+ well as "%{n}f" for fractional seconds with n digits. For
+ example, *2016-10-13 09:15:23.456* with tickformat
+ "%H~%M~%S.%2f" would display "09~15~23.46"
+
+ The 'tickformat' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["tickformat"]
+
+ @tickformat.setter
+ def tickformat(self, val):
+ self["tickformat"] = val
+
+ @property
+ def tickformatstops(self):
+ """
+ The 'tickformatstops' property is a tuple of instances of
+ Tickformatstop that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.ternary.aaxis.Tickformatstop
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Tickformatstop constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.ternary.aaxis.Tickformatstop]
+ """
+ return self["tickformatstops"]
+
+ @tickformatstops.setter
+ def tickformatstops(self, val):
+ self["tickformatstops"] = val
+
+ @property
+ def tickformatstopdefaults(self):
+ """
+ When used in a template (as
+ layout.template.layout.ternary.aaxis.tickformatstopdefaults),
+ sets the default property values to use for elements of
+ layout.ternary.aaxis.tickformatstops
+
+ The 'tickformatstopdefaults' property is an instance of Tickformatstop
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.ternary.aaxis.Tickformatstop`
+ - A dict of string/value properties that will be passed
+ to the Tickformatstop constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.ternary.aaxis.Tickformatstop
+ """
+ return self["tickformatstopdefaults"]
+
+ @tickformatstopdefaults.setter
+ def tickformatstopdefaults(self, val):
+ self["tickformatstopdefaults"] = val
+
+ @property
+ def ticklabelstep(self):
+ """
+ Sets the spacing between tick labels as compared to the spacing
+ between ticks. A value of 1 (default) means each tick gets a
+ label. A value of 2 means shows every 2nd label. A larger value
+ n means only every nth tick is labeled. `tick0` determines
+ which labels are shown. Not implemented for axes with `type`
+ "log" or "multicategory", or when `tickmode` is "array".
+
+ The 'ticklabelstep' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["ticklabelstep"]
+
+ @ticklabelstep.setter
+ def ticklabelstep(self, val):
+ self["ticklabelstep"] = val
+
+ @property
+ def ticklen(self):
+ """
+ Sets the tick length (in px).
+
+ The 'ticklen' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["ticklen"]
+
+ @ticklen.setter
+ def ticklen(self, val):
+ self["ticklen"] = val
+
+ @property
+ def tickmode(self):
+ """
+ Sets the tick mode for this axis. If "auto", the number of
+ ticks is set via `nticks`. If "linear", the placement of the
+ ticks is determined by a starting position `tick0` and a tick
+ step `dtick` ("linear" is the default value if `tick0` and
+ `dtick` are provided). If "array", the placement of the ticks
+ is set via `tickvals` and the tick text is `ticktext`. ("array"
+ is the default value if `tickvals` is provided).
+
+ The 'tickmode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['auto', 'linear', 'array']
+
+ Returns
+ -------
+ Any
+ """
+ return self["tickmode"]
+
+ @tickmode.setter
+ def tickmode(self, val):
+ self["tickmode"] = val
+
+ @property
+ def tickprefix(self):
+ """
+ Sets a tick label prefix.
+
+ The 'tickprefix' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["tickprefix"]
+
+ @tickprefix.setter
+ def tickprefix(self, val):
+ self["tickprefix"] = val
+
+ @property
+ def ticks(self):
+ """
+ Determines whether ticks are drawn or not. If "", this axis'
+ ticks are not drawn. If "outside" ("inside"), this axis' are
+ drawn outside (inside) the axis lines.
+
+ The 'ticks' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['outside', 'inside', '']
+
+ Returns
+ -------
+ Any
+ """
+ return self["ticks"]
+
+ @ticks.setter
+ def ticks(self, val):
+ self["ticks"] = val
+
+ @property
+ def ticksuffix(self):
+ """
+ Sets a tick label suffix.
+
+ The 'ticksuffix' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["ticksuffix"]
+
+ @ticksuffix.setter
+ def ticksuffix(self, val):
+ self["ticksuffix"] = val
+
+ @property
+ def ticktext(self):
+ """
+ Sets the text displayed at the ticks position via `tickvals`.
+ Only has an effect if `tickmode` is set to "array". Used with
+ `tickvals`.
+
+ The 'ticktext' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["ticktext"]
+
+ @ticktext.setter
+ def ticktext(self, val):
+ self["ticktext"] = val
+
+ @property
+ def ticktextsrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `ticktext`.
+
+ The 'ticktextsrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["ticktextsrc"]
+
+ @ticktextsrc.setter
+ def ticktextsrc(self, val):
+ self["ticktextsrc"] = val
+
+ @property
+ def tickvals(self):
+ """
+ Sets the values at which ticks on this axis appear. Only has an
+ effect if `tickmode` is set to "array". Used with `ticktext`.
+
+ The 'tickvals' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["tickvals"]
+
+ @tickvals.setter
+ def tickvals(self, val):
+ self["tickvals"] = val
+
+ @property
+ def tickvalssrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `tickvals`.
+
+ The 'tickvalssrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["tickvalssrc"]
+
+ @tickvalssrc.setter
+ def tickvalssrc(self, val):
+ self["tickvalssrc"] = val
+
+ @property
+ def tickwidth(self):
+ """
+ Sets the tick width (in px).
+
+ The 'tickwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tickwidth"]
+
+ @tickwidth.setter
+ def tickwidth(self, val):
+ self["tickwidth"] = val
+
+ @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.ternary.aaxis.Title`
+ - A dict of string/value properties that will be passed
+ to the Title constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.ternary.aaxis.Title
+ """
+ return self["title"]
+
+ @title.setter
+ def title(self, val):
+ self["title"] = val
+
+ @property
+ def uirevision(self):
+ """
+ Controls persistence of user-driven changes in axis `min`, and
+ `title` if in `editable: true` configuration. Defaults to
+ `ternary<N>.uirevision`.
+
+ The 'uirevision' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["uirevision"]
+
+ @uirevision.setter
+ def uirevision(self, val):
+ self["uirevision"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+ Sets default for all colors associated with this axis
+ all at once: line, font, tick, and grid colors. Grid
+ color is lightened by blending this with the plot
+ background Individual pieces can override this.
+ dtick
+ Sets the step in-between ticks on this axis. Use with
+ `tick0`. Must be a positive number, or special strings
+ available to "log" and "date" axes. If the axis `type`
+ is "log", then ticks are set every 10^(n*dtick) where n
+ is the tick number. For example, to set a tick mark at
+ 1, 10, 100, 1000, ... set dtick to 1. To set tick marks
+ at 1, 100, 10000, ... set dtick to 2. To set tick marks
+ at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special
+ values; "L<f>", where `f` is a positive number, gives
+ ticks linearly spaced in value (but not position). For
+ example `tick0` = 0.1, `dtick` = "L0.5" will put ticks
+ at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus
+ small digits between, use "D1" (all digits) or "D2"
+ (only 2 and 5). `tick0` is ignored for "D1" and "D2".
+ If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval
+ between ticks to one day, set `dtick` to 86400000.0.
+ "date" also has special values "M<n>" gives ticks
+ spaced by a number of months. `n` must be a positive
+ integer. To set ticks on the 15th of every third month,
+ set `tick0` to "2000-01-15" and `dtick` to "M3". To set
+ ticks every 4 years, set `dtick` to "M48"
+ exponentformat
+ Determines a formatting rule for the tick exponents.
+ For example, consider the number 1,000,000,000. If
+ "none", it appears as 1,000,000,000. If "e", 1e+9. If
+ "E", 1E+9. If "power", 1x10^9 (with 9 in a super
+ script). If "SI", 1G. If "B", 1B.
+ gridcolor
+ Sets the color of the grid lines.
+ griddash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ gridwidth
+ Sets the width (in px) of the grid lines.
+ hoverformat
+ Sets the hover text formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ labelalias
+ Replacement text for specific tick or hover labels. For
+ example using {US: 'USA', CA: 'Canada'} changes US to
+ USA and CA to Canada. The labels we would have shown
+ must match the keys exactly, after adding any
+ tickprefix or ticksuffix. For negative numbers the
+ minus sign symbol used (U+2212) is wider than the
+ regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis
+ type, and both keys (if needed) and values (if desired)
+ can include html-like tags or MathJax.
+ layer
+ Sets the layer on which this axis is displayed. If
+ *above traces*, this axis is displayed above all the
+ subplot's traces If *below traces*, this axis is
+ displayed below all the subplot's traces, but above the
+ grid lines. Useful when used together with scatter-like
+ traces with `cliponaxis` set to False to show markers
+ and/or text nodes above this axis.
+ linecolor
+ Sets the axis line color.
+ linewidth
+ Sets the width (in px) of the axis line.
+ min
+ The minimum value visible on this axis. The maximum is
+ determined by the sum minus the minimum values of the
+ other two axes. The full view corresponds to all the
+ minima set to zero.
+ minexponent
+ Hide SI prefix for 10^n if |n| is below this number.
+ This only has an effect when `tickformat` is "SI" or
+ "B".
+ nticks
+ Specifies the maximum number of ticks for the
+ particular axis. The actual number of ticks will be
+ chosen automatically to be less than or equal to
+ `nticks`. Has an effect only if `tickmode` is set to
+ "auto".
+ separatethousands
+ If "true", even 4-digit integers are separated
+ showexponent
+ If "all", all exponents are shown besides their
+ significands. If "first", only the exponent of the
+ first tick is shown. If "last", only the exponent of
+ the last tick is shown. If "none", no exponents appear.
+ showgrid
+ Determines whether or not grid lines are drawn. If
+ True, the grid lines are drawn at every tick mark.
+ showline
+ Determines whether or not a line bounding this axis is
+ drawn.
+ showticklabels
+ Determines whether or not the tick labels are drawn.
+ showtickprefix
+ If "all", all tick labels are displayed with a prefix.
+ If "first", only the first tick is displayed with a
+ prefix. If "last", only the last tick is displayed with
+ a suffix. If "none", tick prefixes are hidden.
+ showticksuffix
+ Same as `showtickprefix` but for tick suffixes.
+ tick0
+ Sets the placement of the first tick on this axis. Use
+ with `dtick`. If the axis `type` is "log", then you
+ must take the log of your starting tick (e.g. to set
+ the starting tick to 100, set the `tick0` to 2) except
+ when `dtick`=*L<f>* (see `dtick` for more info). If the
+ axis `type` is "date", it should be a date string, like
+ date data. If the axis `type` is "category", it should
+ be a number, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears.
+ tickangle
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the
+ tick labels vertically.
+ tickcolor
+ Sets the tick color.
+ tickfont
+ Sets the tick font.
+ tickformat
+ Sets the tick label formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ tickformatstops
+ A tuple of :class:`plotly.graph_objects.layout.ternary.
+ aaxis.Tickformatstop` instances or dicts with
+ compatible properties
+ tickformatstopdefaults
+ When used in a template (as layout.template.layout.tern
+ ary.aaxis.tickformatstopdefaults), sets the default
+ property values to use for elements of
+ layout.ternary.aaxis.tickformatstops
+ ticklabelstep
+ Sets the spacing between tick labels as compared to the
+ spacing between ticks. A value of 1 (default) means
+ each tick gets a label. A value of 2 means shows every
+ 2nd label. A larger value n means only every nth tick
+ is labeled. `tick0` determines which labels are shown.
+ Not implemented for axes with `type` "log" or
+ "multicategory", or when `tickmode` is "array".
+ ticklen
+ Sets the tick length (in px).
+ tickmode
+ Sets the tick mode for this axis. If "auto", the number
+ of ticks is set via `nticks`. If "linear", the
+ placement of the ticks is determined by a starting
+ position `tick0` and a tick step `dtick` ("linear" is
+ the default value if `tick0` and `dtick` are provided).
+ If "array", the placement of the ticks is set via
+ `tickvals` and the tick text is `ticktext`. ("array" is
+ the default value if `tickvals` is provided).
+ tickprefix
+ Sets a tick label prefix.
+ ticks
+ Determines whether ticks are drawn or not. If "", this
+ axis' ticks are not drawn. If "outside" ("inside"),
+ this axis' are drawn outside (inside) the axis lines.
+ ticksuffix
+ Sets a tick label suffix.
+ ticktext
+ Sets the text displayed at the ticks position via
+ `tickvals`. Only has an effect if `tickmode` is set to
+ "array". Used with `tickvals`.
+ ticktextsrc
+ Sets the source reference on Chart Studio Cloud for
+ `ticktext`.
+ tickvals
+ Sets the values at which ticks on this axis appear.
+ Only has an effect if `tickmode` is set to "array".
+ Used with `ticktext`.
+ tickvalssrc
+ Sets the source reference on Chart Studio Cloud for
+ `tickvals`.
+ tickwidth
+ Sets the tick width (in px).
+ title
+ :class:`plotly.graph_objects.layout.ternary.aaxis.Title
+ ` instance or dict with compatible properties
+ uirevision
+ Controls persistence of user-driven changes in axis
+ `min`, and `title` if in `editable: true`
+ configuration. Defaults to `ternary<N>.uirevision`.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ dtick=None,
+ exponentformat=None,
+ gridcolor=None,
+ griddash=None,
+ gridwidth=None,
+ hoverformat=None,
+ labelalias=None,
+ layer=None,
+ linecolor=None,
+ linewidth=None,
+ min=None,
+ minexponent=None,
+ nticks=None,
+ separatethousands=None,
+ showexponent=None,
+ showgrid=None,
+ showline=None,
+ showticklabels=None,
+ showtickprefix=None,
+ showticksuffix=None,
+ tick0=None,
+ tickangle=None,
+ tickcolor=None,
+ tickfont=None,
+ tickformat=None,
+ tickformatstops=None,
+ tickformatstopdefaults=None,
+ ticklabelstep=None,
+ ticklen=None,
+ tickmode=None,
+ tickprefix=None,
+ ticks=None,
+ ticksuffix=None,
+ ticktext=None,
+ ticktextsrc=None,
+ tickvals=None,
+ tickvalssrc=None,
+ tickwidth=None,
+ title=None,
+ uirevision=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Aaxis object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.ternary.Aaxis`
+ color
+ Sets default for all colors associated with this axis
+ all at once: line, font, tick, and grid colors. Grid
+ color is lightened by blending this with the plot
+ background Individual pieces can override this.
+ dtick
+ Sets the step in-between ticks on this axis. Use with
+ `tick0`. Must be a positive number, or special strings
+ available to "log" and "date" axes. If the axis `type`
+ is "log", then ticks are set every 10^(n*dtick) where n
+ is the tick number. For example, to set a tick mark at
+ 1, 10, 100, 1000, ... set dtick to 1. To set tick marks
+ at 1, 100, 10000, ... set dtick to 2. To set tick marks
+ at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special
+ values; "L<f>", where `f` is a positive number, gives
+ ticks linearly spaced in value (but not position). For
+ example `tick0` = 0.1, `dtick` = "L0.5" will put ticks
+ at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus
+ small digits between, use "D1" (all digits) or "D2"
+ (only 2 and 5). `tick0` is ignored for "D1" and "D2".
+ If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval
+ between ticks to one day, set `dtick` to 86400000.0.
+ "date" also has special values "M<n>" gives ticks
+ spaced by a number of months. `n` must be a positive
+ integer. To set ticks on the 15th of every third month,
+ set `tick0` to "2000-01-15" and `dtick` to "M3". To set
+ ticks every 4 years, set `dtick` to "M48"
+ exponentformat
+ Determines a formatting rule for the tick exponents.
+ For example, consider the number 1,000,000,000. If
+ "none", it appears as 1,000,000,000. If "e", 1e+9. If
+ "E", 1E+9. If "power", 1x10^9 (with 9 in a super
+ script). If "SI", 1G. If "B", 1B.
+ gridcolor
+ Sets the color of the grid lines.
+ griddash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ gridwidth
+ Sets the width (in px) of the grid lines.
+ hoverformat
+ Sets the hover text formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ labelalias
+ Replacement text for specific tick or hover labels. For
+ example using {US: 'USA', CA: 'Canada'} changes US to
+ USA and CA to Canada. The labels we would have shown
+ must match the keys exactly, after adding any
+ tickprefix or ticksuffix. For negative numbers the
+ minus sign symbol used (U+2212) is wider than the
+ regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis
+ type, and both keys (if needed) and values (if desired)
+ can include html-like tags or MathJax.
+ layer
+ Sets the layer on which this axis is displayed. If
+ *above traces*, this axis is displayed above all the
+ subplot's traces If *below traces*, this axis is
+ displayed below all the subplot's traces, but above the
+ grid lines. Useful when used together with scatter-like
+ traces with `cliponaxis` set to False to show markers
+ and/or text nodes above this axis.
+ linecolor
+ Sets the axis line color.
+ linewidth
+ Sets the width (in px) of the axis line.
+ min
+ The minimum value visible on this axis. The maximum is
+ determined by the sum minus the minimum values of the
+ other two axes. The full view corresponds to all the
+ minima set to zero.
+ minexponent
+ Hide SI prefix for 10^n if |n| is below this number.
+ This only has an effect when `tickformat` is "SI" or
+ "B".
+ nticks
+ Specifies the maximum number of ticks for the
+ particular axis. The actual number of ticks will be
+ chosen automatically to be less than or equal to
+ `nticks`. Has an effect only if `tickmode` is set to
+ "auto".
+ separatethousands
+ If "true", even 4-digit integers are separated
+ showexponent
+ If "all", all exponents are shown besides their
+ significands. If "first", only the exponent of the
+ first tick is shown. If "last", only the exponent of
+ the last tick is shown. If "none", no exponents appear.
+ showgrid
+ Determines whether or not grid lines are drawn. If
+ True, the grid lines are drawn at every tick mark.
+ showline
+ Determines whether or not a line bounding this axis is
+ drawn.
+ showticklabels
+ Determines whether or not the tick labels are drawn.
+ showtickprefix
+ If "all", all tick labels are displayed with a prefix.
+ If "first", only the first tick is displayed with a
+ prefix. If "last", only the last tick is displayed with
+ a suffix. If "none", tick prefixes are hidden.
+ showticksuffix
+ Same as `showtickprefix` but for tick suffixes.
+ tick0
+ Sets the placement of the first tick on this axis. Use
+ with `dtick`. If the axis `type` is "log", then you
+ must take the log of your starting tick (e.g. to set
+ the starting tick to 100, set the `tick0` to 2) except
+ when `dtick`=*L<f>* (see `dtick` for more info). If the
+ axis `type` is "date", it should be a date string, like
+ date data. If the axis `type` is "category", it should
+ be a number, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears.
+ tickangle
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the
+ tick labels vertically.
+ tickcolor
+ Sets the tick color.
+ tickfont
+ Sets the tick font.
+ tickformat
+ Sets the tick label formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ tickformatstops
+ A tuple of :class:`plotly.graph_objects.layout.ternary.
+ aaxis.Tickformatstop` instances or dicts with
+ compatible properties
+ tickformatstopdefaults
+ When used in a template (as layout.template.layout.tern
+ ary.aaxis.tickformatstopdefaults), sets the default
+ property values to use for elements of
+ layout.ternary.aaxis.tickformatstops
+ ticklabelstep
+ Sets the spacing between tick labels as compared to the
+ spacing between ticks. A value of 1 (default) means
+ each tick gets a label. A value of 2 means shows every
+ 2nd label. A larger value n means only every nth tick
+ is labeled. `tick0` determines which labels are shown.
+ Not implemented for axes with `type` "log" or
+ "multicategory", or when `tickmode` is "array".
+ ticklen
+ Sets the tick length (in px).
+ tickmode
+ Sets the tick mode for this axis. If "auto", the number
+ of ticks is set via `nticks`. If "linear", the
+ placement of the ticks is determined by a starting
+ position `tick0` and a tick step `dtick` ("linear" is
+ the default value if `tick0` and `dtick` are provided).
+ If "array", the placement of the ticks is set via
+ `tickvals` and the tick text is `ticktext`. ("array" is
+ the default value if `tickvals` is provided).
+ tickprefix
+ Sets a tick label prefix.
+ ticks
+ Determines whether ticks are drawn or not. If "", this
+ axis' ticks are not drawn. If "outside" ("inside"),
+ this axis' are drawn outside (inside) the axis lines.
+ ticksuffix
+ Sets a tick label suffix.
+ ticktext
+ Sets the text displayed at the ticks position via
+ `tickvals`. Only has an effect if `tickmode` is set to
+ "array". Used with `tickvals`.
+ ticktextsrc
+ Sets the source reference on Chart Studio Cloud for
+ `ticktext`.
+ tickvals
+ Sets the values at which ticks on this axis appear.
+ Only has an effect if `tickmode` is set to "array".
+ Used with `ticktext`.
+ tickvalssrc
+ Sets the source reference on Chart Studio Cloud for
+ `tickvals`.
+ tickwidth
+ Sets the tick width (in px).
+ title
+ :class:`plotly.graph_objects.layout.ternary.aaxis.Title
+ ` instance or dict with compatible properties
+ uirevision
+ Controls persistence of user-driven changes in axis
+ `min`, and `title` if in `editable: true`
+ configuration. Defaults to `ternary<N>.uirevision`.
+
+ Returns
+ -------
+ Aaxis
+ """
+ super().__init__("aaxis")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.ternary.Aaxis
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.ternary.Aaxis`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("dtick", arg, dtick)
+ self._set_property("exponentformat", arg, exponentformat)
+ self._set_property("gridcolor", arg, gridcolor)
+ self._set_property("griddash", arg, griddash)
+ self._set_property("gridwidth", arg, gridwidth)
+ self._set_property("hoverformat", arg, hoverformat)
+ self._set_property("labelalias", arg, labelalias)
+ self._set_property("layer", arg, layer)
+ self._set_property("linecolor", arg, linecolor)
+ self._set_property("linewidth", arg, linewidth)
+ self._set_property("min", arg, min)
+ self._set_property("minexponent", arg, minexponent)
+ self._set_property("nticks", arg, nticks)
+ self._set_property("separatethousands", arg, separatethousands)
+ self._set_property("showexponent", arg, showexponent)
+ self._set_property("showgrid", arg, showgrid)
+ self._set_property("showline", arg, showline)
+ self._set_property("showticklabels", arg, showticklabels)
+ self._set_property("showtickprefix", arg, showtickprefix)
+ self._set_property("showticksuffix", arg, showticksuffix)
+ self._set_property("tick0", arg, tick0)
+ self._set_property("tickangle", arg, tickangle)
+ self._set_property("tickcolor", arg, tickcolor)
+ self._set_property("tickfont", arg, tickfont)
+ self._set_property("tickformat", arg, tickformat)
+ self._set_property("tickformatstops", arg, tickformatstops)
+ self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
+ self._set_property("ticklabelstep", arg, ticklabelstep)
+ self._set_property("ticklen", arg, ticklen)
+ self._set_property("tickmode", arg, tickmode)
+ self._set_property("tickprefix", arg, tickprefix)
+ self._set_property("ticks", arg, ticks)
+ self._set_property("ticksuffix", arg, ticksuffix)
+ self._set_property("ticktext", arg, ticktext)
+ self._set_property("ticktextsrc", arg, ticktextsrc)
+ self._set_property("tickvals", arg, tickvals)
+ self._set_property("tickvalssrc", arg, tickvalssrc)
+ self._set_property("tickwidth", arg, tickwidth)
+ self._set_property("title", arg, title)
+ self._set_property("uirevision", arg, uirevision)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/_baxis.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/_baxis.py
new file mode 100644
index 0000000..c660431
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/_baxis.py
@@ -0,0 +1,1474 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Baxis(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.ternary"
+ _path_str = "layout.ternary.baxis"
+ _valid_props = {
+ "color",
+ "dtick",
+ "exponentformat",
+ "gridcolor",
+ "griddash",
+ "gridwidth",
+ "hoverformat",
+ "labelalias",
+ "layer",
+ "linecolor",
+ "linewidth",
+ "min",
+ "minexponent",
+ "nticks",
+ "separatethousands",
+ "showexponent",
+ "showgrid",
+ "showline",
+ "showticklabels",
+ "showtickprefix",
+ "showticksuffix",
+ "tick0",
+ "tickangle",
+ "tickcolor",
+ "tickfont",
+ "tickformat",
+ "tickformatstopdefaults",
+ "tickformatstops",
+ "ticklabelstep",
+ "ticklen",
+ "tickmode",
+ "tickprefix",
+ "ticks",
+ "ticksuffix",
+ "ticktext",
+ "ticktextsrc",
+ "tickvals",
+ "tickvalssrc",
+ "tickwidth",
+ "title",
+ "uirevision",
+ }
+
+ @property
+ def color(self):
+ """
+ Sets default for all colors associated with this axis all at
+ once: line, font, tick, and grid colors. Grid color is
+ lightened by blending this with the plot background Individual
+ pieces can override this.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def dtick(self):
+ """
+ Sets the step in-between ticks on this axis. Use with `tick0`.
+ Must be a positive number, or special strings available to
+ "log" and "date" axes. If the axis `type` is "log", then ticks
+ are set every 10^(n*dtick) where n is the tick number. For
+ example, to set a tick mark at 1, 10, 100, 1000, ... set dtick
+ to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2.
+ To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special values;
+ "L<f>", where `f` is a positive number, gives ticks linearly
+ spaced in value (but not position). For example `tick0` = 0.1,
+ `dtick` = "L0.5" will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To
+ show powers of 10 plus small digits between, use "D1" (all
+ digits) or "D2" (only 2 and 5). `tick0` is ignored for "D1" and
+ "D2". If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval between
+ ticks to one day, set `dtick` to 86400000.0. "date" also has
+ special values "M<n>" gives ticks spaced by a number of months.
+ `n` must be a positive integer. To set ticks on the 15th of
+ every third month, set `tick0` to "2000-01-15" and `dtick` to
+ "M3". To set ticks every 4 years, set `dtick` to "M48"
+
+ The 'dtick' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["dtick"]
+
+ @dtick.setter
+ def dtick(self, val):
+ self["dtick"] = val
+
+ @property
+ def exponentformat(self):
+ """
+ Determines a formatting rule for the tick exponents. For
+ example, consider the number 1,000,000,000. If "none", it
+ appears as 1,000,000,000. If "e", 1e+9. If "E", 1E+9. If
+ "power", 1x10^9 (with 9 in a super script). If "SI", 1G. If
+ "B", 1B.
+
+ The 'exponentformat' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['none', 'e', 'E', 'power', 'SI', 'B']
+
+ Returns
+ -------
+ Any
+ """
+ return self["exponentformat"]
+
+ @exponentformat.setter
+ def exponentformat(self, val):
+ self["exponentformat"] = val
+
+ @property
+ def gridcolor(self):
+ """
+ Sets the color of the grid lines.
+
+ The 'gridcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["gridcolor"]
+
+ @gridcolor.setter
+ def gridcolor(self, val):
+ self["gridcolor"] = val
+
+ @property
+ def griddash(self):
+ """
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+
+ The 'griddash' property is an enumeration that may be specified as:
+ - One of the following dash styles:
+ ['solid', 'dot', 'dash', 'longdash', 'dashdot', 'longdashdot']
+ - A string containing a dash length list in pixels or percentages
+ (e.g. '5px 10px 2px 2px', '5, 10, 2, 2', '10% 20% 40%', etc.)
+
+ Returns
+ -------
+ str
+ """
+ return self["griddash"]
+
+ @griddash.setter
+ def griddash(self, val):
+ self["griddash"] = val
+
+ @property
+ def gridwidth(self):
+ """
+ Sets the width (in px) of the grid lines.
+
+ The 'gridwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["gridwidth"]
+
+ @gridwidth.setter
+ def gridwidth(self, val):
+ self["gridwidth"] = val
+
+ @property
+ def hoverformat(self):
+ """
+ Sets the hover text formatting rule using d3 formatting mini-
+ languages which are very similar to those in Python. For
+ numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format. And for
+ dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to d3's date
+ formatter: "%h" for half of the year as a decimal number as
+ well as "%{n}f" for fractional seconds with n digits. For
+ example, *2016-10-13 09:15:23.456* with tickformat
+ "%H~%M~%S.%2f" would display "09~15~23.46"
+
+ The 'hoverformat' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["hoverformat"]
+
+ @hoverformat.setter
+ def hoverformat(self, val):
+ self["hoverformat"] = val
+
+ @property
+ def labelalias(self):
+ """
+ Replacement text for specific tick or hover labels. For example
+ using {US: 'USA', CA: 'Canada'} changes US to USA and CA to
+ Canada. The labels we would have shown must match the keys
+ exactly, after adding any tickprefix or ticksuffix. For
+ negative numbers the minus sign symbol used (U+2212) is wider
+ than the regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis type, and
+ both keys (if needed) and values (if desired) can include html-
+ like tags or MathJax.
+
+ The 'labelalias' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["labelalias"]
+
+ @labelalias.setter
+ def labelalias(self, val):
+ self["labelalias"] = val
+
+ @property
+ def layer(self):
+ """
+ Sets the layer on which this axis is displayed. If *above
+ traces*, this axis is displayed above all the subplot's traces
+ If *below traces*, this axis is displayed below all the
+ subplot's traces, but above the grid lines. Useful when used
+ together with scatter-like traces with `cliponaxis` set to
+ False to show markers and/or text nodes above this axis.
+
+ The 'layer' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['above traces', 'below traces']
+
+ Returns
+ -------
+ Any
+ """
+ return self["layer"]
+
+ @layer.setter
+ def layer(self, val):
+ self["layer"] = val
+
+ @property
+ def linecolor(self):
+ """
+ Sets the axis line color.
+
+ The 'linecolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["linecolor"]
+
+ @linecolor.setter
+ def linecolor(self, val):
+ self["linecolor"] = val
+
+ @property
+ def linewidth(self):
+ """
+ Sets the width (in px) of the axis line.
+
+ The 'linewidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["linewidth"]
+
+ @linewidth.setter
+ def linewidth(self, val):
+ self["linewidth"] = val
+
+ @property
+ def min(self):
+ """
+ The minimum value visible on this axis. The maximum is
+ determined by the sum minus the minimum values of the other two
+ axes. The full view corresponds to all the minima set to zero.
+
+ The 'min' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["min"]
+
+ @min.setter
+ def min(self, val):
+ self["min"] = val
+
+ @property
+ def minexponent(self):
+ """
+ Hide SI prefix for 10^n if |n| is below this number. This only
+ has an effect when `tickformat` is "SI" or "B".
+
+ The 'minexponent' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["minexponent"]
+
+ @minexponent.setter
+ def minexponent(self, val):
+ self["minexponent"] = val
+
+ @property
+ def nticks(self):
+ """
+ Specifies the maximum number of ticks for the particular axis.
+ The actual number of ticks will be chosen automatically to be
+ less than or equal to `nticks`. Has an effect only if
+ `tickmode` is set to "auto".
+
+ The 'nticks' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["nticks"]
+
+ @nticks.setter
+ def nticks(self, val):
+ self["nticks"] = val
+
+ @property
+ def separatethousands(self):
+ """
+ If "true", even 4-digit integers are separated
+
+ The 'separatethousands' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["separatethousands"]
+
+ @separatethousands.setter
+ def separatethousands(self, val):
+ self["separatethousands"] = val
+
+ @property
+ def showexponent(self):
+ """
+ If "all", all exponents are shown besides their significands.
+ If "first", only the exponent of the first tick is shown. If
+ "last", only the exponent of the last tick is shown. If "none",
+ no exponents appear.
+
+ The 'showexponent' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showexponent"]
+
+ @showexponent.setter
+ def showexponent(self, val):
+ self["showexponent"] = val
+
+ @property
+ def showgrid(self):
+ """
+ Determines whether or not grid lines are drawn. If True, the
+ grid lines are drawn at every tick mark.
+
+ The 'showgrid' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showgrid"]
+
+ @showgrid.setter
+ def showgrid(self, val):
+ self["showgrid"] = val
+
+ @property
+ def showline(self):
+ """
+ Determines whether or not a line bounding this axis is drawn.
+
+ The 'showline' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showline"]
+
+ @showline.setter
+ def showline(self, val):
+ self["showline"] = val
+
+ @property
+ def showticklabels(self):
+ """
+ Determines whether or not the tick labels are drawn.
+
+ The 'showticklabels' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showticklabels"]
+
+ @showticklabels.setter
+ def showticklabels(self, val):
+ self["showticklabels"] = val
+
+ @property
+ def showtickprefix(self):
+ """
+ If "all", all tick labels are displayed with a prefix. If
+ "first", only the first tick is displayed with a prefix. If
+ "last", only the last tick is displayed with a suffix. If
+ "none", tick prefixes are hidden.
+
+ The 'showtickprefix' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showtickprefix"]
+
+ @showtickprefix.setter
+ def showtickprefix(self, val):
+ self["showtickprefix"] = val
+
+ @property
+ def showticksuffix(self):
+ """
+ Same as `showtickprefix` but for tick suffixes.
+
+ The 'showticksuffix' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showticksuffix"]
+
+ @showticksuffix.setter
+ def showticksuffix(self, val):
+ self["showticksuffix"] = val
+
+ @property
+ def tick0(self):
+ """
+ Sets the placement of the first tick on this axis. Use with
+ `dtick`. If the axis `type` is "log", then you must take the
+ log of your starting tick (e.g. to set the starting tick to
+ 100, set the `tick0` to 2) except when `dtick`=*L<f>* (see
+ `dtick` for more info). If the axis `type` is "date", it should
+ be a date string, like date data. If the axis `type` is
+ "category", it should be a number, using the scale where each
+ category is assigned a serial number from zero in the order it
+ appears.
+
+ The 'tick0' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["tick0"]
+
+ @tick0.setter
+ def tick0(self, val):
+ self["tick0"] = val
+
+ @property
+ def tickangle(self):
+ """
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the tick
+ labels vertically.
+
+ The 'tickangle' property is a angle (in degrees) that may be
+ specified as a number between -180 and 180.
+ Numeric values outside this range are converted to the equivalent value
+ (e.g. 270 is converted to -90).
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tickangle"]
+
+ @tickangle.setter
+ def tickangle(self, val):
+ self["tickangle"] = val
+
+ @property
+ def tickcolor(self):
+ """
+ Sets the tick color.
+
+ The 'tickcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["tickcolor"]
+
+ @tickcolor.setter
+ def tickcolor(self, val):
+ self["tickcolor"] = val
+
+ @property
+ def tickfont(self):
+ """
+ Sets the tick font.
+
+ The 'tickfont' property is an instance of Tickfont
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.ternary.baxis.Tickfont`
+ - A dict of string/value properties that will be passed
+ to the Tickfont constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.ternary.baxis.Tickfont
+ """
+ return self["tickfont"]
+
+ @tickfont.setter
+ def tickfont(self, val):
+ self["tickfont"] = val
+
+ @property
+ def tickformat(self):
+ """
+ Sets the tick label formatting rule using d3 formatting mini-
+ languages which are very similar to those in Python. For
+ numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format. And for
+ dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to d3's date
+ formatter: "%h" for half of the year as a decimal number as
+ well as "%{n}f" for fractional seconds with n digits. For
+ example, *2016-10-13 09:15:23.456* with tickformat
+ "%H~%M~%S.%2f" would display "09~15~23.46"
+
+ The 'tickformat' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["tickformat"]
+
+ @tickformat.setter
+ def tickformat(self, val):
+ self["tickformat"] = val
+
+ @property
+ def tickformatstops(self):
+ """
+ The 'tickformatstops' property is a tuple of instances of
+ Tickformatstop that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.ternary.baxis.Tickformatstop
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Tickformatstop constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.ternary.baxis.Tickformatstop]
+ """
+ return self["tickformatstops"]
+
+ @tickformatstops.setter
+ def tickformatstops(self, val):
+ self["tickformatstops"] = val
+
+ @property
+ def tickformatstopdefaults(self):
+ """
+ When used in a template (as
+ layout.template.layout.ternary.baxis.tickformatstopdefaults),
+ sets the default property values to use for elements of
+ layout.ternary.baxis.tickformatstops
+
+ The 'tickformatstopdefaults' property is an instance of Tickformatstop
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.ternary.baxis.Tickformatstop`
+ - A dict of string/value properties that will be passed
+ to the Tickformatstop constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.ternary.baxis.Tickformatstop
+ """
+ return self["tickformatstopdefaults"]
+
+ @tickformatstopdefaults.setter
+ def tickformatstopdefaults(self, val):
+ self["tickformatstopdefaults"] = val
+
+ @property
+ def ticklabelstep(self):
+ """
+ Sets the spacing between tick labels as compared to the spacing
+ between ticks. A value of 1 (default) means each tick gets a
+ label. A value of 2 means shows every 2nd label. A larger value
+ n means only every nth tick is labeled. `tick0` determines
+ which labels are shown. Not implemented for axes with `type`
+ "log" or "multicategory", or when `tickmode` is "array".
+
+ The 'ticklabelstep' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["ticklabelstep"]
+
+ @ticklabelstep.setter
+ def ticklabelstep(self, val):
+ self["ticklabelstep"] = val
+
+ @property
+ def ticklen(self):
+ """
+ Sets the tick length (in px).
+
+ The 'ticklen' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["ticklen"]
+
+ @ticklen.setter
+ def ticklen(self, val):
+ self["ticklen"] = val
+
+ @property
+ def tickmode(self):
+ """
+ Sets the tick mode for this axis. If "auto", the number of
+ ticks is set via `nticks`. If "linear", the placement of the
+ ticks is determined by a starting position `tick0` and a tick
+ step `dtick` ("linear" is the default value if `tick0` and
+ `dtick` are provided). If "array", the placement of the ticks
+ is set via `tickvals` and the tick text is `ticktext`. ("array"
+ is the default value if `tickvals` is provided).
+
+ The 'tickmode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['auto', 'linear', 'array']
+
+ Returns
+ -------
+ Any
+ """
+ return self["tickmode"]
+
+ @tickmode.setter
+ def tickmode(self, val):
+ self["tickmode"] = val
+
+ @property
+ def tickprefix(self):
+ """
+ Sets a tick label prefix.
+
+ The 'tickprefix' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["tickprefix"]
+
+ @tickprefix.setter
+ def tickprefix(self, val):
+ self["tickprefix"] = val
+
+ @property
+ def ticks(self):
+ """
+ Determines whether ticks are drawn or not. If "", this axis'
+ ticks are not drawn. If "outside" ("inside"), this axis' are
+ drawn outside (inside) the axis lines.
+
+ The 'ticks' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['outside', 'inside', '']
+
+ Returns
+ -------
+ Any
+ """
+ return self["ticks"]
+
+ @ticks.setter
+ def ticks(self, val):
+ self["ticks"] = val
+
+ @property
+ def ticksuffix(self):
+ """
+ Sets a tick label suffix.
+
+ The 'ticksuffix' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["ticksuffix"]
+
+ @ticksuffix.setter
+ def ticksuffix(self, val):
+ self["ticksuffix"] = val
+
+ @property
+ def ticktext(self):
+ """
+ Sets the text displayed at the ticks position via `tickvals`.
+ Only has an effect if `tickmode` is set to "array". Used with
+ `tickvals`.
+
+ The 'ticktext' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["ticktext"]
+
+ @ticktext.setter
+ def ticktext(self, val):
+ self["ticktext"] = val
+
+ @property
+ def ticktextsrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `ticktext`.
+
+ The 'ticktextsrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["ticktextsrc"]
+
+ @ticktextsrc.setter
+ def ticktextsrc(self, val):
+ self["ticktextsrc"] = val
+
+ @property
+ def tickvals(self):
+ """
+ Sets the values at which ticks on this axis appear. Only has an
+ effect if `tickmode` is set to "array". Used with `ticktext`.
+
+ The 'tickvals' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["tickvals"]
+
+ @tickvals.setter
+ def tickvals(self, val):
+ self["tickvals"] = val
+
+ @property
+ def tickvalssrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `tickvals`.
+
+ The 'tickvalssrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["tickvalssrc"]
+
+ @tickvalssrc.setter
+ def tickvalssrc(self, val):
+ self["tickvalssrc"] = val
+
+ @property
+ def tickwidth(self):
+ """
+ Sets the tick width (in px).
+
+ The 'tickwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tickwidth"]
+
+ @tickwidth.setter
+ def tickwidth(self, val):
+ self["tickwidth"] = val
+
+ @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.ternary.baxis.Title`
+ - A dict of string/value properties that will be passed
+ to the Title constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.ternary.baxis.Title
+ """
+ return self["title"]
+
+ @title.setter
+ def title(self, val):
+ self["title"] = val
+
+ @property
+ def uirevision(self):
+ """
+ Controls persistence of user-driven changes in axis `min`, and
+ `title` if in `editable: true` configuration. Defaults to
+ `ternary<N>.uirevision`.
+
+ The 'uirevision' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["uirevision"]
+
+ @uirevision.setter
+ def uirevision(self, val):
+ self["uirevision"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+ Sets default for all colors associated with this axis
+ all at once: line, font, tick, and grid colors. Grid
+ color is lightened by blending this with the plot
+ background Individual pieces can override this.
+ dtick
+ Sets the step in-between ticks on this axis. Use with
+ `tick0`. Must be a positive number, or special strings
+ available to "log" and "date" axes. If the axis `type`
+ is "log", then ticks are set every 10^(n*dtick) where n
+ is the tick number. For example, to set a tick mark at
+ 1, 10, 100, 1000, ... set dtick to 1. To set tick marks
+ at 1, 100, 10000, ... set dtick to 2. To set tick marks
+ at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special
+ values; "L<f>", where `f` is a positive number, gives
+ ticks linearly spaced in value (but not position). For
+ example `tick0` = 0.1, `dtick` = "L0.5" will put ticks
+ at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus
+ small digits between, use "D1" (all digits) or "D2"
+ (only 2 and 5). `tick0` is ignored for "D1" and "D2".
+ If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval
+ between ticks to one day, set `dtick` to 86400000.0.
+ "date" also has special values "M<n>" gives ticks
+ spaced by a number of months. `n` must be a positive
+ integer. To set ticks on the 15th of every third month,
+ set `tick0` to "2000-01-15" and `dtick` to "M3". To set
+ ticks every 4 years, set `dtick` to "M48"
+ exponentformat
+ Determines a formatting rule for the tick exponents.
+ For example, consider the number 1,000,000,000. If
+ "none", it appears as 1,000,000,000. If "e", 1e+9. If
+ "E", 1E+9. If "power", 1x10^9 (with 9 in a super
+ script). If "SI", 1G. If "B", 1B.
+ gridcolor
+ Sets the color of the grid lines.
+ griddash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ gridwidth
+ Sets the width (in px) of the grid lines.
+ hoverformat
+ Sets the hover text formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ labelalias
+ Replacement text for specific tick or hover labels. For
+ example using {US: 'USA', CA: 'Canada'} changes US to
+ USA and CA to Canada. The labels we would have shown
+ must match the keys exactly, after adding any
+ tickprefix or ticksuffix. For negative numbers the
+ minus sign symbol used (U+2212) is wider than the
+ regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis
+ type, and both keys (if needed) and values (if desired)
+ can include html-like tags or MathJax.
+ layer
+ Sets the layer on which this axis is displayed. If
+ *above traces*, this axis is displayed above all the
+ subplot's traces If *below traces*, this axis is
+ displayed below all the subplot's traces, but above the
+ grid lines. Useful when used together with scatter-like
+ traces with `cliponaxis` set to False to show markers
+ and/or text nodes above this axis.
+ linecolor
+ Sets the axis line color.
+ linewidth
+ Sets the width (in px) of the axis line.
+ min
+ The minimum value visible on this axis. The maximum is
+ determined by the sum minus the minimum values of the
+ other two axes. The full view corresponds to all the
+ minima set to zero.
+ minexponent
+ Hide SI prefix for 10^n if |n| is below this number.
+ This only has an effect when `tickformat` is "SI" or
+ "B".
+ nticks
+ Specifies the maximum number of ticks for the
+ particular axis. The actual number of ticks will be
+ chosen automatically to be less than or equal to
+ `nticks`. Has an effect only if `tickmode` is set to
+ "auto".
+ separatethousands
+ If "true", even 4-digit integers are separated
+ showexponent
+ If "all", all exponents are shown besides their
+ significands. If "first", only the exponent of the
+ first tick is shown. If "last", only the exponent of
+ the last tick is shown. If "none", no exponents appear.
+ showgrid
+ Determines whether or not grid lines are drawn. If
+ True, the grid lines are drawn at every tick mark.
+ showline
+ Determines whether or not a line bounding this axis is
+ drawn.
+ showticklabels
+ Determines whether or not the tick labels are drawn.
+ showtickprefix
+ If "all", all tick labels are displayed with a prefix.
+ If "first", only the first tick is displayed with a
+ prefix. If "last", only the last tick is displayed with
+ a suffix. If "none", tick prefixes are hidden.
+ showticksuffix
+ Same as `showtickprefix` but for tick suffixes.
+ tick0
+ Sets the placement of the first tick on this axis. Use
+ with `dtick`. If the axis `type` is "log", then you
+ must take the log of your starting tick (e.g. to set
+ the starting tick to 100, set the `tick0` to 2) except
+ when `dtick`=*L<f>* (see `dtick` for more info). If the
+ axis `type` is "date", it should be a date string, like
+ date data. If the axis `type` is "category", it should
+ be a number, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears.
+ tickangle
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the
+ tick labels vertically.
+ tickcolor
+ Sets the tick color.
+ tickfont
+ Sets the tick font.
+ tickformat
+ Sets the tick label formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ tickformatstops
+ A tuple of :class:`plotly.graph_objects.layout.ternary.
+ baxis.Tickformatstop` instances or dicts with
+ compatible properties
+ tickformatstopdefaults
+ When used in a template (as layout.template.layout.tern
+ ary.baxis.tickformatstopdefaults), sets the default
+ property values to use for elements of
+ layout.ternary.baxis.tickformatstops
+ ticklabelstep
+ Sets the spacing between tick labels as compared to the
+ spacing between ticks. A value of 1 (default) means
+ each tick gets a label. A value of 2 means shows every
+ 2nd label. A larger value n means only every nth tick
+ is labeled. `tick0` determines which labels are shown.
+ Not implemented for axes with `type` "log" or
+ "multicategory", or when `tickmode` is "array".
+ ticklen
+ Sets the tick length (in px).
+ tickmode
+ Sets the tick mode for this axis. If "auto", the number
+ of ticks is set via `nticks`. If "linear", the
+ placement of the ticks is determined by a starting
+ position `tick0` and a tick step `dtick` ("linear" is
+ the default value if `tick0` and `dtick` are provided).
+ If "array", the placement of the ticks is set via
+ `tickvals` and the tick text is `ticktext`. ("array" is
+ the default value if `tickvals` is provided).
+ tickprefix
+ Sets a tick label prefix.
+ ticks
+ Determines whether ticks are drawn or not. If "", this
+ axis' ticks are not drawn. If "outside" ("inside"),
+ this axis' are drawn outside (inside) the axis lines.
+ ticksuffix
+ Sets a tick label suffix.
+ ticktext
+ Sets the text displayed at the ticks position via
+ `tickvals`. Only has an effect if `tickmode` is set to
+ "array". Used with `tickvals`.
+ ticktextsrc
+ Sets the source reference on Chart Studio Cloud for
+ `ticktext`.
+ tickvals
+ Sets the values at which ticks on this axis appear.
+ Only has an effect if `tickmode` is set to "array".
+ Used with `ticktext`.
+ tickvalssrc
+ Sets the source reference on Chart Studio Cloud for
+ `tickvals`.
+ tickwidth
+ Sets the tick width (in px).
+ title
+ :class:`plotly.graph_objects.layout.ternary.baxis.Title
+ ` instance or dict with compatible properties
+ uirevision
+ Controls persistence of user-driven changes in axis
+ `min`, and `title` if in `editable: true`
+ configuration. Defaults to `ternary<N>.uirevision`.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ dtick=None,
+ exponentformat=None,
+ gridcolor=None,
+ griddash=None,
+ gridwidth=None,
+ hoverformat=None,
+ labelalias=None,
+ layer=None,
+ linecolor=None,
+ linewidth=None,
+ min=None,
+ minexponent=None,
+ nticks=None,
+ separatethousands=None,
+ showexponent=None,
+ showgrid=None,
+ showline=None,
+ showticklabels=None,
+ showtickprefix=None,
+ showticksuffix=None,
+ tick0=None,
+ tickangle=None,
+ tickcolor=None,
+ tickfont=None,
+ tickformat=None,
+ tickformatstops=None,
+ tickformatstopdefaults=None,
+ ticklabelstep=None,
+ ticklen=None,
+ tickmode=None,
+ tickprefix=None,
+ ticks=None,
+ ticksuffix=None,
+ ticktext=None,
+ ticktextsrc=None,
+ tickvals=None,
+ tickvalssrc=None,
+ tickwidth=None,
+ title=None,
+ uirevision=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Baxis object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.ternary.Baxis`
+ color
+ Sets default for all colors associated with this axis
+ all at once: line, font, tick, and grid colors. Grid
+ color is lightened by blending this with the plot
+ background Individual pieces can override this.
+ dtick
+ Sets the step in-between ticks on this axis. Use with
+ `tick0`. Must be a positive number, or special strings
+ available to "log" and "date" axes. If the axis `type`
+ is "log", then ticks are set every 10^(n*dtick) where n
+ is the tick number. For example, to set a tick mark at
+ 1, 10, 100, 1000, ... set dtick to 1. To set tick marks
+ at 1, 100, 10000, ... set dtick to 2. To set tick marks
+ at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special
+ values; "L<f>", where `f` is a positive number, gives
+ ticks linearly spaced in value (but not position). For
+ example `tick0` = 0.1, `dtick` = "L0.5" will put ticks
+ at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus
+ small digits between, use "D1" (all digits) or "D2"
+ (only 2 and 5). `tick0` is ignored for "D1" and "D2".
+ If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval
+ between ticks to one day, set `dtick` to 86400000.0.
+ "date" also has special values "M<n>" gives ticks
+ spaced by a number of months. `n` must be a positive
+ integer. To set ticks on the 15th of every third month,
+ set `tick0` to "2000-01-15" and `dtick` to "M3". To set
+ ticks every 4 years, set `dtick` to "M48"
+ exponentformat
+ Determines a formatting rule for the tick exponents.
+ For example, consider the number 1,000,000,000. If
+ "none", it appears as 1,000,000,000. If "e", 1e+9. If
+ "E", 1E+9. If "power", 1x10^9 (with 9 in a super
+ script). If "SI", 1G. If "B", 1B.
+ gridcolor
+ Sets the color of the grid lines.
+ griddash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ gridwidth
+ Sets the width (in px) of the grid lines.
+ hoverformat
+ Sets the hover text formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ labelalias
+ Replacement text for specific tick or hover labels. For
+ example using {US: 'USA', CA: 'Canada'} changes US to
+ USA and CA to Canada. The labels we would have shown
+ must match the keys exactly, after adding any
+ tickprefix or ticksuffix. For negative numbers the
+ minus sign symbol used (U+2212) is wider than the
+ regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis
+ type, and both keys (if needed) and values (if desired)
+ can include html-like tags or MathJax.
+ layer
+ Sets the layer on which this axis is displayed. If
+ *above traces*, this axis is displayed above all the
+ subplot's traces If *below traces*, this axis is
+ displayed below all the subplot's traces, but above the
+ grid lines. Useful when used together with scatter-like
+ traces with `cliponaxis` set to False to show markers
+ and/or text nodes above this axis.
+ linecolor
+ Sets the axis line color.
+ linewidth
+ Sets the width (in px) of the axis line.
+ min
+ The minimum value visible on this axis. The maximum is
+ determined by the sum minus the minimum values of the
+ other two axes. The full view corresponds to all the
+ minima set to zero.
+ minexponent
+ Hide SI prefix for 10^n if |n| is below this number.
+ This only has an effect when `tickformat` is "SI" or
+ "B".
+ nticks
+ Specifies the maximum number of ticks for the
+ particular axis. The actual number of ticks will be
+ chosen automatically to be less than or equal to
+ `nticks`. Has an effect only if `tickmode` is set to
+ "auto".
+ separatethousands
+ If "true", even 4-digit integers are separated
+ showexponent
+ If "all", all exponents are shown besides their
+ significands. If "first", only the exponent of the
+ first tick is shown. If "last", only the exponent of
+ the last tick is shown. If "none", no exponents appear.
+ showgrid
+ Determines whether or not grid lines are drawn. If
+ True, the grid lines are drawn at every tick mark.
+ showline
+ Determines whether or not a line bounding this axis is
+ drawn.
+ showticklabels
+ Determines whether or not the tick labels are drawn.
+ showtickprefix
+ If "all", all tick labels are displayed with a prefix.
+ If "first", only the first tick is displayed with a
+ prefix. If "last", only the last tick is displayed with
+ a suffix. If "none", tick prefixes are hidden.
+ showticksuffix
+ Same as `showtickprefix` but for tick suffixes.
+ tick0
+ Sets the placement of the first tick on this axis. Use
+ with `dtick`. If the axis `type` is "log", then you
+ must take the log of your starting tick (e.g. to set
+ the starting tick to 100, set the `tick0` to 2) except
+ when `dtick`=*L<f>* (see `dtick` for more info). If the
+ axis `type` is "date", it should be a date string, like
+ date data. If the axis `type` is "category", it should
+ be a number, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears.
+ tickangle
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the
+ tick labels vertically.
+ tickcolor
+ Sets the tick color.
+ tickfont
+ Sets the tick font.
+ tickformat
+ Sets the tick label formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ tickformatstops
+ A tuple of :class:`plotly.graph_objects.layout.ternary.
+ baxis.Tickformatstop` instances or dicts with
+ compatible properties
+ tickformatstopdefaults
+ When used in a template (as layout.template.layout.tern
+ ary.baxis.tickformatstopdefaults), sets the default
+ property values to use for elements of
+ layout.ternary.baxis.tickformatstops
+ ticklabelstep
+ Sets the spacing between tick labels as compared to the
+ spacing between ticks. A value of 1 (default) means
+ each tick gets a label. A value of 2 means shows every
+ 2nd label. A larger value n means only every nth tick
+ is labeled. `tick0` determines which labels are shown.
+ Not implemented for axes with `type` "log" or
+ "multicategory", or when `tickmode` is "array".
+ ticklen
+ Sets the tick length (in px).
+ tickmode
+ Sets the tick mode for this axis. If "auto", the number
+ of ticks is set via `nticks`. If "linear", the
+ placement of the ticks is determined by a starting
+ position `tick0` and a tick step `dtick` ("linear" is
+ the default value if `tick0` and `dtick` are provided).
+ If "array", the placement of the ticks is set via
+ `tickvals` and the tick text is `ticktext`. ("array" is
+ the default value if `tickvals` is provided).
+ tickprefix
+ Sets a tick label prefix.
+ ticks
+ Determines whether ticks are drawn or not. If "", this
+ axis' ticks are not drawn. If "outside" ("inside"),
+ this axis' are drawn outside (inside) the axis lines.
+ ticksuffix
+ Sets a tick label suffix.
+ ticktext
+ Sets the text displayed at the ticks position via
+ `tickvals`. Only has an effect if `tickmode` is set to
+ "array". Used with `tickvals`.
+ ticktextsrc
+ Sets the source reference on Chart Studio Cloud for
+ `ticktext`.
+ tickvals
+ Sets the values at which ticks on this axis appear.
+ Only has an effect if `tickmode` is set to "array".
+ Used with `ticktext`.
+ tickvalssrc
+ Sets the source reference on Chart Studio Cloud for
+ `tickvals`.
+ tickwidth
+ Sets the tick width (in px).
+ title
+ :class:`plotly.graph_objects.layout.ternary.baxis.Title
+ ` instance or dict with compatible properties
+ uirevision
+ Controls persistence of user-driven changes in axis
+ `min`, and `title` if in `editable: true`
+ configuration. Defaults to `ternary<N>.uirevision`.
+
+ Returns
+ -------
+ Baxis
+ """
+ super().__init__("baxis")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.ternary.Baxis
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.ternary.Baxis`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("dtick", arg, dtick)
+ self._set_property("exponentformat", arg, exponentformat)
+ self._set_property("gridcolor", arg, gridcolor)
+ self._set_property("griddash", arg, griddash)
+ self._set_property("gridwidth", arg, gridwidth)
+ self._set_property("hoverformat", arg, hoverformat)
+ self._set_property("labelalias", arg, labelalias)
+ self._set_property("layer", arg, layer)
+ self._set_property("linecolor", arg, linecolor)
+ self._set_property("linewidth", arg, linewidth)
+ self._set_property("min", arg, min)
+ self._set_property("minexponent", arg, minexponent)
+ self._set_property("nticks", arg, nticks)
+ self._set_property("separatethousands", arg, separatethousands)
+ self._set_property("showexponent", arg, showexponent)
+ self._set_property("showgrid", arg, showgrid)
+ self._set_property("showline", arg, showline)
+ self._set_property("showticklabels", arg, showticklabels)
+ self._set_property("showtickprefix", arg, showtickprefix)
+ self._set_property("showticksuffix", arg, showticksuffix)
+ self._set_property("tick0", arg, tick0)
+ self._set_property("tickangle", arg, tickangle)
+ self._set_property("tickcolor", arg, tickcolor)
+ self._set_property("tickfont", arg, tickfont)
+ self._set_property("tickformat", arg, tickformat)
+ self._set_property("tickformatstops", arg, tickformatstops)
+ self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
+ self._set_property("ticklabelstep", arg, ticklabelstep)
+ self._set_property("ticklen", arg, ticklen)
+ self._set_property("tickmode", arg, tickmode)
+ self._set_property("tickprefix", arg, tickprefix)
+ self._set_property("ticks", arg, ticks)
+ self._set_property("ticksuffix", arg, ticksuffix)
+ self._set_property("ticktext", arg, ticktext)
+ self._set_property("ticktextsrc", arg, ticktextsrc)
+ self._set_property("tickvals", arg, tickvals)
+ self._set_property("tickvalssrc", arg, tickvalssrc)
+ self._set_property("tickwidth", arg, tickwidth)
+ self._set_property("title", arg, title)
+ self._set_property("uirevision", arg, uirevision)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/_caxis.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/_caxis.py
new file mode 100644
index 0000000..486cf47
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/_caxis.py
@@ -0,0 +1,1474 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Caxis(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.ternary"
+ _path_str = "layout.ternary.caxis"
+ _valid_props = {
+ "color",
+ "dtick",
+ "exponentformat",
+ "gridcolor",
+ "griddash",
+ "gridwidth",
+ "hoverformat",
+ "labelalias",
+ "layer",
+ "linecolor",
+ "linewidth",
+ "min",
+ "minexponent",
+ "nticks",
+ "separatethousands",
+ "showexponent",
+ "showgrid",
+ "showline",
+ "showticklabels",
+ "showtickprefix",
+ "showticksuffix",
+ "tick0",
+ "tickangle",
+ "tickcolor",
+ "tickfont",
+ "tickformat",
+ "tickformatstopdefaults",
+ "tickformatstops",
+ "ticklabelstep",
+ "ticklen",
+ "tickmode",
+ "tickprefix",
+ "ticks",
+ "ticksuffix",
+ "ticktext",
+ "ticktextsrc",
+ "tickvals",
+ "tickvalssrc",
+ "tickwidth",
+ "title",
+ "uirevision",
+ }
+
+ @property
+ def color(self):
+ """
+ Sets default for all colors associated with this axis all at
+ once: line, font, tick, and grid colors. Grid color is
+ lightened by blending this with the plot background Individual
+ pieces can override this.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def dtick(self):
+ """
+ Sets the step in-between ticks on this axis. Use with `tick0`.
+ Must be a positive number, or special strings available to
+ "log" and "date" axes. If the axis `type` is "log", then ticks
+ are set every 10^(n*dtick) where n is the tick number. For
+ example, to set a tick mark at 1, 10, 100, 1000, ... set dtick
+ to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2.
+ To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special values;
+ "L<f>", where `f` is a positive number, gives ticks linearly
+ spaced in value (but not position). For example `tick0` = 0.1,
+ `dtick` = "L0.5" will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To
+ show powers of 10 plus small digits between, use "D1" (all
+ digits) or "D2" (only 2 and 5). `tick0` is ignored for "D1" and
+ "D2". If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval between
+ ticks to one day, set `dtick` to 86400000.0. "date" also has
+ special values "M<n>" gives ticks spaced by a number of months.
+ `n` must be a positive integer. To set ticks on the 15th of
+ every third month, set `tick0` to "2000-01-15" and `dtick` to
+ "M3". To set ticks every 4 years, set `dtick` to "M48"
+
+ The 'dtick' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["dtick"]
+
+ @dtick.setter
+ def dtick(self, val):
+ self["dtick"] = val
+
+ @property
+ def exponentformat(self):
+ """
+ Determines a formatting rule for the tick exponents. For
+ example, consider the number 1,000,000,000. If "none", it
+ appears as 1,000,000,000. If "e", 1e+9. If "E", 1E+9. If
+ "power", 1x10^9 (with 9 in a super script). If "SI", 1G. If
+ "B", 1B.
+
+ The 'exponentformat' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['none', 'e', 'E', 'power', 'SI', 'B']
+
+ Returns
+ -------
+ Any
+ """
+ return self["exponentformat"]
+
+ @exponentformat.setter
+ def exponentformat(self, val):
+ self["exponentformat"] = val
+
+ @property
+ def gridcolor(self):
+ """
+ Sets the color of the grid lines.
+
+ The 'gridcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["gridcolor"]
+
+ @gridcolor.setter
+ def gridcolor(self, val):
+ self["gridcolor"] = val
+
+ @property
+ def griddash(self):
+ """
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+
+ The 'griddash' property is an enumeration that may be specified as:
+ - One of the following dash styles:
+ ['solid', 'dot', 'dash', 'longdash', 'dashdot', 'longdashdot']
+ - A string containing a dash length list in pixels or percentages
+ (e.g. '5px 10px 2px 2px', '5, 10, 2, 2', '10% 20% 40%', etc.)
+
+ Returns
+ -------
+ str
+ """
+ return self["griddash"]
+
+ @griddash.setter
+ def griddash(self, val):
+ self["griddash"] = val
+
+ @property
+ def gridwidth(self):
+ """
+ Sets the width (in px) of the grid lines.
+
+ The 'gridwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["gridwidth"]
+
+ @gridwidth.setter
+ def gridwidth(self, val):
+ self["gridwidth"] = val
+
+ @property
+ def hoverformat(self):
+ """
+ Sets the hover text formatting rule using d3 formatting mini-
+ languages which are very similar to those in Python. For
+ numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format. And for
+ dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to d3's date
+ formatter: "%h" for half of the year as a decimal number as
+ well as "%{n}f" for fractional seconds with n digits. For
+ example, *2016-10-13 09:15:23.456* with tickformat
+ "%H~%M~%S.%2f" would display "09~15~23.46"
+
+ The 'hoverformat' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["hoverformat"]
+
+ @hoverformat.setter
+ def hoverformat(self, val):
+ self["hoverformat"] = val
+
+ @property
+ def labelalias(self):
+ """
+ Replacement text for specific tick or hover labels. For example
+ using {US: 'USA', CA: 'Canada'} changes US to USA and CA to
+ Canada. The labels we would have shown must match the keys
+ exactly, after adding any tickprefix or ticksuffix. For
+ negative numbers the minus sign symbol used (U+2212) is wider
+ than the regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis type, and
+ both keys (if needed) and values (if desired) can include html-
+ like tags or MathJax.
+
+ The 'labelalias' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["labelalias"]
+
+ @labelalias.setter
+ def labelalias(self, val):
+ self["labelalias"] = val
+
+ @property
+ def layer(self):
+ """
+ Sets the layer on which this axis is displayed. If *above
+ traces*, this axis is displayed above all the subplot's traces
+ If *below traces*, this axis is displayed below all the
+ subplot's traces, but above the grid lines. Useful when used
+ together with scatter-like traces with `cliponaxis` set to
+ False to show markers and/or text nodes above this axis.
+
+ The 'layer' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['above traces', 'below traces']
+
+ Returns
+ -------
+ Any
+ """
+ return self["layer"]
+
+ @layer.setter
+ def layer(self, val):
+ self["layer"] = val
+
+ @property
+ def linecolor(self):
+ """
+ Sets the axis line color.
+
+ The 'linecolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["linecolor"]
+
+ @linecolor.setter
+ def linecolor(self, val):
+ self["linecolor"] = val
+
+ @property
+ def linewidth(self):
+ """
+ Sets the width (in px) of the axis line.
+
+ The 'linewidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["linewidth"]
+
+ @linewidth.setter
+ def linewidth(self, val):
+ self["linewidth"] = val
+
+ @property
+ def min(self):
+ """
+ The minimum value visible on this axis. The maximum is
+ determined by the sum minus the minimum values of the other two
+ axes. The full view corresponds to all the minima set to zero.
+
+ The 'min' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["min"]
+
+ @min.setter
+ def min(self, val):
+ self["min"] = val
+
+ @property
+ def minexponent(self):
+ """
+ Hide SI prefix for 10^n if |n| is below this number. This only
+ has an effect when `tickformat` is "SI" or "B".
+
+ The 'minexponent' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["minexponent"]
+
+ @minexponent.setter
+ def minexponent(self, val):
+ self["minexponent"] = val
+
+ @property
+ def nticks(self):
+ """
+ Specifies the maximum number of ticks for the particular axis.
+ The actual number of ticks will be chosen automatically to be
+ less than or equal to `nticks`. Has an effect only if
+ `tickmode` is set to "auto".
+
+ The 'nticks' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["nticks"]
+
+ @nticks.setter
+ def nticks(self, val):
+ self["nticks"] = val
+
+ @property
+ def separatethousands(self):
+ """
+ If "true", even 4-digit integers are separated
+
+ The 'separatethousands' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["separatethousands"]
+
+ @separatethousands.setter
+ def separatethousands(self, val):
+ self["separatethousands"] = val
+
+ @property
+ def showexponent(self):
+ """
+ If "all", all exponents are shown besides their significands.
+ If "first", only the exponent of the first tick is shown. If
+ "last", only the exponent of the last tick is shown. If "none",
+ no exponents appear.
+
+ The 'showexponent' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showexponent"]
+
+ @showexponent.setter
+ def showexponent(self, val):
+ self["showexponent"] = val
+
+ @property
+ def showgrid(self):
+ """
+ Determines whether or not grid lines are drawn. If True, the
+ grid lines are drawn at every tick mark.
+
+ The 'showgrid' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showgrid"]
+
+ @showgrid.setter
+ def showgrid(self, val):
+ self["showgrid"] = val
+
+ @property
+ def showline(self):
+ """
+ Determines whether or not a line bounding this axis is drawn.
+
+ The 'showline' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showline"]
+
+ @showline.setter
+ def showline(self, val):
+ self["showline"] = val
+
+ @property
+ def showticklabels(self):
+ """
+ Determines whether or not the tick labels are drawn.
+
+ The 'showticklabels' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showticklabels"]
+
+ @showticklabels.setter
+ def showticklabels(self, val):
+ self["showticklabels"] = val
+
+ @property
+ def showtickprefix(self):
+ """
+ If "all", all tick labels are displayed with a prefix. If
+ "first", only the first tick is displayed with a prefix. If
+ "last", only the last tick is displayed with a suffix. If
+ "none", tick prefixes are hidden.
+
+ The 'showtickprefix' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showtickprefix"]
+
+ @showtickprefix.setter
+ def showtickprefix(self, val):
+ self["showtickprefix"] = val
+
+ @property
+ def showticksuffix(self):
+ """
+ Same as `showtickprefix` but for tick suffixes.
+
+ The 'showticksuffix' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['all', 'first', 'last', 'none']
+
+ Returns
+ -------
+ Any
+ """
+ return self["showticksuffix"]
+
+ @showticksuffix.setter
+ def showticksuffix(self, val):
+ self["showticksuffix"] = val
+
+ @property
+ def tick0(self):
+ """
+ Sets the placement of the first tick on this axis. Use with
+ `dtick`. If the axis `type` is "log", then you must take the
+ log of your starting tick (e.g. to set the starting tick to
+ 100, set the `tick0` to 2) except when `dtick`=*L<f>* (see
+ `dtick` for more info). If the axis `type` is "date", it should
+ be a date string, like date data. If the axis `type` is
+ "category", it should be a number, using the scale where each
+ category is assigned a serial number from zero in the order it
+ appears.
+
+ The 'tick0' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["tick0"]
+
+ @tick0.setter
+ def tick0(self, val):
+ self["tick0"] = val
+
+ @property
+ def tickangle(self):
+ """
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the tick
+ labels vertically.
+
+ The 'tickangle' property is a angle (in degrees) that may be
+ specified as a number between -180 and 180.
+ Numeric values outside this range are converted to the equivalent value
+ (e.g. 270 is converted to -90).
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tickangle"]
+
+ @tickangle.setter
+ def tickangle(self, val):
+ self["tickangle"] = val
+
+ @property
+ def tickcolor(self):
+ """
+ Sets the tick color.
+
+ The 'tickcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["tickcolor"]
+
+ @tickcolor.setter
+ def tickcolor(self, val):
+ self["tickcolor"] = val
+
+ @property
+ def tickfont(self):
+ """
+ Sets the tick font.
+
+ The 'tickfont' property is an instance of Tickfont
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.ternary.caxis.Tickfont`
+ - A dict of string/value properties that will be passed
+ to the Tickfont constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.ternary.caxis.Tickfont
+ """
+ return self["tickfont"]
+
+ @tickfont.setter
+ def tickfont(self, val):
+ self["tickfont"] = val
+
+ @property
+ def tickformat(self):
+ """
+ Sets the tick label formatting rule using d3 formatting mini-
+ languages which are very similar to those in Python. For
+ numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format. And for
+ dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to d3's date
+ formatter: "%h" for half of the year as a decimal number as
+ well as "%{n}f" for fractional seconds with n digits. For
+ example, *2016-10-13 09:15:23.456* with tickformat
+ "%H~%M~%S.%2f" would display "09~15~23.46"
+
+ The 'tickformat' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["tickformat"]
+
+ @tickformat.setter
+ def tickformat(self, val):
+ self["tickformat"] = val
+
+ @property
+ def tickformatstops(self):
+ """
+ The 'tickformatstops' property is a tuple of instances of
+ Tickformatstop that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.ternary.caxis.Tickformatstop
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Tickformatstop constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.ternary.caxis.Tickformatstop]
+ """
+ return self["tickformatstops"]
+
+ @tickformatstops.setter
+ def tickformatstops(self, val):
+ self["tickformatstops"] = val
+
+ @property
+ def tickformatstopdefaults(self):
+ """
+ When used in a template (as
+ layout.template.layout.ternary.caxis.tickformatstopdefaults),
+ sets the default property values to use for elements of
+ layout.ternary.caxis.tickformatstops
+
+ The 'tickformatstopdefaults' property is an instance of Tickformatstop
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.ternary.caxis.Tickformatstop`
+ - A dict of string/value properties that will be passed
+ to the Tickformatstop constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.ternary.caxis.Tickformatstop
+ """
+ return self["tickformatstopdefaults"]
+
+ @tickformatstopdefaults.setter
+ def tickformatstopdefaults(self, val):
+ self["tickformatstopdefaults"] = val
+
+ @property
+ def ticklabelstep(self):
+ """
+ Sets the spacing between tick labels as compared to the spacing
+ between ticks. A value of 1 (default) means each tick gets a
+ label. A value of 2 means shows every 2nd label. A larger value
+ n means only every nth tick is labeled. `tick0` determines
+ which labels are shown. Not implemented for axes with `type`
+ "log" or "multicategory", or when `tickmode` is "array".
+
+ The 'ticklabelstep' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["ticklabelstep"]
+
+ @ticklabelstep.setter
+ def ticklabelstep(self, val):
+ self["ticklabelstep"] = val
+
+ @property
+ def ticklen(self):
+ """
+ Sets the tick length (in px).
+
+ The 'ticklen' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["ticklen"]
+
+ @ticklen.setter
+ def ticklen(self, val):
+ self["ticklen"] = val
+
+ @property
+ def tickmode(self):
+ """
+ Sets the tick mode for this axis. If "auto", the number of
+ ticks is set via `nticks`. If "linear", the placement of the
+ ticks is determined by a starting position `tick0` and a tick
+ step `dtick` ("linear" is the default value if `tick0` and
+ `dtick` are provided). If "array", the placement of the ticks
+ is set via `tickvals` and the tick text is `ticktext`. ("array"
+ is the default value if `tickvals` is provided).
+
+ The 'tickmode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['auto', 'linear', 'array']
+
+ Returns
+ -------
+ Any
+ """
+ return self["tickmode"]
+
+ @tickmode.setter
+ def tickmode(self, val):
+ self["tickmode"] = val
+
+ @property
+ def tickprefix(self):
+ """
+ Sets a tick label prefix.
+
+ The 'tickprefix' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["tickprefix"]
+
+ @tickprefix.setter
+ def tickprefix(self, val):
+ self["tickprefix"] = val
+
+ @property
+ def ticks(self):
+ """
+ Determines whether ticks are drawn or not. If "", this axis'
+ ticks are not drawn. If "outside" ("inside"), this axis' are
+ drawn outside (inside) the axis lines.
+
+ The 'ticks' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['outside', 'inside', '']
+
+ Returns
+ -------
+ Any
+ """
+ return self["ticks"]
+
+ @ticks.setter
+ def ticks(self, val):
+ self["ticks"] = val
+
+ @property
+ def ticksuffix(self):
+ """
+ Sets a tick label suffix.
+
+ The 'ticksuffix' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["ticksuffix"]
+
+ @ticksuffix.setter
+ def ticksuffix(self, val):
+ self["ticksuffix"] = val
+
+ @property
+ def ticktext(self):
+ """
+ Sets the text displayed at the ticks position via `tickvals`.
+ Only has an effect if `tickmode` is set to "array". Used with
+ `tickvals`.
+
+ The 'ticktext' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["ticktext"]
+
+ @ticktext.setter
+ def ticktext(self, val):
+ self["ticktext"] = val
+
+ @property
+ def ticktextsrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `ticktext`.
+
+ The 'ticktextsrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["ticktextsrc"]
+
+ @ticktextsrc.setter
+ def ticktextsrc(self, val):
+ self["ticktextsrc"] = val
+
+ @property
+ def tickvals(self):
+ """
+ Sets the values at which ticks on this axis appear. Only has an
+ effect if `tickmode` is set to "array". Used with `ticktext`.
+
+ The 'tickvals' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["tickvals"]
+
+ @tickvals.setter
+ def tickvals(self, val):
+ self["tickvals"] = val
+
+ @property
+ def tickvalssrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `tickvals`.
+
+ The 'tickvalssrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["tickvalssrc"]
+
+ @tickvalssrc.setter
+ def tickvalssrc(self, val):
+ self["tickvalssrc"] = val
+
+ @property
+ def tickwidth(self):
+ """
+ Sets the tick width (in px).
+
+ The 'tickwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tickwidth"]
+
+ @tickwidth.setter
+ def tickwidth(self, val):
+ self["tickwidth"] = val
+
+ @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.ternary.caxis.Title`
+ - A dict of string/value properties that will be passed
+ to the Title constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.ternary.caxis.Title
+ """
+ return self["title"]
+
+ @title.setter
+ def title(self, val):
+ self["title"] = val
+
+ @property
+ def uirevision(self):
+ """
+ Controls persistence of user-driven changes in axis `min`, and
+ `title` if in `editable: true` configuration. Defaults to
+ `ternary<N>.uirevision`.
+
+ The 'uirevision' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["uirevision"]
+
+ @uirevision.setter
+ def uirevision(self, val):
+ self["uirevision"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+ Sets default for all colors associated with this axis
+ all at once: line, font, tick, and grid colors. Grid
+ color is lightened by blending this with the plot
+ background Individual pieces can override this.
+ dtick
+ Sets the step in-between ticks on this axis. Use with
+ `tick0`. Must be a positive number, or special strings
+ available to "log" and "date" axes. If the axis `type`
+ is "log", then ticks are set every 10^(n*dtick) where n
+ is the tick number. For example, to set a tick mark at
+ 1, 10, 100, 1000, ... set dtick to 1. To set tick marks
+ at 1, 100, 10000, ... set dtick to 2. To set tick marks
+ at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special
+ values; "L<f>", where `f` is a positive number, gives
+ ticks linearly spaced in value (but not position). For
+ example `tick0` = 0.1, `dtick` = "L0.5" will put ticks
+ at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus
+ small digits between, use "D1" (all digits) or "D2"
+ (only 2 and 5). `tick0` is ignored for "D1" and "D2".
+ If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval
+ between ticks to one day, set `dtick` to 86400000.0.
+ "date" also has special values "M<n>" gives ticks
+ spaced by a number of months. `n` must be a positive
+ integer. To set ticks on the 15th of every third month,
+ set `tick0` to "2000-01-15" and `dtick` to "M3". To set
+ ticks every 4 years, set `dtick` to "M48"
+ exponentformat
+ Determines a formatting rule for the tick exponents.
+ For example, consider the number 1,000,000,000. If
+ "none", it appears as 1,000,000,000. If "e", 1e+9. If
+ "E", 1E+9. If "power", 1x10^9 (with 9 in a super
+ script). If "SI", 1G. If "B", 1B.
+ gridcolor
+ Sets the color of the grid lines.
+ griddash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ gridwidth
+ Sets the width (in px) of the grid lines.
+ hoverformat
+ Sets the hover text formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ labelalias
+ Replacement text for specific tick or hover labels. For
+ example using {US: 'USA', CA: 'Canada'} changes US to
+ USA and CA to Canada. The labels we would have shown
+ must match the keys exactly, after adding any
+ tickprefix or ticksuffix. For negative numbers the
+ minus sign symbol used (U+2212) is wider than the
+ regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis
+ type, and both keys (if needed) and values (if desired)
+ can include html-like tags or MathJax.
+ layer
+ Sets the layer on which this axis is displayed. If
+ *above traces*, this axis is displayed above all the
+ subplot's traces If *below traces*, this axis is
+ displayed below all the subplot's traces, but above the
+ grid lines. Useful when used together with scatter-like
+ traces with `cliponaxis` set to False to show markers
+ and/or text nodes above this axis.
+ linecolor
+ Sets the axis line color.
+ linewidth
+ Sets the width (in px) of the axis line.
+ min
+ The minimum value visible on this axis. The maximum is
+ determined by the sum minus the minimum values of the
+ other two axes. The full view corresponds to all the
+ minima set to zero.
+ minexponent
+ Hide SI prefix for 10^n if |n| is below this number.
+ This only has an effect when `tickformat` is "SI" or
+ "B".
+ nticks
+ Specifies the maximum number of ticks for the
+ particular axis. The actual number of ticks will be
+ chosen automatically to be less than or equal to
+ `nticks`. Has an effect only if `tickmode` is set to
+ "auto".
+ separatethousands
+ If "true", even 4-digit integers are separated
+ showexponent
+ If "all", all exponents are shown besides their
+ significands. If "first", only the exponent of the
+ first tick is shown. If "last", only the exponent of
+ the last tick is shown. If "none", no exponents appear.
+ showgrid
+ Determines whether or not grid lines are drawn. If
+ True, the grid lines are drawn at every tick mark.
+ showline
+ Determines whether or not a line bounding this axis is
+ drawn.
+ showticklabels
+ Determines whether or not the tick labels are drawn.
+ showtickprefix
+ If "all", all tick labels are displayed with a prefix.
+ If "first", only the first tick is displayed with a
+ prefix. If "last", only the last tick is displayed with
+ a suffix. If "none", tick prefixes are hidden.
+ showticksuffix
+ Same as `showtickprefix` but for tick suffixes.
+ tick0
+ Sets the placement of the first tick on this axis. Use
+ with `dtick`. If the axis `type` is "log", then you
+ must take the log of your starting tick (e.g. to set
+ the starting tick to 100, set the `tick0` to 2) except
+ when `dtick`=*L<f>* (see `dtick` for more info). If the
+ axis `type` is "date", it should be a date string, like
+ date data. If the axis `type` is "category", it should
+ be a number, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears.
+ tickangle
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the
+ tick labels vertically.
+ tickcolor
+ Sets the tick color.
+ tickfont
+ Sets the tick font.
+ tickformat
+ Sets the tick label formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ tickformatstops
+ A tuple of :class:`plotly.graph_objects.layout.ternary.
+ caxis.Tickformatstop` instances or dicts with
+ compatible properties
+ tickformatstopdefaults
+ When used in a template (as layout.template.layout.tern
+ ary.caxis.tickformatstopdefaults), sets the default
+ property values to use for elements of
+ layout.ternary.caxis.tickformatstops
+ ticklabelstep
+ Sets the spacing between tick labels as compared to the
+ spacing between ticks. A value of 1 (default) means
+ each tick gets a label. A value of 2 means shows every
+ 2nd label. A larger value n means only every nth tick
+ is labeled. `tick0` determines which labels are shown.
+ Not implemented for axes with `type` "log" or
+ "multicategory", or when `tickmode` is "array".
+ ticklen
+ Sets the tick length (in px).
+ tickmode
+ Sets the tick mode for this axis. If "auto", the number
+ of ticks is set via `nticks`. If "linear", the
+ placement of the ticks is determined by a starting
+ position `tick0` and a tick step `dtick` ("linear" is
+ the default value if `tick0` and `dtick` are provided).
+ If "array", the placement of the ticks is set via
+ `tickvals` and the tick text is `ticktext`. ("array" is
+ the default value if `tickvals` is provided).
+ tickprefix
+ Sets a tick label prefix.
+ ticks
+ Determines whether ticks are drawn or not. If "", this
+ axis' ticks are not drawn. If "outside" ("inside"),
+ this axis' are drawn outside (inside) the axis lines.
+ ticksuffix
+ Sets a tick label suffix.
+ ticktext
+ Sets the text displayed at the ticks position via
+ `tickvals`. Only has an effect if `tickmode` is set to
+ "array". Used with `tickvals`.
+ ticktextsrc
+ Sets the source reference on Chart Studio Cloud for
+ `ticktext`.
+ tickvals
+ Sets the values at which ticks on this axis appear.
+ Only has an effect if `tickmode` is set to "array".
+ Used with `ticktext`.
+ tickvalssrc
+ Sets the source reference on Chart Studio Cloud for
+ `tickvals`.
+ tickwidth
+ Sets the tick width (in px).
+ title
+ :class:`plotly.graph_objects.layout.ternary.caxis.Title
+ ` instance or dict with compatible properties
+ uirevision
+ Controls persistence of user-driven changes in axis
+ `min`, and `title` if in `editable: true`
+ configuration. Defaults to `ternary<N>.uirevision`.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ dtick=None,
+ exponentformat=None,
+ gridcolor=None,
+ griddash=None,
+ gridwidth=None,
+ hoverformat=None,
+ labelalias=None,
+ layer=None,
+ linecolor=None,
+ linewidth=None,
+ min=None,
+ minexponent=None,
+ nticks=None,
+ separatethousands=None,
+ showexponent=None,
+ showgrid=None,
+ showline=None,
+ showticklabels=None,
+ showtickprefix=None,
+ showticksuffix=None,
+ tick0=None,
+ tickangle=None,
+ tickcolor=None,
+ tickfont=None,
+ tickformat=None,
+ tickformatstops=None,
+ tickformatstopdefaults=None,
+ ticklabelstep=None,
+ ticklen=None,
+ tickmode=None,
+ tickprefix=None,
+ ticks=None,
+ ticksuffix=None,
+ ticktext=None,
+ ticktextsrc=None,
+ tickvals=None,
+ tickvalssrc=None,
+ tickwidth=None,
+ title=None,
+ uirevision=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Caxis object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.ternary.Caxis`
+ color
+ Sets default for all colors associated with this axis
+ all at once: line, font, tick, and grid colors. Grid
+ color is lightened by blending this with the plot
+ background Individual pieces can override this.
+ dtick
+ Sets the step in-between ticks on this axis. Use with
+ `tick0`. Must be a positive number, or special strings
+ available to "log" and "date" axes. If the axis `type`
+ is "log", then ticks are set every 10^(n*dtick) where n
+ is the tick number. For example, to set a tick mark at
+ 1, 10, 100, 1000, ... set dtick to 1. To set tick marks
+ at 1, 100, 10000, ... set dtick to 2. To set tick marks
+ at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special
+ values; "L<f>", where `f` is a positive number, gives
+ ticks linearly spaced in value (but not position). For
+ example `tick0` = 0.1, `dtick` = "L0.5" will put ticks
+ at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus
+ small digits between, use "D1" (all digits) or "D2"
+ (only 2 and 5). `tick0` is ignored for "D1" and "D2".
+ If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval
+ between ticks to one day, set `dtick` to 86400000.0.
+ "date" also has special values "M<n>" gives ticks
+ spaced by a number of months. `n` must be a positive
+ integer. To set ticks on the 15th of every third month,
+ set `tick0` to "2000-01-15" and `dtick` to "M3". To set
+ ticks every 4 years, set `dtick` to "M48"
+ exponentformat
+ Determines a formatting rule for the tick exponents.
+ For example, consider the number 1,000,000,000. If
+ "none", it appears as 1,000,000,000. If "e", 1e+9. If
+ "E", 1E+9. If "power", 1x10^9 (with 9 in a super
+ script). If "SI", 1G. If "B", 1B.
+ gridcolor
+ Sets the color of the grid lines.
+ griddash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ gridwidth
+ Sets the width (in px) of the grid lines.
+ hoverformat
+ Sets the hover text formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ labelalias
+ Replacement text for specific tick or hover labels. For
+ example using {US: 'USA', CA: 'Canada'} changes US to
+ USA and CA to Canada. The labels we would have shown
+ must match the keys exactly, after adding any
+ tickprefix or ticksuffix. For negative numbers the
+ minus sign symbol used (U+2212) is wider than the
+ regular ascii dash. That means you need to use −1
+ instead of -1. labelalias can be used with any axis
+ type, and both keys (if needed) and values (if desired)
+ can include html-like tags or MathJax.
+ layer
+ Sets the layer on which this axis is displayed. If
+ *above traces*, this axis is displayed above all the
+ subplot's traces If *below traces*, this axis is
+ displayed below all the subplot's traces, but above the
+ grid lines. Useful when used together with scatter-like
+ traces with `cliponaxis` set to False to show markers
+ and/or text nodes above this axis.
+ linecolor
+ Sets the axis line color.
+ linewidth
+ Sets the width (in px) of the axis line.
+ min
+ The minimum value visible on this axis. The maximum is
+ determined by the sum minus the minimum values of the
+ other two axes. The full view corresponds to all the
+ minima set to zero.
+ minexponent
+ Hide SI prefix for 10^n if |n| is below this number.
+ This only has an effect when `tickformat` is "SI" or
+ "B".
+ nticks
+ Specifies the maximum number of ticks for the
+ particular axis. The actual number of ticks will be
+ chosen automatically to be less than or equal to
+ `nticks`. Has an effect only if `tickmode` is set to
+ "auto".
+ separatethousands
+ If "true", even 4-digit integers are separated
+ showexponent
+ If "all", all exponents are shown besides their
+ significands. If "first", only the exponent of the
+ first tick is shown. If "last", only the exponent of
+ the last tick is shown. If "none", no exponents appear.
+ showgrid
+ Determines whether or not grid lines are drawn. If
+ True, the grid lines are drawn at every tick mark.
+ showline
+ Determines whether or not a line bounding this axis is
+ drawn.
+ showticklabels
+ Determines whether or not the tick labels are drawn.
+ showtickprefix
+ If "all", all tick labels are displayed with a prefix.
+ If "first", only the first tick is displayed with a
+ prefix. If "last", only the last tick is displayed with
+ a suffix. If "none", tick prefixes are hidden.
+ showticksuffix
+ Same as `showtickprefix` but for tick suffixes.
+ tick0
+ Sets the placement of the first tick on this axis. Use
+ with `dtick`. If the axis `type` is "log", then you
+ must take the log of your starting tick (e.g. to set
+ the starting tick to 100, set the `tick0` to 2) except
+ when `dtick`=*L<f>* (see `dtick` for more info). If the
+ axis `type` is "date", it should be a date string, like
+ date data. If the axis `type` is "category", it should
+ be a number, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears.
+ tickangle
+ Sets the angle of the tick labels with respect to the
+ horizontal. For example, a `tickangle` of -90 draws the
+ tick labels vertically.
+ tickcolor
+ Sets the tick color.
+ tickfont
+ Sets the tick font.
+ tickformat
+ Sets the tick label formatting rule using d3 formatting
+ mini-languages which are very similar to those in
+ Python. For numbers, see:
+ https://github.com/d3/d3-format/tree/v1.4.5#d3-format.
+ And for dates see: https://github.com/d3/d3-time-
+ format/tree/v2.2.3#locale_format. We add two items to
+ d3's date formatter: "%h" for half of the year as a
+ decimal number as well as "%{n}f" for fractional
+ seconds with n digits. For example, *2016-10-13
+ 09:15:23.456* with tickformat "%H~%M~%S.%2f" would
+ display "09~15~23.46"
+ tickformatstops
+ A tuple of :class:`plotly.graph_objects.layout.ternary.
+ caxis.Tickformatstop` instances or dicts with
+ compatible properties
+ tickformatstopdefaults
+ When used in a template (as layout.template.layout.tern
+ ary.caxis.tickformatstopdefaults), sets the default
+ property values to use for elements of
+ layout.ternary.caxis.tickformatstops
+ ticklabelstep
+ Sets the spacing between tick labels as compared to the
+ spacing between ticks. A value of 1 (default) means
+ each tick gets a label. A value of 2 means shows every
+ 2nd label. A larger value n means only every nth tick
+ is labeled. `tick0` determines which labels are shown.
+ Not implemented for axes with `type` "log" or
+ "multicategory", or when `tickmode` is "array".
+ ticklen
+ Sets the tick length (in px).
+ tickmode
+ Sets the tick mode for this axis. If "auto", the number
+ of ticks is set via `nticks`. If "linear", the
+ placement of the ticks is determined by a starting
+ position `tick0` and a tick step `dtick` ("linear" is
+ the default value if `tick0` and `dtick` are provided).
+ If "array", the placement of the ticks is set via
+ `tickvals` and the tick text is `ticktext`. ("array" is
+ the default value if `tickvals` is provided).
+ tickprefix
+ Sets a tick label prefix.
+ ticks
+ Determines whether ticks are drawn or not. If "", this
+ axis' ticks are not drawn. If "outside" ("inside"),
+ this axis' are drawn outside (inside) the axis lines.
+ ticksuffix
+ Sets a tick label suffix.
+ ticktext
+ Sets the text displayed at the ticks position via
+ `tickvals`. Only has an effect if `tickmode` is set to
+ "array". Used with `tickvals`.
+ ticktextsrc
+ Sets the source reference on Chart Studio Cloud for
+ `ticktext`.
+ tickvals
+ Sets the values at which ticks on this axis appear.
+ Only has an effect if `tickmode` is set to "array".
+ Used with `ticktext`.
+ tickvalssrc
+ Sets the source reference on Chart Studio Cloud for
+ `tickvals`.
+ tickwidth
+ Sets the tick width (in px).
+ title
+ :class:`plotly.graph_objects.layout.ternary.caxis.Title
+ ` instance or dict with compatible properties
+ uirevision
+ Controls persistence of user-driven changes in axis
+ `min`, and `title` if in `editable: true`
+ configuration. Defaults to `ternary<N>.uirevision`.
+
+ Returns
+ -------
+ Caxis
+ """
+ super().__init__("caxis")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.ternary.Caxis
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.ternary.Caxis`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("dtick", arg, dtick)
+ self._set_property("exponentformat", arg, exponentformat)
+ self._set_property("gridcolor", arg, gridcolor)
+ self._set_property("griddash", arg, griddash)
+ self._set_property("gridwidth", arg, gridwidth)
+ self._set_property("hoverformat", arg, hoverformat)
+ self._set_property("labelalias", arg, labelalias)
+ self._set_property("layer", arg, layer)
+ self._set_property("linecolor", arg, linecolor)
+ self._set_property("linewidth", arg, linewidth)
+ self._set_property("min", arg, min)
+ self._set_property("minexponent", arg, minexponent)
+ self._set_property("nticks", arg, nticks)
+ self._set_property("separatethousands", arg, separatethousands)
+ self._set_property("showexponent", arg, showexponent)
+ self._set_property("showgrid", arg, showgrid)
+ self._set_property("showline", arg, showline)
+ self._set_property("showticklabels", arg, showticklabels)
+ self._set_property("showtickprefix", arg, showtickprefix)
+ self._set_property("showticksuffix", arg, showticksuffix)
+ self._set_property("tick0", arg, tick0)
+ self._set_property("tickangle", arg, tickangle)
+ self._set_property("tickcolor", arg, tickcolor)
+ self._set_property("tickfont", arg, tickfont)
+ self._set_property("tickformat", arg, tickformat)
+ self._set_property("tickformatstops", arg, tickformatstops)
+ self._set_property("tickformatstopdefaults", arg, tickformatstopdefaults)
+ self._set_property("ticklabelstep", arg, ticklabelstep)
+ self._set_property("ticklen", arg, ticklen)
+ self._set_property("tickmode", arg, tickmode)
+ self._set_property("tickprefix", arg, tickprefix)
+ self._set_property("ticks", arg, ticks)
+ self._set_property("ticksuffix", arg, ticksuffix)
+ self._set_property("ticktext", arg, ticktext)
+ self._set_property("ticktextsrc", arg, ticktextsrc)
+ self._set_property("tickvals", arg, tickvals)
+ self._set_property("tickvalssrc", arg, tickvalssrc)
+ self._set_property("tickwidth", arg, tickwidth)
+ self._set_property("title", arg, title)
+ self._set_property("uirevision", arg, uirevision)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/_domain.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/_domain.py
new file mode 100644
index 0000000..ce72c0d
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/_domain.py
@@ -0,0 +1,170 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Domain(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.ternary"
+ _path_str = "layout.ternary.domain"
+ _valid_props = {"column", "row", "x", "y"}
+
+ @property
+ def column(self):
+ """
+ If there is a layout grid, use the domain for this column in
+ the grid for this ternary subplot .
+
+ The 'column' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [0, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["column"]
+
+ @column.setter
+ def column(self, val):
+ self["column"] = val
+
+ @property
+ def row(self):
+ """
+ If there is a layout grid, use the domain for this row in the
+ grid for this ternary subplot .
+
+ The 'row' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [0, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["row"]
+
+ @row.setter
+ def row(self, val):
+ self["row"] = val
+
+ @property
+ def x(self):
+ """
+ Sets the horizontal domain of this ternary subplot (in plot
+ fraction).
+
+ The 'x' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'x[0]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+ (1) The 'x[1]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ list
+ """
+ return self["x"]
+
+ @x.setter
+ def x(self, val):
+ self["x"] = val
+
+ @property
+ def y(self):
+ """
+ Sets the vertical domain of this ternary subplot (in plot
+ fraction).
+
+ The 'y' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'y[0]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+ (1) The 'y[1]' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ list
+ """
+ return self["y"]
+
+ @y.setter
+ def y(self, val):
+ self["y"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ column
+ If there is a layout grid, use the domain for this
+ column in the grid for this ternary subplot .
+ row
+ If there is a layout grid, use the domain for this row
+ in the grid for this ternary subplot .
+ x
+ Sets the horizontal domain of this ternary subplot (in
+ plot fraction).
+ y
+ Sets the vertical domain of this ternary subplot (in
+ plot fraction).
+ """
+
+ def __init__(self, arg=None, column=None, row=None, x=None, y=None, **kwargs):
+ """
+ Construct a new Domain object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.ternary.Domain`
+ column
+ If there is a layout grid, use the domain for this
+ column in the grid for this ternary subplot .
+ row
+ If there is a layout grid, use the domain for this row
+ in the grid for this ternary subplot .
+ x
+ Sets the horizontal domain of this ternary subplot (in
+ plot fraction).
+ y
+ Sets the vertical domain of this ternary subplot (in
+ plot fraction).
+
+ Returns
+ -------
+ Domain
+ """
+ super().__init__("domain")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.ternary.Domain
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.ternary.Domain`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("column", arg, column)
+ self._set_property("row", arg, row)
+ self._set_property("x", arg, x)
+ self._set_property("y", arg, y)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/aaxis/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/aaxis/__init__.py
new file mode 100644
index 0000000..4690d3c
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/aaxis/__init__.py
@@ -0,0 +1,16 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._tickfont import Tickfont
+ from ._tickformatstop import Tickformatstop
+ from ._title import Title
+ from . import title
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__,
+ [".title"],
+ ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/aaxis/_tickfont.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/aaxis/_tickfont.py
new file mode 100644
index 0000000..2da6f8a
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/aaxis/_tickfont.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Tickfont(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.ternary.aaxis"
+ _path_str = "layout.ternary.aaxis.tickfont"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Tickfont object
+
+ Sets the tick font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.ternary
+ .aaxis.Tickfont`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Tickfont
+ """
+ super().__init__("tickfont")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.ternary.aaxis.Tickfont
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.ternary.aaxis.Tickfont`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/aaxis/_tickformatstop.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/aaxis/_tickformatstop.py
new file mode 100644
index 0000000..e58ffb3
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/aaxis/_tickformatstop.py
@@ -0,0 +1,241 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Tickformatstop(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.ternary.aaxis"
+ _path_str = "layout.ternary.aaxis.tickformatstop"
+ _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
+
+ @property
+ def dtickrange(self):
+ """
+ range [*min*, *max*], where "min", "max" - dtick values which
+ describe some zoom level, it is possible to omit "min" or "max"
+ value by passing "null"
+
+ The 'dtickrange' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'dtickrange[0]' property accepts values of any type
+ (1) The 'dtickrange[1]' property accepts values of any type
+
+ Returns
+ -------
+ list
+ """
+ return self["dtickrange"]
+
+ @dtickrange.setter
+ def dtickrange(self, val):
+ self["dtickrange"] = val
+
+ @property
+ def enabled(self):
+ """
+ Determines whether or not this stop is used. If `false`, this
+ stop is ignored even within its `dtickrange`.
+
+ The 'enabled' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["enabled"]
+
+ @enabled.setter
+ def enabled(self, val):
+ self["enabled"] = val
+
+ @property
+ def name(self):
+ """
+ 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.
+
+ The 'name' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["name"]
+
+ @name.setter
+ def name(self, val):
+ self["name"] = val
+
+ @property
+ def templateitemname(self):
+ """
+ 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`.
+
+ The 'templateitemname' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["templateitemname"]
+
+ @templateitemname.setter
+ def templateitemname(self, val):
+ self["templateitemname"] = val
+
+ @property
+ def value(self):
+ """
+ string - dtickformat for described zoom level, the same as
+ "tickformat"
+
+ The 'value' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["value"]
+
+ @value.setter
+ def value(self, val):
+ self["value"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ dtickrange
+ range [*min*, *max*], where "min", "max" - dtick values
+ which describe some zoom level, it is possible to omit
+ "min" or "max" value by passing "null"
+ enabled
+ Determines whether or not this stop is used. If
+ `false`, this stop is ignored even within its
+ `dtickrange`.
+ 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`.
+ value
+ string - dtickformat for described zoom level, the same
+ as "tickformat"
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ dtickrange=None,
+ enabled=None,
+ name=None,
+ templateitemname=None,
+ value=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Tickformatstop object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.ternary
+ .aaxis.Tickformatstop`
+ dtickrange
+ range [*min*, *max*], where "min", "max" - dtick values
+ which describe some zoom level, it is possible to omit
+ "min" or "max" value by passing "null"
+ enabled
+ Determines whether or not this stop is used. If
+ `false`, this stop is ignored even within its
+ `dtickrange`.
+ 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`.
+ value
+ string - dtickformat for described zoom level, the same
+ as "tickformat"
+
+ Returns
+ -------
+ Tickformatstop
+ """
+ super().__init__("tickformatstops")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.ternary.aaxis.Tickformatstop
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.ternary.aaxis.Tickformatstop`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("dtickrange", arg, dtickrange)
+ self._set_property("enabled", arg, enabled)
+ self._set_property("name", arg, name)
+ self._set_property("templateitemname", arg, templateitemname)
+ self._set_property("value", arg, value)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/aaxis/_title.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/aaxis/_title.py
new file mode 100644
index 0000000..3e143c2
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/aaxis/_title.py
@@ -0,0 +1,104 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Title(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.ternary.aaxis"
+ _path_str = "layout.ternary.aaxis.title"
+ _valid_props = {"font", "text"}
+
+ @property
+ def font(self):
+ """
+ Sets this axis' title font.
+
+ The 'font' property is an instance of Font
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.ternary.aaxis.title.Font`
+ - A dict of string/value properties that will be passed
+ to the Font constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.ternary.aaxis.title.Font
+ """
+ return self["font"]
+
+ @font.setter
+ def font(self, val):
+ self["font"] = val
+
+ @property
+ def text(self):
+ """
+ Sets the title of this axis.
+
+ 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
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ font
+ Sets this axis' title font.
+ text
+ Sets the title of this axis.
+ """
+
+ def __init__(self, arg=None, font=None, text=None, **kwargs):
+ """
+ Construct a new Title object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.ternary.aaxis.Title`
+ font
+ Sets this axis' title font.
+ text
+ Sets the title of this axis.
+
+ Returns
+ -------
+ Title
+ """
+ super().__init__("title")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.ternary.aaxis.Title
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.ternary.aaxis.Title`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("font", arg, font)
+ self._set_property("text", arg, text)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/aaxis/title/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/aaxis/title/__init__.py
new file mode 100644
index 0000000..56f600d
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/aaxis/title/__init__.py
@@ -0,0 +1,9 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._font import Font
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/aaxis/title/_font.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/aaxis/title/_font.py
new file mode 100644
index 0000000..2f486ce
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/aaxis/title/_font.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Font(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.ternary.aaxis.title"
+ _path_str = "layout.ternary.aaxis.title.font"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Font object
+
+ Sets this axis' title font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.ternary
+ .aaxis.title.Font`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Font
+ """
+ super().__init__("font")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.ternary.aaxis.title.Font
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.ternary.aaxis.title.Font`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/baxis/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/baxis/__init__.py
new file mode 100644
index 0000000..4690d3c
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/baxis/__init__.py
@@ -0,0 +1,16 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._tickfont import Tickfont
+ from ._tickformatstop import Tickformatstop
+ from ._title import Title
+ from . import title
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__,
+ [".title"],
+ ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/baxis/_tickfont.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/baxis/_tickfont.py
new file mode 100644
index 0000000..33d4488
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/baxis/_tickfont.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Tickfont(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.ternary.baxis"
+ _path_str = "layout.ternary.baxis.tickfont"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Tickfont object
+
+ Sets the tick font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.ternary
+ .baxis.Tickfont`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Tickfont
+ """
+ super().__init__("tickfont")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.ternary.baxis.Tickfont
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.ternary.baxis.Tickfont`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/baxis/_tickformatstop.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/baxis/_tickformatstop.py
new file mode 100644
index 0000000..7c934f9
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/baxis/_tickformatstop.py
@@ -0,0 +1,241 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Tickformatstop(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.ternary.baxis"
+ _path_str = "layout.ternary.baxis.tickformatstop"
+ _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
+
+ @property
+ def dtickrange(self):
+ """
+ range [*min*, *max*], where "min", "max" - dtick values which
+ describe some zoom level, it is possible to omit "min" or "max"
+ value by passing "null"
+
+ The 'dtickrange' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'dtickrange[0]' property accepts values of any type
+ (1) The 'dtickrange[1]' property accepts values of any type
+
+ Returns
+ -------
+ list
+ """
+ return self["dtickrange"]
+
+ @dtickrange.setter
+ def dtickrange(self, val):
+ self["dtickrange"] = val
+
+ @property
+ def enabled(self):
+ """
+ Determines whether or not this stop is used. If `false`, this
+ stop is ignored even within its `dtickrange`.
+
+ The 'enabled' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["enabled"]
+
+ @enabled.setter
+ def enabled(self, val):
+ self["enabled"] = val
+
+ @property
+ def name(self):
+ """
+ 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.
+
+ The 'name' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["name"]
+
+ @name.setter
+ def name(self, val):
+ self["name"] = val
+
+ @property
+ def templateitemname(self):
+ """
+ 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`.
+
+ The 'templateitemname' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["templateitemname"]
+
+ @templateitemname.setter
+ def templateitemname(self, val):
+ self["templateitemname"] = val
+
+ @property
+ def value(self):
+ """
+ string - dtickformat for described zoom level, the same as
+ "tickformat"
+
+ The 'value' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["value"]
+
+ @value.setter
+ def value(self, val):
+ self["value"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ dtickrange
+ range [*min*, *max*], where "min", "max" - dtick values
+ which describe some zoom level, it is possible to omit
+ "min" or "max" value by passing "null"
+ enabled
+ Determines whether or not this stop is used. If
+ `false`, this stop is ignored even within its
+ `dtickrange`.
+ 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`.
+ value
+ string - dtickformat for described zoom level, the same
+ as "tickformat"
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ dtickrange=None,
+ enabled=None,
+ name=None,
+ templateitemname=None,
+ value=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Tickformatstop object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.ternary
+ .baxis.Tickformatstop`
+ dtickrange
+ range [*min*, *max*], where "min", "max" - dtick values
+ which describe some zoom level, it is possible to omit
+ "min" or "max" value by passing "null"
+ enabled
+ Determines whether or not this stop is used. If
+ `false`, this stop is ignored even within its
+ `dtickrange`.
+ 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`.
+ value
+ string - dtickformat for described zoom level, the same
+ as "tickformat"
+
+ Returns
+ -------
+ Tickformatstop
+ """
+ super().__init__("tickformatstops")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.ternary.baxis.Tickformatstop
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.ternary.baxis.Tickformatstop`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("dtickrange", arg, dtickrange)
+ self._set_property("enabled", arg, enabled)
+ self._set_property("name", arg, name)
+ self._set_property("templateitemname", arg, templateitemname)
+ self._set_property("value", arg, value)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/baxis/_title.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/baxis/_title.py
new file mode 100644
index 0000000..e41f7fa
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/baxis/_title.py
@@ -0,0 +1,104 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Title(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.ternary.baxis"
+ _path_str = "layout.ternary.baxis.title"
+ _valid_props = {"font", "text"}
+
+ @property
+ def font(self):
+ """
+ Sets this axis' title font.
+
+ The 'font' property is an instance of Font
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.ternary.baxis.title.Font`
+ - A dict of string/value properties that will be passed
+ to the Font constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.ternary.baxis.title.Font
+ """
+ return self["font"]
+
+ @font.setter
+ def font(self, val):
+ self["font"] = val
+
+ @property
+ def text(self):
+ """
+ Sets the title of this axis.
+
+ 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
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ font
+ Sets this axis' title font.
+ text
+ Sets the title of this axis.
+ """
+
+ def __init__(self, arg=None, font=None, text=None, **kwargs):
+ """
+ Construct a new Title object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.ternary.baxis.Title`
+ font
+ Sets this axis' title font.
+ text
+ Sets the title of this axis.
+
+ Returns
+ -------
+ Title
+ """
+ super().__init__("title")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.ternary.baxis.Title
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.ternary.baxis.Title`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("font", arg, font)
+ self._set_property("text", arg, text)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/baxis/title/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/baxis/title/__init__.py
new file mode 100644
index 0000000..56f600d
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/baxis/title/__init__.py
@@ -0,0 +1,9 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._font import Font
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/baxis/title/_font.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/baxis/title/_font.py
new file mode 100644
index 0000000..596e1c7
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/baxis/title/_font.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Font(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.ternary.baxis.title"
+ _path_str = "layout.ternary.baxis.title.font"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Font object
+
+ Sets this axis' title font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.ternary
+ .baxis.title.Font`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Font
+ """
+ super().__init__("font")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.ternary.baxis.title.Font
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.ternary.baxis.title.Font`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/caxis/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/caxis/__init__.py
new file mode 100644
index 0000000..4690d3c
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/caxis/__init__.py
@@ -0,0 +1,16 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._tickfont import Tickfont
+ from ._tickformatstop import Tickformatstop
+ from ._title import Title
+ from . import title
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__,
+ [".title"],
+ ["._tickfont.Tickfont", "._tickformatstop.Tickformatstop", "._title.Title"],
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/caxis/_tickfont.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/caxis/_tickfont.py
new file mode 100644
index 0000000..9e5adba
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/caxis/_tickfont.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Tickfont(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.ternary.caxis"
+ _path_str = "layout.ternary.caxis.tickfont"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Tickfont object
+
+ Sets the tick font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.ternary
+ .caxis.Tickfont`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Tickfont
+ """
+ super().__init__("tickfont")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.ternary.caxis.Tickfont
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.ternary.caxis.Tickfont`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/caxis/_tickformatstop.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/caxis/_tickformatstop.py
new file mode 100644
index 0000000..a0baf4d
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/caxis/_tickformatstop.py
@@ -0,0 +1,241 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Tickformatstop(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.ternary.caxis"
+ _path_str = "layout.ternary.caxis.tickformatstop"
+ _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
+
+ @property
+ def dtickrange(self):
+ """
+ range [*min*, *max*], where "min", "max" - dtick values which
+ describe some zoom level, it is possible to omit "min" or "max"
+ value by passing "null"
+
+ The 'dtickrange' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'dtickrange[0]' property accepts values of any type
+ (1) The 'dtickrange[1]' property accepts values of any type
+
+ Returns
+ -------
+ list
+ """
+ return self["dtickrange"]
+
+ @dtickrange.setter
+ def dtickrange(self, val):
+ self["dtickrange"] = val
+
+ @property
+ def enabled(self):
+ """
+ Determines whether or not this stop is used. If `false`, this
+ stop is ignored even within its `dtickrange`.
+
+ The 'enabled' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["enabled"]
+
+ @enabled.setter
+ def enabled(self, val):
+ self["enabled"] = val
+
+ @property
+ def name(self):
+ """
+ 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.
+
+ The 'name' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["name"]
+
+ @name.setter
+ def name(self, val):
+ self["name"] = val
+
+ @property
+ def templateitemname(self):
+ """
+ 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`.
+
+ The 'templateitemname' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["templateitemname"]
+
+ @templateitemname.setter
+ def templateitemname(self, val):
+ self["templateitemname"] = val
+
+ @property
+ def value(self):
+ """
+ string - dtickformat for described zoom level, the same as
+ "tickformat"
+
+ The 'value' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["value"]
+
+ @value.setter
+ def value(self, val):
+ self["value"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ dtickrange
+ range [*min*, *max*], where "min", "max" - dtick values
+ which describe some zoom level, it is possible to omit
+ "min" or "max" value by passing "null"
+ enabled
+ Determines whether or not this stop is used. If
+ `false`, this stop is ignored even within its
+ `dtickrange`.
+ 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`.
+ value
+ string - dtickformat for described zoom level, the same
+ as "tickformat"
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ dtickrange=None,
+ enabled=None,
+ name=None,
+ templateitemname=None,
+ value=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Tickformatstop object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.ternary
+ .caxis.Tickformatstop`
+ dtickrange
+ range [*min*, *max*], where "min", "max" - dtick values
+ which describe some zoom level, it is possible to omit
+ "min" or "max" value by passing "null"
+ enabled
+ Determines whether or not this stop is used. If
+ `false`, this stop is ignored even within its
+ `dtickrange`.
+ 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`.
+ value
+ string - dtickformat for described zoom level, the same
+ as "tickformat"
+
+ Returns
+ -------
+ Tickformatstop
+ """
+ super().__init__("tickformatstops")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.ternary.caxis.Tickformatstop
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.ternary.caxis.Tickformatstop`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("dtickrange", arg, dtickrange)
+ self._set_property("enabled", arg, enabled)
+ self._set_property("name", arg, name)
+ self._set_property("templateitemname", arg, templateitemname)
+ self._set_property("value", arg, value)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/caxis/_title.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/caxis/_title.py
new file mode 100644
index 0000000..cdb9446
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/caxis/_title.py
@@ -0,0 +1,104 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Title(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.ternary.caxis"
+ _path_str = "layout.ternary.caxis.title"
+ _valid_props = {"font", "text"}
+
+ @property
+ def font(self):
+ """
+ Sets this axis' title font.
+
+ The 'font' property is an instance of Font
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.ternary.caxis.title.Font`
+ - A dict of string/value properties that will be passed
+ to the Font constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.ternary.caxis.title.Font
+ """
+ return self["font"]
+
+ @font.setter
+ def font(self, val):
+ self["font"] = val
+
+ @property
+ def text(self):
+ """
+ Sets the title of this axis.
+
+ 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
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ font
+ Sets this axis' title font.
+ text
+ Sets the title of this axis.
+ """
+
+ def __init__(self, arg=None, font=None, text=None, **kwargs):
+ """
+ Construct a new Title object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.ternary.caxis.Title`
+ font
+ Sets this axis' title font.
+ text
+ Sets the title of this axis.
+
+ Returns
+ -------
+ Title
+ """
+ super().__init__("title")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.ternary.caxis.Title
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.ternary.caxis.Title`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("font", arg, font)
+ self._set_property("text", arg, text)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/caxis/title/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/caxis/title/__init__.py
new file mode 100644
index 0000000..56f600d
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/caxis/title/__init__.py
@@ -0,0 +1,9 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._font import Font
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/caxis/title/_font.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/caxis/title/_font.py
new file mode 100644
index 0000000..c4868a7
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/ternary/caxis/title/_font.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Font(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.ternary.caxis.title"
+ _path_str = "layout.ternary.caxis.title.font"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Font object
+
+ Sets this axis' title font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.ternary
+ .caxis.title.Font`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Font
+ """
+ super().__init__("font")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.ternary.caxis.title.Font
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.ternary.caxis.title.Font`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/title/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/title/__init__.py
new file mode 100644
index 0000000..11f90e0
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/title/__init__.py
@@ -0,0 +1,14 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._font import Font
+ from ._pad import Pad
+ from ._subtitle import Subtitle
+ from . import subtitle
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__, [".subtitle"], ["._font.Font", "._pad.Pad", "._subtitle.Subtitle"]
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/title/_font.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/title/_font.py
new file mode 100644
index 0000000..969f70e
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/title/_font.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Font(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.title"
+ _path_str = "layout.title.font"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Font object
+
+ Sets the title font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.title.Font`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Font
+ """
+ super().__init__("font")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.title.Font
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.title.Font`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/title/_pad.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/title/_pad.py
new file mode 100644
index 0000000..c70910c
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/title/_pad.py
@@ -0,0 +1,164 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Pad(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.title"
+ _path_str = "layout.title.pad"
+ _valid_props = {"b", "l", "r", "t"}
+
+ @property
+ def b(self):
+ """
+ The amount of padding (in px) along the bottom of the
+ component.
+
+ The 'b' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["b"]
+
+ @b.setter
+ def b(self, val):
+ self["b"] = val
+
+ @property
+ def l(self):
+ """
+ The amount of padding (in px) on the left side of the
+ component.
+
+ The 'l' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["l"]
+
+ @l.setter
+ def l(self, val):
+ self["l"] = val
+
+ @property
+ def r(self):
+ """
+ The amount of padding (in px) on the right side of the
+ component.
+
+ The 'r' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["r"]
+
+ @r.setter
+ def r(self, val):
+ self["r"] = val
+
+ @property
+ def t(self):
+ """
+ The amount of padding (in px) along the top of the component.
+
+ The 't' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["t"]
+
+ @t.setter
+ def t(self, val):
+ self["t"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ b
+ The amount of padding (in px) along the bottom of the
+ component.
+ l
+ The amount of padding (in px) on the left side of the
+ component.
+ r
+ The amount of padding (in px) on the right side of the
+ component.
+ t
+ The amount of padding (in px) along the top of the
+ component.
+ """
+
+ def __init__(self, arg=None, b=None, l=None, r=None, t=None, **kwargs):
+ """
+ Construct a new Pad object
+
+ Sets the padding of the title. Each padding value only applies
+ when the corresponding `xanchor`/`yanchor` value is set
+ accordingly. E.g. for left padding to take effect, `xanchor`
+ must be set to "left". The same rule applies if
+ `xanchor`/`yanchor` is determined automatically. Padding is
+ muted if the respective anchor value is "middle*/*center".
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.title.Pad`
+ b
+ The amount of padding (in px) along the bottom of the
+ component.
+ l
+ The amount of padding (in px) on the left side of the
+ component.
+ r
+ The amount of padding (in px) on the right side of the
+ component.
+ t
+ The amount of padding (in px) along the top of the
+ component.
+
+ Returns
+ -------
+ Pad
+ """
+ super().__init__("pad")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.title.Pad
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.title.Pad`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("b", arg, b)
+ self._set_property("l", arg, l)
+ self._set_property("r", arg, r)
+ self._set_property("t", arg, t)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/title/_subtitle.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/title/_subtitle.py
new file mode 100644
index 0000000..fb36d65
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/title/_subtitle.py
@@ -0,0 +1,104 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Subtitle(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.title"
+ _path_str = "layout.title.subtitle"
+ _valid_props = {"font", "text"}
+
+ @property
+ def font(self):
+ """
+ Sets the subtitle font.
+
+ The 'font' property is an instance of Font
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.title.subtitle.Font`
+ - A dict of string/value properties that will be passed
+ to the Font constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.title.subtitle.Font
+ """
+ return self["font"]
+
+ @font.setter
+ def font(self, val):
+ self["font"] = val
+
+ @property
+ def text(self):
+ """
+ Sets the plot's subtitle.
+
+ 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
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ font
+ Sets the subtitle font.
+ text
+ Sets the plot's subtitle.
+ """
+
+ def __init__(self, arg=None, font=None, text=None, **kwargs):
+ """
+ Construct a new Subtitle object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.title.Subtitle`
+ font
+ Sets the subtitle font.
+ text
+ Sets the plot's subtitle.
+
+ Returns
+ -------
+ Subtitle
+ """
+ super().__init__("subtitle")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.title.Subtitle
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.title.Subtitle`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("font", arg, font)
+ self._set_property("text", arg, text)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/title/subtitle/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/title/subtitle/__init__.py
new file mode 100644
index 0000000..56f600d
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/title/subtitle/__init__.py
@@ -0,0 +1,9 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._font import Font
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/title/subtitle/_font.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/title/subtitle/_font.py
new file mode 100644
index 0000000..7e3781a
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/title/subtitle/_font.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Font(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.title.subtitle"
+ _path_str = "layout.title.subtitle.font"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Font object
+
+ Sets the subtitle font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.title.subtitle.Font`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Font
+ """
+ super().__init__("font")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.title.subtitle.Font
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.title.subtitle.Font`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/updatemenu/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/updatemenu/__init__.py
new file mode 100644
index 0000000..f42482b
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/updatemenu/__init__.py
@@ -0,0 +1,13 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._button import Button
+ from ._font import Font
+ from ._pad import Pad
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__, [], ["._button.Button", "._font.Font", "._pad.Pad"]
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/updatemenu/_button.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/updatemenu/_button.py
new file mode 100644
index 0000000..2fdb0b4
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/updatemenu/_button.py
@@ -0,0 +1,359 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Button(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.updatemenu"
+ _path_str = "layout.updatemenu.button"
+ _valid_props = {
+ "args",
+ "args2",
+ "execute",
+ "label",
+ "method",
+ "name",
+ "templateitemname",
+ "visible",
+ }
+
+ @property
+ def args(self):
+ """
+ Sets the arguments values to be passed to the Plotly method set
+ in `method` on click.
+
+ The 'args' property is an info array that may be specified as:
+
+ * a list or tuple of up to 3 elements where:
+ (0) The 'args[0]' property accepts values of any type
+ (1) The 'args[1]' property accepts values of any type
+ (2) The 'args[2]' property accepts values of any type
+
+ Returns
+ -------
+ list
+ """
+ return self["args"]
+
+ @args.setter
+ def args(self, val):
+ self["args"] = val
+
+ @property
+ def args2(self):
+ """
+ Sets a 2nd set of `args`, these arguments values are passed to
+ the Plotly method set in `method` when clicking this button
+ while in the active state. Use this to create toggle buttons.
+
+ The 'args2' property is an info array that may be specified as:
+
+ * a list or tuple of up to 3 elements where:
+ (0) The 'args2[0]' property accepts values of any type
+ (1) The 'args2[1]' property accepts values of any type
+ (2) The 'args2[2]' property accepts values of any type
+
+ Returns
+ -------
+ list
+ """
+ return self["args2"]
+
+ @args2.setter
+ def args2(self, val):
+ self["args2"] = val
+
+ @property
+ def execute(self):
+ """
+ When true, the API method is executed. When false, all other
+ behaviors are the same and command execution is skipped. This
+ may be useful when hooking into, for example, the
+ `plotly_buttonclicked` method and executing the API command
+ manually without losing the benefit of the updatemenu
+ automatically binding to the state of the plot through the
+ specification of `method` and `args`.
+
+ The 'execute' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["execute"]
+
+ @execute.setter
+ def execute(self, val):
+ self["execute"] = val
+
+ @property
+ def label(self):
+ """
+ Sets the text label to appear on the button.
+
+ The 'label' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["label"]
+
+ @label.setter
+ def label(self, val):
+ self["label"] = val
+
+ @property
+ def method(self):
+ """
+ Sets the Plotly method to be called on click. If the `skip`
+ method is used, the API updatemenu will function as normal but
+ will perform no API calls and will not bind automatically to
+ state updates. This may be used to create a component interface
+ and attach to updatemenu events manually via JavaScript.
+
+ The 'method' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['restyle', 'relayout', 'animate', 'update', 'skip']
+
+ Returns
+ -------
+ Any
+ """
+ return self["method"]
+
+ @method.setter
+ def method(self, val):
+ self["method"] = val
+
+ @property
+ def name(self):
+ """
+ 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.
+
+ The 'name' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["name"]
+
+ @name.setter
+ def name(self, val):
+ self["name"] = val
+
+ @property
+ def templateitemname(self):
+ """
+ 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`.
+
+ The 'templateitemname' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["templateitemname"]
+
+ @templateitemname.setter
+ def templateitemname(self, val):
+ self["templateitemname"] = val
+
+ @property
+ def visible(self):
+ """
+ Determines whether or not this button is visible.
+
+ The 'visible' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["visible"]
+
+ @visible.setter
+ def visible(self, val):
+ self["visible"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ args
+ Sets the arguments values to be passed to the Plotly
+ method set in `method` on click.
+ args2
+ Sets a 2nd set of `args`, these arguments values are
+ passed to the Plotly method set in `method` when
+ clicking this button while in the active state. Use
+ this to create toggle buttons.
+ execute
+ When true, the API method is executed. When false, all
+ other behaviors are the same and command execution is
+ skipped. This may be useful when hooking into, for
+ example, the `plotly_buttonclicked` method and
+ executing the API command manually without losing the
+ benefit of the updatemenu automatically binding to the
+ state of the plot through the specification of `method`
+ and `args`.
+ label
+ Sets the text label to appear on the button.
+ method
+ Sets the Plotly method to be called on click. If the
+ `skip` method is used, the API updatemenu will function
+ as normal but will perform no API calls and will not
+ bind automatically to state updates. This may be used
+ to create a component interface and attach to
+ updatemenu events manually via JavaScript.
+ 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`.
+ visible
+ Determines whether or not this button is visible.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ args=None,
+ args2=None,
+ execute=None,
+ label=None,
+ method=None,
+ name=None,
+ templateitemname=None,
+ visible=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Button object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.updatemenu.Button`
+ args
+ Sets the arguments values to be passed to the Plotly
+ method set in `method` on click.
+ args2
+ Sets a 2nd set of `args`, these arguments values are
+ passed to the Plotly method set in `method` when
+ clicking this button while in the active state. Use
+ this to create toggle buttons.
+ execute
+ When true, the API method is executed. When false, all
+ other behaviors are the same and command execution is
+ skipped. This may be useful when hooking into, for
+ example, the `plotly_buttonclicked` method and
+ executing the API command manually without losing the
+ benefit of the updatemenu automatically binding to the
+ state of the plot through the specification of `method`
+ and `args`.
+ label
+ Sets the text label to appear on the button.
+ method
+ Sets the Plotly method to be called on click. If the
+ `skip` method is used, the API updatemenu will function
+ as normal but will perform no API calls and will not
+ bind automatically to state updates. This may be used
+ to create a component interface and attach to
+ updatemenu events manually via JavaScript.
+ 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`.
+ visible
+ Determines whether or not this button is visible.
+
+ Returns
+ -------
+ Button
+ """
+ super().__init__("buttons")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.updatemenu.Button
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.updatemenu.Button`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("args", arg, args)
+ self._set_property("args2", arg, args2)
+ self._set_property("execute", arg, execute)
+ self._set_property("label", arg, label)
+ self._set_property("method", arg, method)
+ self._set_property("name", arg, name)
+ self._set_property("templateitemname", arg, templateitemname)
+ self._set_property("visible", arg, visible)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/updatemenu/_font.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/updatemenu/_font.py
new file mode 100644
index 0000000..cbab80e
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/updatemenu/_font.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Font(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.updatemenu"
+ _path_str = "layout.updatemenu.font"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Font object
+
+ Sets the font of the update menu button text.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.updatemenu.Font`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Font
+ """
+ super().__init__("font")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.updatemenu.Font
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.updatemenu.Font`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/updatemenu/_pad.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/updatemenu/_pad.py
new file mode 100644
index 0000000..3a641d8
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/updatemenu/_pad.py
@@ -0,0 +1,159 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Pad(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.updatemenu"
+ _path_str = "layout.updatemenu.pad"
+ _valid_props = {"b", "l", "r", "t"}
+
+ @property
+ def b(self):
+ """
+ The amount of padding (in px) along the bottom of the
+ component.
+
+ The 'b' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["b"]
+
+ @b.setter
+ def b(self, val):
+ self["b"] = val
+
+ @property
+ def l(self):
+ """
+ The amount of padding (in px) on the left side of the
+ component.
+
+ The 'l' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["l"]
+
+ @l.setter
+ def l(self, val):
+ self["l"] = val
+
+ @property
+ def r(self):
+ """
+ The amount of padding (in px) on the right side of the
+ component.
+
+ The 'r' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["r"]
+
+ @r.setter
+ def r(self, val):
+ self["r"] = val
+
+ @property
+ def t(self):
+ """
+ The amount of padding (in px) along the top of the component.
+
+ The 't' property is a number and may be specified as:
+ - An int or float
+
+ Returns
+ -------
+ int|float
+ """
+ return self["t"]
+
+ @t.setter
+ def t(self, val):
+ self["t"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ b
+ The amount of padding (in px) along the bottom of the
+ component.
+ l
+ The amount of padding (in px) on the left side of the
+ component.
+ r
+ The amount of padding (in px) on the right side of the
+ component.
+ t
+ The amount of padding (in px) along the top of the
+ component.
+ """
+
+ def __init__(self, arg=None, b=None, l=None, r=None, t=None, **kwargs):
+ """
+ Construct a new Pad object
+
+ Sets the padding around the buttons or dropdown menu.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.updatemenu.Pad`
+ b
+ The amount of padding (in px) along the bottom of the
+ component.
+ l
+ The amount of padding (in px) on the left side of the
+ component.
+ r
+ The amount of padding (in px) on the right side of the
+ component.
+ t
+ The amount of padding (in px) along the top of the
+ component.
+
+ Returns
+ -------
+ Pad
+ """
+ super().__init__("pad")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.updatemenu.Pad
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.updatemenu.Pad`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("b", arg, b)
+ self._set_property("l", arg, l)
+ self._set_property("r", arg, r)
+ self._set_property("t", arg, t)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/__init__.py
new file mode 100644
index 0000000..92c3b60
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/__init__.py
@@ -0,0 +1,32 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._autorangeoptions import Autorangeoptions
+ from ._minor import Minor
+ from ._rangebreak import Rangebreak
+ from ._rangeselector import Rangeselector
+ from ._rangeslider import Rangeslider
+ from ._tickfont import Tickfont
+ from ._tickformatstop import Tickformatstop
+ from ._title import Title
+ from . import rangeselector
+ from . import rangeslider
+ from . import title
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__,
+ [".rangeselector", ".rangeslider", ".title"],
+ [
+ "._autorangeoptions.Autorangeoptions",
+ "._minor.Minor",
+ "._rangebreak.Rangebreak",
+ "._rangeselector.Rangeselector",
+ "._rangeslider.Rangeslider",
+ "._tickfont.Tickfont",
+ "._tickformatstop.Tickformatstop",
+ "._title.Title",
+ ],
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_autorangeoptions.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_autorangeoptions.py
new file mode 100644
index 0000000..e16114b
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_autorangeoptions.py
@@ -0,0 +1,216 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Autorangeoptions(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.xaxis"
+ _path_str = "layout.xaxis.autorangeoptions"
+ _valid_props = {
+ "clipmax",
+ "clipmin",
+ "include",
+ "includesrc",
+ "maxallowed",
+ "minallowed",
+ }
+
+ @property
+ def clipmax(self):
+ """
+ Clip autorange maximum if it goes beyond this value. Has no
+ effect when `autorangeoptions.maxallowed` is provided.
+
+ The 'clipmax' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["clipmax"]
+
+ @clipmax.setter
+ def clipmax(self, val):
+ self["clipmax"] = val
+
+ @property
+ def clipmin(self):
+ """
+ Clip autorange minimum if it goes beyond this value. Has no
+ effect when `autorangeoptions.minallowed` is provided.
+
+ The 'clipmin' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["clipmin"]
+
+ @clipmin.setter
+ def clipmin(self, val):
+ self["clipmin"] = val
+
+ @property
+ def include(self):
+ """
+ Ensure this value is included in autorange.
+
+ The 'include' property accepts values of any type
+
+ Returns
+ -------
+ Any|numpy.ndarray
+ """
+ return self["include"]
+
+ @include.setter
+ def include(self, val):
+ self["include"] = val
+
+ @property
+ def includesrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `include`.
+
+ The 'includesrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["includesrc"]
+
+ @includesrc.setter
+ def includesrc(self, val):
+ self["includesrc"] = val
+
+ @property
+ def maxallowed(self):
+ """
+ Use this value exactly as autorange maximum.
+
+ The 'maxallowed' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["maxallowed"]
+
+ @maxallowed.setter
+ def maxallowed(self, val):
+ self["maxallowed"] = val
+
+ @property
+ def minallowed(self):
+ """
+ Use this value exactly as autorange minimum.
+
+ The 'minallowed' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["minallowed"]
+
+ @minallowed.setter
+ def minallowed(self, val):
+ self["minallowed"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ clipmax
+ Clip autorange maximum if it goes beyond this value.
+ Has no effect when `autorangeoptions.maxallowed` is
+ provided.
+ clipmin
+ Clip autorange minimum if it goes beyond this value.
+ Has no effect when `autorangeoptions.minallowed` is
+ provided.
+ include
+ Ensure this value is included in autorange.
+ includesrc
+ Sets the source reference on Chart Studio Cloud for
+ `include`.
+ maxallowed
+ Use this value exactly as autorange maximum.
+ minallowed
+ Use this value exactly as autorange minimum.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ clipmax=None,
+ clipmin=None,
+ include=None,
+ includesrc=None,
+ maxallowed=None,
+ minallowed=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Autorangeoptions object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.xaxis.A
+ utorangeoptions`
+ clipmax
+ Clip autorange maximum if it goes beyond this value.
+ Has no effect when `autorangeoptions.maxallowed` is
+ provided.
+ clipmin
+ Clip autorange minimum if it goes beyond this value.
+ Has no effect when `autorangeoptions.minallowed` is
+ provided.
+ include
+ Ensure this value is included in autorange.
+ includesrc
+ Sets the source reference on Chart Studio Cloud for
+ `include`.
+ maxallowed
+ Use this value exactly as autorange maximum.
+ minallowed
+ Use this value exactly as autorange minimum.
+
+ Returns
+ -------
+ Autorangeoptions
+ """
+ super().__init__("autorangeoptions")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.xaxis.Autorangeoptions
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.xaxis.Autorangeoptions`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("clipmax", arg, clipmax)
+ self._set_property("clipmin", arg, clipmin)
+ self._set_property("include", arg, include)
+ self._set_property("includesrc", arg, includesrc)
+ self._set_property("maxallowed", arg, maxallowed)
+ self._set_property("minallowed", arg, minallowed)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_minor.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_minor.py
new file mode 100644
index 0000000..fbe8b72
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_minor.py
@@ -0,0 +1,566 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Minor(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.xaxis"
+ _path_str = "layout.xaxis.minor"
+ _valid_props = {
+ "dtick",
+ "gridcolor",
+ "griddash",
+ "gridwidth",
+ "nticks",
+ "showgrid",
+ "tick0",
+ "tickcolor",
+ "ticklen",
+ "tickmode",
+ "ticks",
+ "tickvals",
+ "tickvalssrc",
+ "tickwidth",
+ }
+
+ @property
+ def dtick(self):
+ """
+ Sets the step in-between ticks on this axis. Use with `tick0`.
+ Must be a positive number, or special strings available to
+ "log" and "date" axes. If the axis `type` is "log", then ticks
+ are set every 10^(n*dtick) where n is the tick number. For
+ example, to set a tick mark at 1, 10, 100, 1000, ... set dtick
+ to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2.
+ To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special values;
+ "L<f>", where `f` is a positive number, gives ticks linearly
+ spaced in value (but not position). For example `tick0` = 0.1,
+ `dtick` = "L0.5" will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To
+ show powers of 10 plus small digits between, use "D1" (all
+ digits) or "D2" (only 2 and 5). `tick0` is ignored for "D1" and
+ "D2". If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval between
+ ticks to one day, set `dtick` to 86400000.0. "date" also has
+ special values "M<n>" gives ticks spaced by a number of months.
+ `n` must be a positive integer. To set ticks on the 15th of
+ every third month, set `tick0` to "2000-01-15" and `dtick` to
+ "M3". To set ticks every 4 years, set `dtick` to "M48"
+
+ The 'dtick' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["dtick"]
+
+ @dtick.setter
+ def dtick(self, val):
+ self["dtick"] = val
+
+ @property
+ def gridcolor(self):
+ """
+ Sets the color of the grid lines.
+
+ The 'gridcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["gridcolor"]
+
+ @gridcolor.setter
+ def gridcolor(self, val):
+ self["gridcolor"] = val
+
+ @property
+ def griddash(self):
+ """
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+
+ The 'griddash' property is an enumeration that may be specified as:
+ - One of the following dash styles:
+ ['solid', 'dot', 'dash', 'longdash', 'dashdot', 'longdashdot']
+ - A string containing a dash length list in pixels or percentages
+ (e.g. '5px 10px 2px 2px', '5, 10, 2, 2', '10% 20% 40%', etc.)
+
+ Returns
+ -------
+ str
+ """
+ return self["griddash"]
+
+ @griddash.setter
+ def griddash(self, val):
+ self["griddash"] = val
+
+ @property
+ def gridwidth(self):
+ """
+ Sets the width (in px) of the grid lines.
+
+ The 'gridwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["gridwidth"]
+
+ @gridwidth.setter
+ def gridwidth(self, val):
+ self["gridwidth"] = val
+
+ @property
+ def nticks(self):
+ """
+ Specifies the maximum number of ticks for the particular axis.
+ The actual number of ticks will be chosen automatically to be
+ less than or equal to `nticks`. Has an effect only if
+ `tickmode` is set to "auto".
+
+ The 'nticks' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [0, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["nticks"]
+
+ @nticks.setter
+ def nticks(self, val):
+ self["nticks"] = val
+
+ @property
+ def showgrid(self):
+ """
+ Determines whether or not grid lines are drawn. If True, the
+ grid lines are drawn at every tick mark.
+
+ The 'showgrid' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showgrid"]
+
+ @showgrid.setter
+ def showgrid(self, val):
+ self["showgrid"] = val
+
+ @property
+ def tick0(self):
+ """
+ Sets the placement of the first tick on this axis. Use with
+ `dtick`. If the axis `type` is "log", then you must take the
+ log of your starting tick (e.g. to set the starting tick to
+ 100, set the `tick0` to 2) except when `dtick`=*L<f>* (see
+ `dtick` for more info). If the axis `type` is "date", it should
+ be a date string, like date data. If the axis `type` is
+ "category", it should be a number, using the scale where each
+ category is assigned a serial number from zero in the order it
+ appears.
+
+ The 'tick0' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["tick0"]
+
+ @tick0.setter
+ def tick0(self, val):
+ self["tick0"] = val
+
+ @property
+ def tickcolor(self):
+ """
+ Sets the tick color.
+
+ The 'tickcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["tickcolor"]
+
+ @tickcolor.setter
+ def tickcolor(self, val):
+ self["tickcolor"] = val
+
+ @property
+ def ticklen(self):
+ """
+ Sets the tick length (in px).
+
+ The 'ticklen' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["ticklen"]
+
+ @ticklen.setter
+ def ticklen(self, val):
+ self["ticklen"] = val
+
+ @property
+ def tickmode(self):
+ """
+ Sets the tick mode for this axis. If "auto", the number of
+ ticks is set via `nticks`. If "linear", the placement of the
+ ticks is determined by a starting position `tick0` and a tick
+ step `dtick` ("linear" is the default value if `tick0` and
+ `dtick` are provided). If "array", the placement of the ticks
+ is set via `tickvals` and the tick text is `ticktext`. ("array"
+ is the default value if `tickvals` is provided).
+
+ The 'tickmode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['auto', 'linear', 'array']
+
+ Returns
+ -------
+ Any
+ """
+ return self["tickmode"]
+
+ @tickmode.setter
+ def tickmode(self, val):
+ self["tickmode"] = val
+
+ @property
+ def ticks(self):
+ """
+ Determines whether ticks are drawn or not. If "", this axis'
+ ticks are not drawn. If "outside" ("inside"), this axis' are
+ drawn outside (inside) the axis lines.
+
+ The 'ticks' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['outside', 'inside', '']
+
+ Returns
+ -------
+ Any
+ """
+ return self["ticks"]
+
+ @ticks.setter
+ def ticks(self, val):
+ self["ticks"] = val
+
+ @property
+ def tickvals(self):
+ """
+ Sets the values at which ticks on this axis appear. Only has an
+ effect if `tickmode` is set to "array". Used with `ticktext`.
+
+ The 'tickvals' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["tickvals"]
+
+ @tickvals.setter
+ def tickvals(self, val):
+ self["tickvals"] = val
+
+ @property
+ def tickvalssrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `tickvals`.
+
+ The 'tickvalssrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["tickvalssrc"]
+
+ @tickvalssrc.setter
+ def tickvalssrc(self, val):
+ self["tickvalssrc"] = val
+
+ @property
+ def tickwidth(self):
+ """
+ Sets the tick width (in px).
+
+ The 'tickwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tickwidth"]
+
+ @tickwidth.setter
+ def tickwidth(self, val):
+ self["tickwidth"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ dtick
+ Sets the step in-between ticks on this axis. Use with
+ `tick0`. Must be a positive number, or special strings
+ available to "log" and "date" axes. If the axis `type`
+ is "log", then ticks are set every 10^(n*dtick) where n
+ is the tick number. For example, to set a tick mark at
+ 1, 10, 100, 1000, ... set dtick to 1. To set tick marks
+ at 1, 100, 10000, ... set dtick to 2. To set tick marks
+ at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special
+ values; "L<f>", where `f` is a positive number, gives
+ ticks linearly spaced in value (but not position). For
+ example `tick0` = 0.1, `dtick` = "L0.5" will put ticks
+ at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus
+ small digits between, use "D1" (all digits) or "D2"
+ (only 2 and 5). `tick0` is ignored for "D1" and "D2".
+ If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval
+ between ticks to one day, set `dtick` to 86400000.0.
+ "date" also has special values "M<n>" gives ticks
+ spaced by a number of months. `n` must be a positive
+ integer. To set ticks on the 15th of every third month,
+ set `tick0` to "2000-01-15" and `dtick` to "M3". To set
+ ticks every 4 years, set `dtick` to "M48"
+ gridcolor
+ Sets the color of the grid lines.
+ griddash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ gridwidth
+ Sets the width (in px) of the grid lines.
+ nticks
+ Specifies the maximum number of ticks for the
+ particular axis. The actual number of ticks will be
+ chosen automatically to be less than or equal to
+ `nticks`. Has an effect only if `tickmode` is set to
+ "auto".
+ showgrid
+ Determines whether or not grid lines are drawn. If
+ True, the grid lines are drawn at every tick mark.
+ tick0
+ Sets the placement of the first tick on this axis. Use
+ with `dtick`. If the axis `type` is "log", then you
+ must take the log of your starting tick (e.g. to set
+ the starting tick to 100, set the `tick0` to 2) except
+ when `dtick`=*L<f>* (see `dtick` for more info). If the
+ axis `type` is "date", it should be a date string, like
+ date data. If the axis `type` is "category", it should
+ be a number, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears.
+ tickcolor
+ Sets the tick color.
+ ticklen
+ Sets the tick length (in px).
+ tickmode
+ Sets the tick mode for this axis. If "auto", the number
+ of ticks is set via `nticks`. If "linear", the
+ placement of the ticks is determined by a starting
+ position `tick0` and a tick step `dtick` ("linear" is
+ the default value if `tick0` and `dtick` are provided).
+ If "array", the placement of the ticks is set via
+ `tickvals` and the tick text is `ticktext`. ("array" is
+ the default value if `tickvals` is provided).
+ ticks
+ Determines whether ticks are drawn or not. If "", this
+ axis' ticks are not drawn. If "outside" ("inside"),
+ this axis' are drawn outside (inside) the axis lines.
+ tickvals
+ Sets the values at which ticks on this axis appear.
+ Only has an effect if `tickmode` is set to "array".
+ Used with `ticktext`.
+ tickvalssrc
+ Sets the source reference on Chart Studio Cloud for
+ `tickvals`.
+ tickwidth
+ Sets the tick width (in px).
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ dtick=None,
+ gridcolor=None,
+ griddash=None,
+ gridwidth=None,
+ nticks=None,
+ showgrid=None,
+ tick0=None,
+ tickcolor=None,
+ ticklen=None,
+ tickmode=None,
+ ticks=None,
+ tickvals=None,
+ tickvalssrc=None,
+ tickwidth=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Minor object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.xaxis.Minor`
+ dtick
+ Sets the step in-between ticks on this axis. Use with
+ `tick0`. Must be a positive number, or special strings
+ available to "log" and "date" axes. If the axis `type`
+ is "log", then ticks are set every 10^(n*dtick) where n
+ is the tick number. For example, to set a tick mark at
+ 1, 10, 100, 1000, ... set dtick to 1. To set tick marks
+ at 1, 100, 10000, ... set dtick to 2. To set tick marks
+ at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special
+ values; "L<f>", where `f` is a positive number, gives
+ ticks linearly spaced in value (but not position). For
+ example `tick0` = 0.1, `dtick` = "L0.5" will put ticks
+ at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus
+ small digits between, use "D1" (all digits) or "D2"
+ (only 2 and 5). `tick0` is ignored for "D1" and "D2".
+ If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval
+ between ticks to one day, set `dtick` to 86400000.0.
+ "date" also has special values "M<n>" gives ticks
+ spaced by a number of months. `n` must be a positive
+ integer. To set ticks on the 15th of every third month,
+ set `tick0` to "2000-01-15" and `dtick` to "M3". To set
+ ticks every 4 years, set `dtick` to "M48"
+ gridcolor
+ Sets the color of the grid lines.
+ griddash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ gridwidth
+ Sets the width (in px) of the grid lines.
+ nticks
+ Specifies the maximum number of ticks for the
+ particular axis. The actual number of ticks will be
+ chosen automatically to be less than or equal to
+ `nticks`. Has an effect only if `tickmode` is set to
+ "auto".
+ showgrid
+ Determines whether or not grid lines are drawn. If
+ True, the grid lines are drawn at every tick mark.
+ tick0
+ Sets the placement of the first tick on this axis. Use
+ with `dtick`. If the axis `type` is "log", then you
+ must take the log of your starting tick (e.g. to set
+ the starting tick to 100, set the `tick0` to 2) except
+ when `dtick`=*L<f>* (see `dtick` for more info). If the
+ axis `type` is "date", it should be a date string, like
+ date data. If the axis `type` is "category", it should
+ be a number, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears.
+ tickcolor
+ Sets the tick color.
+ ticklen
+ Sets the tick length (in px).
+ tickmode
+ Sets the tick mode for this axis. If "auto", the number
+ of ticks is set via `nticks`. If "linear", the
+ placement of the ticks is determined by a starting
+ position `tick0` and a tick step `dtick` ("linear" is
+ the default value if `tick0` and `dtick` are provided).
+ If "array", the placement of the ticks is set via
+ `tickvals` and the tick text is `ticktext`. ("array" is
+ the default value if `tickvals` is provided).
+ ticks
+ Determines whether ticks are drawn or not. If "", this
+ axis' ticks are not drawn. If "outside" ("inside"),
+ this axis' are drawn outside (inside) the axis lines.
+ tickvals
+ Sets the values at which ticks on this axis appear.
+ Only has an effect if `tickmode` is set to "array".
+ Used with `ticktext`.
+ tickvalssrc
+ Sets the source reference on Chart Studio Cloud for
+ `tickvals`.
+ tickwidth
+ Sets the tick width (in px).
+
+ Returns
+ -------
+ Minor
+ """
+ super().__init__("minor")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.xaxis.Minor
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.xaxis.Minor`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("dtick", arg, dtick)
+ self._set_property("gridcolor", arg, gridcolor)
+ self._set_property("griddash", arg, griddash)
+ self._set_property("gridwidth", arg, gridwidth)
+ self._set_property("nticks", arg, nticks)
+ self._set_property("showgrid", arg, showgrid)
+ self._set_property("tick0", arg, tick0)
+ self._set_property("tickcolor", arg, tickcolor)
+ self._set_property("ticklen", arg, ticklen)
+ self._set_property("tickmode", arg, tickmode)
+ self._set_property("ticks", arg, ticks)
+ self._set_property("tickvals", arg, tickvals)
+ self._set_property("tickvalssrc", arg, tickvalssrc)
+ self._set_property("tickwidth", arg, tickwidth)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_rangebreak.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_rangebreak.py
new file mode 100644
index 0000000..40246fb
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_rangebreak.py
@@ -0,0 +1,330 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Rangebreak(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.xaxis"
+ _path_str = "layout.xaxis.rangebreak"
+ _valid_props = {
+ "bounds",
+ "dvalue",
+ "enabled",
+ "name",
+ "pattern",
+ "templateitemname",
+ "values",
+ }
+
+ @property
+ def bounds(self):
+ """
+ Sets the lower and upper bounds of this axis rangebreak. Can be
+ used with `pattern`.
+
+ The 'bounds' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'bounds[0]' property accepts values of any type
+ (1) The 'bounds[1]' property accepts values of any type
+
+ Returns
+ -------
+ list
+ """
+ return self["bounds"]
+
+ @bounds.setter
+ def bounds(self, val):
+ self["bounds"] = val
+
+ @property
+ def dvalue(self):
+ """
+ Sets the size of each `values` item. The default is one day in
+ milliseconds.
+
+ The 'dvalue' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["dvalue"]
+
+ @dvalue.setter
+ def dvalue(self, val):
+ self["dvalue"] = val
+
+ @property
+ def enabled(self):
+ """
+ Determines whether this axis rangebreak is enabled or disabled.
+ Please note that `rangebreaks` only work for "date" axis type.
+
+ The 'enabled' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["enabled"]
+
+ @enabled.setter
+ def enabled(self, val):
+ self["enabled"] = val
+
+ @property
+ def name(self):
+ """
+ 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.
+
+ The 'name' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["name"]
+
+ @name.setter
+ def name(self, val):
+ self["name"] = val
+
+ @property
+ def pattern(self):
+ """
+ Determines a pattern on the time line that generates breaks. If
+ *day of week* - days of the week in English e.g. 'Sunday' or
+ `sun` (matching is case-insensitive and considers only the
+ first three characters), as well as Sunday-based integers
+ between 0 and 6. If "hour" - hour (24-hour clock) as decimal
+ numbers between 0 and 24. for more info. Examples: - { pattern:
+ 'day of week', bounds: [6, 1] } or simply { bounds: ['sat',
+ 'mon'] } breaks from Saturday to Monday (i.e. skips the
+ weekends). - { pattern: 'hour', bounds: [17, 8] } breaks from
+ 5pm to 8am (i.e. skips non-work hours).
+
+ The 'pattern' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['day of week', 'hour', '']
+
+ Returns
+ -------
+ Any
+ """
+ return self["pattern"]
+
+ @pattern.setter
+ def pattern(self, val):
+ self["pattern"] = val
+
+ @property
+ def templateitemname(self):
+ """
+ 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`.
+
+ The 'templateitemname' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["templateitemname"]
+
+ @templateitemname.setter
+ def templateitemname(self, val):
+ self["templateitemname"] = val
+
+ @property
+ def values(self):
+ """
+ Sets the coordinate values corresponding to the rangebreaks. An
+ alternative to `bounds`. Use `dvalue` to set the size of the
+ values along the axis.
+
+ The 'values' property is an info array that may be specified as:
+ * a list of elements where:
+ The 'values[i]' property accepts values of any type
+
+ Returns
+ -------
+ list
+ """
+ return self["values"]
+
+ @values.setter
+ def values(self, val):
+ self["values"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ bounds
+ Sets the lower and upper bounds of this axis
+ rangebreak. Can be used with `pattern`.
+ dvalue
+ Sets the size of each `values` item. The default is one
+ day in milliseconds.
+ enabled
+ Determines whether this axis rangebreak is enabled or
+ disabled. Please note that `rangebreaks` only work for
+ "date" axis type.
+ 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.
+ pattern
+ Determines a pattern on the time line that generates
+ breaks. If *day of week* - days of the week in English
+ e.g. 'Sunday' or `sun` (matching is case-insensitive
+ and considers only the first three characters), as well
+ as Sunday-based integers between 0 and 6. If "hour" -
+ hour (24-hour clock) as decimal numbers between 0 and
+ 24. for more info. Examples: - { pattern: 'day of
+ week', bounds: [6, 1] } or simply { bounds: ['sat',
+ 'mon'] } breaks from Saturday to Monday (i.e. skips
+ the weekends). - { pattern: 'hour', bounds: [17, 8] }
+ breaks from 5pm to 8am (i.e. skips non-work hours).
+ 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`.
+ values
+ Sets the coordinate values corresponding to the
+ rangebreaks. An alternative to `bounds`. Use `dvalue`
+ to set the size of the values along the axis.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ bounds=None,
+ dvalue=None,
+ enabled=None,
+ name=None,
+ pattern=None,
+ templateitemname=None,
+ values=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Rangebreak object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.xaxis.Rangebreak`
+ bounds
+ Sets the lower and upper bounds of this axis
+ rangebreak. Can be used with `pattern`.
+ dvalue
+ Sets the size of each `values` item. The default is one
+ day in milliseconds.
+ enabled
+ Determines whether this axis rangebreak is enabled or
+ disabled. Please note that `rangebreaks` only work for
+ "date" axis type.
+ 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.
+ pattern
+ Determines a pattern on the time line that generates
+ breaks. If *day of week* - days of the week in English
+ e.g. 'Sunday' or `sun` (matching is case-insensitive
+ and considers only the first three characters), as well
+ as Sunday-based integers between 0 and 6. If "hour" -
+ hour (24-hour clock) as decimal numbers between 0 and
+ 24. for more info. Examples: - { pattern: 'day of
+ week', bounds: [6, 1] } or simply { bounds: ['sat',
+ 'mon'] } breaks from Saturday to Monday (i.e. skips
+ the weekends). - { pattern: 'hour', bounds: [17, 8] }
+ breaks from 5pm to 8am (i.e. skips non-work hours).
+ 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`.
+ values
+ Sets the coordinate values corresponding to the
+ rangebreaks. An alternative to `bounds`. Use `dvalue`
+ to set the size of the values along the axis.
+
+ Returns
+ -------
+ Rangebreak
+ """
+ super().__init__("rangebreaks")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.xaxis.Rangebreak
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.xaxis.Rangebreak`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("bounds", arg, bounds)
+ self._set_property("dvalue", arg, dvalue)
+ self._set_property("enabled", arg, enabled)
+ self._set_property("name", arg, name)
+ self._set_property("pattern", arg, pattern)
+ self._set_property("templateitemname", arg, templateitemname)
+ self._set_property("values", arg, values)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_rangeselector.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_rangeselector.py
new file mode 100644
index 0000000..22404bc
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_rangeselector.py
@@ -0,0 +1,427 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Rangeselector(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.xaxis"
+ _path_str = "layout.xaxis.rangeselector"
+ _valid_props = {
+ "activecolor",
+ "bgcolor",
+ "bordercolor",
+ "borderwidth",
+ "buttondefaults",
+ "buttons",
+ "font",
+ "visible",
+ "x",
+ "xanchor",
+ "y",
+ "yanchor",
+ }
+
+ @property
+ def activecolor(self):
+ """
+ Sets the background color of the active range selector button.
+
+ The 'activecolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["activecolor"]
+
+ @activecolor.setter
+ def activecolor(self, val):
+ self["activecolor"] = val
+
+ @property
+ def bgcolor(self):
+ """
+ Sets the background color of the range selector buttons.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["bgcolor"]
+
+ @bgcolor.setter
+ def bgcolor(self, val):
+ self["bgcolor"] = val
+
+ @property
+ def bordercolor(self):
+ """
+ Sets the color of the border enclosing the range selector.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["bordercolor"]
+
+ @bordercolor.setter
+ def bordercolor(self, val):
+ self["bordercolor"] = val
+
+ @property
+ def borderwidth(self):
+ """
+ Sets the width (in px) of the border enclosing the range
+ selector.
+
+ 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
+
+ @property
+ def buttons(self):
+ """
+ Sets the specifications for each buttons. By default, a range
+ selector comes with no buttons.
+
+ The 'buttons' property is a tuple of instances of
+ Button that may be specified as:
+ - A list or tuple of instances of plotly.graph_objs.layout.xaxis.rangeselector.Button
+ - A list or tuple of dicts of string/value properties that
+ will be passed to the Button constructor
+
+ Returns
+ -------
+ tuple[plotly.graph_objs.layout.xaxis.rangeselector.Button]
+ """
+ return self["buttons"]
+
+ @buttons.setter
+ def buttons(self, val):
+ self["buttons"] = val
+
+ @property
+ def buttondefaults(self):
+ """
+ When used in a template (as
+ layout.template.layout.xaxis.rangeselector.buttondefaults),
+ sets the default property values to use for elements of
+ layout.xaxis.rangeselector.buttons
+
+ The 'buttondefaults' property is an instance of Button
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.xaxis.rangeselector.Button`
+ - A dict of string/value properties that will be passed
+ to the Button constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.xaxis.rangeselector.Button
+ """
+ return self["buttondefaults"]
+
+ @buttondefaults.setter
+ def buttondefaults(self, val):
+ self["buttondefaults"] = val
+
+ @property
+ def font(self):
+ """
+ Sets the font of the range selector button text.
+
+ The 'font' property is an instance of Font
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.xaxis.rangeselector.Font`
+ - A dict of string/value properties that will be passed
+ to the Font constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.xaxis.rangeselector.Font
+ """
+ return self["font"]
+
+ @font.setter
+ def font(self, val):
+ self["font"] = val
+
+ @property
+ def visible(self):
+ """
+ Determines whether or not this range selector is visible. Note
+ that range selectors are only available for x axes of `type`
+ set to or auto-typed to "date".
+
+ The 'visible' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["visible"]
+
+ @visible.setter
+ def visible(self, val):
+ self["visible"] = val
+
+ @property
+ def x(self):
+ """
+ Sets the x position (in normalized coordinates) of the range
+ selector.
+
+ 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
+
+ @property
+ def xanchor(self):
+ """
+ Sets the range selector's horizontal position anchor. This
+ anchor binds the `x` position to the "left", "center" or
+ "right" of the range selector.
+
+ 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
+
+ @property
+ def y(self):
+ """
+ Sets the y position (in normalized coordinates) of the range
+ selector.
+
+ 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
+
+ @property
+ def yanchor(self):
+ """
+ Sets the range selector's vertical position anchor This anchor
+ binds the `y` position to the "top", "middle" or "bottom" of
+ the range selector.
+
+ 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
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ activecolor
+ Sets the background color of the active range selector
+ button.
+ bgcolor
+ Sets the background color of the range selector
+ buttons.
+ bordercolor
+ Sets the color of the border enclosing the range
+ selector.
+ borderwidth
+ Sets the width (in px) of the border enclosing the
+ range selector.
+ buttons
+ Sets the specifications for each buttons. By default, a
+ range selector comes with no buttons.
+ buttondefaults
+ When used in a template (as layout.template.layout.xaxi
+ s.rangeselector.buttondefaults), sets the default
+ property values to use for elements of
+ layout.xaxis.rangeselector.buttons
+ font
+ Sets the font of the range selector button text.
+ visible
+ Determines whether or not this range selector is
+ visible. Note that range selectors are only available
+ for x axes of `type` set to or auto-typed to "date".
+ x
+ Sets the x position (in normalized coordinates) of the
+ range selector.
+ xanchor
+ Sets the range selector's horizontal position anchor.
+ This anchor binds the `x` position to the "left",
+ "center" or "right" of the range selector.
+ y
+ Sets the y position (in normalized coordinates) of the
+ range selector.
+ yanchor
+ Sets the range selector's vertical position anchor This
+ anchor binds the `y` position to the "top", "middle" or
+ "bottom" of the range selector.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ activecolor=None,
+ bgcolor=None,
+ bordercolor=None,
+ borderwidth=None,
+ buttons=None,
+ buttondefaults=None,
+ font=None,
+ visible=None,
+ x=None,
+ xanchor=None,
+ y=None,
+ yanchor=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Rangeselector object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.xaxis.Rangeselector`
+ activecolor
+ Sets the background color of the active range selector
+ button.
+ bgcolor
+ Sets the background color of the range selector
+ buttons.
+ bordercolor
+ Sets the color of the border enclosing the range
+ selector.
+ borderwidth
+ Sets the width (in px) of the border enclosing the
+ range selector.
+ buttons
+ Sets the specifications for each buttons. By default, a
+ range selector comes with no buttons.
+ buttondefaults
+ When used in a template (as layout.template.layout.xaxi
+ s.rangeselector.buttondefaults), sets the default
+ property values to use for elements of
+ layout.xaxis.rangeselector.buttons
+ font
+ Sets the font of the range selector button text.
+ visible
+ Determines whether or not this range selector is
+ visible. Note that range selectors are only available
+ for x axes of `type` set to or auto-typed to "date".
+ x
+ Sets the x position (in normalized coordinates) of the
+ range selector.
+ xanchor
+ Sets the range selector's horizontal position anchor.
+ This anchor binds the `x` position to the "left",
+ "center" or "right" of the range selector.
+ y
+ Sets the y position (in normalized coordinates) of the
+ range selector.
+ yanchor
+ Sets the range selector's vertical position anchor This
+ anchor binds the `y` position to the "top", "middle" or
+ "bottom" of the range selector.
+
+ Returns
+ -------
+ Rangeselector
+ """
+ super().__init__("rangeselector")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.xaxis.Rangeselector
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.xaxis.Rangeselector`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("activecolor", arg, activecolor)
+ self._set_property("bgcolor", arg, bgcolor)
+ self._set_property("bordercolor", arg, bordercolor)
+ self._set_property("borderwidth", arg, borderwidth)
+ self._set_property("buttons", arg, buttons)
+ self._set_property("buttondefaults", arg, buttondefaults)
+ self._set_property("font", arg, font)
+ self._set_property("visible", arg, visible)
+ self._set_property("x", arg, x)
+ self._set_property("xanchor", arg, xanchor)
+ self._set_property("y", arg, y)
+ self._set_property("yanchor", arg, yanchor)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_rangeslider.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_rangeslider.py
new file mode 100644
index 0000000..9d30a4d
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_rangeslider.py
@@ -0,0 +1,311 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Rangeslider(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.xaxis"
+ _path_str = "layout.xaxis.rangeslider"
+ _valid_props = {
+ "autorange",
+ "bgcolor",
+ "bordercolor",
+ "borderwidth",
+ "range",
+ "thickness",
+ "visible",
+ "yaxis",
+ }
+
+ @property
+ def autorange(self):
+ """
+ Determines whether or not the range slider range is computed in
+ relation to the input data. If `range` is provided, then
+ `autorange` is set to False.
+
+ The 'autorange' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["autorange"]
+
+ @autorange.setter
+ def autorange(self, val):
+ self["autorange"] = val
+
+ @property
+ def bgcolor(self):
+ """
+ Sets the background color of the range slider.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["bgcolor"]
+
+ @bgcolor.setter
+ def bgcolor(self, val):
+ self["bgcolor"] = val
+
+ @property
+ def bordercolor(self):
+ """
+ Sets the border color of the range slider.
+
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["bordercolor"]
+
+ @bordercolor.setter
+ def bordercolor(self, val):
+ self["bordercolor"] = val
+
+ @property
+ def borderwidth(self):
+ """
+ Sets the border width of the range slider.
+
+ The 'borderwidth' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [0, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["borderwidth"]
+
+ @borderwidth.setter
+ def borderwidth(self, val):
+ self["borderwidth"] = val
+
+ @property
+ def range(self):
+ """
+ Sets the range of the range slider. If not set, defaults to the
+ full xaxis range. If the axis `type` is "log", then you must
+ take the log of your desired range. If the axis `type` is
+ "date", it should be date strings, like date data, though Date
+ objects and unix milliseconds will be accepted and converted to
+ strings. If the axis `type` is "category", it should be
+ numbers, using the scale where each category is assigned a
+ serial number from zero in the order it appears.
+
+ The 'range' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'range[0]' property accepts values of any type
+ (1) The 'range[1]' property accepts values of any type
+
+ Returns
+ -------
+ list
+ """
+ return self["range"]
+
+ @range.setter
+ def range(self, val):
+ self["range"] = val
+
+ @property
+ def thickness(self):
+ """
+ The height of the range slider as a fraction of the total plot
+ area height.
+
+ The 'thickness' property is a number and may be specified as:
+ - An int or float in the interval [0, 1]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["thickness"]
+
+ @thickness.setter
+ def thickness(self, val):
+ self["thickness"] = val
+
+ @property
+ def visible(self):
+ """
+ Determines whether or not the range slider will be visible. If
+ visible, perpendicular axes will be set to `fixedrange`
+
+ The 'visible' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["visible"]
+
+ @visible.setter
+ def visible(self, val):
+ self["visible"] = val
+
+ @property
+ def yaxis(self):
+ """
+ The 'yaxis' property is an instance of YAxis
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.xaxis.rangeslider.YAxis`
+ - A dict of string/value properties that will be passed
+ to the YAxis constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.xaxis.rangeslider.YAxis
+ """
+ return self["yaxis"]
+
+ @yaxis.setter
+ def yaxis(self, val):
+ self["yaxis"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ autorange
+ Determines whether or not the range slider range is
+ computed in relation to the input data. If `range` is
+ provided, then `autorange` is set to False.
+ bgcolor
+ Sets the background color of the range slider.
+ bordercolor
+ Sets the border color of the range slider.
+ borderwidth
+ Sets the border width of the range slider.
+ range
+ Sets the range of the range slider. If not set,
+ defaults to the full xaxis range. If the axis `type` is
+ "log", then you must take the log of your desired
+ range. If the axis `type` is "date", it should be date
+ strings, like date data, though Date objects and unix
+ milliseconds will be accepted and converted to strings.
+ If the axis `type` is "category", it should be numbers,
+ using the scale where each category is assigned a
+ serial number from zero in the order it appears.
+ thickness
+ The height of the range slider as a fraction of the
+ total plot area height.
+ visible
+ Determines whether or not the range slider will be
+ visible. If visible, perpendicular axes will be set to
+ `fixedrange`
+ yaxis
+ :class:`plotly.graph_objects.layout.xaxis.rangeslider.Y
+ Axis` instance or dict with compatible properties
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ autorange=None,
+ bgcolor=None,
+ bordercolor=None,
+ borderwidth=None,
+ range=None,
+ thickness=None,
+ visible=None,
+ yaxis=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Rangeslider object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.xaxis.Rangeslider`
+ autorange
+ Determines whether or not the range slider range is
+ computed in relation to the input data. If `range` is
+ provided, then `autorange` is set to False.
+ bgcolor
+ Sets the background color of the range slider.
+ bordercolor
+ Sets the border color of the range slider.
+ borderwidth
+ Sets the border width of the range slider.
+ range
+ Sets the range of the range slider. If not set,
+ defaults to the full xaxis range. If the axis `type` is
+ "log", then you must take the log of your desired
+ range. If the axis `type` is "date", it should be date
+ strings, like date data, though Date objects and unix
+ milliseconds will be accepted and converted to strings.
+ If the axis `type` is "category", it should be numbers,
+ using the scale where each category is assigned a
+ serial number from zero in the order it appears.
+ thickness
+ The height of the range slider as a fraction of the
+ total plot area height.
+ visible
+ Determines whether or not the range slider will be
+ visible. If visible, perpendicular axes will be set to
+ `fixedrange`
+ yaxis
+ :class:`plotly.graph_objects.layout.xaxis.rangeslider.Y
+ Axis` instance or dict with compatible properties
+
+ Returns
+ -------
+ Rangeslider
+ """
+ super().__init__("rangeslider")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.xaxis.Rangeslider
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.xaxis.Rangeslider`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("autorange", arg, autorange)
+ self._set_property("bgcolor", arg, bgcolor)
+ self._set_property("bordercolor", arg, bordercolor)
+ self._set_property("borderwidth", arg, borderwidth)
+ self._set_property("range", arg, range)
+ self._set_property("thickness", arg, thickness)
+ self._set_property("visible", arg, visible)
+ self._set_property("yaxis", arg, yaxis)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_tickfont.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_tickfont.py
new file mode 100644
index 0000000..3df643e
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_tickfont.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Tickfont(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.xaxis"
+ _path_str = "layout.xaxis.tickfont"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Tickfont object
+
+ Sets the tick font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.xaxis.Tickfont`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Tickfont
+ """
+ super().__init__("tickfont")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.xaxis.Tickfont
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.xaxis.Tickfont`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_tickformatstop.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_tickformatstop.py
new file mode 100644
index 0000000..6941096
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_tickformatstop.py
@@ -0,0 +1,241 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Tickformatstop(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.xaxis"
+ _path_str = "layout.xaxis.tickformatstop"
+ _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
+
+ @property
+ def dtickrange(self):
+ """
+ range [*min*, *max*], where "min", "max" - dtick values which
+ describe some zoom level, it is possible to omit "min" or "max"
+ value by passing "null"
+
+ The 'dtickrange' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'dtickrange[0]' property accepts values of any type
+ (1) The 'dtickrange[1]' property accepts values of any type
+
+ Returns
+ -------
+ list
+ """
+ return self["dtickrange"]
+
+ @dtickrange.setter
+ def dtickrange(self, val):
+ self["dtickrange"] = val
+
+ @property
+ def enabled(self):
+ """
+ Determines whether or not this stop is used. If `false`, this
+ stop is ignored even within its `dtickrange`.
+
+ The 'enabled' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["enabled"]
+
+ @enabled.setter
+ def enabled(self, val):
+ self["enabled"] = val
+
+ @property
+ def name(self):
+ """
+ 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.
+
+ The 'name' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["name"]
+
+ @name.setter
+ def name(self, val):
+ self["name"] = val
+
+ @property
+ def templateitemname(self):
+ """
+ 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`.
+
+ The 'templateitemname' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["templateitemname"]
+
+ @templateitemname.setter
+ def templateitemname(self, val):
+ self["templateitemname"] = val
+
+ @property
+ def value(self):
+ """
+ string - dtickformat for described zoom level, the same as
+ "tickformat"
+
+ The 'value' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["value"]
+
+ @value.setter
+ def value(self, val):
+ self["value"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ dtickrange
+ range [*min*, *max*], where "min", "max" - dtick values
+ which describe some zoom level, it is possible to omit
+ "min" or "max" value by passing "null"
+ enabled
+ Determines whether or not this stop is used. If
+ `false`, this stop is ignored even within its
+ `dtickrange`.
+ 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`.
+ value
+ string - dtickformat for described zoom level, the same
+ as "tickformat"
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ dtickrange=None,
+ enabled=None,
+ name=None,
+ templateitemname=None,
+ value=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Tickformatstop object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.xaxis.Tickformatstop`
+ dtickrange
+ range [*min*, *max*], where "min", "max" - dtick values
+ which describe some zoom level, it is possible to omit
+ "min" or "max" value by passing "null"
+ enabled
+ Determines whether or not this stop is used. If
+ `false`, this stop is ignored even within its
+ `dtickrange`.
+ 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`.
+ value
+ string - dtickformat for described zoom level, the same
+ as "tickformat"
+
+ Returns
+ -------
+ Tickformatstop
+ """
+ super().__init__("tickformatstops")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.xaxis.Tickformatstop
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.xaxis.Tickformatstop`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("dtickrange", arg, dtickrange)
+ self._set_property("enabled", arg, enabled)
+ self._set_property("name", arg, name)
+ self._set_property("templateitemname", arg, templateitemname)
+ self._set_property("value", arg, value)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_title.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_title.py
new file mode 100644
index 0000000..a517a22
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/_title.py
@@ -0,0 +1,150 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Title(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.xaxis"
+ _path_str = "layout.xaxis.title"
+ _valid_props = {"font", "standoff", "text"}
+
+ @property
+ def font(self):
+ """
+ Sets this axis' title font.
+
+ The 'font' property is an instance of Font
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.xaxis.title.Font`
+ - A dict of string/value properties that will be passed
+ to the Font constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.xaxis.title.Font
+ """
+ return self["font"]
+
+ @font.setter
+ def font(self, val):
+ self["font"] = val
+
+ @property
+ def standoff(self):
+ """
+ Sets the standoff distance (in px) between the axis labels and
+ the title text The default value is a function of the axis tick
+ labels, the title `font.size` and the axis `linewidth`. Note
+ that the axis title position is always constrained within the
+ margins, so the actual standoff distance is always less than
+ the set or default value. By setting `standoff` and turning on
+ `automargin`, plotly.js will push the margins to fit the axis
+ title at given standoff distance.
+
+ The 'standoff' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["standoff"]
+
+ @standoff.setter
+ def standoff(self, val):
+ self["standoff"] = val
+
+ @property
+ def text(self):
+ """
+ Sets the title of this axis.
+
+ 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
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ font
+ Sets this axis' title font.
+ standoff
+ Sets the standoff distance (in px) between the axis
+ labels and the title text The default value is a
+ function of the axis tick labels, the title `font.size`
+ and the axis `linewidth`. Note that the axis title
+ position is always constrained within the margins, so
+ the actual standoff distance is always less than the
+ set or default value. By setting `standoff` and turning
+ on `automargin`, plotly.js will push the margins to fit
+ the axis title at given standoff distance.
+ text
+ Sets the title of this axis.
+ """
+
+ def __init__(self, arg=None, font=None, standoff=None, text=None, **kwargs):
+ """
+ Construct a new Title object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.xaxis.Title`
+ font
+ Sets this axis' title font.
+ standoff
+ Sets the standoff distance (in px) between the axis
+ labels and the title text The default value is a
+ function of the axis tick labels, the title `font.size`
+ and the axis `linewidth`. Note that the axis title
+ position is always constrained within the margins, so
+ the actual standoff distance is always less than the
+ set or default value. By setting `standoff` and turning
+ on `automargin`, plotly.js will push the margins to fit
+ the axis title at given standoff distance.
+ text
+ Sets the title of this axis.
+
+ Returns
+ -------
+ Title
+ """
+ super().__init__("title")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.xaxis.Title
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.xaxis.Title`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("font", arg, font)
+ self._set_property("standoff", arg, standoff)
+ self._set_property("text", arg, text)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/rangeselector/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/rangeselector/__init__.py
new file mode 100644
index 0000000..4796cc0
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/rangeselector/__init__.py
@@ -0,0 +1,12 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._button import Button
+ from ._font import Font
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__, [], ["._button.Button", "._font.Font"]
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/rangeselector/_button.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/rangeselector/_button.py
new file mode 100644
index 0000000..adfa467
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/rangeselector/_button.py
@@ -0,0 +1,318 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Button(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.xaxis.rangeselector"
+ _path_str = "layout.xaxis.rangeselector.button"
+ _valid_props = {
+ "count",
+ "label",
+ "name",
+ "step",
+ "stepmode",
+ "templateitemname",
+ "visible",
+ }
+
+ @property
+ def count(self):
+ """
+ Sets the number of steps to take to update the range. Use with
+ `step` to specify the update interval.
+
+ The 'count' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["count"]
+
+ @count.setter
+ def count(self, val):
+ self["count"] = val
+
+ @property
+ def label(self):
+ """
+ Sets the text label to appear on the button.
+
+ The 'label' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["label"]
+
+ @label.setter
+ def label(self, val):
+ self["label"] = val
+
+ @property
+ def name(self):
+ """
+ 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.
+
+ The 'name' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["name"]
+
+ @name.setter
+ def name(self, val):
+ self["name"] = val
+
+ @property
+ def step(self):
+ """
+ The unit of measurement that the `count` value will set the
+ range by.
+
+ The 'step' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['month', 'year', 'day', 'hour', 'minute', 'second',
+ 'all']
+
+ Returns
+ -------
+ Any
+ """
+ return self["step"]
+
+ @step.setter
+ def step(self, val):
+ self["step"] = val
+
+ @property
+ def stepmode(self):
+ """
+ Sets the range update mode. If "backward", the range update
+ shifts the start of range back "count" times "step"
+ milliseconds. If "todate", the range update shifts the start of
+ range back to the first timestamp from "count" times "step"
+ milliseconds back. For example, with `step` set to "year" and
+ `count` set to 1 the range update shifts the start of the range
+ back to January 01 of the current year. Month and year "todate"
+ are currently available only for the built-in (Gregorian)
+ calendar.
+
+ The 'stepmode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['backward', 'todate']
+
+ Returns
+ -------
+ Any
+ """
+ return self["stepmode"]
+
+ @stepmode.setter
+ def stepmode(self, val):
+ self["stepmode"] = val
+
+ @property
+ def templateitemname(self):
+ """
+ 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`.
+
+ The 'templateitemname' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["templateitemname"]
+
+ @templateitemname.setter
+ def templateitemname(self, val):
+ self["templateitemname"] = val
+
+ @property
+ def visible(self):
+ """
+ Determines whether or not this button is visible.
+
+ The 'visible' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["visible"]
+
+ @visible.setter
+ def visible(self, val):
+ self["visible"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ count
+ Sets the number of steps to take to update the range.
+ Use with `step` to specify the update interval.
+ label
+ Sets the text label to appear on the button.
+ 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.
+ step
+ The unit of measurement that the `count` value will set
+ the range by.
+ stepmode
+ Sets the range update mode. If "backward", the range
+ update shifts the start of range back "count" times
+ "step" milliseconds. If "todate", the range update
+ shifts the start of range back to the first timestamp
+ from "count" times "step" milliseconds back. For
+ example, with `step` set to "year" and `count` set to 1
+ the range update shifts the start of the range back to
+ January 01 of the current year. Month and year "todate"
+ are currently available only for the built-in
+ (Gregorian) calendar.
+ 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`.
+ visible
+ Determines whether or not this button is visible.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ count=None,
+ label=None,
+ name=None,
+ step=None,
+ stepmode=None,
+ templateitemname=None,
+ visible=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Button object
+
+ Sets the specifications for each buttons. By default, a range
+ selector comes with no buttons.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.xaxis.r
+ angeselector.Button`
+ count
+ Sets the number of steps to take to update the range.
+ Use with `step` to specify the update interval.
+ label
+ Sets the text label to appear on the button.
+ 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.
+ step
+ The unit of measurement that the `count` value will set
+ the range by.
+ stepmode
+ Sets the range update mode. If "backward", the range
+ update shifts the start of range back "count" times
+ "step" milliseconds. If "todate", the range update
+ shifts the start of range back to the first timestamp
+ from "count" times "step" milliseconds back. For
+ example, with `step` set to "year" and `count` set to 1
+ the range update shifts the start of the range back to
+ January 01 of the current year. Month and year "todate"
+ are currently available only for the built-in
+ (Gregorian) calendar.
+ 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`.
+ visible
+ Determines whether or not this button is visible.
+
+ Returns
+ -------
+ Button
+ """
+ super().__init__("buttons")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.xaxis.rangeselector.Button
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.xaxis.rangeselector.Button`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("count", arg, count)
+ self._set_property("label", arg, label)
+ self._set_property("name", arg, name)
+ self._set_property("step", arg, step)
+ self._set_property("stepmode", arg, stepmode)
+ self._set_property("templateitemname", arg, templateitemname)
+ self._set_property("visible", arg, visible)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/rangeselector/_font.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/rangeselector/_font.py
new file mode 100644
index 0000000..b594067
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/rangeselector/_font.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Font(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.xaxis.rangeselector"
+ _path_str = "layout.xaxis.rangeselector.font"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Font object
+
+ Sets the font of the range selector button text.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.xaxis.r
+ angeselector.Font`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Font
+ """
+ super().__init__("font")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.xaxis.rangeselector.Font
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.xaxis.rangeselector.Font`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/rangeslider/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/rangeslider/__init__.py
new file mode 100644
index 0000000..b48657f
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/rangeslider/__init__.py
@@ -0,0 +1,9 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._yaxis import YAxis
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(__name__, [], ["._yaxis.YAxis"])
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/rangeslider/_yaxis.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/rangeslider/_yaxis.py
new file mode 100644
index 0000000..1ce88a5
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/rangeslider/_yaxis.py
@@ -0,0 +1,118 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class YAxis(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.xaxis.rangeslider"
+ _path_str = "layout.xaxis.rangeslider.yaxis"
+ _valid_props = {"range", "rangemode"}
+
+ @property
+ def range(self):
+ """
+ Sets the range of this axis for the rangeslider.
+
+ The 'range' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'range[0]' property accepts values of any type
+ (1) The 'range[1]' property accepts values of any type
+
+ Returns
+ -------
+ list
+ """
+ return self["range"]
+
+ @range.setter
+ def range(self, val):
+ self["range"] = val
+
+ @property
+ def rangemode(self):
+ """
+ Determines whether or not the range of this axis in the
+ rangeslider use the same value than in the main plot when
+ zooming in/out. If "auto", the autorange will be used. If
+ "fixed", the `range` is used. If "match", the current range of
+ the corresponding y-axis on the main subplot is used.
+
+ The 'rangemode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['auto', 'fixed', 'match']
+
+ Returns
+ -------
+ Any
+ """
+ return self["rangemode"]
+
+ @rangemode.setter
+ def rangemode(self, val):
+ self["rangemode"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ range
+ Sets the range of this axis for the rangeslider.
+ rangemode
+ Determines whether or not the range of this axis in the
+ rangeslider use the same value than in the main plot
+ when zooming in/out. If "auto", the autorange will be
+ used. If "fixed", the `range` is used. If "match", the
+ current range of the corresponding y-axis on the main
+ subplot is used.
+ """
+
+ def __init__(self, arg=None, range=None, rangemode=None, **kwargs):
+ """
+ Construct a new YAxis object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.xaxis.r
+ angeslider.YAxis`
+ range
+ Sets the range of this axis for the rangeslider.
+ rangemode
+ Determines whether or not the range of this axis in the
+ rangeslider use the same value than in the main plot
+ when zooming in/out. If "auto", the autorange will be
+ used. If "fixed", the `range` is used. If "match", the
+ current range of the corresponding y-axis on the main
+ subplot is used.
+
+ Returns
+ -------
+ YAxis
+ """
+ super().__init__("yaxis")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.xaxis.rangeslider.YAxis
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.xaxis.rangeslider.YAxis`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("range", arg, range)
+ self._set_property("rangemode", arg, rangemode)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/title/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/title/__init__.py
new file mode 100644
index 0000000..56f600d
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/title/__init__.py
@@ -0,0 +1,9 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._font import Font
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/title/_font.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/title/_font.py
new file mode 100644
index 0000000..b943351
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/xaxis/title/_font.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Font(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.xaxis.title"
+ _path_str = "layout.xaxis.title.font"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Font object
+
+ Sets this axis' title font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.xaxis.title.Font`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Font
+ """
+ super().__init__("font")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.xaxis.title.Font
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.xaxis.title.Font`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/__init__.py
new file mode 100644
index 0000000..7d5e696
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/__init__.py
@@ -0,0 +1,26 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._autorangeoptions import Autorangeoptions
+ from ._minor import Minor
+ from ._rangebreak import Rangebreak
+ from ._tickfont import Tickfont
+ from ._tickformatstop import Tickformatstop
+ from ._title import Title
+ from . import title
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(
+ __name__,
+ [".title"],
+ [
+ "._autorangeoptions.Autorangeoptions",
+ "._minor.Minor",
+ "._rangebreak.Rangebreak",
+ "._tickfont.Tickfont",
+ "._tickformatstop.Tickformatstop",
+ "._title.Title",
+ ],
+ )
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/_autorangeoptions.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/_autorangeoptions.py
new file mode 100644
index 0000000..722feb1
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/_autorangeoptions.py
@@ -0,0 +1,216 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Autorangeoptions(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.yaxis"
+ _path_str = "layout.yaxis.autorangeoptions"
+ _valid_props = {
+ "clipmax",
+ "clipmin",
+ "include",
+ "includesrc",
+ "maxallowed",
+ "minallowed",
+ }
+
+ @property
+ def clipmax(self):
+ """
+ Clip autorange maximum if it goes beyond this value. Has no
+ effect when `autorangeoptions.maxallowed` is provided.
+
+ The 'clipmax' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["clipmax"]
+
+ @clipmax.setter
+ def clipmax(self, val):
+ self["clipmax"] = val
+
+ @property
+ def clipmin(self):
+ """
+ Clip autorange minimum if it goes beyond this value. Has no
+ effect when `autorangeoptions.minallowed` is provided.
+
+ The 'clipmin' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["clipmin"]
+
+ @clipmin.setter
+ def clipmin(self, val):
+ self["clipmin"] = val
+
+ @property
+ def include(self):
+ """
+ Ensure this value is included in autorange.
+
+ The 'include' property accepts values of any type
+
+ Returns
+ -------
+ Any|numpy.ndarray
+ """
+ return self["include"]
+
+ @include.setter
+ def include(self, val):
+ self["include"] = val
+
+ @property
+ def includesrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `include`.
+
+ The 'includesrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["includesrc"]
+
+ @includesrc.setter
+ def includesrc(self, val):
+ self["includesrc"] = val
+
+ @property
+ def maxallowed(self):
+ """
+ Use this value exactly as autorange maximum.
+
+ The 'maxallowed' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["maxallowed"]
+
+ @maxallowed.setter
+ def maxallowed(self, val):
+ self["maxallowed"] = val
+
+ @property
+ def minallowed(self):
+ """
+ Use this value exactly as autorange minimum.
+
+ The 'minallowed' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["minallowed"]
+
+ @minallowed.setter
+ def minallowed(self, val):
+ self["minallowed"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ clipmax
+ Clip autorange maximum if it goes beyond this value.
+ Has no effect when `autorangeoptions.maxallowed` is
+ provided.
+ clipmin
+ Clip autorange minimum if it goes beyond this value.
+ Has no effect when `autorangeoptions.minallowed` is
+ provided.
+ include
+ Ensure this value is included in autorange.
+ includesrc
+ Sets the source reference on Chart Studio Cloud for
+ `include`.
+ maxallowed
+ Use this value exactly as autorange maximum.
+ minallowed
+ Use this value exactly as autorange minimum.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ clipmax=None,
+ clipmin=None,
+ include=None,
+ includesrc=None,
+ maxallowed=None,
+ minallowed=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Autorangeoptions object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of :class:`plotly.graph_objs.layout.yaxis.A
+ utorangeoptions`
+ clipmax
+ Clip autorange maximum if it goes beyond this value.
+ Has no effect when `autorangeoptions.maxallowed` is
+ provided.
+ clipmin
+ Clip autorange minimum if it goes beyond this value.
+ Has no effect when `autorangeoptions.minallowed` is
+ provided.
+ include
+ Ensure this value is included in autorange.
+ includesrc
+ Sets the source reference on Chart Studio Cloud for
+ `include`.
+ maxallowed
+ Use this value exactly as autorange maximum.
+ minallowed
+ Use this value exactly as autorange minimum.
+
+ Returns
+ -------
+ Autorangeoptions
+ """
+ super().__init__("autorangeoptions")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.yaxis.Autorangeoptions
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.yaxis.Autorangeoptions`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("clipmax", arg, clipmax)
+ self._set_property("clipmin", arg, clipmin)
+ self._set_property("include", arg, include)
+ self._set_property("includesrc", arg, includesrc)
+ self._set_property("maxallowed", arg, maxallowed)
+ self._set_property("minallowed", arg, minallowed)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/_minor.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/_minor.py
new file mode 100644
index 0000000..c718a60
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/_minor.py
@@ -0,0 +1,566 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Minor(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.yaxis"
+ _path_str = "layout.yaxis.minor"
+ _valid_props = {
+ "dtick",
+ "gridcolor",
+ "griddash",
+ "gridwidth",
+ "nticks",
+ "showgrid",
+ "tick0",
+ "tickcolor",
+ "ticklen",
+ "tickmode",
+ "ticks",
+ "tickvals",
+ "tickvalssrc",
+ "tickwidth",
+ }
+
+ @property
+ def dtick(self):
+ """
+ Sets the step in-between ticks on this axis. Use with `tick0`.
+ Must be a positive number, or special strings available to
+ "log" and "date" axes. If the axis `type` is "log", then ticks
+ are set every 10^(n*dtick) where n is the tick number. For
+ example, to set a tick mark at 1, 10, 100, 1000, ... set dtick
+ to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2.
+ To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special values;
+ "L<f>", where `f` is a positive number, gives ticks linearly
+ spaced in value (but not position). For example `tick0` = 0.1,
+ `dtick` = "L0.5" will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To
+ show powers of 10 plus small digits between, use "D1" (all
+ digits) or "D2" (only 2 and 5). `tick0` is ignored for "D1" and
+ "D2". If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval between
+ ticks to one day, set `dtick` to 86400000.0. "date" also has
+ special values "M<n>" gives ticks spaced by a number of months.
+ `n` must be a positive integer. To set ticks on the 15th of
+ every third month, set `tick0` to "2000-01-15" and `dtick` to
+ "M3". To set ticks every 4 years, set `dtick` to "M48"
+
+ The 'dtick' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["dtick"]
+
+ @dtick.setter
+ def dtick(self, val):
+ self["dtick"] = val
+
+ @property
+ def gridcolor(self):
+ """
+ Sets the color of the grid lines.
+
+ The 'gridcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["gridcolor"]
+
+ @gridcolor.setter
+ def gridcolor(self, val):
+ self["gridcolor"] = val
+
+ @property
+ def griddash(self):
+ """
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+
+ The 'griddash' property is an enumeration that may be specified as:
+ - One of the following dash styles:
+ ['solid', 'dot', 'dash', 'longdash', 'dashdot', 'longdashdot']
+ - A string containing a dash length list in pixels or percentages
+ (e.g. '5px 10px 2px 2px', '5, 10, 2, 2', '10% 20% 40%', etc.)
+
+ Returns
+ -------
+ str
+ """
+ return self["griddash"]
+
+ @griddash.setter
+ def griddash(self, val):
+ self["griddash"] = val
+
+ @property
+ def gridwidth(self):
+ """
+ Sets the width (in px) of the grid lines.
+
+ The 'gridwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["gridwidth"]
+
+ @gridwidth.setter
+ def gridwidth(self, val):
+ self["gridwidth"] = val
+
+ @property
+ def nticks(self):
+ """
+ Specifies the maximum number of ticks for the particular axis.
+ The actual number of ticks will be chosen automatically to be
+ less than or equal to `nticks`. Has an effect only if
+ `tickmode` is set to "auto".
+
+ The 'nticks' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [0, 9223372036854775807]
+
+ Returns
+ -------
+ int
+ """
+ return self["nticks"]
+
+ @nticks.setter
+ def nticks(self, val):
+ self["nticks"] = val
+
+ @property
+ def showgrid(self):
+ """
+ Determines whether or not grid lines are drawn. If True, the
+ grid lines are drawn at every tick mark.
+
+ The 'showgrid' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["showgrid"]
+
+ @showgrid.setter
+ def showgrid(self, val):
+ self["showgrid"] = val
+
+ @property
+ def tick0(self):
+ """
+ Sets the placement of the first tick on this axis. Use with
+ `dtick`. If the axis `type` is "log", then you must take the
+ log of your starting tick (e.g. to set the starting tick to
+ 100, set the `tick0` to 2) except when `dtick`=*L<f>* (see
+ `dtick` for more info). If the axis `type` is "date", it should
+ be a date string, like date data. If the axis `type` is
+ "category", it should be a number, using the scale where each
+ category is assigned a serial number from zero in the order it
+ appears.
+
+ The 'tick0' property accepts values of any type
+
+ Returns
+ -------
+ Any
+ """
+ return self["tick0"]
+
+ @tick0.setter
+ def tick0(self, val):
+ self["tick0"] = val
+
+ @property
+ def tickcolor(self):
+ """
+ Sets the tick color.
+
+ The 'tickcolor' 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["tickcolor"]
+
+ @tickcolor.setter
+ def tickcolor(self, val):
+ self["tickcolor"] = val
+
+ @property
+ def ticklen(self):
+ """
+ Sets the tick length (in px).
+
+ The 'ticklen' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["ticklen"]
+
+ @ticklen.setter
+ def ticklen(self, val):
+ self["ticklen"] = val
+
+ @property
+ def tickmode(self):
+ """
+ Sets the tick mode for this axis. If "auto", the number of
+ ticks is set via `nticks`. If "linear", the placement of the
+ ticks is determined by a starting position `tick0` and a tick
+ step `dtick` ("linear" is the default value if `tick0` and
+ `dtick` are provided). If "array", the placement of the ticks
+ is set via `tickvals` and the tick text is `ticktext`. ("array"
+ is the default value if `tickvals` is provided).
+
+ The 'tickmode' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['auto', 'linear', 'array']
+
+ Returns
+ -------
+ Any
+ """
+ return self["tickmode"]
+
+ @tickmode.setter
+ def tickmode(self, val):
+ self["tickmode"] = val
+
+ @property
+ def ticks(self):
+ """
+ Determines whether ticks are drawn or not. If "", this axis'
+ ticks are not drawn. If "outside" ("inside"), this axis' are
+ drawn outside (inside) the axis lines.
+
+ The 'ticks' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['outside', 'inside', '']
+
+ Returns
+ -------
+ Any
+ """
+ return self["ticks"]
+
+ @ticks.setter
+ def ticks(self, val):
+ self["ticks"] = val
+
+ @property
+ def tickvals(self):
+ """
+ Sets the values at which ticks on this axis appear. Only has an
+ effect if `tickmode` is set to "array". Used with `ticktext`.
+
+ The 'tickvals' property is an array that may be specified as a tuple,
+ list, numpy array, or pandas Series
+
+ Returns
+ -------
+ numpy.ndarray
+ """
+ return self["tickvals"]
+
+ @tickvals.setter
+ def tickvals(self, val):
+ self["tickvals"] = val
+
+ @property
+ def tickvalssrc(self):
+ """
+ Sets the source reference on Chart Studio Cloud for `tickvals`.
+
+ The 'tickvalssrc' property must be specified as a string or
+ as a plotly.grid_objs.Column object
+
+ Returns
+ -------
+ str
+ """
+ return self["tickvalssrc"]
+
+ @tickvalssrc.setter
+ def tickvalssrc(self, val):
+ self["tickvalssrc"] = val
+
+ @property
+ def tickwidth(self):
+ """
+ Sets the tick width (in px).
+
+ The 'tickwidth' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["tickwidth"]
+
+ @tickwidth.setter
+ def tickwidth(self, val):
+ self["tickwidth"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ dtick
+ Sets the step in-between ticks on this axis. Use with
+ `tick0`. Must be a positive number, or special strings
+ available to "log" and "date" axes. If the axis `type`
+ is "log", then ticks are set every 10^(n*dtick) where n
+ is the tick number. For example, to set a tick mark at
+ 1, 10, 100, 1000, ... set dtick to 1. To set tick marks
+ at 1, 100, 10000, ... set dtick to 2. To set tick marks
+ at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special
+ values; "L<f>", where `f` is a positive number, gives
+ ticks linearly spaced in value (but not position). For
+ example `tick0` = 0.1, `dtick` = "L0.5" will put ticks
+ at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus
+ small digits between, use "D1" (all digits) or "D2"
+ (only 2 and 5). `tick0` is ignored for "D1" and "D2".
+ If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval
+ between ticks to one day, set `dtick` to 86400000.0.
+ "date" also has special values "M<n>" gives ticks
+ spaced by a number of months. `n` must be a positive
+ integer. To set ticks on the 15th of every third month,
+ set `tick0` to "2000-01-15" and `dtick` to "M3". To set
+ ticks every 4 years, set `dtick` to "M48"
+ gridcolor
+ Sets the color of the grid lines.
+ griddash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ gridwidth
+ Sets the width (in px) of the grid lines.
+ nticks
+ Specifies the maximum number of ticks for the
+ particular axis. The actual number of ticks will be
+ chosen automatically to be less than or equal to
+ `nticks`. Has an effect only if `tickmode` is set to
+ "auto".
+ showgrid
+ Determines whether or not grid lines are drawn. If
+ True, the grid lines are drawn at every tick mark.
+ tick0
+ Sets the placement of the first tick on this axis. Use
+ with `dtick`. If the axis `type` is "log", then you
+ must take the log of your starting tick (e.g. to set
+ the starting tick to 100, set the `tick0` to 2) except
+ when `dtick`=*L<f>* (see `dtick` for more info). If the
+ axis `type` is "date", it should be a date string, like
+ date data. If the axis `type` is "category", it should
+ be a number, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears.
+ tickcolor
+ Sets the tick color.
+ ticklen
+ Sets the tick length (in px).
+ tickmode
+ Sets the tick mode for this axis. If "auto", the number
+ of ticks is set via `nticks`. If "linear", the
+ placement of the ticks is determined by a starting
+ position `tick0` and a tick step `dtick` ("linear" is
+ the default value if `tick0` and `dtick` are provided).
+ If "array", the placement of the ticks is set via
+ `tickvals` and the tick text is `ticktext`. ("array" is
+ the default value if `tickvals` is provided).
+ ticks
+ Determines whether ticks are drawn or not. If "", this
+ axis' ticks are not drawn. If "outside" ("inside"),
+ this axis' are drawn outside (inside) the axis lines.
+ tickvals
+ Sets the values at which ticks on this axis appear.
+ Only has an effect if `tickmode` is set to "array".
+ Used with `ticktext`.
+ tickvalssrc
+ Sets the source reference on Chart Studio Cloud for
+ `tickvals`.
+ tickwidth
+ Sets the tick width (in px).
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ dtick=None,
+ gridcolor=None,
+ griddash=None,
+ gridwidth=None,
+ nticks=None,
+ showgrid=None,
+ tick0=None,
+ tickcolor=None,
+ ticklen=None,
+ tickmode=None,
+ ticks=None,
+ tickvals=None,
+ tickvalssrc=None,
+ tickwidth=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Minor object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.yaxis.Minor`
+ dtick
+ Sets the step in-between ticks on this axis. Use with
+ `tick0`. Must be a positive number, or special strings
+ available to "log" and "date" axes. If the axis `type`
+ is "log", then ticks are set every 10^(n*dtick) where n
+ is the tick number. For example, to set a tick mark at
+ 1, 10, 100, 1000, ... set dtick to 1. To set tick marks
+ at 1, 100, 10000, ... set dtick to 2. To set tick marks
+ at 1, 5, 25, 125, 625, 3125, ... set dtick to
+ log_10(5), or 0.69897000433. "log" has several special
+ values; "L<f>", where `f` is a positive number, gives
+ ticks linearly spaced in value (but not position). For
+ example `tick0` = 0.1, `dtick` = "L0.5" will put ticks
+ at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus
+ small digits between, use "D1" (all digits) or "D2"
+ (only 2 and 5). `tick0` is ignored for "D1" and "D2".
+ If the axis `type` is "date", then you must convert the
+ time to milliseconds. For example, to set the interval
+ between ticks to one day, set `dtick` to 86400000.0.
+ "date" also has special values "M<n>" gives ticks
+ spaced by a number of months. `n` must be a positive
+ integer. To set ticks on the 15th of every third month,
+ set `tick0` to "2000-01-15" and `dtick` to "M3". To set
+ ticks every 4 years, set `dtick` to "M48"
+ gridcolor
+ Sets the color of the grid lines.
+ griddash
+ Sets the dash style of lines. Set to a dash type string
+ ("solid", "dot", "dash", "longdash", "dashdot", or
+ "longdashdot") or a dash length list in px (eg
+ "5px,10px,2px,2px").
+ gridwidth
+ Sets the width (in px) of the grid lines.
+ nticks
+ Specifies the maximum number of ticks for the
+ particular axis. The actual number of ticks will be
+ chosen automatically to be less than or equal to
+ `nticks`. Has an effect only if `tickmode` is set to
+ "auto".
+ showgrid
+ Determines whether or not grid lines are drawn. If
+ True, the grid lines are drawn at every tick mark.
+ tick0
+ Sets the placement of the first tick on this axis. Use
+ with `dtick`. If the axis `type` is "log", then you
+ must take the log of your starting tick (e.g. to set
+ the starting tick to 100, set the `tick0` to 2) except
+ when `dtick`=*L<f>* (see `dtick` for more info). If the
+ axis `type` is "date", it should be a date string, like
+ date data. If the axis `type` is "category", it should
+ be a number, using the scale where each category is
+ assigned a serial number from zero in the order it
+ appears.
+ tickcolor
+ Sets the tick color.
+ ticklen
+ Sets the tick length (in px).
+ tickmode
+ Sets the tick mode for this axis. If "auto", the number
+ of ticks is set via `nticks`. If "linear", the
+ placement of the ticks is determined by a starting
+ position `tick0` and a tick step `dtick` ("linear" is
+ the default value if `tick0` and `dtick` are provided).
+ If "array", the placement of the ticks is set via
+ `tickvals` and the tick text is `ticktext`. ("array" is
+ the default value if `tickvals` is provided).
+ ticks
+ Determines whether ticks are drawn or not. If "", this
+ axis' ticks are not drawn. If "outside" ("inside"),
+ this axis' are drawn outside (inside) the axis lines.
+ tickvals
+ Sets the values at which ticks on this axis appear.
+ Only has an effect if `tickmode` is set to "array".
+ Used with `ticktext`.
+ tickvalssrc
+ Sets the source reference on Chart Studio Cloud for
+ `tickvals`.
+ tickwidth
+ Sets the tick width (in px).
+
+ Returns
+ -------
+ Minor
+ """
+ super().__init__("minor")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.yaxis.Minor
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.yaxis.Minor`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("dtick", arg, dtick)
+ self._set_property("gridcolor", arg, gridcolor)
+ self._set_property("griddash", arg, griddash)
+ self._set_property("gridwidth", arg, gridwidth)
+ self._set_property("nticks", arg, nticks)
+ self._set_property("showgrid", arg, showgrid)
+ self._set_property("tick0", arg, tick0)
+ self._set_property("tickcolor", arg, tickcolor)
+ self._set_property("ticklen", arg, ticklen)
+ self._set_property("tickmode", arg, tickmode)
+ self._set_property("ticks", arg, ticks)
+ self._set_property("tickvals", arg, tickvals)
+ self._set_property("tickvalssrc", arg, tickvalssrc)
+ self._set_property("tickwidth", arg, tickwidth)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/_rangebreak.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/_rangebreak.py
new file mode 100644
index 0000000..1816985
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/_rangebreak.py
@@ -0,0 +1,330 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Rangebreak(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.yaxis"
+ _path_str = "layout.yaxis.rangebreak"
+ _valid_props = {
+ "bounds",
+ "dvalue",
+ "enabled",
+ "name",
+ "pattern",
+ "templateitemname",
+ "values",
+ }
+
+ @property
+ def bounds(self):
+ """
+ Sets the lower and upper bounds of this axis rangebreak. Can be
+ used with `pattern`.
+
+ The 'bounds' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'bounds[0]' property accepts values of any type
+ (1) The 'bounds[1]' property accepts values of any type
+
+ Returns
+ -------
+ list
+ """
+ return self["bounds"]
+
+ @bounds.setter
+ def bounds(self, val):
+ self["bounds"] = val
+
+ @property
+ def dvalue(self):
+ """
+ Sets the size of each `values` item. The default is one day in
+ milliseconds.
+
+ The 'dvalue' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["dvalue"]
+
+ @dvalue.setter
+ def dvalue(self, val):
+ self["dvalue"] = val
+
+ @property
+ def enabled(self):
+ """
+ Determines whether this axis rangebreak is enabled or disabled.
+ Please note that `rangebreaks` only work for "date" axis type.
+
+ The 'enabled' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["enabled"]
+
+ @enabled.setter
+ def enabled(self, val):
+ self["enabled"] = val
+
+ @property
+ def name(self):
+ """
+ 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.
+
+ The 'name' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["name"]
+
+ @name.setter
+ def name(self, val):
+ self["name"] = val
+
+ @property
+ def pattern(self):
+ """
+ Determines a pattern on the time line that generates breaks. If
+ *day of week* - days of the week in English e.g. 'Sunday' or
+ `sun` (matching is case-insensitive and considers only the
+ first three characters), as well as Sunday-based integers
+ between 0 and 6. If "hour" - hour (24-hour clock) as decimal
+ numbers between 0 and 24. for more info. Examples: - { pattern:
+ 'day of week', bounds: [6, 1] } or simply { bounds: ['sat',
+ 'mon'] } breaks from Saturday to Monday (i.e. skips the
+ weekends). - { pattern: 'hour', bounds: [17, 8] } breaks from
+ 5pm to 8am (i.e. skips non-work hours).
+
+ The 'pattern' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['day of week', 'hour', '']
+
+ Returns
+ -------
+ Any
+ """
+ return self["pattern"]
+
+ @pattern.setter
+ def pattern(self, val):
+ self["pattern"] = val
+
+ @property
+ def templateitemname(self):
+ """
+ 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`.
+
+ The 'templateitemname' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["templateitemname"]
+
+ @templateitemname.setter
+ def templateitemname(self, val):
+ self["templateitemname"] = val
+
+ @property
+ def values(self):
+ """
+ Sets the coordinate values corresponding to the rangebreaks. An
+ alternative to `bounds`. Use `dvalue` to set the size of the
+ values along the axis.
+
+ The 'values' property is an info array that may be specified as:
+ * a list of elements where:
+ The 'values[i]' property accepts values of any type
+
+ Returns
+ -------
+ list
+ """
+ return self["values"]
+
+ @values.setter
+ def values(self, val):
+ self["values"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ bounds
+ Sets the lower and upper bounds of this axis
+ rangebreak. Can be used with `pattern`.
+ dvalue
+ Sets the size of each `values` item. The default is one
+ day in milliseconds.
+ enabled
+ Determines whether this axis rangebreak is enabled or
+ disabled. Please note that `rangebreaks` only work for
+ "date" axis type.
+ 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.
+ pattern
+ Determines a pattern on the time line that generates
+ breaks. If *day of week* - days of the week in English
+ e.g. 'Sunday' or `sun` (matching is case-insensitive
+ and considers only the first three characters), as well
+ as Sunday-based integers between 0 and 6. If "hour" -
+ hour (24-hour clock) as decimal numbers between 0 and
+ 24. for more info. Examples: - { pattern: 'day of
+ week', bounds: [6, 1] } or simply { bounds: ['sat',
+ 'mon'] } breaks from Saturday to Monday (i.e. skips
+ the weekends). - { pattern: 'hour', bounds: [17, 8] }
+ breaks from 5pm to 8am (i.e. skips non-work hours).
+ 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`.
+ values
+ Sets the coordinate values corresponding to the
+ rangebreaks. An alternative to `bounds`. Use `dvalue`
+ to set the size of the values along the axis.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ bounds=None,
+ dvalue=None,
+ enabled=None,
+ name=None,
+ pattern=None,
+ templateitemname=None,
+ values=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Rangebreak object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.yaxis.Rangebreak`
+ bounds
+ Sets the lower and upper bounds of this axis
+ rangebreak. Can be used with `pattern`.
+ dvalue
+ Sets the size of each `values` item. The default is one
+ day in milliseconds.
+ enabled
+ Determines whether this axis rangebreak is enabled or
+ disabled. Please note that `rangebreaks` only work for
+ "date" axis type.
+ 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.
+ pattern
+ Determines a pattern on the time line that generates
+ breaks. If *day of week* - days of the week in English
+ e.g. 'Sunday' or `sun` (matching is case-insensitive
+ and considers only the first three characters), as well
+ as Sunday-based integers between 0 and 6. If "hour" -
+ hour (24-hour clock) as decimal numbers between 0 and
+ 24. for more info. Examples: - { pattern: 'day of
+ week', bounds: [6, 1] } or simply { bounds: ['sat',
+ 'mon'] } breaks from Saturday to Monday (i.e. skips
+ the weekends). - { pattern: 'hour', bounds: [17, 8] }
+ breaks from 5pm to 8am (i.e. skips non-work hours).
+ 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`.
+ values
+ Sets the coordinate values corresponding to the
+ rangebreaks. An alternative to `bounds`. Use `dvalue`
+ to set the size of the values along the axis.
+
+ Returns
+ -------
+ Rangebreak
+ """
+ super().__init__("rangebreaks")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.yaxis.Rangebreak
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.yaxis.Rangebreak`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("bounds", arg, bounds)
+ self._set_property("dvalue", arg, dvalue)
+ self._set_property("enabled", arg, enabled)
+ self._set_property("name", arg, name)
+ self._set_property("pattern", arg, pattern)
+ self._set_property("templateitemname", arg, templateitemname)
+ self._set_property("values", arg, values)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/_tickfont.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/_tickfont.py
new file mode 100644
index 0000000..7a57384
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/_tickfont.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Tickfont(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.yaxis"
+ _path_str = "layout.yaxis.tickfont"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Tickfont object
+
+ Sets the tick font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.yaxis.Tickfont`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Tickfont
+ """
+ super().__init__("tickfont")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.yaxis.Tickfont
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.yaxis.Tickfont`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/_tickformatstop.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/_tickformatstop.py
new file mode 100644
index 0000000..40314fd
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/_tickformatstop.py
@@ -0,0 +1,241 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Tickformatstop(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.yaxis"
+ _path_str = "layout.yaxis.tickformatstop"
+ _valid_props = {"dtickrange", "enabled", "name", "templateitemname", "value"}
+
+ @property
+ def dtickrange(self):
+ """
+ range [*min*, *max*], where "min", "max" - dtick values which
+ describe some zoom level, it is possible to omit "min" or "max"
+ value by passing "null"
+
+ The 'dtickrange' property is an info array that may be specified as:
+
+ * a list or tuple of 2 elements where:
+ (0) The 'dtickrange[0]' property accepts values of any type
+ (1) The 'dtickrange[1]' property accepts values of any type
+
+ Returns
+ -------
+ list
+ """
+ return self["dtickrange"]
+
+ @dtickrange.setter
+ def dtickrange(self, val):
+ self["dtickrange"] = val
+
+ @property
+ def enabled(self):
+ """
+ Determines whether or not this stop is used. If `false`, this
+ stop is ignored even within its `dtickrange`.
+
+ The 'enabled' property must be specified as a bool
+ (either True, or False)
+
+ Returns
+ -------
+ bool
+ """
+ return self["enabled"]
+
+ @enabled.setter
+ def enabled(self, val):
+ self["enabled"] = val
+
+ @property
+ def name(self):
+ """
+ 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.
+
+ The 'name' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["name"]
+
+ @name.setter
+ def name(self, val):
+ self["name"] = val
+
+ @property
+ def templateitemname(self):
+ """
+ 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`.
+
+ The 'templateitemname' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["templateitemname"]
+
+ @templateitemname.setter
+ def templateitemname(self, val):
+ self["templateitemname"] = val
+
+ @property
+ def value(self):
+ """
+ string - dtickformat for described zoom level, the same as
+ "tickformat"
+
+ The 'value' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["value"]
+
+ @value.setter
+ def value(self, val):
+ self["value"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ dtickrange
+ range [*min*, *max*], where "min", "max" - dtick values
+ which describe some zoom level, it is possible to omit
+ "min" or "max" value by passing "null"
+ enabled
+ Determines whether or not this stop is used. If
+ `false`, this stop is ignored even within its
+ `dtickrange`.
+ 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`.
+ value
+ string - dtickformat for described zoom level, the same
+ as "tickformat"
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ dtickrange=None,
+ enabled=None,
+ name=None,
+ templateitemname=None,
+ value=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Tickformatstop object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.yaxis.Tickformatstop`
+ dtickrange
+ range [*min*, *max*], where "min", "max" - dtick values
+ which describe some zoom level, it is possible to omit
+ "min" or "max" value by passing "null"
+ enabled
+ Determines whether or not this stop is used. If
+ `false`, this stop is ignored even within its
+ `dtickrange`.
+ 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`.
+ value
+ string - dtickformat for described zoom level, the same
+ as "tickformat"
+
+ Returns
+ -------
+ Tickformatstop
+ """
+ super().__init__("tickformatstops")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.yaxis.Tickformatstop
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.yaxis.Tickformatstop`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("dtickrange", arg, dtickrange)
+ self._set_property("enabled", arg, enabled)
+ self._set_property("name", arg, name)
+ self._set_property("templateitemname", arg, templateitemname)
+ self._set_property("value", arg, value)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/_title.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/_title.py
new file mode 100644
index 0000000..4bb8d4f
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/_title.py
@@ -0,0 +1,150 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Title(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.yaxis"
+ _path_str = "layout.yaxis.title"
+ _valid_props = {"font", "standoff", "text"}
+
+ @property
+ def font(self):
+ """
+ Sets this axis' title font.
+
+ The 'font' property is an instance of Font
+ that may be specified as:
+ - An instance of :class:`plotly.graph_objs.layout.yaxis.title.Font`
+ - A dict of string/value properties that will be passed
+ to the Font constructor
+
+ Returns
+ -------
+ plotly.graph_objs.layout.yaxis.title.Font
+ """
+ return self["font"]
+
+ @font.setter
+ def font(self, val):
+ self["font"] = val
+
+ @property
+ def standoff(self):
+ """
+ Sets the standoff distance (in px) between the axis labels and
+ the title text The default value is a function of the axis tick
+ labels, the title `font.size` and the axis `linewidth`. Note
+ that the axis title position is always constrained within the
+ margins, so the actual standoff distance is always less than
+ the set or default value. By setting `standoff` and turning on
+ `automargin`, plotly.js will push the margins to fit the axis
+ title at given standoff distance.
+
+ The 'standoff' property is a number and may be specified as:
+ - An int or float in the interval [0, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["standoff"]
+
+ @standoff.setter
+ def standoff(self, val):
+ self["standoff"] = val
+
+ @property
+ def text(self):
+ """
+ Sets the title of this axis.
+
+ 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
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ font
+ Sets this axis' title font.
+ standoff
+ Sets the standoff distance (in px) between the axis
+ labels and the title text The default value is a
+ function of the axis tick labels, the title `font.size`
+ and the axis `linewidth`. Note that the axis title
+ position is always constrained within the margins, so
+ the actual standoff distance is always less than the
+ set or default value. By setting `standoff` and turning
+ on `automargin`, plotly.js will push the margins to fit
+ the axis title at given standoff distance.
+ text
+ Sets the title of this axis.
+ """
+
+ def __init__(self, arg=None, font=None, standoff=None, text=None, **kwargs):
+ """
+ Construct a new Title object
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.yaxis.Title`
+ font
+ Sets this axis' title font.
+ standoff
+ Sets the standoff distance (in px) between the axis
+ labels and the title text The default value is a
+ function of the axis tick labels, the title `font.size`
+ and the axis `linewidth`. Note that the axis title
+ position is always constrained within the margins, so
+ the actual standoff distance is always less than the
+ set or default value. By setting `standoff` and turning
+ on `automargin`, plotly.js will push the margins to fit
+ the axis title at given standoff distance.
+ text
+ Sets the title of this axis.
+
+ Returns
+ -------
+ Title
+ """
+ super().__init__("title")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.yaxis.Title
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.yaxis.Title`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("font", arg, font)
+ self._set_property("standoff", arg, standoff)
+ self._set_property("text", arg, text)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/title/__init__.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/title/__init__.py
new file mode 100644
index 0000000..56f600d
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/title/__init__.py
@@ -0,0 +1,9 @@
+import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._font import Font
+else:
+ from _plotly_utils.importers import relative_import
+
+ __all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"])
diff --git a/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/title/_font.py b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/title/_font.py
new file mode 100644
index 0000000..b04cd98
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/plotly/graph_objs/layout/yaxis/title/_font.py
@@ -0,0 +1,334 @@
+# --- THIS FILE IS AUTO-GENERATED ---
+# Modifications will be overwitten the next time code generation run.
+
+from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
+import copy as _copy
+
+
+class Font(_BaseLayoutHierarchyType):
+ _parent_path_str = "layout.yaxis.title"
+ _path_str = "layout.yaxis.title.font"
+ _valid_props = {
+ "color",
+ "family",
+ "lineposition",
+ "shadow",
+ "size",
+ "style",
+ "textcase",
+ "variant",
+ "weight",
+ }
+
+ @property
+ def color(self):
+ """
+ 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: see https://plotly.com/python/css-colors/ for a list
+
+ Returns
+ -------
+ str
+ """
+ return self["color"]
+
+ @color.setter
+ def color(self, val):
+ self["color"] = val
+
+ @property
+ def family(self):
+ """
+ HTML font family - the typeface that will be applied by the web
+ browser. The web browser can only apply a font if it is
+ available on the system where it runs. Provide multiple font
+ families, separated by commas, to indicate the order in which
+ to apply fonts if they aren't available.
+
+ The 'family' property is a string and must be specified as:
+ - A non-empty string
+
+ Returns
+ -------
+ str
+ """
+ return self["family"]
+
+ @family.setter
+ def family(self, val):
+ self["family"] = val
+
+ @property
+ def lineposition(self):
+ """
+ Sets the kind of decoration line(s) with text, such as an
+ "under", "over" or "through" as well as combinations e.g.
+ "under+over", etc.
+
+ The 'lineposition' property is a flaglist and may be specified
+ as a string containing:
+ - Any combination of ['under', 'over', 'through'] joined with '+' characters
+ (e.g. 'under+over')
+ OR exactly one of ['none'] (e.g. 'none')
+
+ Returns
+ -------
+ Any
+ """
+ return self["lineposition"]
+
+ @lineposition.setter
+ def lineposition(self, val):
+ self["lineposition"] = val
+
+ @property
+ def shadow(self):
+ """
+ Sets the shape and color of the shadow behind text. "auto"
+ places minimal shadow and applies contrast text font color. See
+ https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow
+ for additional options.
+
+ The 'shadow' property is a string and must be specified as:
+ - A string
+ - A number that will be converted to a string
+
+ Returns
+ -------
+ str
+ """
+ return self["shadow"]
+
+ @shadow.setter
+ def shadow(self, val):
+ self["shadow"] = val
+
+ @property
+ def size(self):
+ """
+ The 'size' property is a number and may be specified as:
+ - An int or float in the interval [1, inf]
+
+ Returns
+ -------
+ int|float
+ """
+ return self["size"]
+
+ @size.setter
+ def size(self, val):
+ self["size"] = val
+
+ @property
+ def style(self):
+ """
+ Sets whether a font should be styled with a normal or italic
+ face from its family.
+
+ The 'style' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'italic']
+
+ Returns
+ -------
+ Any
+ """
+ return self["style"]
+
+ @style.setter
+ def style(self, val):
+ self["style"] = val
+
+ @property
+ def textcase(self):
+ """
+ Sets capitalization of text. It can be used to make text appear
+ in all-uppercase or all-lowercase, or with each word
+ capitalized.
+
+ The 'textcase' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'word caps', 'upper', 'lower']
+
+ Returns
+ -------
+ Any
+ """
+ return self["textcase"]
+
+ @textcase.setter
+ def textcase(self, val):
+ self["textcase"] = val
+
+ @property
+ def variant(self):
+ """
+ Sets the variant of the font.
+
+ The 'variant' property is an enumeration that may be specified as:
+ - One of the following enumeration values:
+ ['normal', 'small-caps', 'all-small-caps',
+ 'all-petite-caps', 'petite-caps', 'unicase']
+
+ Returns
+ -------
+ Any
+ """
+ return self["variant"]
+
+ @variant.setter
+ def variant(self, val):
+ self["variant"] = val
+
+ @property
+ def weight(self):
+ """
+ Sets the weight (or boldness) of the font.
+
+ The 'weight' property is a integer and may be specified as:
+ - An int (or float that will be cast to an int)
+ in the interval [1, 1000]
+ OR exactly one of ['normal', 'bold'] (e.g. 'bold')
+
+ Returns
+ -------
+ int
+ """
+ return self["weight"]
+
+ @weight.setter
+ def weight(self, val):
+ self["weight"] = val
+
+ @property
+ def _prop_descriptions(self):
+ return """\
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+ """
+
+ def __init__(
+ self,
+ arg=None,
+ color=None,
+ family=None,
+ lineposition=None,
+ shadow=None,
+ size=None,
+ style=None,
+ textcase=None,
+ variant=None,
+ weight=None,
+ **kwargs,
+ ):
+ """
+ Construct a new Font object
+
+ Sets this axis' title font.
+
+ Parameters
+ ----------
+ arg
+ dict of properties compatible with this constructor or
+ an instance of
+ :class:`plotly.graph_objs.layout.yaxis.title.Font`
+ color
+
+ family
+ HTML font family - the typeface that will be applied by
+ the web browser. The web browser can only apply a font
+ if it is available on the system where it runs. Provide
+ multiple font families, separated by commas, to
+ indicate the order in which to apply fonts if they
+ aren't available.
+ lineposition
+ Sets the kind of decoration line(s) with text, such as
+ an "under", "over" or "through" as well as combinations
+ e.g. "under+over", etc.
+ shadow
+ Sets the shape and color of the shadow behind text.
+ "auto" places minimal shadow and applies contrast text
+ font color. See https://developer.mozilla.org/en-
+ US/docs/Web/CSS/text-shadow for additional options.
+ size
+
+ style
+ Sets whether a font should be styled with a normal or
+ italic face from its family.
+ textcase
+ Sets capitalization of text. It can be used to make
+ text appear in all-uppercase or all-lowercase, or with
+ each word capitalized.
+ variant
+ Sets the variant of the font.
+ weight
+ Sets the weight (or boldness) of the font.
+
+ Returns
+ -------
+ Font
+ """
+ super().__init__("font")
+ if "_parent" in kwargs:
+ self._parent = kwargs["_parent"]
+ return
+
+ 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.yaxis.title.Font
+constructor must be a dict or
+an instance of :class:`plotly.graph_objs.layout.yaxis.title.Font`""")
+
+ self._skip_invalid = kwargs.pop("skip_invalid", False)
+ self._validate = kwargs.pop("_validate", True)
+
+ self._set_property("color", arg, color)
+ self._set_property("family", arg, family)
+ self._set_property("lineposition", arg, lineposition)
+ self._set_property("shadow", arg, shadow)
+ self._set_property("size", arg, size)
+ self._set_property("style", arg, style)
+ self._set_property("textcase", arg, textcase)
+ self._set_property("variant", arg, variant)
+ self._set_property("weight", arg, weight)
+ self._process_kwargs(**dict(arg, **kwargs))
+ self._skip_invalid = False