diff --git a/.circleci/config.yml b/.circleci/config.yml index 85df3ccb7b2..d762d63f6d3 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -231,7 +231,7 @@ jobs: command: .circleci/test.sh mathjax-firefox82+ make-baselines-virtual-webgl: - parallelism: 4 + parallelism: 8 docker: - image: circleci/python:3.8.9 working_directory: ~/plotly.js @@ -268,7 +268,7 @@ jobs: - plotly.js make-baselines: - parallelism: 4 + parallelism: 12 docker: - image: circleci/python:3.8.9 working_directory: ~/plotly.js @@ -287,7 +287,7 @@ jobs: - plotly.js make-baselines-b64: - parallelism: 4 + parallelism: 12 docker: - image: circleci/python:3.8.9 working_directory: ~/plotly.js @@ -486,12 +486,12 @@ jobs: - run: name: Test plotly.min.js import using requirejs command: npm run test-requirejs - - run: - name: Test plotly bundles against es6 - command: npm run no-es6-dist - - run: - name: Display function constructors in all bundles - command: npm run no-new-func + # - run: + # name: Test plotly bundles against es6 + # command: npm run no-es6-dist + # - run: + # name: Display function constructors in all bundles + # command: npm run no-new-func test-stackgl-bundle: docker: diff --git a/.circleci/test.sh b/.circleci/test.sh index 145396c6c6d..e22f3cb6384 100755 --- a/.circleci/test.sh +++ b/.circleci/test.sh @@ -95,7 +95,7 @@ case $1 in make-baselines-virtual-webgl) SUITE=$({\ find $ROOT/test/image/mocks/gl* -type f -printf "%f\n"; \ - find $ROOT/test/image/mocks/mapbox* -type f -printf "%f\n"; \ + find $ROOT/test/image/mocks/map* -type f -printf "%f\n"; \ } | sed 's/\.json$//1' | circleci tests split) python3 test/image/make_baseline.py virtual-webgl $SUITE || EXIT_STATE=$? exit $EXIT_STATE diff --git a/lib/choroplethmap.js b/lib/choroplethmap.js new file mode 100644 index 00000000000..4ab0df5ec5c --- /dev/null +++ b/lib/choroplethmap.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = require('../src/traces/choroplethmap'); diff --git a/lib/densitymap.js b/lib/densitymap.js new file mode 100644 index 00000000000..e7a47e5c4f3 --- /dev/null +++ b/lib/densitymap.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = require('../src/traces/densitymap'); diff --git a/lib/index-map.js b/lib/index-map.js new file mode 100644 index 00000000000..422aec7f104 --- /dev/null +++ b/lib/index-map.js @@ -0,0 +1,21 @@ +'use strict'; + +var Plotly = require('./core'); + +Plotly.register([ + // traces + require('./scattermap'), + require('./choroplethmap'), + require('./densitymap'), + + // transforms + require('./aggregate'), + require('./filter'), + require('./groupby'), + require('./sort'), + + // components + require('./calendars'), +]); + +module.exports = Plotly; diff --git a/lib/index-strict.js b/lib/index-strict.js index e73072ef9c8..97f4fe57440 100644 --- a/lib/index-strict.js +++ b/lib/index-strict.js @@ -39,6 +39,9 @@ Plotly.register([ require('./scattermapbox'), require('./choroplethmapbox'), require('./densitymapbox'), + require('./scattermap'), + require('./choroplethmap'), + require('./densitymap'), require('./sankey'), require('./indicator'), require('./table'), diff --git a/lib/index.js b/lib/index.js index d702fd1ba4d..18fc6ed35b5 100644 --- a/lib/index.js +++ b/lib/index.js @@ -39,6 +39,9 @@ Plotly.register([ require('./scattermapbox'), require('./choroplethmapbox'), require('./densitymapbox'), + require('./scattermap'), + require('./choroplethmap'), + require('./densitymap'), require('./sankey'), require('./indicator'), require('./table'), diff --git a/lib/scattermap.js b/lib/scattermap.js new file mode 100644 index 00000000000..b0f9c6a13d6 --- /dev/null +++ b/lib/scattermap.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = require('../src/traces/scattermap'); diff --git a/package-lock.json b/package-lock.json index adf95db392f..b6c18f83eba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -37,6 +37,7 @@ "has-hover": "^1.0.1", "has-passive-events": "^1.0.0", "is-mobile": "^4.0.0", + "maplibre-gl": "^4.5.0", "mouse-change": "^1.4.0", "mouse-event-offset": "^3.0.2", "mouse-wheel": "^1.2.0", @@ -2230,6 +2231,31 @@ "node": ">=6.0.0" } }, + "node_modules/@maplibre/maplibre-gl-style-spec": { + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-20.3.0.tgz", + "integrity": "sha512-eSiQ3E5LUSxAOY9ABXGyfNhout2iEa6mUxKeaQ9nJ8NL1NuaQYU7zKqzx/LEYcXe1neT4uYAgM1wYZj3fTSXtA==", + "dependencies": { + "@mapbox/jsonlint-lines-primitives": "~2.0.2", + "@mapbox/unitbezier": "^0.0.1", + "json-stringify-pretty-compact": "^4.0.0", + "minimist": "^1.2.8", + "quickselect": "^2.0.0", + "rw": "^1.3.3", + "sort-object": "^3.0.3", + "tinyqueue": "^2.0.3" + }, + "bin": { + "gl-style-format": "dist/gl-style-format.mjs", + "gl-style-migrate": "dist/gl-style-migrate.mjs", + "gl-style-validate": "dist/gl-style-validate.mjs" + } + }, + "node_modules/@maplibre/maplibre-gl-style-spec/node_modules/@mapbox/unitbezier": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", + "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==" + }, "node_modules/@nicolo-ribaudo/semver-v6": { "version": "6.3.3", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz", @@ -2478,6 +2504,19 @@ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", "dev": true }, + "node_modules/@types/geojson": { + "version": "7946.0.14", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz", + "integrity": "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==" + }, + "node_modules/@types/geojson-vt": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@types/geojson-vt/-/geojson-vt-3.2.5.tgz", + "integrity": "sha512-qDO7wqtprzlpe8FfQ//ClPV9xiuoh2nkIgiouIptON9w5jvD/fA4szvP9GBlDVdJ5dldAl0kX/sy3URbWwLx0g==", + "dependencies": { + "@types/geojson": "*" + } + }, "node_modules/@types/json-schema": { "version": "7.0.11", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", @@ -2490,6 +2529,11 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, + "node_modules/@types/junit-report-builder": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/junit-report-builder/-/junit-report-builder-3.0.2.tgz", + "integrity": "sha512-R5M+SYhMbwBeQcNXYWNCZkl09vkVfAtcPIaCGdzIkkbeaTrVbGQ7HVgi4s+EmM/M1K4ZuWQH0jGcvMvNePfxYA==" + }, "node_modules/@types/karma": { "version": "1.7.8", "resolved": "https://registry.npmjs.org/@types/karma/-/karma-1.7.8.tgz", @@ -2500,12 +2544,40 @@ "@types/node": "*" } }, + "node_modules/@types/mapbox__point-geometry": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@types/mapbox__point-geometry/-/mapbox__point-geometry-0.1.4.tgz", + "integrity": "sha512-mUWlSxAmYLfwnRBmgYV86tgYmMIICX4kza8YnE/eIlywGe2XoOxlpVnXWwir92xRLjwyarqwpu2EJKD2pk0IUA==" + }, + "node_modules/@types/mapbox__vector-tile": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@types/mapbox__vector-tile/-/mapbox__vector-tile-1.3.4.tgz", + "integrity": "sha512-bpd8dRn9pr6xKvuEBQup8pwQfD4VUyqO/2deGjfpe6AwC8YRlyEipvefyRJUSiCJTZuCb8Pl1ciVV5ekqJ96Bg==", + "dependencies": { + "@types/geojson": "*", + "@types/mapbox__point-geometry": "*", + "@types/pbf": "*" + } + }, "node_modules/@types/node": { "version": "14.11.2", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.11.2.tgz", "integrity": "sha512-jiE3QIxJ8JLNcb1Ps6rDbysDhN4xa8DJJvuC9prr6w+1tIh+QAbYyNF3tyiZNLDBIuBCf4KEcV2UvQm/V60xfA==", "dev": true }, + "node_modules/@types/pbf": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/pbf/-/pbf-3.0.5.tgz", + "integrity": "sha512-j3pOPiEcWZ34R6a6mN07mUkM4o4Lwf6hPNt8eilOeZhTFbxFXmKhvXl9Y28jotFPaI1bpPDJsbCprUoNke6OrA==" + }, + "node_modules/@types/supercluster": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/supercluster/-/supercluster-7.1.3.tgz", + "integrity": "sha512-Z0pOY34GDFl3Q6hUFYf3HkTwKEE02e7QgtJppBt+beEAxnyOpJua+voGFvxINBHa06GwLFFym7gRPY2SiKIfIA==", + "dependencies": { + "@types/geojson": "*" + } + }, "node_modules/@typescript-eslint/types": { "version": "5.54.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.54.1.tgz", @@ -3073,6 +3145,14 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/array-bounds": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-bounds/-/array-bounds-1.0.1.tgz", @@ -3156,6 +3236,14 @@ "util": "^0.12.0" } }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/ast-module-types": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-3.0.0.tgz", @@ -3727,6 +3815,23 @@ "node": ">= 0.8" } }, + "node_modules/bytewise": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/bytewise/-/bytewise-1.1.0.tgz", + "integrity": "sha512-rHuuseJ9iQ0na6UDhnrRVDh8YnWVlU6xM3VH6q/+yHDeUH2zIhUzP+2/h3LIrhLDBtTqzWpE3p3tP/boefskKQ==", + "dependencies": { + "bytewise-core": "^1.2.2", + "typewise": "^1.0.3" + } + }, + "node_modules/bytewise-core": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bytewise-core/-/bytewise-core-1.2.3.tgz", + "integrity": "sha512-nZD//kc78OOxeYtRlVk8/zXqTB4gf/nlguL1ggWA8FuchMyOxcyHR4QPQZMUmA7czC+YnaBrPUCubqAWe50DaA==", + "dependencies": { + "typewise-core": "^1.2" + } + }, "node_modules/call-bind": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", @@ -5349,9 +5454,9 @@ } }, "node_modules/earcut": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.2.tgz", - "integrity": "sha512-eZoZPPJcUHnfRZ0PjLvx2qBordSiO8ofC3vt+qACLM95u+4DovnbYNpQtJh0DNsWj8RnxrQytD4WA8gj5cRIaQ==" + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", + "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==" }, "node_modules/ecstatic": { "version": "4.1.4", @@ -6048,6 +6153,17 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/extra-iterable": { "version": "2.5.22", "resolved": "https://registry.npmjs.org/extra-iterable/-/extra-iterable-2.5.22.tgz", @@ -6715,15 +6831,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/gl-mat4": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gl-mat4/-/gl-mat4-1.2.0.tgz", "integrity": "sha512-sT5C0pwB1/e9G9AvAoLsoaJtbMGjfd/jfxo8jMCKqYYEnjZuFvqV5rehqar0538EmssjdDeiEWnKyBSTw7quoA==" }, "node_modules/gl-matrix": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.3.0.tgz", - "integrity": "sha512-COb7LDz+SXaHtl/h4LeaFcNdJdAQSDeVqjiIihSXNrkWObZLhDI4hIkZC11Aeqp7bcE72clzB0BnDXr2SmslRA==" + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", + "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==" }, "node_modules/gl-text": { "version": "1.4.0", @@ -6801,6 +6925,19 @@ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/globals": { "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", @@ -7536,8 +7673,7 @@ "node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "node_modules/internal-slot": { "version": "1.0.5", @@ -7702,6 +7838,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -7854,7 +7998,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, "dependencies": { "isobject": "^3.0.1" }, @@ -8068,14 +8211,12 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -8271,6 +8412,11 @@ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, + "node_modules/json-stringify-pretty-compact": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-4.0.0.tgz", + "integrity": "sha512-3CNZ2DnrpByG9Nqj6Xo8vqbjT4F6N+tb4Gb28ESAZjYZ5yqvmc56J+/kuIwkaAMOyblTQhUW7PxMkUb8Q36N3Q==" + }, "node_modules/json5": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", @@ -8506,7 +8652,6 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -8887,6 +9032,80 @@ "node": ">=6.4.0" } }, + "node_modules/maplibre-gl": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-4.5.0.tgz", + "integrity": "sha512-qOS1hn4d/pn2i0uva4S5Oz+fACzTkgBKq+NpwT/Tqzi4MSyzcWNtDELzLUSgWqHfNIkGCl5CZ/w7dtis+t4RCw==", + "dependencies": { + "@mapbox/geojson-rewind": "^0.5.2", + "@mapbox/jsonlint-lines-primitives": "^2.0.2", + "@mapbox/point-geometry": "^0.1.0", + "@mapbox/tiny-sdf": "^2.0.6", + "@mapbox/unitbezier": "^0.0.1", + "@mapbox/vector-tile": "^1.3.1", + "@mapbox/whoots-js": "^3.1.0", + "@maplibre/maplibre-gl-style-spec": "^20.3.0", + "@types/geojson": "^7946.0.14", + "@types/geojson-vt": "3.2.5", + "@types/junit-report-builder": "^3.0.2", + "@types/mapbox__point-geometry": "^0.1.4", + "@types/mapbox__vector-tile": "^1.3.4", + "@types/pbf": "^3.0.5", + "@types/supercluster": "^7.1.3", + "earcut": "^2.2.4", + "geojson-vt": "^4.0.2", + "gl-matrix": "^3.4.3", + "global-prefix": "^3.0.0", + "kdbush": "^4.0.2", + "murmurhash-js": "^1.0.0", + "pbf": "^3.2.1", + "potpack": "^2.0.0", + "quickselect": "^2.0.0", + "supercluster": "^8.0.1", + "tinyqueue": "^2.0.3", + "vt-pbf": "^3.1.3" + }, + "engines": { + "node": ">=16.14.0", + "npm": ">=8.1.0" + }, + "funding": { + "url": "https://github.com/maplibre/maplibre-gl-js?sponsor=1" + } + }, + "node_modules/maplibre-gl/node_modules/@mapbox/tiny-sdf": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.6.tgz", + "integrity": "sha512-qMqa27TLw+ZQz5Jk+RcwZGH7BQf5G/TrutJhspsca/3SHwmgKQ1iq+d3Jxz5oysPVYTGP6aXxCo5Lk9Er6YBAA==" + }, + "node_modules/maplibre-gl/node_modules/@mapbox/unitbezier": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", + "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==" + }, + "node_modules/maplibre-gl/node_modules/geojson-vt": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-4.0.2.tgz", + "integrity": "sha512-AV9ROqlNqoZEIJGfm1ncNjEXfkz2hdFlZf0qkVfmkwdKa8vj7H16YUOT81rJw1rdFhyEDlN2Tds91p/glzbl5A==" + }, + "node_modules/maplibre-gl/node_modules/kdbush": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz", + "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==" + }, + "node_modules/maplibre-gl/node_modules/potpack": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/potpack/-/potpack-2.0.0.tgz", + "integrity": "sha512-Q+/tYsFU9r7xoOJ+y/ZTtdVQwTWfzjbiXBDMM/JKUux3+QPP02iUuIoeBQ+Ot6oEDlC+/PGjB/5A3K7KKb7hcw==" + }, + "node_modules/maplibre-gl/node_modules/supercluster": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz", + "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==", + "dependencies": { + "kdbush": "^4.0.2" + } + }, "node_modules/math-log2": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/math-log2/-/math-log2-1.0.1.tgz", @@ -9122,9 +9341,12 @@ } }, "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/minipass": { "version": "3.1.6", @@ -11432,6 +11654,20 @@ "node": ">= 0.4" } }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -11610,6 +11846,38 @@ "node": ">=10.0.0" } }, + "node_modules/sort-asc": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.2.0.tgz", + "integrity": "sha512-umMGhjPeHAI6YjABoSTrFp2zaBtXBej1a0yKkuMUyjjqu6FJsTF+JYwCswWDg+zJfk/5npWUUbd33HH/WLzpaA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sort-desc": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.2.0.tgz", + "integrity": "sha512-NqZqyvL4VPW+RAxxXnB8gvE1kyikh8+pR+T+CXLksVRN9eiQqkQlPwqWYU0mF9Jm7UnctShlxLyAt1CaBOTL1w==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sort-object": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sort-object/-/sort-object-3.0.3.tgz", + "integrity": "sha512-nK7WOY8jik6zaG9CRwZTaD5O7ETWDLZYMM12pqY8htll+7dYeqGfEUPcUBHOpSJg2vJOrvFIY2Dl5cX2ih1hAQ==", + "dependencies": { + "bytewise": "^1.1.0", + "get-value": "^2.0.2", + "is-extendable": "^0.1.1", + "sort-asc": "^0.2.0", + "sort-desc": "^0.2.0", + "union-value": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -11676,6 +11944,40 @@ "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", "dev": true }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/stack-trace": { "version": "0.0.9", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", @@ -12482,6 +12784,19 @@ "node": ">=4.2.0" } }, + "node_modules/typewise": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typewise/-/typewise-1.0.3.tgz", + "integrity": "sha512-aXofE06xGhaQSPzt8hlTY+/YWQhm9P0jYUp1f2XtmW/3Bk0qzXcyFWAtPoo2uTGQj1ZwbDuSyuxicq+aDo8lCQ==", + "dependencies": { + "typewise-core": "^1.2.0" + } + }, + "node_modules/typewise-core": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/typewise-core/-/typewise-core-1.2.0.tgz", + "integrity": "sha512-2SCC/WLzj2SbUwzFOzqMCkz5amXLlxtJqDKTICqg30x+2DZxcfZN2MvQZmGfXWKNWaKK9pBPsvkcwv8bF/gxKg==" + }, "node_modules/ua-parser-js": { "version": "0.7.33", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.33.tgz", @@ -12541,6 +12856,20 @@ "node": ">=4" } }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/uniq": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", @@ -12724,13 +13053,13 @@ } }, "node_modules/vt-pbf": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.1.tgz", - "integrity": "sha512-pHjWdrIoxurpmTcbfBWXaPwSmtPAHS105253P1qyEfSTV2HJddqjM+kIHquaT/L6lVJIk9ltTGc0IxR/G47hYA==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.3.tgz", + "integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==", "dependencies": { "@mapbox/point-geometry": "0.1.0", "@mapbox/vector-tile": "^1.3.1", - "pbf": "^3.0.5" + "pbf": "^3.2.1" } }, "node_modules/w3c-hr-time": { @@ -13014,7 +13343,6 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -14705,6 +15033,28 @@ "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==" }, + "@maplibre/maplibre-gl-style-spec": { + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-20.3.0.tgz", + "integrity": "sha512-eSiQ3E5LUSxAOY9ABXGyfNhout2iEa6mUxKeaQ9nJ8NL1NuaQYU7zKqzx/LEYcXe1neT4uYAgM1wYZj3fTSXtA==", + "requires": { + "@mapbox/jsonlint-lines-primitives": "~2.0.2", + "@mapbox/unitbezier": "^0.0.1", + "json-stringify-pretty-compact": "^4.0.0", + "minimist": "^1.2.8", + "quickselect": "^2.0.0", + "rw": "^1.3.3", + "sort-object": "^3.0.3", + "tinyqueue": "^2.0.3" + }, + "dependencies": { + "@mapbox/unitbezier": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", + "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==" + } + } + }, "@nicolo-ribaudo/semver-v6": { "version": "6.3.3", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz", @@ -14939,6 +15289,19 @@ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", "dev": true }, + "@types/geojson": { + "version": "7946.0.14", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz", + "integrity": "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==" + }, + "@types/geojson-vt": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@types/geojson-vt/-/geojson-vt-3.2.5.tgz", + "integrity": "sha512-qDO7wqtprzlpe8FfQ//ClPV9xiuoh2nkIgiouIptON9w5jvD/fA4szvP9GBlDVdJ5dldAl0kX/sy3URbWwLx0g==", + "requires": { + "@types/geojson": "*" + } + }, "@types/json-schema": { "version": "7.0.11", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", @@ -14951,6 +15314,11 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, + "@types/junit-report-builder": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/junit-report-builder/-/junit-report-builder-3.0.2.tgz", + "integrity": "sha512-R5M+SYhMbwBeQcNXYWNCZkl09vkVfAtcPIaCGdzIkkbeaTrVbGQ7HVgi4s+EmM/M1K4ZuWQH0jGcvMvNePfxYA==" + }, "@types/karma": { "version": "1.7.8", "resolved": "https://registry.npmjs.org/@types/karma/-/karma-1.7.8.tgz", @@ -14961,12 +15329,40 @@ "@types/node": "*" } }, + "@types/mapbox__point-geometry": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@types/mapbox__point-geometry/-/mapbox__point-geometry-0.1.4.tgz", + "integrity": "sha512-mUWlSxAmYLfwnRBmgYV86tgYmMIICX4kza8YnE/eIlywGe2XoOxlpVnXWwir92xRLjwyarqwpu2EJKD2pk0IUA==" + }, + "@types/mapbox__vector-tile": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@types/mapbox__vector-tile/-/mapbox__vector-tile-1.3.4.tgz", + "integrity": "sha512-bpd8dRn9pr6xKvuEBQup8pwQfD4VUyqO/2deGjfpe6AwC8YRlyEipvefyRJUSiCJTZuCb8Pl1ciVV5ekqJ96Bg==", + "requires": { + "@types/geojson": "*", + "@types/mapbox__point-geometry": "*", + "@types/pbf": "*" + } + }, "@types/node": { "version": "14.11.2", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.11.2.tgz", "integrity": "sha512-jiE3QIxJ8JLNcb1Ps6rDbysDhN4xa8DJJvuC9prr6w+1tIh+QAbYyNF3tyiZNLDBIuBCf4KEcV2UvQm/V60xfA==", "dev": true }, + "@types/pbf": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/pbf/-/pbf-3.0.5.tgz", + "integrity": "sha512-j3pOPiEcWZ34R6a6mN07mUkM4o4Lwf6hPNt8eilOeZhTFbxFXmKhvXl9Y28jotFPaI1bpPDJsbCprUoNke6OrA==" + }, + "@types/supercluster": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/supercluster/-/supercluster-7.1.3.tgz", + "integrity": "sha512-Z0pOY34GDFl3Q6hUFYf3HkTwKEE02e7QgtJppBt+beEAxnyOpJua+voGFvxINBHa06GwLFFym7gRPY2SiKIfIA==", + "requires": { + "@types/geojson": "*" + } + }, "@typescript-eslint/types": { "version": "5.54.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.54.1.tgz", @@ -15423,6 +15819,11 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==" + }, "array-bounds": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-bounds/-/array-bounds-1.0.1.tgz", @@ -15499,6 +15900,11 @@ "util": "^0.12.0" } }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==" + }, "ast-module-types": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-3.0.0.tgz", @@ -15966,6 +16372,23 @@ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true }, + "bytewise": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/bytewise/-/bytewise-1.1.0.tgz", + "integrity": "sha512-rHuuseJ9iQ0na6UDhnrRVDh8YnWVlU6xM3VH6q/+yHDeUH2zIhUzP+2/h3LIrhLDBtTqzWpE3p3tP/boefskKQ==", + "requires": { + "bytewise-core": "^1.2.2", + "typewise": "^1.0.3" + } + }, + "bytewise-core": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bytewise-core/-/bytewise-core-1.2.3.tgz", + "integrity": "sha512-nZD//kc78OOxeYtRlVk8/zXqTB4gf/nlguL1ggWA8FuchMyOxcyHR4QPQZMUmA7czC+YnaBrPUCubqAWe50DaA==", + "requires": { + "typewise-core": "^1.2" + } + }, "call-bind": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", @@ -17320,9 +17743,9 @@ } }, "earcut": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.2.tgz", - "integrity": "sha512-eZoZPPJcUHnfRZ0PjLvx2qBordSiO8ofC3vt+qACLM95u+4DovnbYNpQtJh0DNsWj8RnxrQytD4WA8gj5cRIaQ==" + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", + "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==" }, "ecstatic": { "version": "4.1.4", @@ -17878,6 +18301,14 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "requires": { + "is-extendable": "^0.1.0" + } + }, "extra-iterable": { "version": "2.5.22", "resolved": "https://registry.npmjs.org/extra-iterable/-/extra-iterable-2.5.22.tgz", @@ -18395,15 +18826,20 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==" + }, "gl-mat4": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gl-mat4/-/gl-mat4-1.2.0.tgz", "integrity": "sha512-sT5C0pwB1/e9G9AvAoLsoaJtbMGjfd/jfxo8jMCKqYYEnjZuFvqV5rehqar0538EmssjdDeiEWnKyBSTw7quoA==" }, "gl-matrix": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.3.0.tgz", - "integrity": "sha512-COb7LDz+SXaHtl/h4LeaFcNdJdAQSDeVqjiIihSXNrkWObZLhDI4hIkZC11Aeqp7bcE72clzB0BnDXr2SmslRA==" + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", + "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==" }, "gl-text": { "version": "1.4.0", @@ -18472,6 +18908,16 @@ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + } + }, "globals": { "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", @@ -19091,8 +19537,7 @@ "ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "internal-slot": { "version": "1.0.5", @@ -19200,6 +19645,11 @@ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==" + }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -19298,7 +19748,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, "requires": { "isobject": "^3.0.1" } @@ -19446,14 +19895,12 @@ "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" }, "jasmine": { "version": "3.5.0", @@ -19600,6 +20047,11 @@ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, + "json-stringify-pretty-compact": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-4.0.0.tgz", + "integrity": "sha512-3CNZ2DnrpByG9Nqj6Xo8vqbjT4F6N+tb4Gb28ESAZjYZ5yqvmc56J+/kuIwkaAMOyblTQhUW7PxMkUb8Q36N3Q==" + }, "json5": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", @@ -19787,8 +20239,7 @@ "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" }, "levn": { "version": "0.3.0", @@ -20073,6 +20524,75 @@ "vt-pbf": "^3.1.1" } }, + "maplibre-gl": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-4.5.0.tgz", + "integrity": "sha512-qOS1hn4d/pn2i0uva4S5Oz+fACzTkgBKq+NpwT/Tqzi4MSyzcWNtDELzLUSgWqHfNIkGCl5CZ/w7dtis+t4RCw==", + "requires": { + "@mapbox/geojson-rewind": "^0.5.2", + "@mapbox/jsonlint-lines-primitives": "^2.0.2", + "@mapbox/point-geometry": "^0.1.0", + "@mapbox/tiny-sdf": "^2.0.6", + "@mapbox/unitbezier": "^0.0.1", + "@mapbox/vector-tile": "^1.3.1", + "@mapbox/whoots-js": "^3.1.0", + "@maplibre/maplibre-gl-style-spec": "^20.3.0", + "@types/geojson": "^7946.0.14", + "@types/geojson-vt": "3.2.5", + "@types/junit-report-builder": "^3.0.2", + "@types/mapbox__point-geometry": "^0.1.4", + "@types/mapbox__vector-tile": "^1.3.4", + "@types/pbf": "^3.0.5", + "@types/supercluster": "^7.1.3", + "earcut": "^2.2.4", + "geojson-vt": "^4.0.2", + "gl-matrix": "^3.4.3", + "global-prefix": "^3.0.0", + "kdbush": "^4.0.2", + "murmurhash-js": "^1.0.0", + "pbf": "^3.2.1", + "potpack": "^2.0.0", + "quickselect": "^2.0.0", + "supercluster": "^8.0.1", + "tinyqueue": "^2.0.3", + "vt-pbf": "^3.1.3" + }, + "dependencies": { + "@mapbox/tiny-sdf": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.6.tgz", + "integrity": "sha512-qMqa27TLw+ZQz5Jk+RcwZGH7BQf5G/TrutJhspsca/3SHwmgKQ1iq+d3Jxz5oysPVYTGP6aXxCo5Lk9Er6YBAA==" + }, + "@mapbox/unitbezier": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", + "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==" + }, + "geojson-vt": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-4.0.2.tgz", + "integrity": "sha512-AV9ROqlNqoZEIJGfm1ncNjEXfkz2hdFlZf0qkVfmkwdKa8vj7H16YUOT81rJw1rdFhyEDlN2Tds91p/glzbl5A==" + }, + "kdbush": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz", + "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==" + }, + "potpack": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/potpack/-/potpack-2.0.0.tgz", + "integrity": "sha512-Q+/tYsFU9r7xoOJ+y/ZTtdVQwTWfzjbiXBDMM/JKUux3+QPP02iUuIoeBQ+Ot6oEDlC+/PGjB/5A3K7KKb7hcw==" + }, + "supercluster": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz", + "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==", + "requires": { + "kdbush": "^4.0.2" + } + } + } + }, "math-log2": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/math-log2/-/math-log2-1.0.1.tgz", @@ -20262,9 +20782,9 @@ } }, "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" }, "minipass": { "version": "3.1.6", @@ -22037,6 +22557,17 @@ "has-property-descriptors": "^1.0.0" } }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + } + }, "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -22176,6 +22707,29 @@ "debug": "~4.3.1" } }, + "sort-asc": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.2.0.tgz", + "integrity": "sha512-umMGhjPeHAI6YjABoSTrFp2zaBtXBej1a0yKkuMUyjjqu6FJsTF+JYwCswWDg+zJfk/5npWUUbd33HH/WLzpaA==" + }, + "sort-desc": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.2.0.tgz", + "integrity": "sha512-NqZqyvL4VPW+RAxxXnB8gvE1kyikh8+pR+T+CXLksVRN9eiQqkQlPwqWYU0mF9Jm7UnctShlxLyAt1CaBOTL1w==" + }, + "sort-object": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sort-object/-/sort-object-3.0.3.tgz", + "integrity": "sha512-nK7WOY8jik6zaG9CRwZTaD5O7ETWDLZYMM12pqY8htll+7dYeqGfEUPcUBHOpSJg2vJOrvFIY2Dl5cX2ih1hAQ==", + "requires": { + "bytewise": "^1.1.0", + "get-value": "^2.0.2", + "is-extendable": "^0.1.1", + "sort-asc": "^0.2.0", + "sort-desc": "^0.2.0", + "union-value": "^1.0.1" + } + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -22236,6 +22790,33 @@ "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", "dev": true }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "^3.0.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, "stack-trace": { "version": "0.0.9", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", @@ -22882,6 +23463,19 @@ "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", "dev": true }, + "typewise": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typewise/-/typewise-1.0.3.tgz", + "integrity": "sha512-aXofE06xGhaQSPzt8hlTY+/YWQhm9P0jYUp1f2XtmW/3Bk0qzXcyFWAtPoo2uTGQj1ZwbDuSyuxicq+aDo8lCQ==", + "requires": { + "typewise-core": "^1.2.0" + } + }, + "typewise-core": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/typewise-core/-/typewise-core-1.2.0.tgz", + "integrity": "sha512-2SCC/WLzj2SbUwzFOzqMCkz5amXLlxtJqDKTICqg30x+2DZxcfZN2MvQZmGfXWKNWaKK9pBPsvkcwv8bF/gxKg==" + }, "ua-parser-js": { "version": "0.7.33", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.33.tgz", @@ -22916,6 +23510,17 @@ "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", "dev": true }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, "uniq": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", @@ -23062,13 +23667,13 @@ "dev": true }, "vt-pbf": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.1.tgz", - "integrity": "sha512-pHjWdrIoxurpmTcbfBWXaPwSmtPAHS105253P1qyEfSTV2HJddqjM+kIHquaT/L6lVJIk9ltTGc0IxR/G47hYA==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.3.tgz", + "integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==", "requires": { "@mapbox/point-geometry": "0.1.0", "@mapbox/vector-tile": "^1.3.1", - "pbf": "^3.0.5" + "pbf": "^3.2.1" } }, "w3c-hr-time": { @@ -23275,7 +23880,6 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, "requires": { "isexe": "^2.0.0" } diff --git a/package.json b/package.json index afe665e1fe2..ce2b919eb50 100644 --- a/package.json +++ b/package.json @@ -99,6 +99,7 @@ "has-hover": "^1.0.1", "has-passive-events": "^1.0.0", "is-mobile": "^4.0.0", + "maplibre-gl": "^4.5.0", "mouse-change": "^1.4.0", "mouse-event-offset": "^3.0.2", "mouse-wheel": "^1.2.0", diff --git a/src/components/fx/hover.js b/src/components/fx/hover.js index 84914ee1842..98a8af61aa7 100644 --- a/src/components/fx/hover.js +++ b/src/components/fx/hover.js @@ -1561,7 +1561,11 @@ function getHoverLabelText(d, showCommonLabel, hovermode, fullLayout, t0, g) { if(d.zLabel !== undefined) { if(d.xLabel !== undefined) text += 'x: ' + d.xLabel + '
'; if(d.yLabel !== undefined) text += 'y: ' + d.yLabel + '
'; - if(d.trace.type !== 'choropleth' && d.trace.type !== 'choroplethmapbox') { + if( + d.trace.type !== 'choropleth' && + d.trace.type !== 'choroplethmapbox' && + d.trace.type !== 'choroplethmap' + ) { text += (text ? 'z: ' : '') + d.zLabel; } } else if(showCommonLabel && d[h0 + 'Label'] === t0) { diff --git a/src/components/fx/layout_defaults.js b/src/components/fx/layout_defaults.js index 304e6caf11f..19504efe95a 100644 --- a/src/components/fx/layout_defaults.js +++ b/src/components/fx/layout_defaults.js @@ -19,16 +19,17 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) { var dragMode = coerce('dragmode'); if(dragMode === 'select') coerce('selectdirection'); - // if only mapbox or geo subplots is present on graph, + // if only mapbox, map or geo subplots is present on graph, // reset 'zoom' dragmode to 'pan' until 'zoom' is implemented, // so that the correct modebar button is active var hasMapbox = layoutOut._has('mapbox'); + var hasMap = layoutOut._has('map'); var hasGeo = layoutOut._has('geo'); var len = layoutOut._basePlotModules.length; if(layoutOut.dragmode === 'zoom' && ( - ((hasMapbox || hasGeo) && len === 1) || - (hasMapbox && hasGeo && len === 2) + ((hasMapbox || hasMap || hasGeo) && len === 1) || + ((hasMapbox || hasMap) && hasGeo && len === 2) )) { layoutOut.dragmode = 'pan'; } diff --git a/src/components/legend/style.js b/src/components/legend/style.js index d821493a5a8..f1400698d8b 100644 --- a/src/components/legend/style.js +++ b/src/components/legend/style.js @@ -542,12 +542,14 @@ module.exports = function style(s, gd, legend) { break; case 'choropleth' : case 'choroplethmapbox' : + case 'choroplethmap' : ptsData = [ ['M-6,-6V6H6V-6Z'] ]; useGradient = true; break; case 'densitymapbox' : + case 'densitymap' : ptsData = [ ['M-6,0 a6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0'] ]; diff --git a/src/components/modebar/buttons.js b/src/components/modebar/buttons.js index 67bc00abf55..25846cfcf43 100644 --- a/src/components/modebar/buttons.js +++ b/src/components/modebar/buttons.js @@ -652,6 +652,7 @@ modeBarButtons.resetViews = { resetView(gd, 'geo'); resetView(gd, 'mapbox'); + resetView(gd, 'map'); } }; @@ -695,6 +696,17 @@ modeBarButtons.resetViewMapbox = { } }; +modeBarButtons.resetViewMap = { + name: 'resetViewMap', + _cat: 'resetView', + title: function(gd) { return _(gd, 'Reset view'); }, + attr: 'reset', + icon: Icons.home, + click: function(gd) { + resetView(gd, 'map'); + } +}; + modeBarButtons.zoomInMapbox = { name: 'zoomInMapbox', _cat: 'zoomin', @@ -705,6 +717,16 @@ modeBarButtons.zoomInMapbox = { click: handleMapboxZoom }; +modeBarButtons.zoomInMap = { + name: 'zoomInMap', + _cat: 'zoomin', + title: function(gd) { return _(gd, 'Zoom in'); }, + attr: 'zoom', + val: 'in', + icon: Icons.zoom_plus, + click: handleMapZoom +}; + modeBarButtons.zoomOutMapbox = { name: 'zoomOutMapbox', _cat: 'zoomout', @@ -715,11 +737,29 @@ modeBarButtons.zoomOutMapbox = { click: handleMapboxZoom }; +modeBarButtons.zoomOutMap = { + name: 'zoomOutMap', + _cat: 'zoomout', + title: function(gd) { return _(gd, 'Zoom out'); }, + attr: 'zoom', + val: 'out', + icon: Icons.zoom_minus, + click: handleMapZoom +}; + function handleMapboxZoom(gd, ev) { + _handleMapZoom(gd, ev, 'mapbox'); +} + +function handleMapZoom(gd, ev) { + _handleMapZoom(gd, ev, 'map'); +} + +function _handleMapZoom(gd, ev, mapType) { var button = ev.currentTarget; var val = button.getAttribute('data-val'); var fullLayout = gd._fullLayout; - var subplotIds = fullLayout._subplots.mapbox || []; + var subplotIds = fullLayout._subplots[mapType] || []; var scalar = 1.05; var aObj = {}; diff --git a/src/components/modebar/manage.js b/src/components/modebar/manage.js index 82e4912f77b..b45dd4a5d22 100644 --- a/src/components/modebar/manage.js +++ b/src/components/modebar/manage.js @@ -110,6 +110,7 @@ function getButtonGroups(gd) { var hasGL2D = fullLayout._has('gl2d'); var hasTernary = fullLayout._has('ternary'); var hasMapbox = fullLayout._has('mapbox'); + var hasMap = fullLayout._has('map'); var hasPolar = fullLayout._has('polar'); var hasSmith = fullLayout._has('smith'); var hasSankey = fullLayout._has('sankey'); @@ -154,7 +155,7 @@ function getButtonGroups(gd) { var resetGroup = []; var dragModeGroup = []; - if((hasCartesian || hasGL2D || hasPie || hasFunnelarea || hasTernary) + hasGeo + hasGL3D + hasMapbox + hasPolar + hasSmith > 1) { + if((hasCartesian || hasGL2D || hasPie || hasFunnelarea || hasTernary) + hasGeo + hasGL3D + hasMapbox + hasMap + hasPolar + hasSmith > 1) { // graphs with more than one plot types get 'union buttons' // which reset the view or toggle hover labels across all subplots. hoverGroup = ['toggleHover']; @@ -170,6 +171,10 @@ function getButtonGroups(gd) { zoomGroup = ['zoomInMapbox', 'zoomOutMapbox']; hoverGroup = ['toggleHover']; resetGroup = ['resetViewMapbox']; + } else if(hasMap) { + zoomGroup = ['zoomInMap', 'zoomOutMap']; + hoverGroup = ['toggleHover']; + resetGroup = ['resetViewMap']; } else if(hasGL2D) { hoverGroup = ['hoverClosestGl2d']; } else if(hasPie) { @@ -200,7 +205,7 @@ function getButtonGroups(gd) { dragModeGroup = ['zoom3d', 'pan3d', 'orbitRotation', 'tableRotation']; } else if(((hasCartesian || hasGL2D) && !allAxesFixed) || hasTernary) { dragModeGroup = ['zoom2d', 'pan2d']; - } else if(hasMapbox || hasGeo) { + } else if(hasMapbox || hasMap || hasGeo) { dragModeGroup = ['pan2d']; } else if(hasPolar) { dragModeGroup = ['zoom2d']; @@ -228,7 +233,7 @@ function getButtonGroups(gd) { if(DRAW_MODES.indexOf(b) !== -1) { // accept pre-defined drag modes i.e. shape drawing features as string if( - fullLayout._has('mapbox') || // draw shapes in paper coordinate (could be improved in future to support data coordinate, when there is no pitch) + fullLayout._has('mapbox') || fullLayout._has('map') || // draw shapes in paper coordinate (could be improved in future to support data coordinate, when there is no pitch) fullLayout._has('cartesian') // draw shapes in data coordinate ) { dragModeGroup.push(b); diff --git a/src/components/selections/select.js b/src/components/selections/select.js index df6a80c70a8..3ca0fe724cf 100644 --- a/src/components/selections/select.js +++ b/src/components/selections/select.js @@ -752,7 +752,7 @@ function clearSelectionsCache(dragOptions, immediateSelect) { var selections; if( isSelectMode && - !hasSubplot(dragOptions) // only allow cartesian - no mapbox for now + !hasSubplot(dragOptions) // only allow cartesian - no maps for now ) { selections = newSelections(outlines, dragOptions); } @@ -1549,7 +1549,7 @@ function getFillRangeItems(dragOptions) { var plotinfo = dragOptions.plotinfo; return ( - plotinfo.fillRangeItems || // allow subplots (i.e. geo, mapbox, sankey) to override fillRangeItems routine + plotinfo.fillRangeItems || // allow subplots (i.e. geo, mapbox, map, sankey) to override fillRangeItems routine makeFillRangeItems(dragOptions.xaxes.concat(dragOptions.yaxes)) ); } diff --git a/src/plot_api/plot_api.js b/src/plot_api/plot_api.js index a104e88bb11..e82bd29ebc1 100644 --- a/src/plot_api/plot_api.js +++ b/src/plot_api/plot_api.js @@ -518,6 +518,7 @@ function setPlotContext(gd, config) { szOut.gl3d = 1; szOut.geo = 1; szOut.mapbox = 1; + szOut.map = 1; } else if(typeof szIn === 'string') { var parts = szIn.split('+'); for(i = 0; i < parts.length; i++) { @@ -527,6 +528,7 @@ function setPlotContext(gd, config) { szOut.gl3d = 1; szOut.geo = 1; szOut.mapbox = 1; + szOut.map = 1; } } @@ -2388,6 +2390,7 @@ var layoutUIControlPatterns = [ {pattern: /^(polar\d*\.radialaxis)\.((auto)?range|angle|title\.text)/}, {pattern: /^(polar\d*\.angularaxis)\.rotation/}, {pattern: /^(mapbox\d*)\.(center|zoom|bearing|pitch)/}, + {pattern: /^(map\d*)\.(center|zoom|bearing|pitch)/}, {pattern: /^legend\.(x|y)$/, attr: 'editrevision'}, {pattern: /^(shapes|annotations)/, attr: 'editrevision'}, diff --git a/src/plot_api/plot_config.js b/src/plot_api/plot_config.js index 577710ac3ac..0a1f5f9fca0 100644 --- a/src/plot_api/plot_config.js +++ b/src/plot_api/plot_config.js @@ -157,12 +157,12 @@ var configAttributes = { scrollZoom: { valType: 'flaglist', - flags: ['cartesian', 'gl3d', 'geo', 'mapbox'], + flags: ['cartesian', 'gl3d', 'geo', 'mapbox', 'map'], extras: [true, false], - dflt: 'gl3d+geo+mapbox', + dflt: 'gl3d+geo+map', description: [ 'Determines whether mouse wheel or two-finger scroll zooms is enable.', - 'Turned on by default for gl3d, geo and mapbox subplots', + 'Turned on by default for gl3d, geo, mapbox and map subplots', '(as these subplot types do not have zoombox via pan),', 'but turned off by default for cartesian subplots.', 'Set `scrollZoom` to *false* to disable scrolling for all subplots.' @@ -192,7 +192,7 @@ var configAttributes = { 'This is the time interval (in ms) between first mousedown and', '2nd mouseup to constitute a double-click.', 'This setting propagates to all on-subplot double clicks', - '(except for geo and mapbox) and on-legend double clicks.' + '(except for geo, mapbox and map) and on-legend double clicks.' ].join(' ') }, diff --git a/src/plots/geo/geo.js b/src/plots/geo/geo.js index db7a2d83564..797ab8373b6 100644 --- a/src/plots/geo/geo.js +++ b/src/plots/geo/geo.js @@ -526,7 +526,7 @@ proto.updateFx = function(fullLayout, geoLayout) { } if(clickMode.indexOf('event') > -1) { - // TODO: like pie and mapbox, this doesn't support right-click + // TODO: like pie and maps, this doesn't support right-click // actually this one is worse, as right-click starts a pan, or leaves // select in a weird state. // Also, only tangentially related, we should cancel hover during pan diff --git a/src/plots/map/constants.js b/src/plots/map/constants.js new file mode 100644 index 00000000000..1d68f2ed1b9 --- /dev/null +++ b/src/plots/map/constants.js @@ -0,0 +1,259 @@ +'use strict'; + +var sortObjectKeys = require('../../lib/sort_object_keys'); + +var OSM = '© OpenStreetMap contributors'; + +var stamenTerrainOrToner = [ + 'Map tiles by Stamen Design', + 'under CC BY 3.0', + '|', + 'Data by OpenStreetMap contributors', + 'under ODbL' +].join(' '); + +var stamenWaterColor = [ + 'Map tiles by Stamen Design', + 'under CC BY 3.0', + '|', + 'Data by OpenStreetMap contributors', + 'under CC BY SA' +].join(' '); + + +var cartoPositron = 'https://basemaps.cartocdn.com/gl/positron-gl-style/style.json'; +var cartoDarkmatter = 'https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json'; +var cartoVoyager = 'https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json'; +var cartoPositronNoLabels = 'https://basemaps.cartocdn.com/gl/positron-nolabels-gl-style/style.json'; +var cartoDarkmatterNoLabels = 'https://basemaps.cartocdn.com/gl/dark-matter-nolabels-gl-style/style.json'; +var cartoVoyagerNoLabels = 'https://basemaps.cartocdn.com/gl/voyager-nolabels-gl-style/style.json'; +var arcgisSatHybrid = 'https://raw.githubusercontent.com/go2garret/maps/main/src/assets/json/arcgis_hybrid.json'; +var arcgisSat = { + version: 8, + name: 'orto', + metadata: {}, + center: [ + 1.537786, + 41.837539 + ], + zoom: 12, + bearing: 0, + pitch: 0, + light: { + anchor: 'viewport', + color: 'white', + intensity: 0.4, + position: [ + 1.15, + 45, + 30 + ] + }, + sources: { + ortoEsri: { + type: 'raster', + tiles: [ + 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}' + ], + tileSize: 256, + maxzoom: 18, + attribution: 'ESRI © ESRI' + }, + ortoInstaMaps: { + type: 'raster', + tiles: [ + 'https://tilemaps.icgc.cat/mapfactory/wmts/orto_8_12/CAT3857/{z}/{x}/{y}.png' + ], + tileSize: 256, + maxzoom: 13 + }, + ortoICGC: { + type: 'raster', + tiles: [ + 'https://geoserveis.icgc.cat/icc_mapesmultibase/noutm/wmts/orto/GRID3857/{z}/{x}/{y}.jpeg' + ], + tileSize: 256, + minzoom: 13.1, + maxzoom: 20 + }, + openmaptiles: { + type: 'vector', + url: 'https://geoserveis.icgc.cat/contextmaps/basemap.json' + } + }, + + sprite: 'https://geoserveis.icgc.cat/contextmaps/sprites/sprite@1', + glyphs: 'https://geoserveis.icgc.cat/contextmaps/glyphs/{fontstack}/{range}.pbf', + layers: [ + { + id: 'background', + type: 'background', + paint: { + 'background-color': '#F4F9F4' + } + }, + { + id: 'ortoEsri', + type: 'raster', + source: 'ortoEsri', + maxzoom: 16, + layout: { + visibility: 'visible' + } + }, + { + id: 'ortoICGC', + type: 'raster', + source: 'ortoICGC', + minzoom: 13.1, + maxzoom: 19, + layout: { + visibility: 'visible' + } + }, + { + id: 'ortoInstaMaps', + type: 'raster', + source: 'ortoInstaMaps', + maxzoom: 13, + layout: { + visibility: 'visible' + } + }, + ], + +}; + +var stylesMap = { + basic: cartoVoyager, + streets: cartoVoyager, + outdoors: cartoVoyager, + light: cartoPositron, + dark: cartoDarkmatter, + satellite: arcgisSat, + 'satellite-streets': arcgisSatHybrid, + 'open-street-map': { + id: 'osm', + version: 8, + sources: { + 'plotly-osm-tiles': { + type: 'raster', + attribution: OSM, + tiles: [ + 'https://tile.openstreetmap.org/{z}/{x}/{y}.png' + ], + tileSize: 256 + } + }, + layers: [{ + id: 'plotly-osm-tiles', + type: 'raster', + source: 'plotly-osm-tiles', + minzoom: 0, + maxzoom: 22 + }], + glyphs: 'https://fonts.openmaptiles.org/{fontstack}/{range}.pbf' + }, + 'white-bg': { + id: 'white-bg', + version: 8, + sources: {}, + layers: [{ + id: 'white-bg', + type: 'background', + paint: {'background-color': '#FFFFFF'}, + minzoom: 0, + maxzoom: 22 + }], + glyphs: 'https://fonts.openmaptiles.org/{fontstack}/{range}.pbf' + }, + 'carto-positron': cartoPositron, + 'carto-darkmatter': cartoDarkmatter, + 'carto-voyager': cartoVoyager, + 'carto-positron-nolabels': cartoPositronNoLabels, + 'carto-darkmatter-nolabels': cartoDarkmatterNoLabels, + 'carto-voyager-nolabels': cartoVoyagerNoLabels, + 'stamen-terrain': { + id: 'stamen-terrain', + version: 8, + sources: { + 'plotly-stamen-terrain': { + type: 'raster', + attribution: stamenTerrainOrToner, + tiles: ['https://tiles.stadiamaps.com/tiles/stamen_terrain/{z}/{x}/{y}.png'], + tileSize: 256 + } + }, + layers: [{ + id: 'plotly-stamen-terrain', + type: 'raster', + source: 'plotly-stamen-terrain', + minzoom: 0, + maxzoom: 22 + }], + glyphs: 'https://fonts.openmaptiles.org/{fontstack}/{range}.pbf' + }, + 'stamen-toner': { + id: 'stamen-toner', + version: 8, + sources: { + 'plotly-stamen-toner': { + type: 'raster', + attribution: stamenTerrainOrToner, + tiles: ['https://tiles.stadiamaps.com/tiles/stamen_toner/{z}/{x}/{y}.png'], + tileSize: 256 + } + }, + layers: [{ + id: 'plotly-stamen-toner', + type: 'raster', + source: 'plotly-stamen-toner', + minzoom: 0, + maxzoom: 22 + }], + glyphs: 'https://fonts.openmaptiles.org/{fontstack}/{range}.pbf' + }, + 'stamen-watercolor': { + id: 'stamen-watercolor', + version: 8, + sources: { + 'plotly-stamen-watercolor': { + type: 'raster', + attribution: stamenWaterColor, + tiles: ['https://tiles.stadiamaps.com/tiles/stamen_watercolor/{z}/{x}/{y}.jpg'], + tileSize: 256 + } + }, + layers: [{ + id: 'plotly-stamen-watercolor', + type: 'raster', + source: 'plotly-stamen-watercolor', + minzoom: 0, + maxzoom: 22 + }], + glyphs: 'https://fonts.openmaptiles.org/{fontstack}/{range}.pbf' + } +}; + +var styleValuesMap = sortObjectKeys(stylesMap); + +module.exports = { + styleValueDflt: 'basic', + stylesMap: stylesMap, + styleValuesMap: styleValuesMap, + + traceLayerPrefix: 'plotly-trace-layer-', + layoutLayerPrefix: 'plotly-layout-layer-', + + + missingStyleErrorMsg: [ + 'No valid maplibre style found, please set `map.style` to one of:', + styleValuesMap.join(', '), + 'or use a tile service.' + ].join('\n'), + + + mapOnErrorMsg: 'Map error.', + + +}; diff --git a/src/plots/map/convert_text_opts.js b/src/plots/map/convert_text_opts.js new file mode 100644 index 00000000000..ddd6757736d --- /dev/null +++ b/src/plots/map/convert_text_opts.js @@ -0,0 +1,62 @@ +'use strict'; + +var Lib = require('../../lib'); + +/** + * Convert plotly.js 'textposition' to map-gl 'anchor' and 'offset' + * (with the help of the icon size). + * + * @param {string} textpostion : plotly.js textposition value + * @param {number} iconSize : plotly.js icon size (e.g. marker.size for traces) + * + * @return {object} + * - anchor + * - offset + */ +module.exports = function convertTextOpts(textposition, iconSize) { + var parts = textposition.split(' '); + var vPos = parts[0]; + var hPos = parts[1]; + + // ballpack values + var factor = Lib.isArrayOrTypedArray(iconSize) ? Lib.mean(iconSize) : iconSize; + var xInc = 0.5 + (factor / 100); + var yInc = 1.5 + (factor / 100); + + var anchorVals = ['', '']; + var offset = [0, 0]; + + switch(vPos) { + case 'top': + anchorVals[0] = 'top'; + offset[1] = -yInc; + break; + case 'bottom': + anchorVals[0] = 'bottom'; + offset[1] = yInc; + break; + } + + switch(hPos) { + case 'left': + anchorVals[1] = 'right'; + offset[0] = -xInc; + break; + case 'right': + anchorVals[1] = 'left'; + offset[0] = xInc; + break; + } + + // Map text-anchor must be one of: + // center, left, right, top, bottom, + // top-left, top-right, bottom-left, bottom-right + + var anchor; + if(anchorVals[0] && anchorVals[1]) anchor = anchorVals.join('-'); + else if(anchorVals[0]) anchor = anchorVals[0]; + else if(anchorVals[1]) anchor = anchorVals[1]; + else anchor = 'center'; + + return { anchor: anchor, offset: offset }; +}; diff --git a/src/plots/map/index.js b/src/plots/map/index.js new file mode 100644 index 00000000000..bd074948584 --- /dev/null +++ b/src/plots/map/index.js @@ -0,0 +1,170 @@ +'use strict'; + +var Lib = require('../../lib'); +var strTranslate = Lib.strTranslate; +var strScale = Lib.strScale; +var getSubplotCalcData = require('../get_data').getSubplotCalcData; +var xmlnsNamespaces = require('../../constants/xmlns_namespaces'); +var d3 = require('@plotly/d3'); +var Drawing = require('../../components/drawing'); +var svgTextUtils = require('../../lib/svg_text_utils'); + +var Map = require('./map'); + +var MAP = 'map'; + +exports.name = MAP; + +exports.attr = 'subplot'; + +exports.idRoot = MAP; + +exports.idRegex = exports.attrRegex = Lib.counterRegex(MAP); + +exports.attributes = { + subplot: { + valType: 'subplotid', + dflt: 'map', + editType: 'calc', + description: [ + 'Sets a reference between this trace\'s data coordinates and', + 'a map subplot.', + 'If *map* (the default value), the data refer to `layout.map`.', + 'If *map2*, the data refer to `layout.map2`, and so on.' + ].join(' ') + } +}; + +exports.layoutAttributes = require('./layout_attributes'); + +exports.supplyLayoutDefaults = require('./layout_defaults'); + +exports.plot = function plot(gd) { + var fullLayout = gd._fullLayout; + var calcData = gd.calcdata; + var mapIds = fullLayout._subplots[MAP]; + + for(var i = 0; i < mapIds.length; i++) { + var id = mapIds[i]; + var subplotCalcData = getSubplotCalcData(calcData, MAP, id); + var opts = fullLayout[id]; + var map = opts._subplot; + + if(!map) { + map = new Map(gd, id); + fullLayout[id]._subplot = map; + } + + if(!map.viewInitial) { + map.viewInitial = { + center: Lib.extendFlat({}, opts.center), + zoom: opts.zoom, + bearing: opts.bearing, + pitch: opts.pitch + }; + } + + map.plot(subplotCalcData, fullLayout, gd._promises); + } +}; + +exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) { + var oldMapKeys = oldFullLayout._subplots[MAP] || []; + + for(var i = 0; i < oldMapKeys.length; i++) { + var oldMapKey = oldMapKeys[i]; + + if(!newFullLayout[oldMapKey] && !!oldFullLayout[oldMapKey]._subplot) { + oldFullLayout[oldMapKey]._subplot.destroy(); + } + } +}; + +exports.toSVG = function(gd) { + var fullLayout = gd._fullLayout; + var subplotIds = fullLayout._subplots[MAP]; + var size = fullLayout._size; + + for(var i = 0; i < subplotIds.length; i++) { + var opts = fullLayout[subplotIds[i]]; + var domain = opts.domain; + var map = opts._subplot; + + var imageData = map.toImage('png'); + var image = fullLayout._glimages.append('svg:image'); + + image.attr({ + xmlns: xmlnsNamespaces.svg, + 'xlink:href': imageData, + x: size.l + size.w * domain.x[0], + y: size.t + size.h * (1 - domain.y[1]), + width: size.w * (domain.x[1] - domain.x[0]), + height: size.h * (domain.y[1] - domain.y[0]), + preserveAspectRatio: 'none' + }); + + var subplotDiv = d3.select(opts._subplot.div); + + // Add attributions + var attributions = subplotDiv + .select('.maplibregl-ctrl-attrib').text() + .replace('Improve this map', ''); + + var attributionGroup = fullLayout._glimages.append('g'); + + var attributionText = attributionGroup.append('text'); + attributionText + .text(attributions) + .classed('static-attribution', true) + .attr({ + 'font-size': 12, + 'font-family': 'Arial', + color: 'rgba(0, 0, 0, 0.75)', + 'text-anchor': 'end', + 'data-unformatted': attributions + }); + + var bBox = Drawing.bBox(attributionText.node()); + + // Break into multiple lines twice larger than domain + var maxWidth = size.w * (domain.x[1] - domain.x[0]); + if((bBox.width > maxWidth / 2)) { + var multilineAttributions = attributions.split('|').join('
'); + attributionText + .text(multilineAttributions) + .attr('data-unformatted', multilineAttributions) + .call(svgTextUtils.convertToTspans, gd); + + bBox = Drawing.bBox(attributionText.node()); + } + attributionText.attr('transform', strTranslate(-3, -bBox.height + 8)); + + // Draw white rectangle behind text + attributionGroup + .insert('rect', '.static-attribution') + .attr({ + x: -bBox.width - 6, + y: -bBox.height - 3, + width: bBox.width + 6, + height: bBox.height + 3, + fill: 'rgba(255, 255, 255, 0.75)' + }); + + // Scale down if larger than domain + var scaleRatio = 1; + if((bBox.width + 6) > maxWidth) scaleRatio = maxWidth / (bBox.width + 6); + + var offset = [(size.l + size.w * domain.x[1]), (size.t + size.h * (1 - domain.y[0]))]; + attributionGroup.attr('transform', strTranslate(offset[0], offset[1]) + strScale(scaleRatio)); + } +}; + +exports.updateFx = function(gd) { + var fullLayout = gd._fullLayout; + var subplotIds = fullLayout._subplots[MAP]; + + for(var i = 0; i < subplotIds.length; i++) { + var subplotObj = fullLayout[subplotIds[i]]._subplot; + subplotObj.updateFx(fullLayout); + } +}; diff --git a/src/plots/map/layers.js b/src/plots/map/layers.js new file mode 100644 index 00000000000..be32c2dc21b --- /dev/null +++ b/src/plots/map/layers.js @@ -0,0 +1,299 @@ +'use strict'; + +var Lib = require('../../lib'); +var sanitizeHTML = require('../../lib/svg_text_utils').sanitizeHTML; +var convertTextOpts = require('./convert_text_opts'); +var constants = require('./constants'); + +function MapLayer(subplot, index) { + this.subplot = subplot; + + this.uid = subplot.uid + '-' + index; + this.index = index; + + this.idSource = 'source-' + this.uid; + this.idLayer = constants.layoutLayerPrefix + this.uid; + + // some state variable to check if a remove/add step is needed + this.sourceType = null; + this.source = null; + this.layerType = null; + this.below = null; + + // is layer currently visible + this.visible = false; +} + +var proto = MapLayer.prototype; + +proto.update = function update(opts) { + if(!this.visible) { + // IMPORTANT: must create source before layer to not cause errors + this.updateSource(opts); + this.updateLayer(opts); + } else if(this.needsNewImage(opts)) { + this.updateImage(opts); + } else if(this.needsNewSource(opts)) { + // IMPORTANT: must delete layer before source to not cause errors + this.removeLayer(); + this.updateSource(opts); + this.updateLayer(opts); + } else if(this.needsNewLayer(opts)) { + this.updateLayer(opts); + } else { + this.updateStyle(opts); + } + + this.visible = isVisible(opts); +}; + +proto.needsNewImage = function(opts) { + var map = this.subplot.map; + return ( + map.getSource(this.idSource) && + this.sourceType === 'image' && + opts.sourcetype === 'image' && + (this.source !== opts.source || + JSON.stringify(this.coordinates) !== + JSON.stringify(opts.coordinates)) + ); +}; + +proto.needsNewSource = function(opts) { + // for some reason changing layer to 'fill' or 'symbol' + // w/o changing the source throws an exception in map-gl 0.18 ; + // stay safe and make new source on type changes + return ( + this.sourceType !== opts.sourcetype || + JSON.stringify(this.source) !== JSON.stringify(opts.source) || + this.layerType !== opts.type + ); +}; + +proto.needsNewLayer = function(opts) { + return ( + this.layerType !== opts.type || + this.below !== this.subplot.belowLookup['layout-' + this.index] + ); +}; + +proto.lookupBelow = function() { + return this.subplot.belowLookup['layout-' + this.index]; +}; + +proto.updateImage = function(opts) { + var map = this.subplot.map; + map.getSource(this.idSource).updateImage({ + url: opts.source, coordinates: opts.coordinates + }); + + // Since the `updateImage` control flow doesn't call updateLayer, + // We need to take care of moving the image layer to match the location + // where updateLayer would have placed it. + var _below = this.findFollowingMapLayerId(this.lookupBelow()); + if(_below !== null) { + this.subplot.map.moveLayer(this.idLayer, _below); + } +}; + +proto.updateSource = function(opts) { + var map = this.subplot.map; + + if(map.getSource(this.idSource)) map.removeSource(this.idSource); + + this.sourceType = opts.sourcetype; + this.source = opts.source; + + if(!isVisible(opts)) return; + + var sourceOpts = convertSourceOpts(opts); + + map.addSource(this.idSource, sourceOpts); +}; + +proto.findFollowingMapLayerId = function(below) { + if(below === 'traces') { + var mapLayers = this.subplot.getMapLayers(); + + // find id of first plotly trace layer + for(var i = 0; i < mapLayers.length; i++) { + var layerId = mapLayers[i].id; + if(typeof layerId === 'string' && + layerId.indexOf(constants.traceLayerPrefix) === 0 + ) { + below = layerId; + break; + } + } + } + return below; +}; + +proto.updateLayer = function(opts) { + var subplot = this.subplot; + var convertedOpts = convertOpts(opts); + var below = this.lookupBelow(); + var _below = this.findFollowingMapLayerId(below); + + this.removeLayer(); + + if(isVisible(opts)) { + subplot.addLayer({ + id: this.idLayer, + source: this.idSource, + 'source-layer': opts.sourcelayer || '', + type: opts.type, + minzoom: opts.minzoom, + maxzoom: opts.maxzoom, + layout: convertedOpts.layout, + paint: convertedOpts.paint + }, _below); + } + + this.layerType = opts.type; + this.below = below; +}; + +proto.updateStyle = function(opts) { + if(isVisible(opts)) { + var convertedOpts = convertOpts(opts); + this.subplot.setOptions(this.idLayer, 'setLayoutProperty', convertedOpts.layout); + this.subplot.setOptions(this.idLayer, 'setPaintProperty', convertedOpts.paint); + } +}; + +proto.removeLayer = function() { + var map = this.subplot.map; + if(map.getLayer(this.idLayer)) { + map.removeLayer(this.idLayer); + } +}; + +proto.dispose = function() { + var map = this.subplot.map; + if(map.getLayer(this.idLayer)) map.removeLayer(this.idLayer); + if(map.getSource(this.idSource)) map.removeSource(this.idSource); +}; + +function isVisible(opts) { + if(!opts.visible) return false; + + var source = opts.source; + + if(Array.isArray(source) && source.length > 0) { + for(var i = 0; i < source.length; i++) { + if(typeof source[i] !== 'string' || source[i].length === 0) { + return false; + } + } + return true; + } + + return Lib.isPlainObject(source) || + (typeof source === 'string' && source.length > 0); +} + +function convertOpts(opts) { + var layout = {}; + var paint = {}; + + switch(opts.type) { + case 'circle': + Lib.extendFlat(paint, { + 'circle-radius': opts.circle.radius, + 'circle-color': opts.color, + 'circle-opacity': opts.opacity + }); + break; + + case 'line': + Lib.extendFlat(paint, { + 'line-width': opts.line.width, + 'line-color': opts.color, + 'line-opacity': opts.opacity, + 'line-dasharray': opts.line.dash + }); + break; + + case 'fill': + Lib.extendFlat(paint, { + 'fill-color': opts.color, + 'fill-outline-color': opts.fill.outlinecolor, + 'fill-opacity': opts.opacity + + // no way to pass specify outline width at the moment + }); + break; + + case 'symbol': + var symbol = opts.symbol; + var textOpts = convertTextOpts(symbol.textposition, symbol.iconsize); + + Lib.extendFlat(layout, { + 'icon-image': symbol.icon + '-15', + 'icon-size': symbol.iconsize / 10, + + 'text-field': symbol.text, + 'text-size': symbol.textfont.size, + 'text-anchor': textOpts.anchor, + 'text-offset': textOpts.offset, + 'symbol-placement': symbol.placement, + + // TODO font family + // 'text-font': symbol.textfont.family.split(', '), + }); + + Lib.extendFlat(paint, { + 'icon-color': opts.color, + 'text-color': symbol.textfont.color, + 'text-opacity': opts.opacity + }); + break; + case 'raster': + Lib.extendFlat(paint, { + 'raster-fade-duration': 0, + 'raster-opacity': opts.opacity + }); + break; + } + + return { + layout: layout, + paint: paint + }; +} + +function convertSourceOpts(opts) { + var sourceType = opts.sourcetype; + var source = opts.source; + var sourceOpts = {type: sourceType}; + var field; + + if(sourceType === 'geojson') { + field = 'data'; + } else if(sourceType === 'vector') { + field = typeof source === 'string' ? 'url' : 'tiles'; + } else if(sourceType === 'raster') { + field = 'tiles'; + sourceOpts.tileSize = 256; + } else if(sourceType === 'image') { + field = 'url'; + sourceOpts.coordinates = opts.coordinates; + } + + sourceOpts[field] = source; + + if(opts.sourceattribution) { + sourceOpts.attribution = sanitizeHTML(opts.sourceattribution); + } + + return sourceOpts; +} + +module.exports = function createMapLayer(subplot, index, opts) { + var mapLayer = new MapLayer(subplot, index); + + mapLayer.update(opts); + + return mapLayer; +}; diff --git a/src/plots/map/layout_attributes.js b/src/plots/map/layout_attributes.js new file mode 100644 index 00000000000..c6b8d5d52fe --- /dev/null +++ b/src/plots/map/layout_attributes.js @@ -0,0 +1,330 @@ +'use strict'; + +var Lib = require('../../lib'); +var defaultLine = require('../../components/color').defaultLine; +var domainAttrs = require('../domain').attributes; +var fontAttrs = require('../font_attributes'); +var textposition = require('../../traces/scatter/attributes').textposition; +var overrideAll = require('../../plot_api/edit_types').overrideAll; +var templatedArray = require('../../plot_api/plot_template').templatedArray; + +var constants = require('./constants'); + +var fontAttr = fontAttrs({ + noFontVariant: true, + noFontShadow: true, + noFontLineposition: true, + noFontTextcase: true, + description: [ + '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*.' + ].join(' ') +}); +fontAttr.family.dflt = 'Open Sans Regular, Arial Unicode MS Regular'; + +var attrs = module.exports = overrideAll({ + _arrayAttrRegexps: [Lib.counterRegex('map', '.layers', true)], + + domain: domainAttrs({name: 'map'}), + + style: { + valType: 'any', + values: constants.styleValuesMap, + dflt: constants.styleValueDflt, + description: [ + '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:', constants.styleValuesMap.join(', ') + '.' + ].join(' ') + }, + + center: { + lon: { + valType: 'number', + dflt: 0, + description: 'Sets the longitude of the center of the map (in degrees East).' + }, + lat: { + valType: 'number', + dflt: 0, + description: 'Sets the latitude of the center of the map (in degrees North).' + } + }, + zoom: { + valType: 'number', + dflt: 1, + description: 'Sets the zoom level of the map (map.zoom).' + }, + bearing: { + valType: 'number', + dflt: 0, + description: 'Sets the bearing angle of the map in degrees counter-clockwise from North (map.bearing).' + }, + pitch: { + valType: 'number', + dflt: 0, + description: [ + 'Sets the pitch angle of the map', + '(in degrees, where *0* means perpendicular to the surface of the map) (map.pitch).' + ].join(' ') + }, + + bounds: { + west: { + valType: 'number', + description: [ + 'Sets the minimum longitude of the map (in degrees East)', + 'if `east`, `south` and `north` are declared.' + ].join(' ') + }, + east: { + valType: 'number', + description: [ + 'Sets the maximum longitude of the map (in degrees East)', + 'if `west`, `south` and `north` are declared.' + ].join(' ') + }, + south: { + valType: 'number', + description: [ + 'Sets the minimum latitude of the map (in degrees North)', + 'if `east`, `west` and `north` are declared.' + ].join(' ') + }, + north: { + valType: 'number', + description: [ + 'Sets the maximum latitude of the map (in degrees North)', + 'if `east`, `west` and `south` are declared.' + ].join(' ') + } + }, + + layers: templatedArray('layer', { + visible: { + valType: 'boolean', + dflt: true, + description: [ + 'Determines whether this layer is displayed' + ].join(' ') + }, + sourcetype: { + valType: 'enumerated', + values: ['geojson', 'vector', 'raster', 'image'], + dflt: 'geojson', + description: [ + 'Sets the source type for this layer,', + 'that is the type of the layer data.' + ].join(' ') + }, + + source: { + valType: 'any', + description: [ + '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.' + ].join(' ') + }, + + sourcelayer: { + valType: 'string', + dflt: '', + description: [ + 'Specifies the layer to use from a vector tile source (map.layer.source-layer).', + 'Required for *vector* source type that supports multiple layers.' + ].join(' ') + }, + + sourceattribution: { + valType: 'string', + description: [ + 'Sets the attribution for this source.' + ].join(' ') + }, + + type: { + valType: 'enumerated', + values: ['circle', 'line', 'fill', 'symbol', 'raster'], + dflt: 'circle', + description: [ + '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.' + ].join(' ') + }, + + coordinates: { + valType: 'any', + description: [ + '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`.' + ].join(' ') + }, + + // attributes shared between all types + below: { + valType: 'string', + description: [ + '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.' + ].join(' ') + }, + color: { + valType: 'color', + dflt: defaultLine, + description: [ + '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)' + ].join(' ') + }, + opacity: { + valType: 'number', + min: 0, + max: 1, + dflt: 1, + description: [ + '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)' + ].join(' ') + }, + minzoom: { + valType: 'number', + min: 0, + max: 24, + dflt: 0, + description: [ + 'Sets the minimum zoom level (map.layer.minzoom).', + 'At zoom levels less than the minzoom, the layer will be hidden.', + ].join(' ') + }, + maxzoom: { + valType: 'number', + min: 0, + max: 24, + dflt: 24, + description: [ + 'Sets the maximum zoom level (map.layer.maxzoom).', + 'At zoom levels equal to or greater than the maxzoom, the layer will be hidden.' + ].join(' ') + }, + + // type-specific style attributes + circle: { + radius: { + valType: 'number', + dflt: 15, + description: [ + 'Sets the circle radius (map.layer.paint.circle-radius).', + 'Has an effect only when `type` is set to *circle*.' + ].join(' ') + } + }, + + line: { + width: { + valType: 'number', + dflt: 2, + description: [ + 'Sets the line width (map.layer.paint.line-width).', + 'Has an effect only when `type` is set to *line*.' + ].join(' ') + }, + dash: { + valType: 'data_array', + description: [ + 'Sets the length of dashes and gaps (map.layer.paint.line-dasharray).', + 'Has an effect only when `type` is set to *line*.' + ].join(' ') + } + }, + + fill: { + outlinecolor: { + valType: 'color', + dflt: defaultLine, + description: [ + 'Sets the fill outline color (map.layer.paint.fill-outline-color).', + 'Has an effect only when `type` is set to *fill*.' + ].join(' ') + } + }, + + symbol: { + icon: { + valType: 'string', + dflt: 'marker', + description: [ + 'Sets the symbol icon image (map.layer.layout.icon-image).', + 'Full list: https://www.map.com/maki-icons/' + ].join(' ') + }, + iconsize: { + valType: 'number', + dflt: 10, + description: [ + 'Sets the symbol icon size (map.layer.layout.icon-size).', + 'Has an effect only when `type` is set to *symbol*.' + ].join(' ') + }, + text: { + valType: 'string', + dflt: '', + description: [ + 'Sets the symbol text (map.layer.layout.text-field).' + ].join(' ') + }, + placement: { + valType: 'enumerated', + values: ['point', 'line', 'line-center'], + dflt: 'point', + description: [ + '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', + ].join(' ') + }, + textfont: fontAttr, + textposition: Lib.extendFlat({}, textposition, { arrayOk: false }) + } + }) +}, 'plot', 'from-root'); + +// set uirevision outside of overrideAll so it can be `editType: 'none'` +attrs.uirevision = { + valType: 'any', + editType: 'none', + description: [ + 'Controls persistence of user-driven changes in the view:', + '`center`, `zoom`, `bearing`, `pitch`. Defaults to `layout.uirevision`.' + ].join(' ') +}; diff --git a/src/plots/map/layout_defaults.js b/src/plots/map/layout_defaults.js new file mode 100644 index 00000000000..5cb2531fa1c --- /dev/null +++ b/src/plots/map/layout_defaults.js @@ -0,0 +1,114 @@ +'use strict'; + +var Lib = require('../../lib'); + +var handleSubplotDefaults = require('../subplot_defaults'); +var handleArrayContainerDefaults = require('../array_container_defaults'); +var layoutAttributes = require('./layout_attributes'); + + +module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) { + handleSubplotDefaults(layoutIn, layoutOut, fullData, { + type: 'map', + attributes: layoutAttributes, + handleDefaults: handleDefaults, + partition: 'y' + }); +}; + +function handleDefaults(containerIn, containerOut, coerce) { + coerce('style'); + coerce('center.lon'); + coerce('center.lat'); + coerce('zoom'); + coerce('bearing'); + coerce('pitch'); + + var west = coerce('bounds.west'); + var east = coerce('bounds.east'); + var south = coerce('bounds.south'); + var north = coerce('bounds.north'); + if( + west === undefined || + east === undefined || + south === undefined || + north === undefined + ) { + delete containerOut.bounds; + } + + handleArrayContainerDefaults(containerIn, containerOut, { + name: 'layers', + handleItemDefaults: handleLayerDefaults + }); + + // copy ref to input container to update 'center' and 'zoom' on map move + containerOut._input = containerIn; +} + +function handleLayerDefaults(layerIn, layerOut) { + function coerce(attr, dflt) { + return Lib.coerce(layerIn, layerOut, layoutAttributes.layers, attr, dflt); + } + + var visible = coerce('visible'); + if(visible) { + var sourceType = coerce('sourcetype'); + var mustBeRasterLayer = sourceType === 'raster' || sourceType === 'image'; + + coerce('source'); + coerce('sourceattribution'); + + if(sourceType === 'vector') { + coerce('sourcelayer'); + } + + if(sourceType === 'image') { + coerce('coordinates'); + } + + var typeDflt; + if(mustBeRasterLayer) typeDflt = 'raster'; + + var type = coerce('type', typeDflt); + + if(mustBeRasterLayer && type !== 'raster') { + type = layerOut.type = 'raster'; + Lib.log('Source types *raster* and *image* must drawn *raster* layer type.'); + } + + coerce('below'); + coerce('color'); + coerce('opacity'); + coerce('minzoom'); + coerce('maxzoom'); + + if(type === 'circle') { + coerce('circle.radius'); + } + + if(type === 'line') { + coerce('line.width'); + coerce('line.dash'); + } + + if(type === 'fill') { + coerce('fill.outlinecolor'); + } + + if(type === 'symbol') { + coerce('symbol.icon'); + coerce('symbol.iconsize'); + + coerce('symbol.text'); + Lib.coerceFont(coerce, 'symbol.textfont', undefined, { + noFontVariant: true, + noFontShadow: true, + noFontLineposition: true, + noFontTextcase: true, + }); + coerce('symbol.textposition'); + coerce('symbol.placement'); + } + } +} diff --git a/src/plots/map/map.js b/src/plots/map/map.js new file mode 100644 index 00000000000..92b47b28213 --- /dev/null +++ b/src/plots/map/map.js @@ -0,0 +1,814 @@ +'use strict'; + +var maplibregl = require('maplibre-gl/dist/maplibre-gl-unminified'); + +var Lib = require('../../lib'); +var geoUtils = require('../../lib/geo_location_utils'); +var Registry = require('../../registry'); +var Axes = require('../cartesian/axes'); +var dragElement = require('../../components/dragelement'); + +var Fx = require('../../components/fx'); +var dragHelpers = require('../../components/dragelement/helpers'); +var drawMode = dragHelpers.drawMode; +var selectMode = dragHelpers.selectMode; + +var prepSelect = require('../../components/selections').prepSelect; +var clearOutline = require('../../components/selections').clearOutline; +var clearSelectionsCache = require('../../components/selections').clearSelectionsCache; +var selectOnClick = require('../../components/selections').selectOnClick; + +var constants = require('./constants'); +var createMapLayer = require('./layers'); + +function Map(gd, id) { + this.id = id; + this.gd = gd; + + var fullLayout = gd._fullLayout; + var context = gd._context; + + this.container = fullLayout._glcontainer.node(); + this.isStatic = context.staticPlot; + + // unique id for this Map instance + this.uid = fullLayout._uid + '-' + this.id; + + // create framework on instantiation for a smoother first plot call + this.div = null; + this.xaxis = null; + this.yaxis = null; + this.createFramework(fullLayout); + + // state variables used to infer how and what to update + this.map = null; + this.styleObj = null; + this.traceHash = {}; + this.layerList = []; + this.belowLookup = {}; + this.dragging = false; + this.wheeling = false; +} + +var proto = Map.prototype; + +proto.plot = function(calcData, fullLayout, promises) { + var self = this; + + var promise; + + if(!self.map) { + promise = new Promise(function(resolve, reject) { + self.createMap(calcData, fullLayout, resolve, reject); + }); + } else { + promise = new Promise(function(resolve, reject) { + self.updateMap(calcData, fullLayout, resolve, reject); + }); + } + + promises.push(promise); +}; + +proto.createMap = function(calcData, fullLayout, resolve, reject) { + var self = this; + var opts = fullLayout[self.id]; + + // store style id and URL or object + var styleObj = self.styleObj = getStyleObj(opts.style); + + + var bounds = opts.bounds; + var maxBounds = bounds ? [[bounds.west, bounds.south], [bounds.east, bounds.north]] : null; + + // create the map! + var map = self.map = new maplibregl.Map({ + container: self.div, + + style: styleObj.style, + center: convertCenter(opts.center), + zoom: opts.zoom, + bearing: opts.bearing, + pitch: opts.pitch, + maxBounds: maxBounds, + + interactive: !self.isStatic, + preserveDrawingBuffer: self.isStatic, + + doubleClickZoom: false, + boxZoom: false, + + attributionControl: false + }) + .addControl(new maplibregl.AttributionControl({ + compact: true + })); + + var requestedIcons = {}; + map.on('styleimagemissing', function(e) { + var id = e.id; + if(!requestedIcons[id] && id.includes('-15')) { + requestedIcons[id] = true; + var img = new Image(15, 15); + img.onload = function() { + map.addImage(id, img); + }; + img.crossOrigin = 'Anonymous'; + img.src = 'https://unpkg.com/maki@2.1.0/icons/' + id + '.svg'; + } + }); + + map.setTransformRequest(function(url) { + url = url.replace('https://fonts.openmaptiles.org/Open Sans Extrabold', 'https://fonts.openmaptiles.org/Open Sans Extra Bold'); + url = url.replace('https://tiles.basemaps.cartocdn.com/fonts/Open Sans Extrabold', 'https://fonts.openmaptiles.org/Open Sans Extra Bold'); + url = url.replace('https://fonts.openmaptiles.org/Open Sans Regular,Arial Unicode MS Regular', 'https://fonts.openmaptiles.org/Klokantech Noto Sans Regular'); + return { + url: url + }; + }); + + + // make sure canvas does not inherit left and top css + map._canvas.style.left = '0px'; + map._canvas.style.top = '0px'; + + self.rejectOnError(reject); + + if(!self.isStatic) { + self.initFx(calcData, fullLayout); + } + + var promises = []; + + promises.push(new Promise(function(resolve) { + map.once('load', resolve); + })); + + promises = promises.concat(geoUtils.fetchTraceGeoData(calcData)); + + Promise.all(promises).then(function() { + self.fillBelowLookup(calcData, fullLayout); + self.updateData(calcData); + self.updateLayout(fullLayout); + self.resolveOnRender(resolve); + }).catch(reject); +}; + +proto.updateMap = function(calcData, fullLayout, resolve, reject) { + var self = this; + var map = self.map; + var opts = fullLayout[this.id]; + + self.rejectOnError(reject); + + var promises = []; + var styleObj = getStyleObj(opts.style); + + if(JSON.stringify(self.styleObj) !== JSON.stringify(styleObj)) { + self.styleObj = styleObj; + map.setStyle(styleObj.style); + + // need to rebuild trace layers on reload + // to avoid 'lost event' errors + self.traceHash = {}; + + promises.push(new Promise(function(resolve) { + map.once('styledata', resolve); + })); + } + + promises = promises.concat(geoUtils.fetchTraceGeoData(calcData)); + + Promise.all(promises).then(function() { + self.fillBelowLookup(calcData, fullLayout); + self.updateData(calcData); + self.updateLayout(fullLayout); + self.resolveOnRender(resolve); + }).catch(reject); +}; + +proto.fillBelowLookup = function(calcData, fullLayout) { + var opts = fullLayout[this.id]; + var layers = opts.layers; + var i, val; + + var belowLookup = this.belowLookup = {}; + var hasTraceAtTop = false; + + for(i = 0; i < calcData.length; i++) { + var trace = calcData[i][0].trace; + var _module = trace._module; + + if(typeof trace.below === 'string') { + val = trace.below; + } else if(_module.getBelow) { + // 'smart' default that depend the map's base layers + val = _module.getBelow(trace, this); + } + + if(val === '') { + hasTraceAtTop = true; + } + + belowLookup['trace-' + trace.uid] = val || ''; + } + + for(i = 0; i < layers.length; i++) { + var item = layers[i]; + + if(typeof item.below === 'string') { + val = item.below; + } else if(hasTraceAtTop) { + // if one or more trace(s) set `below:''` and + // layers[i].below is unset, + // place layer below traces + val = 'traces'; + } else { + val = ''; + } + + belowLookup['layout-' + i] = val; + } + + // N.B. If multiple layers have the 'below' value, + // we must clear the stashed 'below' field in order + // to make `traceHash[k].update()` and `layerList[i].update()` + // remove/add the all those layers to have preserve + // the correct layer ordering + var val2list = {}; + var k, id; + + for(k in belowLookup) { + val = belowLookup[k]; + if(val2list[val]) { + val2list[val].push(k); + } else { + val2list[val] = [k]; + } + } + + for(val in val2list) { + var list = val2list[val]; + if(list.length > 1) { + for(i = 0; i < list.length; i++) { + k = list[i]; + if(k.indexOf('trace-') === 0) { + id = k.split('trace-')[1]; + if(this.traceHash[id]) { + this.traceHash[id].below = null; + } + } else if(k.indexOf('layout-') === 0) { + id = k.split('layout-')[1]; + if(this.layerList[id]) { + this.layerList[id].below = null; + } + } + } + } + } +}; + +var traceType2orderIndex = { + choroplethmap: 0, + densitymap: 1, + scattermap: 2 +}; + +proto.updateData = function(calcData) { + var traceHash = this.traceHash; + var traceObj, trace, i, j; + + // Need to sort here by trace type here, + // in case traces with different `type` have the same + // below value, but sorting we ensure that + // e.g. choroplethmap traces will be below scattermap traces + var calcDataSorted = calcData.slice().sort(function(a, b) { + return ( + traceType2orderIndex[a[0].trace.type] - + traceType2orderIndex[b[0].trace.type] + ); + }); + + // update or create trace objects + for(i = 0; i < calcDataSorted.length; i++) { + var calcTrace = calcDataSorted[i]; + + trace = calcTrace[0].trace; + traceObj = traceHash[trace.uid]; + + var didUpdate = false; + if(traceObj) { + if(traceObj.type === trace.type) { + traceObj.update(calcTrace); + didUpdate = true; + } else { + traceObj.dispose(); + } + } + if(!didUpdate && trace._module) { + traceHash[trace.uid] = trace._module.plot(this, calcTrace); + } + } + + // remove empty trace objects + var ids = Object.keys(traceHash); + idLoop: + for(i = 0; i < ids.length; i++) { + var id = ids[i]; + + for(j = 0; j < calcData.length; j++) { + trace = calcData[j][0].trace; + if(id === trace.uid) continue idLoop; + } + + traceObj = traceHash[id]; + traceObj.dispose(); + delete traceHash[id]; + } +}; + +proto.updateLayout = function(fullLayout) { + var map = this.map; + var opts = fullLayout[this.id]; + + if(!this.dragging && !this.wheeling) { + map.setCenter(convertCenter(opts.center)); + map.setZoom(opts.zoom); + map.setBearing(opts.bearing); + map.setPitch(opts.pitch); + } + + this.updateLayers(fullLayout); + this.updateFramework(fullLayout); + this.updateFx(fullLayout); + this.map.resize(); + + if(this.gd._context._scrollZoom.map) { + map.scrollZoom.enable(); + } else { + map.scrollZoom.disable(); + } +}; + +proto.resolveOnRender = function(resolve) { + var map = this.map; + + map.on('render', function onRender() { + if(map.loaded()) { + map.off('render', onRender); + // resolve at end of render loop + // + // Need a 10ms delay (0ms should suffice to skip a thread in the + // render loop) to workaround map-gl bug introduced in v1.3.0 + setTimeout(resolve, 10); + } + }); +}; + +proto.rejectOnError = function(reject) { + var map = this.map; + + function handler() { + reject(new Error(constants.mapOnErrorMsg)); + } + + map.once('error', handler); + map.once('style.error', handler); + map.once('source.error', handler); + map.once('tile.error', handler); + map.once('layer.error', handler); +}; + +proto.createFramework = function(fullLayout) { + var self = this; + + var div = self.div = document.createElement('div'); + div.id = self.uid; + div.style.position = 'absolute'; + self.container.appendChild(div); + + // create mock x/y axes for hover routine + self.xaxis = { + _id: 'x', + c2p: function(v) { return self.project(v).x; } + }; + self.yaxis = { + _id: 'y', + c2p: function(v) { return self.project(v).y; } + }; + + self.updateFramework(fullLayout); + + // mock axis for hover formatting + self.mockAxis = { + type: 'linear', + showexponent: 'all', + exponentformat: 'B' + }; + Axes.setConvert(self.mockAxis, fullLayout); +}; + +proto.initFx = function(calcData, fullLayout) { + var self = this; + var gd = self.gd; + var map = self.map; + + // keep track of pan / zoom in user layout and emit relayout event + map.on('moveend', function(evt) { + if(!self.map) return; + + var fullLayoutNow = gd._fullLayout; + + // 'moveend' gets triggered by map.setCenter, map.setZoom, + // map.setBearing and map.setPitch. + // + // Here, we make sure that state updates amd 'plotly_relayout' + // are triggered only when the 'moveend' originates from a + // mouse target (filtering out API calls) to not + // duplicate 'plotly_relayout' events. + + if(evt.originalEvent || self.wheeling) { + var optsNow = fullLayoutNow[self.id]; + Registry.call('_storeDirectGUIEdit', gd.layout, fullLayoutNow._preGUI, self.getViewEdits(optsNow)); + + var viewNow = self.getView(); + optsNow._input.center = optsNow.center = viewNow.center; + optsNow._input.zoom = optsNow.zoom = viewNow.zoom; + optsNow._input.bearing = optsNow.bearing = viewNow.bearing; + optsNow._input.pitch = optsNow.pitch = viewNow.pitch; + gd.emit('plotly_relayout', self.getViewEditsWithDerived(viewNow)); + } + if(evt.originalEvent && evt.originalEvent.type === 'mouseup') { + self.dragging = false; + } else if(self.wheeling) { + self.wheeling = false; + } + + if(fullLayoutNow && fullLayoutNow._rehover) { + fullLayoutNow._rehover(); + } + }); + + map.on('wheel', function() { + self.wheeling = true; + }); + + map.on('mousemove', function(evt) { + var bb = self.div.getBoundingClientRect(); + var xy = [ + evt.originalEvent.offsetX, + evt.originalEvent.offsetY + ]; + + evt.target.getBoundingClientRect = function() { return bb; }; + + self.xaxis.p2c = function() { return map.unproject(xy).lng; }; + self.yaxis.p2c = function() { return map.unproject(xy).lat; }; + + gd._fullLayout._rehover = function() { + if(gd._fullLayout._hoversubplot === self.id && gd._fullLayout[self.id]) { + Fx.hover(gd, evt, self.id); + } + }; + + Fx.hover(gd, evt, self.id); + gd._fullLayout._hoversubplot = self.id; + }); + + function unhover() { + Fx.loneUnhover(fullLayout._hoverlayer); + } + + map.on('dragstart', function() { + self.dragging = true; + unhover(); + }); + map.on('zoomstart', unhover); + + map.on('mouseout', function() { + gd._fullLayout._hoversubplot = null; + }); + + function emitUpdate() { + var viewNow = self.getView(); + gd.emit('plotly_relayouting', self.getViewEditsWithDerived(viewNow)); + } + + map.on('drag', emitUpdate); + map.on('zoom', emitUpdate); + + map.on('dblclick', function() { + var optsNow = gd._fullLayout[self.id]; + Registry.call('_storeDirectGUIEdit', gd.layout, gd._fullLayout._preGUI, self.getViewEdits(optsNow)); + + var viewInitial = self.viewInitial; + map.setCenter(convertCenter(viewInitial.center)); + map.setZoom(viewInitial.zoom); + map.setBearing(viewInitial.bearing); + map.setPitch(viewInitial.pitch); + + var viewNow = self.getView(); + optsNow._input.center = optsNow.center = viewNow.center; + optsNow._input.zoom = optsNow.zoom = viewNow.zoom; + optsNow._input.bearing = optsNow.bearing = viewNow.bearing; + optsNow._input.pitch = optsNow.pitch = viewNow.pitch; + + gd.emit('plotly_doubleclick', null); + gd.emit('plotly_relayout', self.getViewEditsWithDerived(viewNow)); + }); + + // define event handlers on map creation, to keep one ref per map, + // so that map.on / map.off in updateFx works as expected + self.clearOutline = function() { + clearSelectionsCache(self.dragOptions); + clearOutline(self.dragOptions.gd); + }; + + /** + * Returns a click handler function that is supposed + * to handle clicks in pan mode. + */ + self.onClickInPanFn = function(dragOptions) { + return function(evt) { + var clickMode = gd._fullLayout.clickmode; + + if(clickMode.indexOf('select') > -1) { + selectOnClick(evt.originalEvent, gd, [self.xaxis], [self.yaxis], self.id, dragOptions); + } + + if(clickMode.indexOf('event') > -1) { + // TODO: this does not support right-click. If we want to support it, we + // would likely need to change map to use dragElement instead of straight + // map event binding. Or perhaps better, make a simple wrapper with the + // right mousedown, mousemove, and mouseup handlers just for a left/right click + // pie would use this too. + Fx.click(gd, evt.originalEvent); + } + }; + }; +}; + +proto.updateFx = function(fullLayout) { + var self = this; + var map = self.map; + var gd = self.gd; + + if(self.isStatic) return; + + function invert(pxpy) { + var obj = self.map.unproject(pxpy); + return [obj.lng, obj.lat]; + } + + var dragMode = fullLayout.dragmode; + var fillRangeItems; + + fillRangeItems = function(eventData, poly) { + if(poly.isRect) { + var ranges = eventData.range = {}; + ranges[self.id] = [ + invert([poly.xmin, poly.ymin]), + invert([poly.xmax, poly.ymax]) + ]; + } else { + var dataPts = eventData.lassoPoints = {}; + dataPts[self.id] = poly.map(invert); + } + }; + + // Note: dragOptions is needed to be declared for all dragmodes because + // it's the object that holds persistent selection state. + // Merge old dragOptions with new to keep possibly initialized + // persistent selection state. + var oldDragOptions = self.dragOptions; + self.dragOptions = Lib.extendDeep(oldDragOptions || {}, { + dragmode: fullLayout.dragmode, + element: self.div, + gd: gd, + plotinfo: { + id: self.id, + domain: fullLayout[self.id].domain, + xaxis: self.xaxis, + yaxis: self.yaxis, + fillRangeItems: fillRangeItems + }, + xaxes: [self.xaxis], + yaxes: [self.yaxis], + subplot: self.id + }); + + // Unregister the old handler before potentially registering + // a new one. Otherwise multiple click handlers might + // be registered resulting in unwanted behavior. + map.off('click', self.onClickInPanHandler); + if(selectMode(dragMode) || drawMode(dragMode)) { + map.dragPan.disable(); + map.on('zoomstart', self.clearOutline); + + self.dragOptions.prepFn = function(e, startX, startY) { + prepSelect(e, startX, startY, self.dragOptions, dragMode); + }; + + dragElement.init(self.dragOptions); + } else { + map.dragPan.enable(); + map.off('zoomstart', self.clearOutline); + self.div.onmousedown = null; + self.div.ontouchstart = null; + self.div.removeEventListener('touchstart', self.div._ontouchstart); + // TODO: this does not support right-click. If we want to support it, we + // would likely need to change map to use dragElement instead of straight + // map event binding. Or perhaps better, make a simple wrapper with the + // right mousedown, mousemove, and mouseup handlers just for a left/right click + // pie would use this too. + self.onClickInPanHandler = self.onClickInPanFn(self.dragOptions); + map.on('click', self.onClickInPanHandler); + } +}; + +proto.updateFramework = function(fullLayout) { + var domain = fullLayout[this.id].domain; + var size = fullLayout._size; + + var style = this.div.style; + style.width = size.w * (domain.x[1] - domain.x[0]) + 'px'; + style.height = size.h * (domain.y[1] - domain.y[0]) + 'px'; + style.left = size.l + domain.x[0] * size.w + 'px'; + style.top = size.t + (1 - domain.y[1]) * size.h + 'px'; + + this.xaxis._offset = size.l + domain.x[0] * size.w; + this.xaxis._length = size.w * (domain.x[1] - domain.x[0]); + + this.yaxis._offset = size.t + (1 - domain.y[1]) * size.h; + this.yaxis._length = size.h * (domain.y[1] - domain.y[0]); +}; + +proto.updateLayers = function(fullLayout) { + var opts = fullLayout[this.id]; + var layers = opts.layers; + var layerList = this.layerList; + var i; + + // if the layer arrays don't match, + // don't try to be smart, + // delete them all, and start all over. + + if(layers.length !== layerList.length) { + for(i = 0; i < layerList.length; i++) { + layerList[i].dispose(); + } + + layerList = this.layerList = []; + + for(i = 0; i < layers.length; i++) { + layerList.push(createMapLayer(this, i, layers[i])); + } + } else { + for(i = 0; i < layers.length; i++) { + layerList[i].update(layers[i]); + } + } +}; + +proto.destroy = function() { + if(this.map) { + this.map.remove(); + this.map = null; + this.container.removeChild(this.div); + } +}; + +proto.toImage = function() { + this.map.stop(); + return this.map.getCanvas().toDataURL(); +}; + +// convenience wrapper to create set multiple layer +// 'layout' or 'paint options at once. +proto.setOptions = function(id, methodName, opts) { + for(var k in opts) { + this.map[methodName](id, k, opts[k]); + } +}; + +proto.getMapLayers = function() { + return this.map.getStyle().layers; +}; + +// convenience wrapper that first check in 'below' references +// a layer that exist and then add the layer to the map, +proto.addLayer = function(opts, below) { + var map = this.map; + + if(typeof below === 'string') { + if(below === '') { + map.addLayer(opts, below); + return; + } + + var mapLayers = this.getMapLayers(); + for(var i = 0; i < mapLayers.length; i++) { + if(below === mapLayers[i].id) { + map.addLayer(opts, below); + return; + } + } + + Lib.warn([ + 'Trying to add layer with *below* value', + below, + 'referencing a layer that does not exist', + 'or that does not yet exist.' + ].join(' ')); + } + + map.addLayer(opts); +}; + +// convenience method to project a [lon, lat] array to pixel coords +proto.project = function(v) { + return this.map.project(new maplibregl.LngLat(v[0], v[1])); +}; + +// get map's current view values in plotly.js notation +proto.getView = function() { + var map = this.map; + var mapCenter = map.getCenter(); + var lon = mapCenter.lng; + var lat = mapCenter.lat; + var center = { lon: lon, lat: lat }; + + var canvas = map.getCanvas(); + var w = parseInt(canvas.style.width); + var h = parseInt(canvas.style.height); + + return { + center: center, + zoom: map.getZoom(), + bearing: map.getBearing(), + pitch: map.getPitch(), + _derived: { + coordinates: [ + map.unproject([0, 0]).toArray(), + map.unproject([w, 0]).toArray(), + map.unproject([w, h]).toArray(), + map.unproject([0, h]).toArray() + ] + } + }; +}; + +proto.getViewEdits = function(cont) { + var id = this.id; + var keys = ['center', 'zoom', 'bearing', 'pitch']; + var obj = {}; + + for(var i = 0; i < keys.length; i++) { + var k = keys[i]; + obj[id + '.' + k] = cont[k]; + } + + return obj; +}; + +proto.getViewEditsWithDerived = function(cont) { + var id = this.id; + var obj = this.getViewEdits(cont); + obj[id + '._derived'] = cont._derived; + return obj; +}; + +function getStyleObj(val) { + var styleObj = {}; + + if(Lib.isPlainObject(val)) { + styleObj.id = val.id; + styleObj.style = val; + } else if(typeof val === 'string') { + styleObj.id = val; + + if(constants.stylesMap[val]) { + styleObj.style = constants.stylesMap[val]; + } else { + styleObj.style = val; + } + } else { + styleObj.id = constants.styleValueDflt; + styleObj.style = convertStyleVal(constants.styleValueDflt); + } + + styleObj.transition = {duration: 0, delay: 0}; + + return styleObj; +} + +// if style is part of the 'official' map values, add URL prefix and suffix +function convertStyleVal(val) { + return constants.styleUrlPrefix + val + '-' + constants.styleUrlSuffix; +} + +function convertCenter(center) { + return [center.lon, center.lat]; +} + +module.exports = Map; diff --git a/src/registry.js b/src/registry.js index 20039e99a97..83ef3400b3a 100644 --- a/src/registry.js +++ b/src/registry.js @@ -217,6 +217,18 @@ exports.call = function() { return exports.apiMethodRegistry[name].apply(null, args); }; +function addCss(fileName) { + var head = document.head; + var link = document.createElement('link'); + + link.type = 'text/css'; + link.rel = 'stylesheet'; + link.href = fileName; + + head.appendChild(link); +} + + function registerTraceModule(_module) { var thisType = _module.name; var categoriesIn = _module.categories; @@ -272,10 +284,15 @@ function registerTraceModule(_module) { } } + // add maplibre-gl CSS here to avoid console warning on instantiation + if(bpmName === 'map') { + addCss('https://unpkg.com/maplibre-gl@^4.3.2/dist/maplibre-gl.css'); + } + // if `plotly-geo-assets.js` is not included, // add `PlotlyGeoAssets` global to stash references to all fetched // topojson / geojson data - if((bpmName === 'geo' || bpmName === 'mapbox') && + if((bpmName === 'geo' || bpmName === 'mapbox' || bpmName === 'map') && (window.PlotlyGeoAssets === undefined) ) { window.PlotlyGeoAssets = {topojson: {}}; diff --git a/src/snapshot/helpers.js b/src/snapshot/helpers.js index 09190b49d86..a2cfbef76a5 100644 --- a/src/snapshot/helpers.js +++ b/src/snapshot/helpers.js @@ -8,7 +8,8 @@ exports.getDelay = function(fullLayout) { return ( fullLayout._has('gl3d') || fullLayout._has('gl2d') || - fullLayout._has('mapbox') + fullLayout._has('mapbox') || + fullLayout._has('map') ) ? 500 : 0; }; diff --git a/src/traces/choroplethmap/attributes.js b/src/traces/choroplethmap/attributes.js new file mode 100644 index 00000000000..d9ecb585332 --- /dev/null +++ b/src/traces/choroplethmap/attributes.js @@ -0,0 +1,110 @@ +'use strict'; + +var choroplethAttrs = require('../choropleth/attributes'); +var colorScaleAttrs = require('../../components/colorscale/attributes'); +var hovertemplateAttrs = require('../../plots/template_attributes').hovertemplateAttrs; +var baseAttrs = require('../../plots/attributes'); +var extendFlat = require('../../lib/extend').extendFlat; + +module.exports = extendFlat({ + locations: { + valType: 'data_array', + editType: 'calc', + description: [ + 'Sets which features found in *geojson* to plot using', + 'their feature `id` field.' + ].join(' ') + }, + + // TODO + // Maybe start with only one value (that we could name e.g. 'geojson-id'), + // but eventually: + // - we could also support for our own dist/topojson/* + // .. and locationmode: choroplethAttrs.locationmode, + + z: { + valType: 'data_array', + editType: 'calc', + description: 'Sets the color values.' + }, + + // TODO maybe we could also set a "key" to dig out values out of the + // GeoJSON feature `properties` fields? + + geojson: { + valType: 'any', + editType: 'calc', + description: [ + 'Sets the GeoJSON data associated with this trace.', + + 'It can be set as a valid GeoJSON object or as a URL string.', + 'Note that we only accept GeoJSONs of type *FeatureCollection* or *Feature*', + 'with geometries of type *Polygon* or *MultiPolygon*.' + ].join(' ') + }, + featureidkey: extendFlat({}, choroplethAttrs.featureidkey, { + description: [ + 'Sets the key in GeoJSON features which is used as id to match the items', + 'included in the `locations` array.', + 'Support nested property, for example *properties.name*.' + ].join(' ') + }), + + // TODO agree on name / behaviour + // + // 'below' is used currently for layout.map.layers, + // even though it's not very plotly-esque. + // + // Note also, that the map-gl style don't all have the same layers, + // see https://codepen.io/etpinard/pen/ydVMwM for full list + below: { + valType: 'string', + editType: 'plot', + description: [ + 'Determines if the choropleth polygons will be inserted', + 'before the layer with the specified ID.', + 'By default, choroplethmap traces are placed above the water layers.', + 'If set to \'\',', + 'the layer will be inserted above every existing layer.' + ].join(' ') + }, + + text: choroplethAttrs.text, + hovertext: choroplethAttrs.hovertext, + + marker: { + line: { + color: extendFlat({}, choroplethAttrs.marker.line.color, {editType: 'plot'}), + width: extendFlat({}, choroplethAttrs.marker.line.width, {editType: 'plot'}), + editType: 'calc' + }, + // TODO maybe having a dflt less than 1, together with `below:''` would be better? + opacity: extendFlat({}, choroplethAttrs.marker.opacity, {editType: 'plot'}), + editType: 'calc' + }, + + selected: { + marker: { + opacity: extendFlat({}, choroplethAttrs.selected.marker.opacity, {editType: 'plot'}), + editType: 'plot' + }, + editType: 'plot' + }, + unselected: { + marker: { + opacity: extendFlat({}, choroplethAttrs.unselected.marker.opacity, {editType: 'plot'}), + editType: 'plot' + }, + editType: 'plot' + }, + + hoverinfo: choroplethAttrs.hoverinfo, + hovertemplate: hovertemplateAttrs({}, {keys: ['properties']}), + showlegend: extendFlat({}, baseAttrs.showlegend, {dflt: false}) +}, + + colorScaleAttrs('', { + cLetter: 'z', + editTypeOverride: 'calc' + }) +); diff --git a/src/traces/choroplethmap/convert.js b/src/traces/choroplethmap/convert.js new file mode 100644 index 00000000000..e577215e8ae --- /dev/null +++ b/src/traces/choroplethmap/convert.js @@ -0,0 +1,146 @@ +'use strict'; + +var isNumeric = require('fast-isnumeric'); + +var Lib = require('../../lib'); +var Colorscale = require('../../components/colorscale'); +var Drawing = require('../../components/drawing'); + +var makeBlank = require('../../lib/geojson_utils').makeBlank; +var geoUtils = require('../../lib/geo_location_utils'); + +/* N.B. + * + * We fetch the GeoJSON files "ourselves" (during + * map.prototype.fetchMapData) where they are stored in a global object + * named `PlotlyGeoAssets` (same as for topojson files in `geo` subplots). + * + * Map does allow using URLs as geojson sources, but does NOT allow filtering + * features by feature `id` that are not numbers (more info in: + * https://github.com/mapbox/mapbox-gl-js/issues/8088). + */ + +function convert(calcTrace) { + var trace = calcTrace[0].trace; + var isVisible = trace.visible === true && trace._length !== 0; + + var fill = { + layout: {visibility: 'none'}, + paint: {} + }; + + var line = { + layout: {visibility: 'none'}, + paint: {} + }; + + var opts = trace._opts = { + fill: fill, + line: line, + geojson: makeBlank() + }; + + if(!isVisible) return opts; + + var features = geoUtils.extractTraceFeature(calcTrace); + + if(!features) return opts; + + var sclFunc = Colorscale.makeColorScaleFuncFromTrace(trace); + var marker = trace.marker; + var markerLine = marker.line || {}; + + var opacityFn; + if(Lib.isArrayOrTypedArray(marker.opacity)) { + opacityFn = function(d) { + var mo = d.mo; + return isNumeric(mo) ? +Lib.constrain(mo, 0, 1) : 0; + }; + } + + var lineColorFn; + if(Lib.isArrayOrTypedArray(markerLine.color)) { + lineColorFn = function(d) { return d.mlc; }; + } + + var lineWidthFn; + if(Lib.isArrayOrTypedArray(markerLine.width)) { + lineWidthFn = function(d) { return d.mlw; }; + } + + for(var i = 0; i < calcTrace.length; i++) { + var cdi = calcTrace[i]; + var fOut = cdi.fOut; + + if(fOut) { + var props = fOut.properties; + props.fc = sclFunc(cdi.z); + if(opacityFn) props.mo = opacityFn(cdi); + if(lineColorFn) props.mlc = lineColorFn(cdi); + if(lineWidthFn) props.mlw = lineWidthFn(cdi); + cdi.ct = props.ct; + cdi._polygons = geoUtils.feature2polygons(fOut); + } + } + + var opacitySetting = opacityFn ? + {type: 'identity', property: 'mo'} : + marker.opacity; + + Lib.extendFlat(fill.paint, { + 'fill-color': {type: 'identity', property: 'fc'}, + 'fill-opacity': opacitySetting + }); + + Lib.extendFlat(line.paint, { + 'line-color': lineColorFn ? + {type: 'identity', property: 'mlc'} : + markerLine.color, + 'line-width': lineWidthFn ? + {type: 'identity', property: 'mlw'} : + markerLine.width, + 'line-opacity': opacitySetting + }); + + fill.layout.visibility = 'visible'; + line.layout.visibility = 'visible'; + + opts.geojson = {type: 'FeatureCollection', features: features}; + + convertOnSelect(calcTrace); + + return opts; +} + +function convertOnSelect(calcTrace) { + var trace = calcTrace[0].trace; + var opts = trace._opts; + var opacitySetting; + + if(trace.selectedpoints) { + var fns = Drawing.makeSelectedPointStyleFns(trace); + + for(var i = 0; i < calcTrace.length; i++) { + var cdi = calcTrace[i]; + if(cdi.fOut) { + cdi.fOut.properties.mo2 = fns.selectedOpacityFn(cdi); + } + } + + opacitySetting = {type: 'identity', property: 'mo2'}; + } else { + opacitySetting = Lib.isArrayOrTypedArray(trace.marker.opacity) ? + {type: 'identity', property: 'mo'} : + trace.marker.opacity; + } + + Lib.extendFlat(opts.fill.paint, {'fill-opacity': opacitySetting}); + Lib.extendFlat(opts.line.paint, {'line-opacity': opacitySetting}); + + return opts; +} + +module.exports = { + convert: convert, + convertOnSelect: convertOnSelect +}; diff --git a/src/traces/choroplethmap/defaults.js b/src/traces/choroplethmap/defaults.js new file mode 100644 index 00000000000..943670f8a88 --- /dev/null +++ b/src/traces/choroplethmap/defaults.js @@ -0,0 +1,41 @@ +'use strict'; + +var Lib = require('../../lib'); +var colorscaleDefaults = require('../../components/colorscale/defaults'); +var attributes = require('./attributes'); + +module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) { + function coerce(attr, dflt) { + return Lib.coerce(traceIn, traceOut, attributes, attr, dflt); + } + + var locations = coerce('locations'); + var z = coerce('z'); + var geojson = coerce('geojson'); + + if(!Lib.isArrayOrTypedArray(locations) || !locations.length || + !Lib.isArrayOrTypedArray(z) || !z.length || + !((typeof geojson === 'string' && geojson !== '') || Lib.isPlainObject(geojson)) + ) { + traceOut.visible = false; + return; + } + + coerce('featureidkey'); + + traceOut._length = Math.min(locations.length, z.length); + + coerce('below'); + + coerce('text'); + coerce('hovertext'); + coerce('hovertemplate'); + + var mlw = coerce('marker.line.width'); + if(mlw) coerce('marker.line.color'); + coerce('marker.opacity'); + + colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'z'}); + + Lib.coerceSelectionMarkerOpacity(traceOut, coerce); +}; diff --git a/src/traces/choroplethmap/index.js b/src/traces/choroplethmap/index.js new file mode 100644 index 00000000000..9e56c610e16 --- /dev/null +++ b/src/traces/choroplethmap/index.js @@ -0,0 +1,56 @@ +'use strict'; + +module.exports = { + attributes: require('./attributes'), + supplyDefaults: require('./defaults'), + colorbar: require('../heatmap/colorbar'), + calc: require('../choropleth/calc'), + plot: require('./plot'), + hoverPoints: require('../choropleth/hover'), + eventData: require('../choropleth/event_data'), + selectPoints: require('../choropleth/select'), + + styleOnSelect: function(_, cd) { + if(cd) { + var trace = cd[0].trace; + trace._glTrace.updateOnSelect(cd); + } + }, + + getBelow: function(trace, subplot) { + var mapLayers = subplot.getMapLayers(); + + // find layer just above top-most "water" layer + // that is not a plotly layer + for(var i = mapLayers.length - 2; i >= 0; i--) { + var layerId = mapLayers[i].id; + + if(typeof layerId === 'string' && + layerId.indexOf('water') === 0 + ) { + for(var j = i + 1; j < mapLayers.length; j++) { + layerId = mapLayers[j].id; + + if(typeof layerId === 'string' && + layerId.indexOf('plotly-') === -1 + ) { + return layerId; + } + } + } + } + }, + + moduleType: 'trace', + name: 'choroplethmap', + basePlotModule: require('../../plots/map'), + categories: ['map', 'gl', 'noOpacity', 'showLegend'], + meta: { + hr_name: 'choropleth_map', + description: [ + 'GeoJSON features to be filled are set in `geojson`', + 'The data that describes the choropleth value-to-color mapping', + 'is set in `locations` and `z`.' + ].join(' ') + } +}; diff --git a/src/traces/choroplethmap/plot.js b/src/traces/choroplethmap/plot.js new file mode 100644 index 00000000000..8b25af573e3 --- /dev/null +++ b/src/traces/choroplethmap/plot.js @@ -0,0 +1,120 @@ +'use strict'; + +var convert = require('./convert').convert; +var convertOnSelect = require('./convert').convertOnSelect; +var LAYER_PREFIX = require('../../plots/map/constants').traceLayerPrefix; + +function ChoroplethMap(subplot, uid) { + this.type = 'choroplethmap'; + this.subplot = subplot; + this.uid = uid; + + // N.B. fill and line layers share same source + this.sourceId = 'source-' + uid; + + this.layerList = [ + ['fill', LAYER_PREFIX + uid + '-fill'], + ['line', LAYER_PREFIX + uid + '-line'] + ]; + + // previous 'below' value, + // need this to update it properly + this.below = null; +} + +var proto = ChoroplethMap.prototype; + +proto.update = function(calcTrace) { + this._update(convert(calcTrace)); + + // link ref for quick update during selections + calcTrace[0].trace._glTrace = this; +}; + +proto.updateOnSelect = function(calcTrace) { + this._update(convertOnSelect(calcTrace)); +}; + +proto._update = function(optsAll) { + var subplot = this.subplot; + var layerList = this.layerList; + var below = subplot.belowLookup['trace-' + this.uid]; + + subplot.map + .getSource(this.sourceId) + .setData(optsAll.geojson); + + if(below !== this.below) { + this._removeLayers(); + this._addLayers(optsAll, below); + this.below = below; + } + + for(var i = 0; i < layerList.length; i++) { + var item = layerList[i]; + var k = item[0]; + var id = item[1]; + var opts = optsAll[k]; + + subplot.setOptions(id, 'setLayoutProperty', opts.layout); + + if(opts.layout.visibility === 'visible') { + subplot.setOptions(id, 'setPaintProperty', opts.paint); + } + } +}; + +proto._addLayers = function(optsAll, below) { + var subplot = this.subplot; + var layerList = this.layerList; + var sourceId = this.sourceId; + + for(var i = 0; i < layerList.length; i++) { + var item = layerList[i]; + var k = item[0]; + var opts = optsAll[k]; + + subplot.addLayer({ + type: k, + id: item[1], + source: sourceId, + layout: opts.layout, + paint: opts.paint + }, below); + } +}; + +proto._removeLayers = function() { + var map = this.subplot.map; + var layerList = this.layerList; + + for(var i = layerList.length - 1; i >= 0; i--) { + map.removeLayer(layerList[i][1]); + } +}; + +proto.dispose = function() { + var map = this.subplot.map; + this._removeLayers(); + map.removeSource(this.sourceId); +}; + +module.exports = function createChoroplethMap(subplot, calcTrace) { + var trace = calcTrace[0].trace; + var choroplethMap = new ChoroplethMap(subplot, trace.uid); + var sourceId = choroplethMap.sourceId; + var optsAll = convert(calcTrace); + var below = choroplethMap.below = subplot.belowLookup['trace-' + trace.uid]; + + subplot.map.addSource(sourceId, { + type: 'geojson', + data: optsAll.geojson + }); + + choroplethMap._addLayers(optsAll, below); + + // link ref for quick update during selections + calcTrace[0].trace._glTrace = choroplethMap; + + return choroplethMap; +}; diff --git a/src/traces/densitymap/attributes.js b/src/traces/densitymap/attributes.js new file mode 100644 index 00000000000..a9daac8f7f5 --- /dev/null +++ b/src/traces/densitymap/attributes.js @@ -0,0 +1,84 @@ +'use strict'; + +var colorScaleAttrs = require('../../components/colorscale/attributes'); +var hovertemplateAttrs = require('../../plots/template_attributes').hovertemplateAttrs; +var baseAttrs = require('../../plots/attributes'); +var scatterMapAttrs = require('../scattermap/attributes'); + +var extendFlat = require('../../lib/extend').extendFlat; + +/* + * - https://docs.map.com/help/tutorials/make-a-heatmap-with-mapbox-gl-js/ + * - https://docs.mapbox.com/mapbox-gl-js/example/heatmap-layer/ + * - https://docs.mapbox.com/mapbox-gl-js/style-spec/#layers-heatmap + * - https://blog.map.com/introducing-heatmaps-in-mapbox-gl-js-71355ada9e6c + * + * Gotchas: + * - https://github.com/mapbox/mapbox-gl-js/issues/6463 + * - https://github.com/mapbox/mapbox-gl-js/issues/6112 + */ + +/* + * + * In mathematical terms, Map GL heatmaps are a bivariate (2D) kernel density + * estimation with a Gaussian kernel. It means that each data point has an area + * of “influence” around it (called a kernel) where the numerical value of + * influence (which we call density) decreases as you go further from the point. + * If we sum density values of all points in every pixel of the screen, we get a + * combined density value which we then map to a heatmap color. + * + */ + +module.exports = extendFlat({ + lon: scatterMapAttrs.lon, + lat: scatterMapAttrs.lat, + + z: { + valType: 'data_array', + editType: 'calc', + description: [ + 'Sets the points\' weight.', + 'For example, a value of 10 would be equivalent to having 10 points of weight 1', + 'in the same spot' + ].join(' ') + }, + + radius: { + valType: 'number', + editType: 'plot', + arrayOk: true, + min: 1, + dflt: 30, + description: [ + 'Sets the radius of influence of one `lon` / `lat` point in pixels.', + 'Increasing the value makes the densitymap trace smoother, but less detailed.' + ].join(' ') + }, + + below: { + valType: 'string', + editType: 'plot', + description: [ + 'Determines if the densitymap trace will be inserted', + 'before the layer with the specified ID.', + 'By default, densitymap traces are placed below the first', + 'layer of type symbol', + 'If set to \'\',', + 'the layer will be inserted above every existing layer.' + ].join(' ') + }, + + text: scatterMapAttrs.text, + hovertext: scatterMapAttrs.hovertext, + + hoverinfo: extendFlat({}, baseAttrs.hoverinfo, { + flags: ['lon', 'lat', 'z', 'text', 'name'] + }), + hovertemplate: hovertemplateAttrs(), + showlegend: extendFlat({}, baseAttrs.showlegend, {dflt: false}) +}, + colorScaleAttrs('', { + cLetter: 'z', + editTypeOverride: 'calc' + }) +); diff --git a/src/traces/densitymap/calc.js b/src/traces/densitymap/calc.js new file mode 100644 index 00000000000..c04f186364e --- /dev/null +++ b/src/traces/densitymap/calc.js @@ -0,0 +1,49 @@ +'use strict'; + +var isNumeric = require('fast-isnumeric'); + +var isArrayOrTypedArray = require('../../lib').isArrayOrTypedArray; +var BADNUM = require('../../constants/numerical').BADNUM; + +var colorscaleCalc = require('../../components/colorscale/calc'); +var _ = require('../../lib')._; + +module.exports = function calc(gd, trace) { + var len = trace._length; + var calcTrace = new Array(len); + var z = trace.z; + var hasZ = isArrayOrTypedArray(z) && z.length; + + for(var i = 0; i < len; i++) { + var cdi = calcTrace[i] = {}; + + var lon = trace.lon[i]; + var lat = trace.lat[i]; + + cdi.lonlat = isNumeric(lon) && isNumeric(lat) ? + [+lon, +lat] : + [BADNUM, BADNUM]; + + if(hasZ) { + var zi = z[i]; + cdi.z = isNumeric(zi) ? zi : BADNUM; + } + } + + colorscaleCalc(gd, trace, { + vals: hasZ ? z : [0, 1], + containerStr: '', + cLetter: 'z' + }); + + if(len) { + calcTrace[0].t = { + labels: { + lat: _(gd, 'lat:') + ' ', + lon: _(gd, 'lon:') + ' ' + } + }; + } + + return calcTrace; +}; diff --git a/src/traces/densitymap/convert.js b/src/traces/densitymap/convert.js new file mode 100644 index 00000000000..aadd215f4c6 --- /dev/null +++ b/src/traces/densitymap/convert.js @@ -0,0 +1,106 @@ +'use strict'; + +var isNumeric = require('fast-isnumeric'); + +var Lib = require('../../lib'); +var Color = require('../../components/color'); +var Colorscale = require('../../components/colorscale'); + +var BADNUM = require('../../constants/numerical').BADNUM; +var makeBlank = require('../../lib/geojson_utils').makeBlank; + +module.exports = function convert(calcTrace) { + var trace = calcTrace[0].trace; + var isVisible = (trace.visible === true && trace._length !== 0); + + var heatmap = { + layout: {visibility: 'none'}, + paint: {} + }; + + var opts = trace._opts = { + heatmap: heatmap, + geojson: makeBlank() + }; + + // early return if not visible or placeholder + if(!isVisible) return opts; + + var features = []; + var i; + + var z = trace.z; + var radius = trace.radius; + var hasZ = Lib.isArrayOrTypedArray(z) && z.length; + var hasArrayRadius = Lib.isArrayOrTypedArray(radius); + + for(i = 0; i < calcTrace.length; i++) { + var cdi = calcTrace[i]; + var lonlat = cdi.lonlat; + + if(lonlat[0] !== BADNUM) { + var props = {}; + + if(hasZ) { + var zi = cdi.z; + props.z = zi !== BADNUM ? zi : 0; + } + if(hasArrayRadius) { + props.r = (isNumeric(radius[i]) && radius[i] > 0) ? +radius[i] : 0; + } + + features.push({ + type: 'Feature', + geometry: {type: 'Point', coordinates: lonlat}, + properties: props + }); + } + } + + var cOpts = Colorscale.extractOpts(trace); + var scl = cOpts.reversescale ? + Colorscale.flipScale(cOpts.colorscale) : + cOpts.colorscale; + + // Add alpha channel to first colorscale step. + // If not, we would essentially color the entire map. + // See https://maplibre.org/maplibre-gl-js/docs/examples/heatmap-layer/ + var scl01 = scl[0][1]; + var color0 = Color.opacity(scl01) < 1 ? scl01 : Color.addOpacity(scl01, 0); + + var heatmapColor = [ + 'interpolate', ['linear'], + ['heatmap-density'], + 0, color0 + ]; + for(i = 1; i < scl.length; i++) { + heatmapColor.push(scl[i][0], scl[i][1]); + } + + // Those "weights" have to be in [0, 1], we can do this either: + // - as here using a map-gl expression + // - or, scale the 'z' property in the feature loop + var zExp = [ + 'interpolate', ['linear'], + ['get', 'z'], + cOpts.min, 0, + cOpts.max, 1 + ]; + + Lib.extendFlat(opts.heatmap.paint, { + 'heatmap-weight': hasZ ? zExp : 1 / (cOpts.max - cOpts.min), + + 'heatmap-color': heatmapColor, + + 'heatmap-radius': hasArrayRadius ? + {type: 'identity', property: 'r'} : + trace.radius, + + 'heatmap-opacity': trace.opacity + }); + + opts.geojson = {type: 'FeatureCollection', features: features}; + opts.heatmap.layout.visibility = 'visible'; + + return opts; +}; diff --git a/src/traces/densitymap/defaults.js b/src/traces/densitymap/defaults.js new file mode 100644 index 00000000000..67a467ff59d --- /dev/null +++ b/src/traces/densitymap/defaults.js @@ -0,0 +1,32 @@ +'use strict'; + +var Lib = require('../../lib'); +var colorscaleDefaults = require('../../components/colorscale/defaults'); +var attributes = require('./attributes'); + +module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) { + function coerce(attr, dflt) { + return Lib.coerce(traceIn, traceOut, attributes, attr, dflt); + } + + var lon = coerce('lon') || []; + var lat = coerce('lat') || []; + + var len = Math.min(lon.length, lat.length); + if(!len) { + traceOut.visible = false; + return; + } + + traceOut._length = len; + + coerce('z'); + coerce('radius'); + coerce('below'); + + coerce('text'); + coerce('hovertext'); + coerce('hovertemplate'); + + colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'z'}); +}; diff --git a/src/traces/densitymap/event_data.js b/src/traces/densitymap/event_data.js new file mode 100644 index 00000000000..18cd6f91e11 --- /dev/null +++ b/src/traces/densitymap/event_data.js @@ -0,0 +1,8 @@ +'use strict'; + +module.exports = function eventData(out, pt) { + out.lon = pt.lon; + out.lat = pt.lat; + out.z = pt.z; + return out; +}; diff --git a/src/traces/densitymap/hover.js b/src/traces/densitymap/hover.js new file mode 100644 index 00000000000..94a10cfe2a1 --- /dev/null +++ b/src/traces/densitymap/hover.js @@ -0,0 +1,28 @@ +'use strict'; + +var Axes = require('../../plots/cartesian/axes'); +var scatterMapHoverPoints = require('../scattermap/hover').hoverPoints; +var getExtraText = require('../scattermap/hover').getExtraText; + +module.exports = function hoverPoints(pointData, xval, yval) { + var pts = scatterMapHoverPoints(pointData, xval, yval); + if(!pts) return; + + var newPointData = pts[0]; + var cd = newPointData.cd; + var trace = cd[0].trace; + var di = cd[newPointData.index]; + + // let Fx.hover pick the color + delete newPointData.color; + + if('z' in di) { + var ax = newPointData.subplot.mockAxis; + newPointData.z = di.z; + newPointData.zLabel = Axes.tickText(ax, ax.c2l(di.z), 'hover').text; + } + + newPointData.extraText = getExtraText(trace, di, cd[0].t.labels); + + return [newPointData]; +}; diff --git a/src/traces/densitymap/index.js b/src/traces/densitymap/index.js new file mode 100644 index 00000000000..bf1b43d6814 --- /dev/null +++ b/src/traces/densitymap/index.js @@ -0,0 +1,40 @@ +'use strict'; + +module.exports = { + attributes: require('./attributes'), + supplyDefaults: require('./defaults'), + colorbar: require('../heatmap/colorbar'), + formatLabels: require('../scattermap/format_labels'), + calc: require('./calc'), + plot: require('./plot'), + hoverPoints: require('./hover'), + eventData: require('./event_data'), + + getBelow: function(trace, subplot) { + var mapLayers = subplot.getMapLayers(); + + // find first layer with `type: 'symbol'`, + // that is not a plotly layer + for(var i = 0; i < mapLayers.length; i++) { + var layer = mapLayers[i]; + var layerId = layer.id; + if(layer.type === 'symbol' && + typeof layerId === 'string' && layerId.indexOf('plotly-') === -1 + ) { + return layerId; + } + } + }, + + moduleType: 'trace', + name: 'densitymap', + basePlotModule: require('../../plots/map'), + categories: ['map', 'gl', 'showLegend'], + meta: { + hr_name: 'density_map', + description: [ + 'Draws a bivariate kernel density estimation with a Gaussian kernel', + 'from `lon` and `lat` coordinates and optional `z` values using a colorscale.' + ].join(' ') + } +}; diff --git a/src/traces/densitymap/plot.js b/src/traces/densitymap/plot.js new file mode 100644 index 00000000000..3465c31eb6e --- /dev/null +++ b/src/traces/densitymap/plot.js @@ -0,0 +1,104 @@ +'use strict'; + +var convert = require('./convert'); +var LAYER_PREFIX = require('../../plots/map/constants').traceLayerPrefix; + +function DensityMap(subplot, uid) { + this.type = 'densitymap'; + this.subplot = subplot; + this.uid = uid; + + this.sourceId = 'source-' + uid; + + this.layerList = [ + ['heatmap', LAYER_PREFIX + uid + '-heatmap'] + ]; + + // previous 'below' value, + // need this to update it properly + this.below = null; +} + +var proto = DensityMap.prototype; + +proto.update = function(calcTrace) { + var subplot = this.subplot; + var layerList = this.layerList; + var optsAll = convert(calcTrace); + var below = subplot.belowLookup['trace-' + this.uid]; + + subplot.map + .getSource(this.sourceId) + .setData(optsAll.geojson); + + if(below !== this.below) { + this._removeLayers(); + this._addLayers(optsAll, below); + this.below = below; + } + + for(var i = 0; i < layerList.length; i++) { + var item = layerList[i]; + var k = item[0]; + var id = item[1]; + var opts = optsAll[k]; + + subplot.setOptions(id, 'setLayoutProperty', opts.layout); + + if(opts.layout.visibility === 'visible') { + subplot.setOptions(id, 'setPaintProperty', opts.paint); + } + } +}; + +proto._addLayers = function(optsAll, below) { + var subplot = this.subplot; + var layerList = this.layerList; + var sourceId = this.sourceId; + + for(var i = 0; i < layerList.length; i++) { + var item = layerList[i]; + var k = item[0]; + var opts = optsAll[k]; + + subplot.addLayer({ + type: k, + id: item[1], + source: sourceId, + layout: opts.layout, + paint: opts.paint + }, below); + } +}; + +proto._removeLayers = function() { + var map = this.subplot.map; + var layerList = this.layerList; + + for(var i = layerList.length - 1; i >= 0; i--) { + map.removeLayer(layerList[i][1]); + } +}; + +proto.dispose = function() { + var map = this.subplot.map; + this._removeLayers(); + map.removeSource(this.sourceId); +}; + +module.exports = function createDensityMap(subplot, calcTrace) { + var trace = calcTrace[0].trace; + var densityMap = new DensityMap(subplot, trace.uid); + var sourceId = densityMap.sourceId; + var optsAll = convert(calcTrace); + var below = densityMap.below = subplot.belowLookup['trace-' + trace.uid]; + + subplot.map.addSource(sourceId, { + type: 'geojson', + data: optsAll.geojson + }); + + densityMap._addLayers(optsAll, below); + + return densityMap; +}; diff --git a/src/traces/pie/plot.js b/src/traces/pie/plot.js index 450b8c4a09f..fbb8fd4de29 100644 --- a/src/traces/pie/plot.js +++ b/src/traces/pie/plot.js @@ -471,9 +471,9 @@ function attachFxHandlers(sliceTop, gd, cd) { sliceTop.on('click', function(pt) { // TODO: this does not support right-click. If we want to support it, we // would likely need to change pie to use dragElement instead of straight - // mapbox event binding. Or perhaps better, make a simple wrapper with the + // map subplot event binding. Or perhaps better, make a simple wrapper with the // right mousedown, mousemove, and mouseup handlers just for a left/right click - // mapbox would use this too. + // map subplots would use this too. var fullLayout2 = gd._fullLayout; var trace2 = gd._fullData[trace.index]; diff --git a/src/traces/scattermap/attributes.js b/src/traces/scattermap/attributes.js new file mode 100644 index 00000000000..b590d20ef79 --- /dev/null +++ b/src/traces/scattermap/attributes.js @@ -0,0 +1,182 @@ +'use strict'; + +var hovertemplateAttrs = require('../../plots/template_attributes').hovertemplateAttrs; +var texttemplateAttrs = require('../../plots/template_attributes').texttemplateAttrs; +var makeFillcolorAttr = require('../scatter/fillcolor_attribute'); +var scatterGeoAttrs = require('../scattergeo/attributes'); +var scatterAttrs = require('../scatter/attributes'); +var mapAttrs = require('../../plots/map/layout_attributes'); +var baseAttrs = require('../../plots/attributes'); +var colorScaleAttrs = require('../../components/colorscale/attributes'); + +var extendFlat = require('../../lib/extend').extendFlat; +var overrideAll = require('../../plot_api/edit_types').overrideAll; +var mapLayoutAtributes = require('../../plots/map/layout_attributes'); + +var lineAttrs = scatterGeoAttrs.line; +var markerAttrs = scatterGeoAttrs.marker; + +module.exports = overrideAll({ + lon: scatterGeoAttrs.lon, + lat: scatterGeoAttrs.lat, + + cluster: { + enabled: { + valType: 'boolean', + description: 'Determines whether clustering is enabled or disabled.' + }, + maxzoom: extendFlat({}, mapLayoutAtributes.layers.maxzoom, { + description: [ + 'Sets the maximum zoom level.', + 'At zoom levels equal to or greater than this, points will never be clustered.' + ].join(' ') + }), + step: { + valType: 'number', + arrayOk: true, + dflt: -1, + min: -1, + description: [ + 'Sets how many points it takes to create a cluster or advance to the next cluster step.', + 'Use this in conjunction with arrays for `size` and / or `color`.', + 'If an integer, steps start at multiples of this number.', + 'If an array, each step extends from the given value until one less than the next value.' + ].join(' ') + }, + size: { + valType: 'number', + arrayOk: true, + dflt: 20, + min: 0, + description: [ + 'Sets the size for each cluster step.' + ].join(' ') + }, + color: { + valType: 'color', + arrayOk: true, + description: [ + 'Sets the color for each cluster step.' + ].join(' ') + }, + opacity: extendFlat({}, markerAttrs.opacity, { + dflt: 1 + }) + }, + + // locations + // locationmode + + mode: extendFlat({}, scatterAttrs.mode, { + dflt: 'markers', + description: [ + 'Determines the drawing mode for this scatter trace.', + 'If the provided `mode` includes *text* then the `text` elements', + 'appear at the coordinates. Otherwise, the `text` elements', + 'appear on hover.' + ].join(' ') + }), + + text: extendFlat({}, scatterAttrs.text, { + description: [ + 'Sets text elements associated with each (lon,lat) pair', + 'If a single string, the same string appears over', + 'all the data points.', + 'If an array of string, the items are mapped in order to the', + 'this trace\'s (lon,lat) coordinates.', + 'If trace `hoverinfo` contains a *text* flag and *hovertext* is not set,', + 'these elements will be seen in the hover labels.' + ].join(' ') + }), + texttemplate: texttemplateAttrs({editType: 'plot'}, { + keys: ['lat', 'lon', 'text'] + }), + hovertext: extendFlat({}, scatterAttrs.hovertext, { + description: [ + 'Sets hover text elements associated with each (lon,lat) pair', + 'If a single string, the same string appears over', + 'all the data points.', + 'If an array of string, the items are mapped in order to the', + 'this trace\'s (lon,lat) coordinates.', + 'To be seen, trace `hoverinfo` must contain a *text* flag.' + ].join(' ') + }), + + line: { + color: lineAttrs.color, + width: lineAttrs.width + + // TODO + // dash: dash + }, + + connectgaps: scatterAttrs.connectgaps, + + marker: extendFlat({ + symbol: { + valType: 'string', + dflt: 'circle', + arrayOk: true, + description: [ + 'Sets the marker symbol.', + 'Full list: https://www.map.com/maki-icons/', + 'Note that the array `marker.color` and `marker.size`', + 'are only available for *circle* symbols.' + ].join(' ') + }, + angle: { + valType: 'number', + dflt: 'auto', + arrayOk: true, + description: [ + 'Sets the marker orientation from true North, in degrees clockwise.', + 'When using the *auto* default, no rotation would be applied', + 'in perspective views which is different from using a zero angle.' + ].join(' ') + }, + allowoverlap: { + valType: 'boolean', + dflt: false, + description: [ + 'Flag to draw all symbols, even if they overlap.' + ].join(' ') + }, + opacity: markerAttrs.opacity, + size: markerAttrs.size, + sizeref: markerAttrs.sizeref, + sizemin: markerAttrs.sizemin, + sizemode: markerAttrs.sizemode + }, + colorScaleAttrs('marker') + // line + ), + + fill: scatterGeoAttrs.fill, + fillcolor: makeFillcolorAttr(), + + textfont: mapAttrs.layers.symbol.textfont, + textposition: mapAttrs.layers.symbol.textposition, + + below: { + valType: 'string', + description: [ + 'Determines if this scattermap trace\'s layers are to be inserted', + 'before the layer with the specified ID.', + 'By default, scattermap layers are inserted', + 'above all the base layers.', + 'To place the scattermap layers above every other layer, set `below` to *\'\'*.' + ].join(' ') + }, + + selected: { + marker: scatterAttrs.selected.marker + }, + unselected: { + marker: scatterAttrs.unselected.marker + }, + + hoverinfo: extendFlat({}, baseAttrs.hoverinfo, { + flags: ['lon', 'lat', 'text', 'name'] + }), + hovertemplate: hovertemplateAttrs(), +}, 'calc', 'nested'); diff --git a/src/traces/scattermap/constants.js b/src/traces/scattermap/constants.js new file mode 100644 index 00000000000..001af34023e --- /dev/null +++ b/src/traces/scattermap/constants.js @@ -0,0 +1,45 @@ +'use strict'; + +// Must use one of the following fonts as the family, else default to 'Open Sans Regular' +// See https://github.com/openmaptiles/fonts/blob/gh-pages/fontstacks.json +var supportedFonts = [ + 'Metropolis Black Italic', + 'Metropolis Black', + 'Metropolis Bold Italic', + 'Metropolis Bold', + 'Metropolis Extra Bold Italic', + 'Metropolis Extra Bold', + 'Metropolis Extra Light Italic', + 'Metropolis Extra Light', + 'Metropolis Light Italic', + 'Metropolis Light', + 'Metropolis Medium Italic', + 'Metropolis Medium', + 'Metropolis Regular Italic', + 'Metropolis Regular', + 'Metropolis Semi Bold Italic', + 'Metropolis Semi Bold', + 'Metropolis Thin Italic', + 'Metropolis Thin', + 'Open Sans Bold Italic', + 'Open Sans Bold', + 'Open Sans Extrabold Italic', + 'Open Sans Extrabold', + 'Open Sans Italic', + 'Open Sans Light Italic', + 'Open Sans Light', + 'Open Sans Regular', + 'Open Sans Semibold Italic', + 'Open Sans Semibold', + 'Klokantech Noto Sans Bold', + 'Klokantech Noto Sans CJK Bold', + 'Klokantech Noto Sans CJK Regular', + 'Klokantech Noto Sans Italic', + 'Klokantech Noto Sans Regular' +]; + +module.exports = { + isSupportedFont: function(a) { + return supportedFonts.indexOf(a) !== -1; + } +}; diff --git a/src/traces/scattermap/convert.js b/src/traces/scattermap/convert.js new file mode 100644 index 00000000000..a281512acdd --- /dev/null +++ b/src/traces/scattermap/convert.js @@ -0,0 +1,427 @@ +'use strict'; + +var isNumeric = require('fast-isnumeric'); + +var Lib = require('../../lib'); +var BADNUM = require('../../constants/numerical').BADNUM; +var geoJsonUtils = require('../../lib/geojson_utils'); + +var Colorscale = require('../../components/colorscale'); +var Drawing = require('../../components/drawing'); +var makeBubbleSizeFn = require('../scatter/make_bubble_size_func'); +var subTypes = require('../scatter/subtypes'); +var isSupportedFont = require('./constants').isSupportedFont; +var convertTextOpts = require('../../plots/map/convert_text_opts'); +var appendArrayPointValue = require('../../components/fx/helpers').appendArrayPointValue; + +var NEWLINES = require('../../lib/svg_text_utils').NEWLINES; +var BR_TAG_ALL = require('../../lib/svg_text_utils').BR_TAG_ALL; + +module.exports = function convert(gd, calcTrace) { + var trace = calcTrace[0].trace; + + var isVisible = (trace.visible === true && trace._length !== 0); + var hasFill = (trace.fill !== 'none'); + var hasLines = subTypes.hasLines(trace); + var hasMarkers = subTypes.hasMarkers(trace); + var hasText = subTypes.hasText(trace); + var hasCircles = (hasMarkers && trace.marker.symbol === 'circle'); + var hasSymbols = (hasMarkers && trace.marker.symbol !== 'circle'); + var hasCluster = trace.cluster && trace.cluster.enabled; + + var fill = initContainer('fill'); + var line = initContainer('line'); + var circle = initContainer('circle'); + var symbol = initContainer('symbol'); + + var opts = { + fill: fill, + line: line, + circle: circle, + symbol: symbol + }; + + // early return if not visible or placeholder + if(!isVisible) return opts; + + // fill layer and line layer use the same coords + var lineCoords; + if(hasFill || hasLines) { + lineCoords = geoJsonUtils.calcTraceToLineCoords(calcTrace); + } + + if(hasFill) { + fill.geojson = geoJsonUtils.makePolygon(lineCoords); + fill.layout.visibility = 'visible'; + + Lib.extendFlat(fill.paint, { + 'fill-color': trace.fillcolor + }); + } + + if(hasLines) { + line.geojson = geoJsonUtils.makeLine(lineCoords); + line.layout.visibility = 'visible'; + + Lib.extendFlat(line.paint, { + 'line-width': trace.line.width, + 'line-color': trace.line.color, + 'line-opacity': trace.opacity + }); + + // TODO convert line.dash into line-dasharray + } + + if(hasCircles) { + var circleOpts = makeCircleOpts(calcTrace); + circle.geojson = circleOpts.geojson; + circle.layout.visibility = 'visible'; + if(hasCluster) { + circle.filter = ['!', ['has', 'point_count']]; + opts.cluster = { + type: 'circle', + filter: ['has', 'point_count'], + layout: {visibility: 'visible'}, + paint: { + 'circle-color': arrayifyAttribute(trace.cluster.color, trace.cluster.step), + 'circle-radius': arrayifyAttribute(trace.cluster.size, trace.cluster.step), + 'circle-opacity': arrayifyAttribute(trace.cluster.opacity, trace.cluster.step), + }, + }; + opts.clusterCount = { + type: 'symbol', + filter: ['has', 'point_count'], + paint: {}, + layout: { + 'text-field': '{point_count_abbreviated}', + 'text-font': getTextFont(trace), + 'text-size': 12 + } + }; + } + + Lib.extendFlat(circle.paint, { + 'circle-color': circleOpts.mcc, + 'circle-radius': circleOpts.mrc, + 'circle-opacity': circleOpts.mo + }); + } + + if(hasCircles && hasCluster) { + circle.filter = ['!', ['has', 'point_count']]; + } + + if(hasSymbols || hasText) { + symbol.geojson = makeSymbolGeoJSON(calcTrace, gd); + + Lib.extendFlat(symbol.layout, { + visibility: 'visible', + 'icon-image': '{symbol}-15', + 'text-field': '{text}' + }); + + if(hasSymbols) { + Lib.extendFlat(symbol.layout, { + 'icon-size': trace.marker.size / 10 + }); + + if('angle' in trace.marker && trace.marker.angle !== 'auto') { + Lib.extendFlat(symbol.layout, { + // unfortunately cant use {angle} do to this issue: + // https://github.com/mapbox/mapbox-gl-js/issues/873 + 'icon-rotate': { + type: 'identity', property: 'angle' + }, + 'icon-rotation-alignment': 'map' + }); + } + + symbol.layout['icon-allow-overlap'] = trace.marker.allowoverlap; + + Lib.extendFlat(symbol.paint, { + 'icon-opacity': trace.opacity * trace.marker.opacity, + + // TODO does not work ?? + 'icon-color': trace.marker.color + }); + } + + if(hasText) { + var iconSize = (trace.marker || {}).size; + var textOpts = convertTextOpts(trace.textposition, iconSize); + + // all data-driven below !! + + Lib.extendFlat(symbol.layout, { + 'text-size': trace.textfont.size, + 'text-anchor': textOpts.anchor, + 'text-offset': textOpts.offset, + 'text-font': getTextFont(trace) + }); + + Lib.extendFlat(symbol.paint, { + 'text-color': trace.textfont.color, + 'text-opacity': trace.opacity + }); + } + } + + return opts; +}; + +function initContainer(type) { + return { + type: type, + geojson: geoJsonUtils.makeBlank(), + layout: { visibility: 'none' }, + filter: null, + paint: {} + }; +} + +function makeCircleOpts(calcTrace) { + var trace = calcTrace[0].trace; + var marker = trace.marker; + var selectedpoints = trace.selectedpoints; + var arrayColor = Lib.isArrayOrTypedArray(marker.color); + var arraySize = Lib.isArrayOrTypedArray(marker.size); + var arrayOpacity = Lib.isArrayOrTypedArray(marker.opacity); + var i; + + function addTraceOpacity(o) { return trace.opacity * o; } + + function size2radius(s) { return s / 2; } + + var colorFn; + if(arrayColor) { + if(Colorscale.hasColorscale(trace, 'marker')) { + colorFn = Colorscale.makeColorScaleFuncFromTrace(marker); + } else { + colorFn = Lib.identity; + } + } + + var sizeFn; + if(arraySize) { + sizeFn = makeBubbleSizeFn(trace); + } + + var opacityFn; + if(arrayOpacity) { + opacityFn = function(mo) { + var mo2 = isNumeric(mo) ? +Lib.constrain(mo, 0, 1) : 0; + return addTraceOpacity(mo2); + }; + } + + var features = []; + for(i = 0; i < calcTrace.length; i++) { + var calcPt = calcTrace[i]; + var lonlat = calcPt.lonlat; + + if(isBADNUM(lonlat)) continue; + + var props = {}; + if(colorFn) props.mcc = calcPt.mcc = colorFn(calcPt.mc); + if(sizeFn) props.mrc = calcPt.mrc = sizeFn(calcPt.ms); + if(opacityFn) props.mo = opacityFn(calcPt.mo); + if(selectedpoints) props.selected = calcPt.selected || 0; + + features.push({ + type: 'Feature', + id: i + 1, + geometry: { type: 'Point', coordinates: lonlat }, + properties: props + }); + } + + var fns; + if(selectedpoints) { + fns = Drawing.makeSelectedPointStyleFns(trace); + + for(i = 0; i < features.length; i++) { + var d = features[i].properties; + + if(fns.selectedOpacityFn) { + d.mo = addTraceOpacity(fns.selectedOpacityFn(d)); + } + if(fns.selectedColorFn) { + d.mcc = fns.selectedColorFn(d); + } + if(fns.selectedSizeFn) { + d.mrc = fns.selectedSizeFn(d); + } + } + } + + return { + geojson: {type: 'FeatureCollection', features: features}, + mcc: arrayColor || (fns && fns.selectedColorFn) ? + {type: 'identity', property: 'mcc'} : + marker.color, + mrc: arraySize || (fns && fns.selectedSizeFn) ? + {type: 'identity', property: 'mrc'} : + size2radius(marker.size), + mo: arrayOpacity || (fns && fns.selectedOpacityFn) ? + {type: 'identity', property: 'mo'} : + addTraceOpacity(marker.opacity) + }; +} + +function makeSymbolGeoJSON(calcTrace, gd) { + var fullLayout = gd._fullLayout; + var trace = calcTrace[0].trace; + + var marker = trace.marker || {}; + var symbol = marker.symbol; + var angle = marker.angle; + + var fillSymbol = (symbol !== 'circle') ? + getFillFunc(symbol) : + blankFillFunc; + + var fillAngle = (angle !== 'auto') ? + getFillFunc(angle, true) : + blankFillFunc; + + var fillText = subTypes.hasText(trace) ? + getFillFunc(trace.text) : + blankFillFunc; + + + var features = []; + + for(var i = 0; i < calcTrace.length; i++) { + var calcPt = calcTrace[i]; + + if(isBADNUM(calcPt.lonlat)) continue; + + var texttemplate = trace.texttemplate; + var text; + + if(texttemplate) { + var tt = Array.isArray(texttemplate) ? (texttemplate[i] || '') : texttemplate; + var labels = trace._module.formatLabels(calcPt, trace, fullLayout); + var pointValues = {}; + appendArrayPointValue(pointValues, trace, calcPt.i); + var meta = trace._meta || {}; + text = Lib.texttemplateString(tt, labels, fullLayout._d3locale, pointValues, calcPt, meta); + } else { + text = fillText(i); + } + + if(text) { + text = text.replace(NEWLINES, '').replace(BR_TAG_ALL, '\n'); + } + + features.push({ + type: 'Feature', + geometry: { + type: 'Point', + coordinates: calcPt.lonlat + }, + properties: { + symbol: fillSymbol(i), + angle: fillAngle(i), + text: text + } + }); + } + + return { + type: 'FeatureCollection', + features: features + }; +} + +function getFillFunc(attr, numeric) { + if(Lib.isArrayOrTypedArray(attr)) { + if(numeric) { + return function(i) { return isNumeric(attr[i]) ? +attr[i] : 0; }; + } + return function(i) { return attr[i]; }; + } else if(attr) { + return function() { return attr; }; + } else { + return blankFillFunc; + } +} + +function blankFillFunc() { return ''; } + +// only need to check lon (OR lat) +function isBADNUM(lonlat) { + return lonlat[0] === BADNUM; +} + +function arrayifyAttribute(values, step) { + var newAttribute; + if(Lib.isArrayOrTypedArray(values) && Lib.isArrayOrTypedArray(step)) { + newAttribute = ['step', ['get', 'point_count'], values[0]]; + + for(var idx = 1; idx < values.length; idx++) { + newAttribute.push(step[idx - 1], values[idx]); + } + } else { + newAttribute = values; + } + return newAttribute; +} + +function getTextFont(trace) { + var font = trace.textfont; + var family = font.family; + var style = font.style; + var weight = font.weight; + + var parts = family.split(' '); + var isItalic = parts[parts.length - 1] === 'Italic'; + if(isItalic) parts.pop(); + isItalic = isItalic || style === 'italic'; + + var str = parts.join(' '); + if(weight === 'bold' && parts.indexOf('Bold') === -1) { + str += ' Bold'; + } else if(weight <= 1000) { // numeric font-weight + // See supportedFonts + + if(parts[0] === 'Metropolis') { + str = 'Metropolis'; + if(weight > 850) str += ' Black'; + else if(weight > 750) str += ' Extra Bold'; + else if(weight > 650) str += ' Bold'; + else if(weight > 550) str += ' Semi Bold'; + else if(weight > 450) str += ' Medium'; + else if(weight > 350) str += ' Regular'; + else if(weight > 250) str += ' Light'; + else if(weight > 150) str += ' Extra Light'; + else str += ' Thin'; + } else if(parts.slice(0, 2).join(' ') === 'Open Sans') { + str = 'Open Sans'; + if(weight > 750) str += ' Extrabold'; + else if(weight > 650) str += ' Bold'; + else if(weight > 550) str += ' Semibold'; + else if(weight > 350) str += ' Regular'; + else str += ' Light'; + } else if(parts.slice(0, 3).join(' ') === 'Klokantech Noto Sans') { + str = 'Klokantech Noto Sans'; + if(parts[3] === 'CJK') str += ' CJK'; + str += (weight > 500) ? ' Bold' : ' Regular'; + } + } + + if(isItalic) str += ' Italic'; + + if(str === 'Open Sans Regular Italic') str = 'Open Sans Italic'; + else if(str === 'Open Sans Regular Bold') str = 'Open Sans Bold'; + else if(str === 'Open Sans Regular Bold Italic') str = 'Open Sans Bold Italic'; + else if(str === 'Klokantech Noto Sans Regular Italic') str = 'Klokantech Noto Sans Italic'; + + // Ensure the result is a supported font + if(!isSupportedFont(str)) { + str = family; + } + + var textFont = str.split(', '); + return textFont; +} diff --git a/src/traces/scattermap/defaults.js b/src/traces/scattermap/defaults.js new file mode 100644 index 00000000000..2147f8ef0b6 --- /dev/null +++ b/src/traces/scattermap/defaults.js @@ -0,0 +1,104 @@ +'use strict'; + +var Lib = require('../../lib'); + +var subTypes = require('../scatter/subtypes'); +var handleMarkerDefaults = require('../scatter/marker_defaults'); +var handleLineDefaults = require('../scatter/line_defaults'); +var handleTextDefaults = require('../scatter/text_defaults'); +var handleFillColorDefaults = require('../scatter/fillcolor_defaults'); +var attributes = require('./attributes'); +var isSupportedFont = require('./constants').isSupportedFont; + +module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) { + function coerce(attr, dflt) { + return Lib.coerce(traceIn, traceOut, attributes, attr, dflt); + } + + function coerce2(attr, dflt) { + return Lib.coerce2(traceIn, traceOut, attributes, attr, dflt); + } + + var len = handleLonLatDefaults(traceIn, traceOut, coerce); + if(!len) { + traceOut.visible = false; + return; + } + + coerce('text'); + coerce('texttemplate'); + coerce('hovertext'); + coerce('hovertemplate'); + coerce('mode'); + coerce('below'); + + if(subTypes.hasMarkers(traceOut)) { + handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, {noLine: true, noAngle: true}); + + coerce('marker.allowoverlap'); + coerce('marker.angle'); + + // array marker.size and marker.color are only supported with circles + var marker = traceOut.marker; + if(marker.symbol !== 'circle') { + if(Lib.isArrayOrTypedArray(marker.size)) marker.size = marker.size[0]; + if(Lib.isArrayOrTypedArray(marker.color)) marker.color = marker.color[0]; + } + } + + if(subTypes.hasLines(traceOut)) { + handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce, {noDash: true}); + coerce('connectgaps'); + } + + var clusterMaxzoom = coerce2('cluster.maxzoom'); + var clusterStep = coerce2('cluster.step'); + var clusterColor = coerce2('cluster.color', (traceOut.marker && traceOut.marker.color) || defaultColor); + var clusterSize = coerce2('cluster.size'); + var clusterOpacity = coerce2('cluster.opacity'); + + var clusterEnabledDflt = + clusterMaxzoom !== false || + clusterStep !== false || + clusterColor !== false || + clusterSize !== false || + clusterOpacity !== false; + + var clusterEnabled = coerce('cluster.enabled', clusterEnabledDflt); + + if(clusterEnabled || subTypes.hasText(traceOut)) { + var layoutFontFamily = layout.font.family; + + handleTextDefaults(traceIn, traceOut, layout, coerce, + { + noSelect: true, + noFontVariant: true, + noFontShadow: true, + noFontLineposition: true, + noFontTextcase: true, + font: { + family: isSupportedFont(layoutFontFamily) ? layoutFontFamily : 'Open Sans Regular', + weight: layout.font.weight, + style: layout.font.style, + size: layout.font.size, + color: layout.font.color + } + }); + } + + coerce('fill'); + if(traceOut.fill !== 'none') { + handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce); + } + + Lib.coerceSelectionMarkerOpacity(traceOut, coerce); +}; + +function handleLonLatDefaults(traceIn, traceOut, coerce) { + var lon = coerce('lon') || []; + var lat = coerce('lat') || []; + var len = Math.min(lon.length, lat.length); + traceOut._length = len; + + return len; +} diff --git a/src/traces/scattermap/event_data.js b/src/traces/scattermap/event_data.js new file mode 100644 index 00000000000..2dfae6386b0 --- /dev/null +++ b/src/traces/scattermap/event_data.js @@ -0,0 +1,9 @@ +'use strict'; + + +module.exports = function eventData(out, pt) { + out.lon = pt.lon; + out.lat = pt.lat; + + return out; +}; diff --git a/src/traces/scattermap/format_labels.js b/src/traces/scattermap/format_labels.js new file mode 100644 index 00000000000..091b053e0bc --- /dev/null +++ b/src/traces/scattermap/format_labels.js @@ -0,0 +1,16 @@ +'use strict'; + +var Axes = require('../../plots/cartesian/axes'); + +module.exports = function formatLabels(cdi, trace, fullLayout) { + var labels = {}; + + var subplot = fullLayout[trace.subplot]._subplot; + var ax = subplot.mockAxis; + + var lonlat = cdi.lonlat; + labels.lonLabel = Axes.tickText(ax, ax.c2l(lonlat[0]), true).text; + labels.latLabel = Axes.tickText(ax, ax.c2l(lonlat[1]), true).text; + + return labels; +}; diff --git a/src/traces/scattermap/hover.js b/src/traces/scattermap/hover.js new file mode 100644 index 00000000000..af476fd6778 --- /dev/null +++ b/src/traces/scattermap/hover.js @@ -0,0 +1,116 @@ +'use strict'; + +var Fx = require('../../components/fx'); +var Lib = require('../../lib'); +var getTraceColor = require('../scatter/get_trace_color'); +var fillText = Lib.fillText; +var BADNUM = require('../../constants/numerical').BADNUM; +var LAYER_PREFIX = require('../../plots/map/constants').traceLayerPrefix; + +function hoverPoints(pointData, xval, yval) { + var cd = pointData.cd; + var trace = cd[0].trace; + var xa = pointData.xa; + var ya = pointData.ya; + var subplot = pointData.subplot; + var clusteredPointsIds = []; + var layer = LAYER_PREFIX + trace.uid + '-circle'; + var hasCluster = trace.cluster && trace.cluster.enabled; + + if(hasCluster) { + var elems = subplot.map.queryRenderedFeatures(null, {layers: [layer]}); + clusteredPointsIds = elems.map(function(elem) {return elem.id;}); + } + + // compute winding number about [-180, 180] globe + var winding = (xval >= 0) ? + Math.floor((xval + 180) / 360) : + Math.ceil((xval - 180) / 360); + + // shift longitude to [-180, 180] to determine closest point + var lonShift = winding * 360; + var xval2 = xval - lonShift; + + function distFn(d) { + var lonlat = d.lonlat; + if(lonlat[0] === BADNUM) return Infinity; + if(hasCluster && clusteredPointsIds.indexOf(d.i + 1) === -1) return Infinity; + + var lon = Lib.modHalf(lonlat[0], 360); + var lat = lonlat[1]; + var pt = subplot.project([lon, lat]); + var dx = pt.x - xa.c2p([xval2, lat]); + var dy = pt.y - ya.c2p([lon, yval]); + var rad = Math.max(3, d.mrc || 0); + + return Math.max(Math.sqrt(dx * dx + dy * dy) - rad, 1 - 3 / rad); + } + + Fx.getClosest(cd, distFn, pointData); + + // skip the rest (for this trace) if we didn't find a close point + if(pointData.index === false) return; + + var di = cd[pointData.index]; + var lonlat = di.lonlat; + var lonlatShifted = [Lib.modHalf(lonlat[0], 360) + lonShift, lonlat[1]]; + + // shift labels back to original winded globe + var xc = xa.c2p(lonlatShifted); + var yc = ya.c2p(lonlatShifted); + var rad = di.mrc || 1; + + pointData.x0 = xc - rad; + pointData.x1 = xc + rad; + pointData.y0 = yc - rad; + pointData.y1 = yc + rad; + + var fullLayout = {}; + fullLayout[trace.subplot] = {_subplot: subplot}; + var labels = trace._module.formatLabels(di, trace, fullLayout); + pointData.lonLabel = labels.lonLabel; + pointData.latLabel = labels.latLabel; + + pointData.color = getTraceColor(trace, di); + pointData.extraText = getExtraText(trace, di, cd[0].t.labels); + pointData.hovertemplate = trace.hovertemplate; + + return [pointData]; +} + +function getExtraText(trace, di, labels) { + if(trace.hovertemplate) return; + + var hoverinfo = di.hi || trace.hoverinfo; + var parts = hoverinfo.split('+'); + var isAll = parts.indexOf('all') !== -1; + var hasLon = parts.indexOf('lon') !== -1; + var hasLat = parts.indexOf('lat') !== -1; + var lonlat = di.lonlat; + var text = []; + + // TODO should we use a mock axis to format hover? + // If so, we'll need to make precision be zoom-level dependent + function format(v) { + return v + '\u00B0'; + } + + if(isAll || (hasLon && hasLat)) { + text.push('(' + format(lonlat[1]) + ', ' + format(lonlat[0]) + ')'); + } else if(hasLon) { + text.push(labels.lon + format(lonlat[0])); + } else if(hasLat) { + text.push(labels.lat + format(lonlat[1])); + } + + if(isAll || parts.indexOf('text') !== -1) { + fillText(di, trace, text); + } + + return text.join('
'); +} + +module.exports = { + hoverPoints: hoverPoints, + getExtraText: getExtraText +}; diff --git a/src/traces/scattermap/index.js b/src/traces/scattermap/index.js new file mode 100644 index 00000000000..b31ff5ebb39 --- /dev/null +++ b/src/traces/scattermap/index.js @@ -0,0 +1,33 @@ +'use strict'; + +module.exports = { + attributes: require('./attributes'), + supplyDefaults: require('./defaults'), + colorbar: require('../scatter/marker_colorbar'), + formatLabels: require('./format_labels'), + calc: require('../scattergeo/calc'), + plot: require('./plot'), + hoverPoints: require('./hover').hoverPoints, + eventData: require('./event_data'), + selectPoints: require('./select'), + + styleOnSelect: function(_, cd) { + if(cd) { + var trace = cd[0].trace; + trace._glTrace.update(cd); + } + }, + + moduleType: 'trace', + name: 'scattermap', + basePlotModule: require('../../plots/map'), + categories: ['map', 'gl', 'symbols', 'showLegend', 'scatter-like'], + meta: { + hrName: 'scatter_map', + description: [ + 'The data visualized as scatter point, lines or marker symbols', + 'on a MapLibre GL geographic map', + 'is provided by longitude/latitude pairs in `lon` and `lat`.' + ].join(' ') + } +}; diff --git a/src/traces/scattermap/plot.js b/src/traces/scattermap/plot.js new file mode 100644 index 00000000000..c4c1e1a745a --- /dev/null +++ b/src/traces/scattermap/plot.js @@ -0,0 +1,250 @@ +'use strict'; + +var Lib = require('../../lib'); +var convert = require('./convert'); +var LAYER_PREFIX = require('../../plots/map/constants').traceLayerPrefix; +var ORDER = { + cluster: ['cluster', 'clusterCount', 'circle'], + nonCluster: ['fill', 'line', 'circle', 'symbol'], +}; + +function ScatterMap(subplot, uid, clusterEnabled, isHidden) { + this.type = 'scattermap'; + this.subplot = subplot; + this.uid = uid; + this.clusterEnabled = clusterEnabled; + this.isHidden = isHidden; + + this.sourceIds = { + fill: 'source-' + uid + '-fill', + line: 'source-' + uid + '-line', + circle: 'source-' + uid + '-circle', + symbol: 'source-' + uid + '-symbol', + cluster: 'source-' + uid + '-circle', + clusterCount: 'source-' + uid + '-circle', + }; + + this.layerIds = { + fill: LAYER_PREFIX + uid + '-fill', + line: LAYER_PREFIX + uid + '-line', + circle: LAYER_PREFIX + uid + '-circle', + symbol: LAYER_PREFIX + uid + '-symbol', + cluster: LAYER_PREFIX + uid + '-cluster', + clusterCount: LAYER_PREFIX + uid + '-cluster-count', + }; + + // We could merge the 'fill' source with the 'line' source and + // the 'circle' source with the 'symbol' source if ever having + // for up-to 4 sources per 'scattermap' traces becomes a problem. + + // previous 'below' value, + // need this to update it properly + this.below = null; +} + +var proto = ScatterMap.prototype; + +proto.addSource = function(k, opts, cluster) { + var sourceOpts = { + type: 'geojson', + data: opts.geojson, + }; + + if(cluster && cluster.enabled) { + Lib.extendFlat(sourceOpts, { + cluster: true, + clusterMaxZoom: cluster.maxzoom, + }); + } + var isSourceExists = this.subplot.map.getSource(this.sourceIds[k]); + if(isSourceExists) { + isSourceExists.setData(opts.geojson); + } else { + this.subplot.map.addSource(this.sourceIds[k], sourceOpts); + } +}; + +proto.setSourceData = function(k, opts) { + this.subplot.map + .getSource(this.sourceIds[k]) + .setData(opts.geojson); +}; + +proto.addLayer = function(k, opts, below) { + var source = { + type: opts.type, + id: this.layerIds[k], + source: this.sourceIds[k], + layout: opts.layout, + paint: opts.paint, + }; + if(opts.filter) { + source.filter = opts.filter; + } + var currentLayerId = this.layerIds[k]; + var layerExist; + var layers = this.subplot.getMapLayers(); + for(var i = 0; i < layers.length; i++) { + if(layers[i].id === currentLayerId) { + layerExist = true; + break; + } + } + + if(layerExist) { + this.subplot.setOptions(currentLayerId, 'setLayoutProperty', source.layout); + if(source.layout.visibility === 'visible') { + this.subplot.setOptions(currentLayerId, 'setPaintProperty', source.paint); + } + } else { + this.subplot.addLayer(source, below); + } +}; + +proto.update = function update(calcTrace) { + var trace = calcTrace[0].trace; + var subplot = this.subplot; + var map = subplot.map; + var optsAll = convert(subplot.gd, calcTrace); + var below = subplot.belowLookup['trace-' + this.uid]; + var hasCluster = !!(trace.cluster && trace.cluster.enabled); + var hadCluster = !!this.clusterEnabled; + var lThis = this; + + function addCluster(noSource) { + if(!noSource) lThis.addSource('circle', optsAll.circle, trace.cluster); + var order = ORDER.cluster; + for(var i = 0; i < order.length; i++) { + var k = order[i]; + var opts = optsAll[k]; + lThis.addLayer(k, opts, below); + } + } + + function removeCluster(noSource) { + var order = ORDER.cluster; + for(var i = order.length - 1; i >= 0; i--) { + var k = order[i]; + map.removeLayer(lThis.layerIds[k]); + } + if(!noSource) map.removeSource(lThis.sourceIds.circle); + } + + function addNonCluster(noSource) { + var order = ORDER.nonCluster; + for(var i = 0; i < order.length; i++) { + var k = order[i]; + var opts = optsAll[k]; + if(!noSource) lThis.addSource(k, opts); + lThis.addLayer(k, opts, below); + } + } + + function removeNonCluster(noSource) { + var order = ORDER.nonCluster; + for(var i = order.length - 1; i >= 0; i--) { + var k = order[i]; + map.removeLayer(lThis.layerIds[k]); + if(!noSource) map.removeSource(lThis.sourceIds[k]); + } + } + + function remove(noSource) { + if(hadCluster) removeCluster(noSource); else removeNonCluster(noSource); + } + + function add(noSource) { + if(hasCluster) addCluster(noSource); else addNonCluster(noSource); + } + + function repaint() { + var order = hasCluster ? ORDER.cluster : ORDER.nonCluster; + for(var i = 0; i < order.length; i++) { + var k = order[i]; + var opts = optsAll[k]; + if(!opts) continue; + + subplot.setOptions(lThis.layerIds[k], 'setLayoutProperty', opts.layout); + + if(opts.layout.visibility === 'visible') { + if(k !== 'cluster') { + lThis.setSourceData(k, opts); + } + subplot.setOptions(lThis.layerIds[k], 'setPaintProperty', opts.paint); + } + } + } + + var wasHidden = this.isHidden; + var isHidden = trace.visible !== true; + + if(isHidden) { + if(!wasHidden) remove(); + } else if(wasHidden) { + if(!isHidden) add(); + } else if(hadCluster !== hasCluster) { + remove(); + add(); + } else if(this.below !== below) { + remove(true); + add(true); + repaint(); + } else { + repaint(); + } + + this.clusterEnabled = hasCluster; + this.isHidden = isHidden; + this.below = below; + + // link ref for quick update during selections + calcTrace[0].trace._glTrace = this; +}; + +proto.dispose = function dispose() { + var map = this.subplot.map; + var order = this.clusterEnabled ? ORDER.cluster : ORDER.nonCluster; + for(var i = order.length - 1; i >= 0; i--) { + var k = order[i]; + map.removeLayer(this.layerIds[k]); + map.removeSource(this.sourceIds[k]); + } +}; + +module.exports = function createScatterMap(subplot, calcTrace) { + var trace = calcTrace[0].trace; + var hasCluster = trace.cluster && trace.cluster.enabled; + var isHidden = trace.visible !== true; + + var scatterMap = new ScatterMap( + subplot, + trace.uid, + hasCluster, + isHidden + ); + + var optsAll = convert(subplot.gd, calcTrace); + var below = scatterMap.below = subplot.belowLookup['trace-' + trace.uid]; + var i, k, opts; + + if(hasCluster) { + scatterMap.addSource('circle', optsAll.circle, trace.cluster); + for(i = 0; i < ORDER.cluster.length; i++) { + k = ORDER.cluster[i]; + opts = optsAll[k]; + scatterMap.addLayer(k, opts, below); + } + } else { + for(i = 0; i < ORDER.nonCluster.length; i++) { + k = ORDER.nonCluster[i]; + opts = optsAll[k]; + scatterMap.addSource(k, opts, trace.cluster); + scatterMap.addLayer(k, opts, below); + } + } + + // link ref for quick update during selections + calcTrace[0].trace._glTrace = scatterMap; + + return scatterMap; +}; diff --git a/src/traces/scattermap/select.js b/src/traces/scattermap/select.js new file mode 100644 index 00000000000..4bf52b8e69c --- /dev/null +++ b/src/traces/scattermap/select.js @@ -0,0 +1,45 @@ +'use strict'; + +var Lib = require('../../lib'); +var subtypes = require('../scatter/subtypes'); +var BADNUM = require('../../constants/numerical').BADNUM; + +module.exports = function selectPoints(searchInfo, selectionTester) { + var cd = searchInfo.cd; + var xa = searchInfo.xaxis; + var ya = searchInfo.yaxis; + var selection = []; + var trace = cd[0].trace; + var i; + + if(!subtypes.hasMarkers(trace)) return []; + + if(selectionTester === false) { + for(i = 0; i < cd.length; i++) { + cd[i].selected = 0; + } + } else { + for(i = 0; i < cd.length; i++) { + var di = cd[i]; + var lonlat = di.lonlat; + + if(lonlat[0] !== BADNUM) { + var lonlat2 = [Lib.modHalf(lonlat[0], 360), lonlat[1]]; + var xy = [xa.c2p(lonlat2), ya.c2p(lonlat2)]; + + if(selectionTester.contains(xy, null, i, searchInfo)) { + selection.push({ + pointNumber: i, + lon: lonlat[0], + lat: lonlat[1] + }); + di.selected = 1; + } else { + di.selected = 0; + } + } + } + } + + return selection; +}; diff --git a/src/traces/sunburst/fx.js b/src/traces/sunburst/fx.js index 17948e38e6e..cb634567664 100644 --- a/src/traces/sunburst/fx.js +++ b/src/traces/sunburst/fx.js @@ -219,9 +219,9 @@ module.exports = function attachFxHandlers(sliceTop, entry, gd, cd, opts) { var onClick = function(pt) { // TODO: this does not support right-click. If we want to support it, we // would likely need to change pie to use dragElement instead of straight - // mapbox event binding. Or perhaps better, make a simple wrapper with the + // map subplots event binding. Or perhaps better, make a simple wrapper with the // right mousedown, mousemove, and mouseup handlers just for a left/right click - // mapbox would use this too. + // map subplots would use this too. var fullLayoutNow = gd._fullLayout; var traceNow = gd._fullData[trace.index]; diff --git a/test/image/baselines/map_0.png b/test/image/baselines/map_0.png new file mode 100644 index 00000000000..b0bc870e61b Binary files /dev/null and b/test/image/baselines/map_0.png differ diff --git a/test/image/baselines/map_angles.png b/test/image/baselines/map_angles.png new file mode 100644 index 00000000000..af4b4c19dc1 Binary files /dev/null and b/test/image/baselines/map_angles.png differ diff --git a/test/image/baselines/map_bubbles-text.png b/test/image/baselines/map_bubbles-text.png new file mode 100644 index 00000000000..4a78bc70f51 Binary files /dev/null and b/test/image/baselines/map_bubbles-text.png differ diff --git a/test/image/baselines/map_bubbles.png b/test/image/baselines/map_bubbles.png new file mode 100644 index 00000000000..9713c5358b4 Binary files /dev/null and b/test/image/baselines/map_bubbles.png differ diff --git a/test/image/baselines/map_carto-style.png b/test/image/baselines/map_carto-style.png new file mode 100644 index 00000000000..f05a18062fe Binary files /dev/null and b/test/image/baselines/map_carto-style.png differ diff --git a/test/image/baselines/map_carto-text.png b/test/image/baselines/map_carto-text.png new file mode 100644 index 00000000000..b2db2139043 Binary files /dev/null and b/test/image/baselines/map_carto-text.png differ diff --git a/test/image/baselines/map_choropleth-multiple.png b/test/image/baselines/map_choropleth-multiple.png new file mode 100644 index 00000000000..d7b69f29833 Binary files /dev/null and b/test/image/baselines/map_choropleth-multiple.png differ diff --git a/test/image/baselines/map_choropleth-raw-geojson.png b/test/image/baselines/map_choropleth-raw-geojson.png new file mode 100644 index 00000000000..1ae599519ee Binary files /dev/null and b/test/image/baselines/map_choropleth-raw-geojson.png differ diff --git a/test/image/baselines/map_choropleth0-legend.png b/test/image/baselines/map_choropleth0-legend.png new file mode 100644 index 00000000000..b035657b04e Binary files /dev/null and b/test/image/baselines/map_choropleth0-legend.png differ diff --git a/test/image/baselines/map_choropleth0.png b/test/image/baselines/map_choropleth0.png new file mode 100644 index 00000000000..d62b97547f8 Binary files /dev/null and b/test/image/baselines/map_choropleth0.png differ diff --git a/test/image/baselines/map_connectgaps.png b/test/image/baselines/map_connectgaps.png new file mode 100644 index 00000000000..9eca6b08bf1 Binary files /dev/null and b/test/image/baselines/map_connectgaps.png differ diff --git a/test/image/baselines/map_custom-style.png b/test/image/baselines/map_custom-style.png new file mode 100644 index 00000000000..7f4485c1480 Binary files /dev/null and b/test/image/baselines/map_custom-style.png differ diff --git a/test/image/baselines/map_density-multiple.png b/test/image/baselines/map_density-multiple.png new file mode 100644 index 00000000000..9c87b495438 Binary files /dev/null and b/test/image/baselines/map_density-multiple.png differ diff --git a/test/image/baselines/map_density-multiple_legend.png b/test/image/baselines/map_density-multiple_legend.png new file mode 100644 index 00000000000..d82ec065671 Binary files /dev/null and b/test/image/baselines/map_density-multiple_legend.png differ diff --git a/test/image/baselines/map_density0-legend.png b/test/image/baselines/map_density0-legend.png new file mode 100644 index 00000000000..48d54d0483e Binary files /dev/null and b/test/image/baselines/map_density0-legend.png differ diff --git a/test/image/baselines/map_density0.png b/test/image/baselines/map_density0.png new file mode 100644 index 00000000000..1f25cdc9693 Binary files /dev/null and b/test/image/baselines/map_density0.png differ diff --git a/test/image/baselines/map_earthquake-density.png b/test/image/baselines/map_earthquake-density.png new file mode 100644 index 00000000000..8df3af12987 Binary files /dev/null and b/test/image/baselines/map_earthquake-density.png differ diff --git a/test/image/baselines/map_fill.png b/test/image/baselines/map_fill.png new file mode 100644 index 00000000000..cd52700e54b Binary files /dev/null and b/test/image/baselines/map_fill.png differ diff --git a/test/image/baselines/map_fonts-supported-metropolis-italic.png b/test/image/baselines/map_fonts-supported-metropolis-italic.png new file mode 100644 index 00000000000..5e09dca5ffe Binary files /dev/null and b/test/image/baselines/map_fonts-supported-metropolis-italic.png differ diff --git a/test/image/baselines/map_fonts-supported-metropolis-weight.png b/test/image/baselines/map_fonts-supported-metropolis-weight.png new file mode 100644 index 00000000000..d6c24847cc5 Binary files /dev/null and b/test/image/baselines/map_fonts-supported-metropolis-weight.png differ diff --git a/test/image/baselines/map_fonts-supported-metropolis.png b/test/image/baselines/map_fonts-supported-metropolis.png new file mode 100644 index 00000000000..d6c24847cc5 Binary files /dev/null and b/test/image/baselines/map_fonts-supported-metropolis.png differ diff --git a/test/image/baselines/map_fonts-supported-open-sans-weight.png b/test/image/baselines/map_fonts-supported-open-sans-weight.png new file mode 100644 index 00000000000..f91e19454c4 Binary files /dev/null and b/test/image/baselines/map_fonts-supported-open-sans-weight.png differ diff --git a/test/image/baselines/map_fonts-supported-open-sans.png b/test/image/baselines/map_fonts-supported-open-sans.png new file mode 100644 index 00000000000..f91e19454c4 Binary files /dev/null and b/test/image/baselines/map_fonts-supported-open-sans.png differ diff --git a/test/image/baselines/map_geojson-attributes.png b/test/image/baselines/map_geojson-attributes.png new file mode 100644 index 00000000000..9796e85cfa6 Binary files /dev/null and b/test/image/baselines/map_geojson-attributes.png differ diff --git a/test/image/baselines/map_layers.png b/test/image/baselines/map_layers.png new file mode 100644 index 00000000000..670bb375418 Binary files /dev/null and b/test/image/baselines/map_layers.png differ diff --git a/test/image/baselines/map_osm-style.png b/test/image/baselines/map_osm-style.png new file mode 100644 index 00000000000..14242af3958 Binary files /dev/null and b/test/image/baselines/map_osm-style.png differ diff --git a/test/image/baselines/map_scattercluster.png b/test/image/baselines/map_scattercluster.png new file mode 100644 index 00000000000..25ae8a8b8d0 Binary files /dev/null and b/test/image/baselines/map_scattercluster.png differ diff --git a/test/image/baselines/map_stamen-style.png b/test/image/baselines/map_stamen-style.png new file mode 100644 index 00000000000..3ef56e1e0d1 Binary files /dev/null and b/test/image/baselines/map_stamen-style.png differ diff --git a/test/image/baselines/map_symbol-text.png b/test/image/baselines/map_symbol-text.png new file mode 100644 index 00000000000..6a423f72ad3 Binary files /dev/null and b/test/image/baselines/map_symbol-text.png differ diff --git a/test/image/baselines/map_texttemplate.png b/test/image/baselines/map_texttemplate.png new file mode 100644 index 00000000000..2ac0c8df02b Binary files /dev/null and b/test/image/baselines/map_texttemplate.png differ diff --git a/test/image/baselines/map_white-bg-style.png b/test/image/baselines/map_white-bg-style.png new file mode 100644 index 00000000000..7b9a35a6b46 Binary files /dev/null and b/test/image/baselines/map_white-bg-style.png differ diff --git a/test/image/baselines/pattern_bars.png b/test/image/baselines/pattern_bars.png index 69a0826e27c..077c05cf164 100644 Binary files a/test/image/baselines/pattern_bars.png and b/test/image/baselines/pattern_bars.png differ diff --git a/test/image/baselines/sunburst_coffee.png b/test/image/baselines/sunburst_coffee.png index 590edb08ba9..523744ad90d 100644 Binary files a/test/image/baselines/sunburst_coffee.png and b/test/image/baselines/sunburst_coffee.png differ diff --git a/test/image/baselines/treemap_pad_mirror.png b/test/image/baselines/treemap_pad_mirror.png index 2a349f78627..7b32a62f2f0 100644 Binary files a/test/image/baselines/treemap_pad_mirror.png and b/test/image/baselines/treemap_pad_mirror.png differ diff --git a/test/image/baselines/treemap_sunburst_marker_colors.png b/test/image/baselines/treemap_sunburst_marker_colors.png index 3a45878bbec..beebd418791 100644 Binary files a/test/image/baselines/treemap_sunburst_marker_colors.png and b/test/image/baselines/treemap_sunburst_marker_colors.png differ diff --git a/test/image/baselines/treemap_textfit.png b/test/image/baselines/treemap_textfit.png index d2dcf1792e9..7cbd4c40311 100644 Binary files a/test/image/baselines/treemap_textfit.png and b/test/image/baselines/treemap_textfit.png differ diff --git a/test/image/baselines/treemap_textposition.png b/test/image/baselines/treemap_textposition.png index ae890fcb0e3..6959e66b90e 100644 Binary files a/test/image/baselines/treemap_textposition.png and b/test/image/baselines/treemap_textposition.png differ diff --git a/test/image/baselines/uniformtext_bar_edgecase1.png b/test/image/baselines/uniformtext_bar_edgecase1.png index 8c353512168..4beaa6bba51 100644 Binary files a/test/image/baselines/uniformtext_bar_edgecase1.png and b/test/image/baselines/uniformtext_bar_edgecase1.png differ diff --git a/test/image/compare_pixels_test.js b/test/image/compare_pixels_test.js index e6fd7f27116..abfcfa0db23 100644 --- a/test/image/compare_pixels_test.js +++ b/test/image/compare_pixels_test.js @@ -60,15 +60,13 @@ argv._.forEach(function(pattern) { } }); -allMockList = allMockList.filter(function(a) { - return ( - // used to pass before 2023 Jun 20 - a !== 'mapbox_stamen-style' && - - // skip for now | TODO: figure out why needed this in https://github.com/plotly/plotly.js/pull/6610 - a !== 'mapbox_custom-style' - ); -}); +var blacklist = [ + 'map_stamen-style', + 'mapbox_stamen-style', + 'mapbox_custom-style', + 'mapbox_density0-legend', + 'mapbox_osm-style', +]; if(virtualWebgl) { allMockList = allMockList.filter(function(a) { @@ -107,16 +105,13 @@ for(var i = 0; i < allMockList.length; i++) { var mockName = allMockList[i]; // skip blacklist - if([ - 'mapbox_density0-legend', - 'mapbox_osm-style' - ].indexOf(mockName) !== -1) { - continue; - } + if(blacklist.indexOf(mockName) !== -1) continue; var isMapbox = mockName.substr(0, 7) === 'mapbox_'; var isOtherFlaky = [ // list flaky mocks other than mapbox: + 'map_density0-legend', + 'map_osm-style', 'gl3d_bunny-hull' ].indexOf(mockName) !== -1; @@ -165,6 +160,7 @@ for(var i = 0; i < allMockList.length; i++) { var threshold = shouldBePixelPerfect ? 0 : [ // more flaky + 'map_angles', 'mapbox_angles', 'mapbox_layers', 'mapbox_custom-style', diff --git a/test/image/export_test.js b/test/image/export_test.js index 50e6d617df6..47a06ef06cd 100644 --- a/test/image/export_test.js +++ b/test/image/export_test.js @@ -27,6 +27,7 @@ var DEFAULT_LIST = [ 'gl2d_no-clustering2', 'gl3d_surface-heatmap-treemap_transparent-colorscale', 'mapbox_density-multiple_legend', + 'map_density-multiple_legend', 'smith_modes', 'zsmooth_methods', 'fonts', diff --git a/test/image/make_baseline.py b/test/image/make_baseline.py index 3c0b50d1bc5..3782a48d2a0 100644 --- a/test/image/make_baseline.py +++ b/test/image/make_baseline.py @@ -95,6 +95,7 @@ # unable to generate baselines for the following mocks blacklist = [ + 'map_stamen-style', 'mapbox_density0-legend', 'mapbox_osm-style', 'mapbox_stamen-style', # Could pass by setting mapboxAccessToken to a stadiamaps.com token diff --git a/test/image/make_exports.py b/test/image/make_exports.py index e00fd79bdf1..ddf12072968 100644 --- a/test/image/make_exports.py +++ b/test/image/make_exports.py @@ -28,6 +28,7 @@ 'gl2d_no-clustering2', 'gl3d_surface-heatmap-treemap_transparent-colorscale', 'mapbox_density-multiple_legend', + 'map_density-multiple_legend', 'smith_modes', 'zsmooth_methods', 'fonts', diff --git a/test/image/mocks/map_0.json b/test/image/mocks/map_0.json new file mode 100644 index 00000000000..f01a6fb4be9 --- /dev/null +++ b/test/image/mocks/map_0.json @@ -0,0 +1,51 @@ +{ + "data": [ + { + "type": "scattermap", + "mode": "markers+lines", + "lon": [ + 10, + 20, + 30 + ], + "lat": [ + 10, + 20, + 30 + ], + "marker": { + "size": 20 + } + }, + { + "type": "scattermap", + "mode": "markers+lines", + "lon": [ + -75, + -120, + 170 + ], + "lat": [ + 45, + 20, + -40 + ], + "marker": { + "size": 20 + } + } + ], + "layout": { + "map": { + "style": "dark", + "center": { + "lon": -4.71092760419225, + "lat": 19.475789009298566 + }, + "zoom": 1.2345714569517612 + }, + "height": 450, + "width": 1100, + "autosize": true + } +} diff --git a/test/image/mocks/map_angles.json b/test/image/mocks/map_angles.json new file mode 100644 index 00000000000..75c94576d62 --- /dev/null +++ b/test/image/mocks/map_angles.json @@ -0,0 +1,92 @@ +{ + "data": [ + { + "type": "scattermap", + "mode": "markers", + "lon": [ + -73.6, + -73.55, + -73.57 + ], + "lat": [ + 45.5, + 45.49, + 45.51 + ], + "marker": { + "size": 15, + "symbol": [ + "monument", + "harbor", + "music" + ] + } + }, + { + "type": "scattermap", + "mode": "markers", + "lon": [ + -73.6, + -73.55, + -73.57 + ], + "lat": [ + 45.5, + 45.49, + 45.51 + ], + "marker": { + "size": 12, + "symbol": [ + "monument", + "harbor", + "music" + ], + "angle": [-45, 45, 0], + "allowoverlap":true + }, + "subplot": "map2" + } + ], + "layout": { + "map": { + "domain": { + "x": [ + 0, + 1 + ], + "y": [ + 0, + 1 + ] + }, + "center": { + "lon": -73.58432898976686, + "lat": 45.51514448108094 + }, + "zoom": 10.8, + "pitch": 60, + "bearing": -60 + }, + "map2": { + "domain": { + "x": [ + 0.6, + 1 + ], + "y": [ + 0.6, + 1 + ] + }, + "center": { + "lon": -73.61356140239891, + "lat": 45.49896198405253 + }, + "zoom": 9.8 + }, + "showlegend": false, + "width": 700, + "height": 450 + } +} diff --git a/test/image/mocks/map_bubbles-text.json b/test/image/mocks/map_bubbles-text.json new file mode 100644 index 00000000000..37dc42c6dd8 --- /dev/null +++ b/test/image/mocks/map_bubbles-text.json @@ -0,0 +1,62 @@ +{ + "data": [ + { + "type": "scattermap", + "mode": "markers+lines+text", + "lon": [ + 10, + 20, + 30 + ], + "lat": [ + 10, + 20, + 30 + ], + "marker": { + "size": [ + 10, + 30, + 20 + ], + "color": [ + "red", + "green", + "blue" + ] + }, + "text": [ + "A", + "B \n b", + "C
c" + ], + "textposition": "top left", + "textfont": { + "size": 20, + "color": "red" + } + } + ], + "layout": { + "font": { + "weight": "bold", + "style": "italic" + }, + "map": { + "bounds": { + "west": -60, + "east": 60, + "south": -30, + "north": 30 + }, + "style": "light", + "zoom": 2.5, + "center": { + "lon": 19.5, + "lat": 22 + } + }, + "width": 700, + "height": 450 + } +} diff --git a/test/image/mocks/map_bubbles.json b/test/image/mocks/map_bubbles.json new file mode 100644 index 00000000000..70d0e2d87a1 --- /dev/null +++ b/test/image/mocks/map_bubbles.json @@ -0,0 +1,85 @@ +{ + "data": [ + { + "type": "scattermap", + "lon": [10, 20, 30], + "lat": [10, 20, 30], + "marker": { + "size": [20, 10, 40], + "color": ["red", "blue", "orange"], + "opacity": [0.3, 0.5, 1] + }, + "opacity": 0.7 + }, + { + "type": "scattermap", + "lon": [-75, -120, 100], + "lat": [45, 20, -40], + "marker": { + "size": [60, 20, 40], + "color": [0, 20, 30], + "colorbar": {}, + "cmin": 0, + "cmax": 30, + "colorscale": [ + [0, "rgb(220,220,220)"], + [0.2, "rgb(245,195,157)"], + [0.4, "rgb(245,160,105)"], + [1, "rgb(178,10,28)"] + ] + } + }, + { + "type": "scattermap", + "selectedpoints": [1], + "mode": "markers", + "lon": [-10, -20, -30], + "lat": [10, 20, 30], + "marker": {"size": 20}, + "selected": { + "marker": { + "opacity": 0.8 + } + }, + "unselected": { + "marker": { + "opacity": 0.5 + } + } + }, + { + "type": "scattermap", + "selectedpoints": [0, 2], + "mode": "markers", + "lon": [-10, -20, -30], + "lat": [-10, -20, -30], + "marker": {"size": 20}, + "selected": { + "marker": { + "size": 40, + "color": "green" + } + }, + "unselected": { + "marker": { + "size": 10, + "color": "red" + } + }, + "hoverlabel": { + "bgcolor": "grey" + } + } + ], + "layout": { + "map": { + "style": "light", + "zoom": 0.5 + }, + "showlegend": false, + "height": 450, + "width": 600, + "margin": {"l": 10}, + "dragmode": "select" + } +} diff --git a/test/image/mocks/map_carto-style.json b/test/image/mocks/map_carto-style.json new file mode 100644 index 00000000000..fcc96eb04d2 --- /dev/null +++ b/test/image/mocks/map_carto-style.json @@ -0,0 +1,34 @@ +{ + "data": [ + { + "type": "scattermap", + "name": "carto-positron", + "lon": [ 10, 20 ], + "lat": [ 20, 10 ] + }, + { + "type": "scattermap", + "name": "carto-darkmatter", + "lon": [ 10, 20 ], + "lat": [ 20, 10 ], + "subplot": "map2" + } + ], + "layout": { + "grid": {"rows": 1, "columns": 2}, + + "legend": { + "x": 0, + "y": 1, "yanchor": "bottom" + }, + + "map": { + "domain": {"row": 0, "column": 0}, + "style": "carto-positron" + }, + "map2": { + "domain": {"row": 0, "column": 1}, + "style": "carto-darkmatter" + } + } +} diff --git a/test/image/mocks/map_carto-text.json b/test/image/mocks/map_carto-text.json new file mode 100644 index 00000000000..711b4e1a7c4 --- /dev/null +++ b/test/image/mocks/map_carto-text.json @@ -0,0 +1,40 @@ +{ + "data": [ + { + "type": "scattermap", + "name": "carto-positron", + "lon": [ 10, 5 ], + "lat": [ 20, 10 ], + "text":["pt1","pt2"], + "mode":"text" + + }, + { + "type": "scattermap", + "name": "carto-darkmatter", + "lon": [ 10, 5 ], + "lat": [ 20, 10 ], + "subplot": "map2", + "mode":"text", + "text":["pt1","pt2"], + "textfont":{"family":"Metropolis Extra Bold Italic","color":"#fff"} + } + ], + "layout": { + "grid": {"rows": 1, "columns": 2}, + + "legend": { + "x": 0, + "y": 1, "yanchor": "bottom" + }, + + "map": { + "domain": {"row": 0, "column": 0}, + "style": "carto-positron" + }, + "map2": { + "domain": {"row": 0, "column": 1}, + "style": "carto-darkmatter" + } + } + } diff --git a/test/image/mocks/map_choropleth-multiple.json b/test/image/mocks/map_choropleth-multiple.json new file mode 100644 index 00000000000..822947be078 --- /dev/null +++ b/test/image/mocks/map_choropleth-multiple.json @@ -0,0 +1,55 @@ +{ + "data": [ + { + "type": "choroplethmap", + "name": "world countries", + "geojson": "https://raw.githubusercontent.com/python-visualization/folium/master/examples/data/world-countries.json", + "locations": [ "AFG", "AGO", "ALB", "ARE", "ARG", "ARM", "ATA", "ATF", "AUS", "AUT", "AZE", "BDI", "BEL", "BEN", "BFA", "BGD", "BGR", "BHS", "BIH", "BLR", "BLZ", "BOL", "BRA", "BRN", "BTN", "BWA", "CAF", "CAN", "CHE", "CHL", "CHN", "CIV", "CMR", "COD", "COG", "COL", "CRI", "CUB", "-99", "CYP", "CZE", "DEU", "DJI", "DNK", "DOM", "DZA", "ECU", "EGY", "ERI", "ESP", "EST", "ETH", "FIN", "FJI", "FLK", "FRA", "GAB", "GBR", "GEO", "GHA", "GIN", "GMB", "GNB", "GNQ", "GRC", "GRL", "GTM", "GUY", "HND", "HRV", "HTI", "HUN", "IDN", "IND", "IRL", "IRN", "IRQ", "ISL", "ISR", "ITA", "JAM", "JOR", "JPN", "KAZ", "KEN", "KGZ", "KHM", "KOR", "-99", "KWT", "LAO", "LBN", "LBR", "LBY", "LKA", "LSO", "LTU", "LUX", "LVA", "MAR", "MDA", "MDG", "MEX", "MKD", "MLI", "MMR", "MNE", "MNG", "MOZ", "MRT", "MWI", "MYS", "NAM", "NCL", "NER", "NGA", "NIC", "NLD", "NOR", "NPL", "NZL", "OMN", "PAK", "PAN", "PER", "PHL", "PNG", "POL", "PRI", "PRK", "PRT", "PRY", "QAT", "ROU", "RUS", "RWA", "-99", "SAU", "SDN", "SDS", "SEN", "SLB", "SLE", "SLV", "-99", "SOM", "SRB", "SUR", "SVK", "SVN", "SWE", "SWZ", "SYR", "TCD", "TGO", "THA", "TJK", "TKM", "TLS", "TTO", "TUN", "TUR", "TWN", "TZA", "UGA", "UKR", "URY", "USA", "UZB", "VEN", "VNM", "VUT", "PSE", "YEM", "ZAF", "ZMB", "ZWE" ], + "z": [ 135, 136, 141, 147, 147, 147, 149, 149, 150, 150, 155, 134, 135, 135, 136, 137, 137, 138, 139, 142, 142, 145, 148, 148, 150, 153, 132, 132, 139, 139, 139, 140, 144, 146, 146, 146, 149, 152, 102, 156, 157, 137, 142, 146, 147, 158, 136, 140, 151, 152, 152, 153, 143, 144, 146, 152, 136, 137, 140, 143, 144, 148, 149, 149, 153, 153, 155, 156, 150, 154, 156, 157, 141, 151, 155, 155, 155, 156, 156, 157, 139, 153, 154, 140, 144, 146, 147, 154, 102, 162, 141, 142, 142, 142, 151, 159, 160, 161, 162, 142, 145, 145, 146, 152, 153, 154, 155, 155, 156, 159, 164, 166, 143, 145, 147, 149, 151, 154, 157, 158, 168, 156, 145, 145, 149, 152, 158, 159, 162, 162, 162, 162, 146, 161, 167, 169, 102, 148, 151, 151, 152, 159, 159, 159, 102, 162, 165, 168, 169, 169, 170, 170, 172, 151, 155, 156, 158, 159, 160, 168, 169, 169, 171, 174, 156, 160, 167, 168, 175, 155, 164, 171, 163, 158, 155, 167, 177 ], + "zmid": 100, + "colorbar": { + "y": 1, + "yanchor": "top", + "len": 0.45, + "title": { + "text": "World
countries", + "side": "right" + }, + "x": 1.02 + }, + "selectedpoints": [ 0, 10, 20, 23, 40 ] + }, + { + "type": "choroplethmap", + "name": "US states", + "geojson": "https://raw.githubusercontent.com/python-visualization/folium/master/examples/data/us-states.json", + "locations": [ "AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "FL", "GA", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD", "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC", "SD", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY" ], + "z": [ 141, 140, 155, 147, 132, 146, 151, 137, 146, 136, 145, 141, 149, 151, 138, 158, 164, 141, 146, 145, 142, 150, 155, 160, 156, 161, 147, 164, 150, 152, 155, 167, 145, 146, 151, 154, 161, 145, 155, 150, 151, 162, 172, 169, 170, 151, 152, 173, 160, 176 ], + "zmin": 25, + "zmax": 180, + "colorscale": "Greens", + "reversescale": true, + "marker": { "line": { "width": 0 } }, + "colorbar": { + "y": 0, + "yanchor": "bottom", + "len": 0.45, + "title": { + "text": "US states", + "side": "right" + }, + "x": 1.02 + }, + "below": "" + } + ], + "layout": { + "map": { + "style": "light", + "zoom": 0.3 + }, + "width": 800, + "height": 400, + "margin": { "t": 10, "b": 10, "l": 10 } + } +} diff --git a/test/image/mocks/map_choropleth-raw-geojson.json b/test/image/mocks/map_choropleth-raw-geojson.json new file mode 100644 index 00000000000..af933e436b0 --- /dev/null +++ b/test/image/mocks/map_choropleth-raw-geojson.json @@ -0,0 +1,71 @@ +{ + "data": [{ + "type": "scattermap", + "lon": [-86], + "lat": [34], + "marker": {"size": 20}, + "hovertext": "should be above choroplehtmap trace" + }, { + "type": "choroplethmap", + "locations": ["AL"], + "z": [10], + "coloraxis": "coloraxis", + "geojson": { + "type": "Feature", + "id": "AL", + "geometry": { + "type": "Polygon", + "coordinates": [[ + [-87.359296, 35.00118], [-85.606675, 34.984749], [-85.431413, 34.124869], [-85.184951, 32.859696], + [-85.069935, 32.580372], [-84.960397, 32.421541], [-85.004212, 32.322956], [-84.889196, 32.262709], + [-85.058981, 32.13674], [-85.053504, 32.01077], [-85.141136, 31.840985], [-85.042551, 31.539753], + [-85.113751, 31.27686], [-85.004212, 31.003013], [-85.497137, 30.997536], [-87.600282, 30.997536], + [-87.633143, 30.86609], [-87.408589, 30.674397], [-87.446927, 30.510088], [-87.37025, 30.427934], + [-87.518128, 30.280057], [-87.655051, 30.247195], [-87.90699, 30.411504], [-87.934375, 30.657966], + [-88.011052, 30.685351], [-88.10416, 30.499135], [-88.137022, 30.318396], [-88.394438, 30.367688], + [-88.471115, 31.895754], [-88.241084, 33.796253], [-88.098683, 34.891641], [-88.202745, 34.995703], + [-87.359296, 35.00118] + ]] + } + } + }, { + "type": "choroplethmap", + "locations": ["Georgia"], + "z": [5], + "featureidkey": "properties.name", + "coloraxis": "coloraxis", + "geojson": { + "type": "Feature", + "properties": {"name": "Georgia"}, + "geometry": { + "type": "Polygon", + "coordinates": [[[-83.109191,35.00118],[-83.322791,34.787579],[-83.339222,34.683517],[-83.005129,34.469916],[-82.901067,34.486347],[-82.747713,34.26727],[-82.714851,34.152254],[-82.55602,33.94413],[-82.325988,33.81816],[-82.194542,33.631944],[-81.926172,33.462159],[-81.937125,33.347144],[-81.761863,33.160928],[-81.493493,33.007573],[-81.42777,32.843265],[-81.416816,32.629664],[-81.279893,32.558464],[-81.121061,32.290094],[-81.115584,32.120309],[-80.885553,32.032678],[-81.132015,31.693108],[-81.175831,31.517845],[-81.279893,31.364491],[-81.290846,31.20566],[-81.400385,31.13446],[-81.444201,30.707258],[-81.718048,30.745597],[-81.948079,30.827751],[-82.041187,30.751074],[-82.002849,30.564858],[-82.046664,30.362211],[-82.167157,30.356734],[-82.216449,30.570335],[-83.498053,30.647012],[-84.867289,30.712735],[-85.004212,31.003013],[-85.113751,31.27686],[-85.042551,31.539753],[-85.141136,31.840985],[-85.053504,32.01077],[-85.058981,32.13674],[-84.889196,32.262709],[-85.004212,32.322956],[-84.960397,32.421541],[-85.069935,32.580372],[-85.184951,32.859696],[-85.431413,34.124869],[-85.606675,34.984749],[-84.319594,34.990226],[-83.618546,34.984749],[-83.109191,35.00118]]] + } + } + }], + "layout": { + "width": 600, + "height": 400, + "map": { + "style": "dark", + "center": {"lon": -86, "lat": 33}, + "zoom": 5 + }, + "template": { + "data": { + "choroplethmap": { + "marker": { + "line": { + "width": 5, + "color": "blue" + } + } + } + } + }, + "coloraxis": { + "showscale": false, + "colorscale": "Viridis" + } + } +} diff --git a/test/image/mocks/map_choropleth0-legend.json b/test/image/mocks/map_choropleth0-legend.json new file mode 100644 index 00000000000..ef39259da7e --- /dev/null +++ b/test/image/mocks/map_choropleth0-legend.json @@ -0,0 +1,54 @@ +{ + "data": [ + { + "type": "choroplethmap", + "name": "NY", + "locations": ["NY"], + "z": [1], + "colorscale": [[0, "blue"], [1, "blue"]], + "showlegend": true, + "showscale": false, + "geojson": "https://raw.githubusercontent.com/python-visualization/folium/master/examples/data/us-states.json" + }, + { + "type": "choroplethmap", + "name": "MA", + "locations": ["MA"], + "z": [1], + "colorscale": [[0, "orange"], [1, "orange"]], + "showlegend": true, + "showscale": false, + "geojson": "https://raw.githubusercontent.com/python-visualization/folium/master/examples/data/us-states.json" + }, + { + "type": "choroplethmap", + "name": "VT", + "locations": ["VT"], + "z": [1], + "colorscale": [[0, "green"], [1, "green"]], + "showlegend": true, + "showscale": false, + "geojson": "https://raw.githubusercontent.com/python-visualization/folium/master/examples/data/us-states.json" + } + ], + "layout": { + "map": { + "center": { + "lon": -74.22, + "lat": 42.35 + }, + "zoom": 3.5 + }, + "title": { + "text": "choroplethmap with legends" + }, + "width": 500, + "height": 250, + "margin": { + "t": 50, + "b": 0, + "l": 0, + "r": 0 + } + } +} diff --git a/test/image/mocks/map_choropleth0.json b/test/image/mocks/map_choropleth0.json new file mode 100644 index 00000000000..df465933fe5 --- /dev/null +++ b/test/image/mocks/map_choropleth0.json @@ -0,0 +1,17 @@ +{ + "data": [ + { + "type": "choroplethmap", + "locations": ["NY", "MA", "VT"], + "z": [10, 20, 30], + "geojson": "https://raw.githubusercontent.com/python-visualization/folium/master/examples/data/us-states.json" + } + ], + "layout": { + "map": { + "center": { "lon": -74.22, "lat": 42.35 }, + "zoom": 3.5 + }, + "width": 600 + } +} diff --git a/test/image/mocks/map_connectgaps.json b/test/image/mocks/map_connectgaps.json new file mode 100644 index 00000000000..980cd9eb4e2 --- /dev/null +++ b/test/image/mocks/map_connectgaps.json @@ -0,0 +1,70 @@ +{ + "data": [ + { + "type": "scattermap", + "mode": "lines", + "lon": [ + 10, + 20, + 30, + null, + 20, + 30, + 40 + ], + "lat": [ + 10, + 20, + 30, + null, + 10, + 20, + 30 + ], + "line": { + "width": 5 + }, + "name": "connectgaps false" + }, + { + "type": "scattermap", + "mode": "lines", + "lon": [ + 10, + 20, + 30, + null, + 20, + 30, + 40 + ], + "lat": [ + -10, + -20, + -30, + null, + -10, + -20, + -30 + ], + "line": { + "width": 10 + }, + "connectgaps": true, + "name": "connectgaps true" + } + ], + "layout": { + "map": { + "style": "streets", + "zoom": 1.5, + "center": { + "lon": 56, + "lat": 1 + } + }, + "height": 450, + "width": 1100, + "autosize": true + } +} diff --git a/test/image/mocks/map_custom-style.json b/test/image/mocks/map_custom-style.json new file mode 100644 index 00000000000..ce889ae3193 --- /dev/null +++ b/test/image/mocks/map_custom-style.json @@ -0,0 +1,70 @@ +{ + "data": [ + { + "type": "scattermap", + "mode": "markers", + "lon": [ + -73.6, + -73.62, + -73.58 + ], + "lat": [ + 45.5, + 45.52, + 45.48 + ], + "marker": { + "size": 20, + "color": [ + "#1b9e77", + "#d95f02", + "#7570b3" + ] + } + }, + { + "type": "scattermap", + "mode": "markers", + "lon": [ + -73.6, + -73.62, + -73.58 + ], + "lat": [ + 45.5, + 45.52, + 45.48 + ], + "marker": { + "size": [ + 20, + 30, + 10 + ], + "color": "#1b9e77" + }, + "subplot": "map2" + } + ], + "layout": { + "map": { + "style": "https://demotiles.maplibre.org/style.json", + "center": { + "lon": -73.60287319770295, + "lat": 45.50110152988742 + }, + "zoom": 11.4 + }, + "map2": { + "style": "satellite", + "center": { + "lon": -73.60287319770295, + "lat": 45.50110152988742 + }, + "zoom": 11.4 + }, + "showlegend": false, + "width": 700, + "height": 450 + } +} diff --git a/test/image/mocks/map_density-multiple.json b/test/image/mocks/map_density-multiple.json new file mode 100644 index 00000000000..5bf0a7bdc9b --- /dev/null +++ b/test/image/mocks/map_density-multiple.json @@ -0,0 +1,39 @@ +{ + "data": [{ + "type": "densitymap", + "name": "w/ reversescale:true", + "lon": [10, 20, 30], + "lat": [15, 25, 35], + "z": [1, 3, 2], + "zmid": 0, + "reversescale": true, + "radius": 50, + "below": "", + "colorbar": { + "y": 1, + "yanchor": "top", + "len": 0.45 + } + }, { + "type": "densitymap", + "name": "w/0 z data", + "lon": [-10, -20, -30], + "lat": [15, 25, 35], + "zmin": 0, + "zauto": false, + "radius": [50, 100, 10], + "colorbar": { + "y": 0, + "yanchor": "bottom", + "len": 0.45 + } + }], + "layout": { + "map": { + "style": "light", + "center": {"lat": 20} + }, + "width": 600, + "height": 400 + } +} diff --git a/test/image/mocks/map_density-multiple_legend.json b/test/image/mocks/map_density-multiple_legend.json new file mode 100644 index 00000000000..4862c9de7bd --- /dev/null +++ b/test/image/mocks/map_density-multiple_legend.json @@ -0,0 +1,33 @@ +{ + "data": [{ + "showlegend": true, + "showscale": false, + "type": "densitymap", + "name": "w/ reversescale:true", + "lon": [10, 20, 30], + "lat": [15, 25, 35], + "z": [1, 3, 2], + "zmid": 0, + "reversescale": true, + "radius": 50, + "below": "" + }, { + "showlegend": true, + "showscale": false, + "type": "densitymap", + "name": "w/0 z data", + "lon": [-10, -20, -30], + "lat": [15, 25, 35], + "zmin": 0, + "zauto": false, + "radius": [50, 100, 10] + }], + "layout": { + "map": { + "style": "light", + "center": {"lat": 20} + }, + "width": 600, + "height": 400 + } +} diff --git a/test/image/mocks/map_density0-legend.json b/test/image/mocks/map_density0-legend.json new file mode 100644 index 00000000000..320710a1c90 --- /dev/null +++ b/test/image/mocks/map_density0-legend.json @@ -0,0 +1,42 @@ +{ + "data": [{ + "type": "densitymap", + "name": "Montreal", + "lon": [-73.5], + "lat": [45.5], + "z": [1], + "colorscale": [[0, "blue"], [1, "blue"]], + "showscale": false, + "showlegend": true + }, { + "type": "densitymap", + "name": "Boston", + "lon": [-71.0], + "lat": [42.3], + "z": [1], + "colorscale": [[0, "red"], [1, "red"]], + "showscale": false, + "showlegend": true + }], + "layout": { + "map": { + "style": "open-street-map", + "center": { + "lon": -72.25, + "lat": 43.9 + }, + "zoom": 4 + }, + "title": { + "text": "densitymap with legends" + }, + "width": 500, + "height": 250, + "margin": { + "t": 50, + "b": 0, + "l": 0, + "r": 0 + } + } +} diff --git a/test/image/mocks/map_density0.json b/test/image/mocks/map_density0.json new file mode 100644 index 00000000000..391e90502a8 --- /dev/null +++ b/test/image/mocks/map_density0.json @@ -0,0 +1,12 @@ +{ + "data": [{ + "type": "densitymap", + "lon": [10, 20, 30], + "lat": [15, 25, 35], + "z": [1, 3, 2] + }], + "layout": { + "width": 600, + "height": 400 + } +} diff --git a/test/image/mocks/map_earthquake-density.json b/test/image/mocks/map_earthquake-density.json new file mode 100644 index 00000000000..1dc45939f46 --- /dev/null +++ b/test/image/mocks/map_earthquake-density.json @@ -0,0 +1,36694 @@ +{ + "data": [ + { + "type": "densitymap", + "lon": [ + -151.5129, + -150.4048, + -151.3597, + -118.497, + -87.6901, + -151.5053, + -178.4576, + -148.789, + -120.993164, + -117.0155, + -151.512, + -151.4378, + -149.6538, + -151.5325, + -149.4752, + -150.8597, + -149.7142, + -151.2484, + -152.0732, + -90.5445, + -118.819504, + -118.930168, + -117.509167, + -116.792167, + -150.9126, + -155.078659, + -147.3106, + -150.5846, + -116.929, + -151.5065, + -147.8929, + -175.7258, + -151.3473, + -121.137497, + -151.1075, + -151.3769, + -94.8319, + -120.689833, + -151.5283, + -151.6683, + -149.7591, + -151.3458, + -151.4669, + -151.5169, + -151.4771, + -151.458, + -94.9686, + -119.023666, + -116.793833, + -117.225, + -151.0033, + -177.3179, + -154.1913, + -113.140503, + -122.765663, + -121.678001, + -148.8813, + -149.531, + -155.423492, + -138.8317, + -122.793999, + -155.32016, + -158.4264, + -136.5725, + -71.7814, + -115.9711, + -163.8046, + -147.8309, + -122.724167, + -77.9778, + -150.3324, + -146.4858, + -177.7469, + -136.8133, + -116.673833, + -155.382172, + -153.427, + -116.457667, + -112.529833, + -122.791832, + -118.9071, + -116.793833, + 130.1291, + -83.749833, + -120.900833, + -153.0276, + -138.5063, + -122.792, + -112.530833, + -69.504, + -118.831169, + -112.516333, + -118.816666, + -116.655333, + -177.8808, + -115.1285, + -118.817169, + 69.1471, + -121.101166, + 132.668, + -116.462667, + -141.2596, + -141.2013, + -149.7575, + -152.3178, + -116.460167, + -116.468167, + -116.793, + -118.566333, + -178.3171, + -122.795998, + -117.1247, + -147.2293, + 152.3636, + 73.3529, + -152.4583, + 138.9649, + -117.1198, + -116.955667, + -122.991667, + -120.747, + -120.753833, + -121.127, + 145.6471, + -108.8949, + -121.155667, + -116.991, + -98.7321, + -122.178833, + -148.1644, + -150.5804, + -121.688667, + -117.516, + -136.6965, + -98.2269, + -146.3172, + -117.646667, + -118.1915, + -118.803333, + -121.7105, + -112.477167, + -116.362, + -148.9279, + 68.9568, + -111.457, + -121.962333, + 86.7487, + -118.351667, + -15.5503, + -149.9372, + -118.6177, + 143.7841, + -112.5305, + -111.460333, + -118.803333, + -116.2815, + -116.314167, + -150.0099, + -122.706, + -112.5315, + -117.019833, + -153.2441, + 141.1969, + -156.519, + -115.894167, + -152.1925, + -111.436333, + -119.9267, + -118.476667, + -118.9217, + 95.0977, + -150.4456, + -149.6485, + -122.7755, + -117.445, + -122.797333, + -122.806167, + -147.164, + -122.600333, + -112.557667, + -118.798333, + -117.757833, + -118.355667, + 155.9405, + -122.509333, + -116.8455, + -114.5795, + -110.322167, + -178.2949, + -156.0402, + -155.42366, + -155.248833, + -151.1519, + 119.9639, + -150.7545, + -156.2205, + -115.2224, + -118.8245, + 143.9537, + -111.444, + -136.7235, + -115.997833, + 146.6145, + -148.7833, + -67.92, + -150.3206, + -115.557333, + -111.4493, + -122.801167, + -122.478167, + 178.4985, + -111.455333, + -148.2116, + -155.428833, + -118.823167, + -112.532167, + -64.1261, + -116.434833, + -122.7915, + -122.2, + -122.200333, + -111.494833, + -121.9235, + -118.831, + -122.403, + 151.9528, + -151.3718, + -121.744833, + -149.6057, + -122.822, + -125.777167, + -151.063, + -116.7975, + -116.875167, + -25.496, + 152.1867, + -111.414167, + -118.9395, + -114.857, + -111.672333, + -140.6081, + -116.598667, + -117.0539, + -119.377167, + -71.348, + -122.395167, + -118.8105, + -122.7825, + -112.529, + -147.2289, + -151.1245, + -122.808, + -123.588667, + -149.857, + 144.6063, + -152.192, + -149.939, + -111.418167, + -111.4355, + -110.965, + -120.549833, + -140.5289, + -136.701, + -117.817167, + -118.8365, + -151.0124, + -116.794167, + -112.525667, + -145.3071, + -145.414, + -151.0004, + -152.6575, + -122.810167, + -127.192, + -155.289833, + -151.0126, + -150.9865, + -118.837167, + -117.491, + -122.104833, + -147.7663, + -122.3835, + -151.0051, + -122.194667, + -116.072333, + -150.785, + -117.720667, + -122.8105, + -155.252167, + -163.5871, + -151.1613, + -112.711, + -111.413167, + -155.600174, + -112.4755, + -118.817667, + 127.6953, + -141.1068, + -120.786667, + -155.9487, + -118.2355, + -75.237833, + -118.883667, + -121.924167, + -155.427667, + -112.482833, + -116.010667, + -111.086833, + -151.3491, + -116.294333, + -159.6654, + -122.798167, + -146.4807, + -122.192333, + -178.1435, + -122.8035, + 126.4874, + -114.476333, + -149.9384, + 49.1899, + -110.318333, + -110.317333, + -116.290167, + 178.5051, + -117.412333, + -110.989667, + -136.8165, + -110.3, + -136.8358, + -68.5742, + -123.472, + -152.611, + -115.7095, + -155.2125, + -122.236667, + -116.2315, + -111.442667, + -112.527833, + -155.470673, + -122.572333, + -111.301167, + -116.372167, + -116.366, + -122.191167, + -83.742167, + -118.819, + -117.394, + -151.3822, + -145.2677, + -117.806833, + -117.807333, + -122.7625, + -118.319833, + -153.0253, + -150.9621, + -122.793167, + -122.792, + -151.5816, + -122.048833, + -112.526667, + -111.415167, + -116.846167, + -122.027667, + -112.880667, + -122.7565, + -122.753167, + -151.2568, + -118.808667, + -116.3645, + -116.3545, + -152.901, + -117.805167, + -150.1162, + -117.7192, + -98.7663, + -150.5337, + -116.435667, + -121.975, + -165.8816, + -98.755, + -116.6665, + -124.311667, + -162.2549, + -112.529, + -114.8195, + -117.801333, + -116.352833, + -116.758833, + -150.7536, + -147.4466, + -151.3316, + -66.7169, + -112.531, + -150.2126, + -110.326833, + -98.7425, + -151.2414, + -117.803667, + -112.529, + -117.805667, + -118.821833, + -122.802, + -116.796667, + -117.805333, + -117.803833, + -117.986333, + -94.5193, + -112.249667, + -114.5709, + -122.029167, + -156.904, + -116.937167, + -155.0805, + -116.469333, + -118.7775, + -148.9048, + -149.3904, + -118.835, + -116.282833, + -108.5682, + -124.101667, + -150.9792, + -118.590333, + -122.807335, + -118.191, + -118.8315, + -121.127667, + -112.466667, + -151.2987, + -121.125833, + -151.9517, + -147.4575, + 69.2314, + -95.0179, + -115.6247, + -117.480167, + -118.843333, + -121.9105, + -118.839167, + -118.848, + -150.5043, + -120.0698, + -111.438667, + -148.7521, + -98.036, + -117.469667, + -121.407833, + -149.2816, + -116.797167, + -118.9268, + -121.614333, + -121.609333, + -151.032, + -94.7831, + -151.5468, + -150.8528, + -78.3466, + -119.8623, + -94.219, + -116.979333, + -117.153667, + -154.0651, + -150.7431, + -145.2404, + -117.047667, + -152.038, + -138.3287, + -112.520833, + -150.7265, + -149.561, + -122.793, + -116.608833, + -120.942, + -111.414333, + -121.365667, + -112.527833, + -117.5975, + -122.59, + -155.4053, + -116.243833, + -122.3995, + -151.3314, + -121.831667, + -94.0265, + -113.109167, + -118.886, + -118.873, + -136.6853, + -121.174833, + -152.599, + -149.1044, + -155.471, + -116.237333, + -152.4213, + -112.5195, + 145.7448, + -155.7645, + -111.456667, + -152.8997, + -147.6239, + -155.6845, + -149.0205, + -149.1141, + -116.364, + -118.118, + -178.1517, + -121.157333, + -122.718666, + -68.1988, + -117.2313, + -146.3056, + -118.847167, + -146.8168, + -118.112167, + -112.521833, + -112.5265, + -147.4064, + -119.5495, + -151.3311, + -155.6385, + -117.269, + -122.751333, + -82.7745, + -117.681, + -151.2617, + -148.2839, + -120.616667, + -120.6095, + -147.3354, + -122.805, + -122.808998, + -150.8464, + -117.445, + -122.739333, + -122.319167, + -164.1558, + -148.3107, + -94.2992, + -116.446333, + -110.4045, + -150.6733, + -118.0874, + -116.347667, + -111.412333, + -156.2687, + -161.3929, + -145.6212, + -151.0452, + -121.4595, + -111.399, + -116.445833, + -118.8805, + -49.3194, + -122.767, + -145.5134, + -152.8761, + 166.7231, + -116.4405, + -148.0856, + -150.9837, + -122.764831, + -116.7955, + -152.6496, + -153.6613, + -119.9271, + -116.440833, + -118.1795, + -116.941667, + -28.8364, + -112.503, + -154.6502, + -118.84, + -146.8175, + -155.324, + -116.44, + -111.424333, + -155.373667, + -111.609167, + -150.9718, + -152.3579, + -118.787667, + -153.4244, + 140.1126, + -116.445167, + -114.2901, + -111.760333, + -147.9116, + -149.1084, + -116.446833, + -118.8285, + -121.5795, + -117.136833, + -121.464333, + -151.1249, + -149.2536, + -152.6674, + -153.0117, + -122.800667, + -151.3814, + -178.3915, + -150.1107, + -150.9147, + -153.0354, + -98.8228, + -151.2842, + -117.665167, + -155.370833, + 175.9616, + -118.979333, + -165.8047, + -178.1971, + 94.7848, + -150.5284, + -162.9795, + -147.3659, + -116.962167, + -179.8074, + -162.3851, + -150.8594, + -120.496833, + -149.705, + -118.973167, + -156.1077, + -122.802002, + -152.0389, + -110.353833, + -118.887667, + -117.812833, + -117.808167, + -122.82267, + -178.4068, + -122.763168, + -149.5708, + -151.958, + -151.1195, + -178.3958, + -150.7855, + -166.7772, + -149.872, + -149.929, + -154.8923, + -116.791333, + -151.2158, + -112.521333, + -72.0212, + -152.1655, + -111.137833, + -147.0756, + -121.486, + -115.479, + -140.0368, + -151.4998, + -116.363333, + -161.3923, + -136.7964, + -112.523, + -114.3199, + -151.264, + -178.4061, + -151.539, + -117.013833, + -116.047333, + -175.4878, + -178.3903, + -115.936833, + -145.6337, + -115.4845, + -116.783833, + -93.9398, + -110.430667, + -112.5225, + -174.1659, + -150.7077, + -116.790667, + -140.0237, + -112.529833, + -167.6571, + -119.3057, + -150.3039, + -146.178, + -112.528833, + -166.4948, + -151.3526, + -166.5335, + -154.6125, + -122.847336, + -119.315667, + -116.334333, + -151.2536, + -151.155, + -151.7768, + -149.6738, + -155.565506, + -140.0156, + -122.803169, + -117.168667, + -122.044167, + -150.6324, + -89.444833, + 91.8995, + -117.674, + -97.6124, + -89.517167, + -116.2705, + -120.991833, + -123.4015, + -68.7039, + -121.930333, + 167.7345, + -122.802, + -121.531667, + -121.444667, + -123.351667, + -113.9055, + -118.946833, + -117.503167, + -102.3612, + -121.609167, + -112.5355, + -118.831833, + -118.192, + -112.4715, + -117.649167, + -122.308833, + -120.932667, + -122.679167, + -117.133167, + 102.3915, + -112.523167, + -118.623333, + -118.880333, + 94.5291, + -121.718167, + -152.9366, + -115.4944, + -118.833, + -116.4615, + -116.466833, + -118.827833, + -112.528667, + -118.827833, + -118.827167, + -118.8265, + -118.829, + -117.0325, + -120.371333, + -142.9837, + -113.8425, + -111.4145, + -120.997333, + -89.8025, + -146.8151, + -112.526167, + 127.1289, + -118.822667, + -149.2609, + -122.751663, + 51.6372, + -112.524667, + -112.523333, + -111.084, + -112.527333, + -155.592667, + -97.5037, + -112.527833, + -151.1189, + -120.885667, + -61.2682, + 176.4854, + -112.533, + -111.218667, + -149.912, + -145.3257, + -118.510667, + -155.524002, + -110.33, + -88.2184, + -117.067167, + -117.064833, + -120.908833, + -152.1495, + -116.448833, + -146.8806, + -90.1365, + -111.480833, + -112.534333, + -112.529167, + -117.065667, + -94.8824, + -116.460667, + -122.812667, + -71.32, + -111.4165, + -111.414333, + -116.003333, + -151.5448, + -155.4204, + -112.523333, + -148.829, + -155.412338, + -82.894667, + -148.5467, + -112.528833, + -116.422833, + -150.2817, + -112.033833, + -154.1032, + -111.409667, + 174.3565, + -116.589167, + -116.009833, + -179.4587, + -116.010167, + -122.8935, + -89.527833, + -117.0518, + 72.4324, + -147.5212, + -120.524833, + -97.5118, + -122.245667, + -116.7985, + -111.411167, + -116.43, + -116.048333, + -111.446167, + -118.482167, + -155.021835, + -97.5196, + -154.9176, + -112.5073, + -113.017333, + -122.4705, + -111.418333, + -146.8167, + -111.411833, + -112.523167, + -151.5285, + -151.6012, + -111.4159, + -145.2312, + -122.426, + -111.4175, + -111.422333, + -155.584503, + -149.7914, + -116.793667, + -118.5175, + -114.7954, + -124.506167, + -150.6022, + -154.1198, + -138.1479, + -116.2755, + -122.810165, + -112.525833, + -141.9167, + -149.1362, + -149.9985, + -139.6538, + -116.830833, + -97.905833, + -150.3425, + -119.6519, + -149.8709, + -120.567667, + -153.8509, + -149.5477, + -112.515667, + -164.2618, + -136.5485, + -152.2691, + -149.1083, + -96.7952, + -121.619333, + -149.4052, + -174.5246, + -112.525167, + -122.3795, + -97.4467, + -94.3923, + 131.0709, + -122.806167, + -151.2184, + -121.676, + -117.7983, + -152.4695, + -122.800835, + -149.7414, + -119.1156, + -155.408493, + -117.7769, + -139.5344, + -152.7881, + -115.6588, + -123.289333, + -76.1816, + -118.8365, + -149.0123, + -141.3476, + -151.1025, + -173.7815, + -153.142, + -177.8183, + -118.736333, + -122.80983, + -119.018, + 92.3426, + -119.033833, + 142.306, + -123.078833, + -156.3848, + -174.5287, + -140.7487, + -111.447833, + -112.525833, + -155.633499, + -154.909, + -141.6138, + -153.1725, + -150.3672, + 91.9129, + -157.0328, + -153.3802, + -155.3702, + -116.200333, + -122.793999, + -175.5366, + -153.7216, + -119.6834, + -136.6219, + -116.46, + -112.509667, + -178.4679, + -154.0171, + -153.6069, + -122.718, + -154.5011, + -139.5182, + -116.731167, + 179.4705, + -156.485667, + -148.6332, + -118.984, + -149.0636, + -118.9213, + -116.791833, + -176.6916, + -117.464167, + -154.4428, + -153.1498, + -118.452, + -93.8612, + -153.2003, + -136.7558, + -67.7814, + -117.651333, + -116.908333, + -169.7071, + -150.4859, + -77.5019, + -149.6539, + -150.8258, + -112.459167, + -119.2085, + -97.7785, + -152.7218, + -148.5055, + -98.7711, + -152.9474, + -118.8205, + -118.8205, + -155.631836, + -141.345, + -112.578, + 146.1269, + -85.5987, + -149.6914, + -175.9412, + -150.577, + -116.833167, + -117.485, + -112.5235, + -156.095333, + -141.2898, + -121.157167, + -112.526333, + -121.228833, + -151.739, + -70.9053, + -118.3845, + -155.476502, + -174.2232, + -121.9095, + -112.528833, + -166.7866, + -173.6834, + -139.521, + -121.7125, + -73.1491, + -116.354833, + 140.5685, + -169.8117, + -117.119167, + -153.8841, + -150.4019, + -118.939, + -152.9252, + -178.4432, + -166.7041, + -178.4546, + -169.6939, + 126.9456, + -151.9899, + -147.3486, + -169.9474, + -155.123672, + -111.459167, + -111.4566, + -111.4606, + -111.473, + -149.5092, + -116.455333, + 128.5426, + -152.5291, + -152.7509, + -149.1116, + -152.6933, + -115.9049, + -115.8999, + -115.9056, + -115.9061, + -111.4515, + -151.5204, + -117.6755, + -147.3476, + -144.0067, + -152.2422, + -151.7955, + 139.9751, + -123.056833, + -122.2745, + -120.780167, + -116.791, + 122.7108, + -68.5125, + -155.469, + 143.8145, + -116.363167, + -122.781, + -152.1783, + -150.6852, + -118.1362, + -143.1572, + -176.2132, + -112.525333, + -111.4618, + -152.5093, + -149.7901, + -94.8027, + -116.89, + -177.8619, + -151.5581, + -119.160667, + -94.9189, + -121.484167, + -141.6079, + -141.5942, + -178.119, + -90.9767, + -122.8085, + -122.3415, + 179.9778, + -154.7866, + -122.691, + -97.5446, + -150.7001, + -112.531167, + -117.492667, + -139.5985, + -122.249667, + -118.819833, + -117.2715, + -122.452333, + -155.627833, + -143.5599, + -148.6949, + -150.4836, + -116.461667, + -159.2124, + -115.658167, + -116.768833, + -151.4069, + -118.82, + -163.7202, + -118.8976, + -163.7286, + -110.635, + -150.6494, + -153.8697, + -118.898833, + -74.5095, + -150.0654, + -148.3117, + -119.155, + -153.1722, + -111.4255, + -149.9682, + 128.7797, + -151.8184, + -122.800833, + -147.3164, + -94.0971, + -178.3876, + -111.411333, + -120.1355, + -152.7222, + -149.0664, + -122.7435, + -97.5543, + -116.3055, + -115.638333, + -179.9144, + -122.750832, + -123.270833, + -173.4581, + -151.2563, + -118.820833, + -121.095167, + -176.4734, + -152.7203, + -150.0463, + -147.4986, + -176.4214, + -122.7965, + -147.3389, + -118.784, + -118.9575, + 178.7893, + -94.1802, + 105.0015, + -118.599667, + -118.076333, + -113.9725, + -112.2913, + -152.3454, + -169.3954, + 146.5825, + -118.82, + -150.7455, + -111.416167, + -176.3938, + -103.5373, + 56.8179, + -151.0884, + -118.833, + -150.9578, + -153.6653, + -155.7167, + 136.7409, + -136.643, + -120.242833, + -89.540333, + -136.6248, + -149.3855, + -175.4182, + -118.2269, + -153.4354, + -94.1267, + -120.231333, + -118.820667, + -136.8027, + -151.7993, + -178.5238, + -118.821, + -149.6362, + -152.6879, + -116.0465, + -148.9689, + -116.046167, + -174.2839, + -146.9672, + -149.1933, + 120.696, + -140.6767, + -147.3628, + -118.822, + -116.794167, + -72.9693, + -118.819667, + -151.2194, + -118.7985, + -93.7775, + -72.1967, + -110.33, + -146.5236, + -110.331, + -178.3899, + -154.6224, + -119.2355, + -94.0878, + -126.71, + -96.8727, + -147.3481, + -116.9775, + -118.822, + -148.3588, + -122.352667, + -120.5572, + -94.8406, + -118.878667, + -117.142333, + -94.3377, + -122.722, + -112.210167, + -178.6762, + -117.174667, + -178.4109, + -173.0656, + -153.0358, + -93.8244, + 160.0808, + -118.839833, + -117.962833, + -149.7372, + -122.5445, + -122.840332, + -118.351833, + -122.638, + -118.813333, + -126.9812, + -111.408333, + -150.1805, + -71.7041, + -178.5133, + -118.823167, + -161.5563, + -151.5157, + -146.4094, + -118.819833, + -178.3979, + -150.7333, + -122.763167, + -141.9223, + -67.2978, + -141.3415, + -112.561, + -176.2265, + -118.8685, + -115.9525, + -118.822, + -155.601833, + -147.4859, + 30.6565, + -121.628333, + 143.8294, + -153.3591, + -150.347, + -174.4266, + -178.523, + -178.5572, + -146.4554, + -94.674, + -120.190833, + -118.820167, + -112.502167, + -152.1692, + -118.8215, + -147.2498, + -153.7332, + -153.7502, + -98.0981, + -153.9597, + -112.506667, + -147.3879, + -176.2136, + -118.862333, + -148.0206, + -118.270167, + 67.9437, + -118.821167, + -118.822, + -141.3697, + -111.431, + -112.531833, + -118.821, + -117.7002, + -176.2102, + -155.457667, + -118.030167, + -111.410833, + -118.292833, + -111.451, + -119.1244, + -113.712667, + -155.030667, + -155.2959, + -94.0117, + -150.2101, + -105.3739, + -118.8685, + -170.2168, + -178.4342, + -120.248167, + -116.6475, + -121.713833, + -119.1157, + -168.1308, + -120.236167, + -118.821833, + -111.408833, + -121.0275, + -116.798333, + -111.772667, + 143.7467, + -149.7405, + -115.671, + -122.721832, + -118.838167, + -119.2245, + -154.0102, + -150.1298, + -93.929, + -112.7785, + -176.291, + -151.1687, + -118.898667, + -150.5017, + -117.4335, + 90.3467, + -119.1177, + -116.978833, + -119.1188, + -122.8105, + -120.989667, + -118.540833, + -122.733667, + 55.3123, + -120.571833, + -145.5877, + -118.848167, + -118.838333, + -118.835333, + -146.3945, + -149.1712, + -118.834167, + -96.6816, + -118.5308, + -115.982833, + -145.485, + -118.8385, + -118.8355, + -168.5107, + -118.824833, + -139.9358, + -122.78717, + -89.653833, + -179.5233, + -150.8708, + -111.55, + -118.846833, + -116.978, + -150.4686, + -165.0654, + -94.1021, + -122.826833, + -96.6968, + -112.514, + -117.02, + -150.311, + -94.0465, + -165.3696, + -118.835833, + -97.887333, + -122.8045, + -122.758667, + -116.976, + -150.9369, + 178.5129, + -155.463667, + -117.302333, + 141.7803, + -116.259833, + -115.569, + -116.924833, + -116.1923, + -116.7885, + -116.791167, + -174.9834, + -122.720497, + -150.8838, + -111.687, + -111.936667, + -169.976, + -170.1717, + -147.0631, + -178.579, + -118.834333, + -115.570333, + -151.4881, + -156.135, + -122.876831, + -122.818333, + -117.313, + -116.7955, + -118.818, + -118.585667, + -148.3267, + -139.2144, + -155.3512, + -178.3692, + -147.7379, + 144.7489, + -151.8862, + -148.9604, + -117.5187, + -118.821, + -118.818833, + -122.0985, + -152.9034, + -175.6403, + -118.9062, + -179.7911, + 127.5676, + 133.3331, + -153.3134, + -147.1768, + -118.834833, + -178.5949, + 130.4998, + -121.1135, + -118.878833, + -121.417833, + -112.521333, + -158.5454, + -153.4826, + -153.4008, + -151.2636, + -122.710833, + -149.2148, + -151.0761, + 19.9413, + -150.8044, + 150.778, + -150.9288, + -150.7041, + -118.9234, + -145.6029, + -116.990833, + -119.1182, + -155.430333, + -149.484, + -97.3897, + 129.2381, + -150.5815, + -148.1989, + -116.131167, + -151.0033, + -112.525833, + -153.2274, + -152.4925, + -120.631667, + -150.3296, + -84.1381, + -111.457167, + -171.0327, + -116.118167, + -149.6565, + -116.0954, + -151.596, + -151.8361, + -118.530333, + -152.5986, + -155.122167, + -136.8725, + -121.129833, + -112.495833, + -146.5002, + -122.995833, + -153.0379, + -116.792167, + 127.5691, + 120.0401, + -150.7645, + -155.142167, + -147.8062, + -151.9273, + -150.3551, + -111.4394, + -121.0045, + -150.0408, + -150.3231, + -136.3488, + -156.1177, + -118.833833, + -151.1247, + -122.996667, + -154.4495, + -140.6854, + -98.1391, + -147.9819, + -98.3926, + -148.7975, + -122.821335, + -122.995167, + -127.1635, + -174.9091, + -111.421333, + -118.821333, + -111.415667, + -153.4995, + -149.5495, + -152.3463, + -150.1075, + -153.3566, + -118.4887, + -149.09, + -149.5382, + -119.023333, + -121.905, + -139.9752, + -122.078, + -152.42, + -111.440333, + -143.596, + -154.1565, + -147.3908, + -146.4079, + -150.8998, + -118.88, + -148.174, + -122.825333, + -151.4189, + 140.558, + -150.1805, + -119.485667, + -178.1313, + -150.9834, + 176.7195, + -177.5238, + -121.096, + -151.338, + -117.6855, + -118.823333, + -150.3689, + -115.834333, + -155.421333, + -122.2205, + -66.6261, + -170.4192, + -116.7675, + -178.4957, + -149.7058, + -143.6191, + -118.9118, + -147.4437, + -112.525167, + -118.880833, + 117.1706, + 145.2449, + -149.7694, + -118.823, + -121.6315, + -119.6237, + -155.1681, + -155.865167, + -122.751, + -166.0108, + -149.7632, + -119.6325, + -136.6957, + -112.525167, + -112.53, + -118.817833, + -153.2642, + -69.1659, + 141.4054, + -159.6189, + -150.1188, + -149.8057, + -118.88, + -149.0895, + -117.767667, + -117.884833, + -112.285833, + -111.4205, + -152.0285, + -151.4519, + -147.9371, + -94.9228, + -150.9601, + -96.8025, + -118.876833, + -147.1846, + -118.8255, + -121.088333, + 178.6248, + -154.1124, + -98.1712, + -98.1535, + 151.8102, + -118.878833, + -120.191167, + -112.5215, + -120.970833, + -118.8805, + -120.0173, + -116.3855, + -150.7449, + -148.7299, + -1.5206, + -83.8862, + -151.2038, + -174.5433, + -116.9255, + -148.3529, + -111.946, + -117.812, + -115.939667, + -150.5701, + -123.2635, + -149.9128, + -118.089667, + -122.794, + -115.1041, + -112.526333, + -117.059, + -166.4042, + -122.731667, + -153.0633, + 119.4365, + -122.738335, + -146.2845, + -150.1097, + -149.6125, + -118.832, + -117.392833, + -159.5885, + -116.758833, + -151.6143, + -140.0102, + -178.4287, + -112.297667, + -151.7318, + -116.792167, + 123.4716, + -177.4366, + -122.745331, + -112.294333, + 140.5824, + -155.233167, + -150.5065, + -151.3499, + 140.5529, + -73.9242, + -122.7435, + -112.533833, + -154.5993, + -120.852333, + -120.307333, + -123.103667, + -71.6095, + -147.6538, + -119.024, + -151.9637, + -151.1366, + -139.1298, + -179.8525, + -138.178, + -116.481833, + -150.501, + -118.197, + -112.472833, + -122.4435, + -117.193167, + -116.929, + -112.524833, + -112.525, + -118.313333, + -153.2174, + -155.5095, + -117.8595, + -112.542833, + -136.8081, + -122.1055, + -114.8105, + -151.0074, + -152.1276, + -111.9895, + -116.796333, + -165.5261, + -150.0546, + -153.0431, + -154.1368, + -150.1018, + -165.6494, + -114.0737, + -118.836, + -116.795833, + -143.7065, + -122.995833, + 119.9926, + 129.0234, + -121.231667, + -152.9254, + -112.533333, + -118.989167, + -153.7404, + -119.417833, + -118.8715, + -151.3466, + -155.561, + -121.941333, + -154.3316, + -139.533, + -155.401167, + -150.649, + -152.2196, + -150.3755, + -112.5215, + -151.5503, + -117.7233, + -117.935333, + -118.840667, + -121.243667, + -122.745833, + -112.555, + 179.4288, + -143.1318, + -150.0235, + -150.9213, + -112.528667, + -148.4582, + -168.2773, + -153.1779, + -135.4027, + -151.9174, + -116.789667, + -112.526833, + -103.2764, + -122.809, + -121.074167, + -136.664, + -121.621833, + -141.3194, + -118.830667, + -152.8154, + -152.1528, + -140.0126, + -143.6373, + -155.2035, + -117.2622, + -103.2693, + -118.819167, + -112.529667, + -111.067, + -116.0485, + -71.3374, + -135.4344, + -111.061667, + -116.052, + -115.542667, + 54.1871, + -152.4269, + 179.5053, + -122.570833, + -179.1801, + -118.8395, + -153.5535, + -97.776167, + -122.818169, + -154.5074, + -118.0035, + -175.3064, + -119.1202, + -150.4062, + -119.377, + -146.74, + -179.6222, + -150.3009, + -97.966167, + -148.227, + -112.53, + -150.2772, + -97.886, + -112.536833, + -119.114, + -119.3735, + -116.296833, + -122.492333, + -116.050333, + -117.1045, + -136.7916, + -151.8594, + -116.011667, + -116.796667, + -119.372333, + -110.7735, + -122.784333, + 139.7504, + -119.6245, + -43.5388, + -103.2078, + -119.004333, + -178.399, + -153.0454, + -122.555, + -121.683, + -115.519833, + -178.3801, + -122.880667, + -145.6852, + -118.4858, + -97.8806, + 179.3827, + -116.628167, + -146.3878, + -149.6683, + -165.6565, + -68.4332, + -150.7491, + 126.6287, + -155.2738, + -116.7765, + -89.549667, + -178.4471, + -152.0762, + 142.4161, + -150.7558, + -147.0546, + 145.0971, + -149.0231, + -116.792667, + -149.2412, + -118.873833, + -117.679333, + -94.2432, + -151.6178, + -112.632, + -147.3996, + -152.0673, + -122.808502, + -152.9009, + -119.6252, + -11.6494, + -123.953167, + -116.304167, + -116.216, + -72.2376, + -119.6217, + -116.750667, + -127.0155, + -153.0128, + -153.3493, + -179.9476, + -122.810333, + -112.496, + -151.0111, + -110.515167, + -136.56, + -146.6788, + -122.735333, + -155.471167, + -121.609667, + 142.4059, + -151.1826, + -97.9668, + -152.8619, + -152.0714, + -150.6417, + -120.989167, + -112.4975, + -120.6625, + -122.398833, + -116.897333, + -111.413167, + -116.797167, + -119.4885, + -146.4352, + 132.7412, + -122.783165, + -94.6352, + -150.9798, + -112.531667, + -148.2303, + -122.46, + -150.9789, + -122.811, + -116.7965, + -118.948, + -155.231, + -152.1914, + -117.813667, + -117.8115, + -148.1385, + -112.532, + -151.8207, + -122.884, + -121.291667, + -161.7955, + -112.530333, + -155.0092, + -152.3757, + -149.837, + -152.4629, + -148.3694, + -150.0798, + -147.5248, + -111.442, + -115.823833, + -118.809833, + -112.498, + -122.182167, + -111.139833, + -116.289833, + -111.4364, + -118.821, + -155.504837, + -146.3857, + -112.090667, + -139.9329, + -138.6533, + -110.9865, + 177.8212, + -157.5906, + -155.617667, + -120.617833, + -164.7207, + -71.3743, + -148.9281, + -115.097167, + -116.275333, + -147.1982, + -120.2285, + -115.599833, + -153.5507, + -150.7286, + -132.545, + -177.9939, + -179.9246, + -74.1449, + -156.8671, + -118.786167, + -153.0976, + -155.293667, + -112.524667, + -151.0017, + -140.0459, + -122.737833, + 168.1159, + -166.412, + -152.7411, + -112.4815, + -111.387167, + -139.9572, + -118.8963, + -153.2644, + -119.041333, + -147.8181, + -152.9641, + -117.104333, + -118.931833, + -151.8017, + -148.402, + -153.871, + -150.6564, + -118.8949, + -119.0225, + -77.3187, + -118.810667, + 115.4547, + -145.2525, + 178.8693, + -151.558, + -118.8996, + -162.222, + -116.4375, + -146.6643, + -147.6643, + -152.2404, + -153.6597, + -118.914, + -122.807833, + -135.8603, + -152.82, + -149.778, + -110.651333, + -152.1721, + -152.737, + -118.498833, + 101.3356, + -66.5505, + -112.522667, + -93.9602, + -153.1229, + -118.825667, + -122.798332, + -112.5275, + -117.061, + -117.064333, + -117.0413, + -143.4106, + -176.9366, + -112.525167, + -153.643, + -153.6304, + -148.8611, + -118.823667, + -122.764167, + -110.943167, + -153.7269, + -151.2988, + -122.737167, + -136.6717, + -97.620667, + -118.823833, + -136.5638, + -149.4631, + -148.2072, + -121.9235, + -153.9619, + -151.393, + -140.6474, + -178.2892, + -146.8119, + -150.616, + -68.2679, + -143.7961, + -77.6296, + -150.6406, + -148.0359, + -122.759667, + -118.0721, + 130.4109, + 3.755, + -136.7759, + -155.826167, + -122.7125, + -120.579, + -116.792667, + -117.681667, + -119.320667, + -112.523833, + 115.85, + -116.0935, + -122.7885, + -74.513833, + -153.4035, + -112.528833, + -98.154, + -154.034, + 124.3318, + -111.460833, + -177.4659, + -145.4807, + -116.792333, + -121.748833, + -116.200667, + -118.887667, + -149.2776, + -151.1161, + -121.791667, + -147.0547, + -117.492167, + -115.220833, + 152.7133, + -155.421333, + -112.526, + -99.1495, + 107.7299, + -112.530333, + -139.5073, + -150.5651, + -140.7001, + -127.1586, + -136.8124, + -122.785167, + 179.3689, + -117.018667, + -155.950667, + -178.478, + -118.4445, + -116.862667, + -112.712833, + -150.8085, + -116.790833, + -119.689, + -152.8848, + -112.5255, + -120.781833, + -152.7347, + -112.525167, + -116.792667, + 106.3876, + -122.104, + -138.2167, + -111.615667, + -153.1637, + -120.778667, + -127.3303, + -116.797167, + -174.7769, + -116.977, + -153.4355, + -121.679333, + -120.322, + -122.811333, + -116.858833, + -115.9285, + -112.534667, + -112.531833, + -150.8601, + -141.3984, + -143.1565, + -153.6264, + -150.0949, + 167.4691, + -136.8449, + -112.521333, + -116.552, + -151.2671, + 167.0258, + -118.953833, + -94.1777, + -122.838333, + -147.0448, + -71.99, + -122.838, + -116.271667, + 178.6657, + -177.0765, + -140.7016, + -150.4545, + -120.787167, + -165.2595, + -156.1793, + -118.862667, + -152.2424, + -119.241667, + -71.282, + -121.000167, + -118.559, + -156.7013, + 138.5087, + -120.256667, + -178.4582, + -178.4978, + -178.4489, + -155.473667, + -117.471167, + -149.3115, + -119.938333, + -156.023667, + -112.521667, + -146.8893, + -116.7915, + -118.6475, + -120.2805, + -122.839333, + 139.9741, + -117.943, + -112.523833, + -112.523, + 154.0023, + -139.8097, + -177.9674, + -177.9649, + -121.401667, + -112.525833, + -118.9249, + -116.790167, + -178.4079, + -151.3579, + -147.4142, + -139.991, + -118.1098, + -148.9036, + -118.815, + -112.5238, + -118.568, + -118.8911, + -150.2932, + -152.8348, + -111.448333, + -154.6407, + 129.4008, + -111.448, + -97.968667, + -93.7801, + -118.818667, + -118.8175, + -160.5224, + -71.5244, + -94.1793, + -118.818167, + 106.9645, + -118.818833, + -119.5993, + -152.7721, + -116.738333, + -25.7407, + -119.604, + -112.538333, + -152.9967, + -155.2438, + -146.4148, + -117.909, + -122.705833, + -155.0479, + -150.9489, + -116.8855, + -27.4466, + -122.80867, + -122.810833, + -119.1325, + -145.1369, + -94.7839, + -150.5906, + -151.457, + -148.0928, + -151.7179, + -122.797501, + -153.8303, + -119.943833, + -150.6826, + -116.813167, + -148.6095, + -116.765333, + -141.6787, + -141.667, + -155.050167, + -152.57, + -149.5629, + -141.1978, + -151.6915, + -162.4539, + -118.821, + -115.721333, + -94.6458, + -122.760333, + -118.902833, + -111.028, + -151.0832, + -154.9051, + -152.9559, + -117.0863, + 130.3868, + -94.3651, + -111.424667, + -150.934, + -118.799167, + -150.0019, + -150.9808, + -119.123, + -154.9667, + -111.027, + -122.80867, + -115.1188, + -148.5309, + -118.8205, + -118.819667, + -152.4754, + -164.0291, + -153.3822, + -123.1525, + -120.849, + -152.5039, + 137.7689, + -136.7694, + -178.4213, + -155.2325, + -89.900667, + -118.819, + -155.278503, + 102.0863, + -151.1504, + -122.826836, + -119.113333, + -179.7022, + -120.777, + -116.909333, + -122.81, + -151.421, + -119.010167, + -118.8185, + -122.812333, + -116.038, + -118.818333, + -152.7731, + -155.4185, + -178.5363, + -141.4135, + -122.581833, + -122.543167, + -118.885, + -118.492333, + -163.1998, + -147.1933, + -144.3135, + -179.0551, + -122.810333, + -115.6642, + -120.502167, + -66.369, + -116.032333, + -118.880667, + 27.2871, + -121.677, + -116.0285, + -151.3105, + -150.2217, + -147.7754, + -119.3547, + -147.9052, + -140.0305, + -108.899, + -118.820667, + -155.553, + -118.978833, + -121.7565, + -112.045667, + -120.359333, + -121.7535, + -94.9623, + -139.7832, + -124.458, + -117.965667, + -145.0762, + -154.4328, + -108.8955, + -121.757333, + -118.9076, + -149.2725, + -175.9271, + -140.1228, + -139.537, + -176.6787, + -117.6935, + -155.326172, + -94.0503, + -150.1247, + -95.2151, + -99.7664, + -94.8221, + -119.353833, + -166.7084, + -155.9705, + -114.3134, + -115.573, + -178.541, + -115.547333, + -115.565833, + -94.2354, + -122.771164, + -155.4939, + -115.577833, + 101.4422, + -150.6804, + -147.0578, + -155.282165, + -94.0996, + -148.2731, + -146.4789, + -176.1457, + -119.3825, + -86.8213, + -147.1034, + -118.880333, + -140.6899, + -95.2276, + -151.0562, + -142.0331, + -150.7525, + -155.234167, + -150.7169, + -118.8435, + -121.552333, + -151.2949, + -117.0385, + -111.4513, + -94.9034, + -152.1541, + -152.5249, + -112.523333, + -120.1999, + -71.864, + -150.8397, + -141.1115, + -111.028333, + -120.845333, + -119.3545, + -176.5436, + -75.5466, + -121.948167, + -118.8185, + -150.9435, + -116.828167, + -173.3164, + -149.0067, + -155.438667, + -118.879667, + -118.880167, + -151.625, + -178.4442, + 122.3102, + -140.6676, + -111.4686, + -117.65, + -118.880833, + -97.9698, + -147.3609, + -120.708833, + -156.1558, + -112.041833, + -112.063667, + -112.056, + -115.754667, + -139.4813, + -155.284164, + -155.28067, + -69.2705, + -176.4834, + -139.387, + -89.522833, + -122.720833, + -149.3418, + -71.2801, + -155.1268, + -118.8245, + -169.8092, + -125.023333, + -94.8425, + -147.5769, + -118.819333, + -121.125, + 179.8852, + -97.1371, + -121.141167, + -116.450333, + 161.7808, + -150.6803, + -116.8005, + -151.6167, + -151.5807, + -151.5965, + -88.7877, + -118.836167, + -116.178333, + -116.430333, + -151.6255, + -140.5978, + -148.6346, + -149.5334, + -122.7145, + -116.801167, + -116.924333, + -94.9873, + -147.3702, + -111.304, + -122.735333, + -71.616, + -115.609, + 178.1771, + 124.82, + 124.8199, + -139.96, + 124.8736, + -169.6652, + -118.821667, + -136.5445, + -121.684333, + -178.0461, + -149.8099, + -118.403833, + -124.396167, + -118.835833, + -118.8365, + -175.8992, + -136.8833, + -118.820833, + -150.4017, + -157.0611, + -111.4214, + -143.197, + -118.821667, + -138.4442, + -116.415167, + -115.972, + -122.811833, + -148.742, + -163.1544, + -155.611167, + 125.1457, + -118.7965, + -151.5715, + -151.6425, + -68.9096, + -117.4515, + -121.3425, + -122.773834, + -117.848333, + -117.845167, + -118.807, + 71.1291, + -69.21, + -120.9955, + -116.8015, + -117.261167, + -111.4447, + -94.7171, + -118.606833, + -118.606833, + -157.6342, + -152.8058, + -173.0149, + 62.7519, + -150.7141, + -141.5959, + -118.623667, + -116.444, + -111.4292, + -95.0107, + -112.525833, + -121.0924, + -116.795667, + -94.8831, + -94.97, + -122.811667, + -118.0575, + -95.1269, + -139.8075, + -118.612, + -154.6324, + -118.817167, + -148.8881, + 120.8176, + -94.9123, + -148.8726, + -148.8844, + 129.9043, + -112.890833, + -94.9509, + -148.8768, + -149.6941, + -148.9047, + 142.1923, + -175.84, + -175.8612, + -111.340667, + 154.9573, + -151.7852, + -150.5567, + -118.112333, + -170.4308, + -116.561667, + -141.3968, + -139.4355, + -177.3627, + -94.1625, + -154.4514, + -139.4379, + -118.827, + -148.9513, + -156.2999, + -143.0011, + -151.2829, + -121.288667, + -77.7746, + -127.0845, + -122.313333, + -121.254167, + -140.5764, + 129.0524, + 152.0272, + -142.1159, + -151.6279, + -122.762, + -116.4425, + -118.9167, + -170.3853, + -178.4175, + -116.324167, + -111.419667, + -94.2976, + -118.898167, + -94.3958, + -118.200167, + -116.2696, + 144.8812, + -116.9395, + -87.0247, + -150.0613, + 129.7584, + -147.2865, + -122.281667, + -119.6555, + -179.8683, + -116.616, + -142.2213, + -116.1876, + -117.4415, + -118.917, + -74.7175, + 108.9322, + -121.9835, + -122.827667, + -122.848, + -121.177333, + -153.6246, + -139.7807, + -119.2867, + -116.208667, + -151.2827, + -118.9021, + -119.2929, + -119.285333, + -122.735336, + -126.992667, + -94.9729, + -127.014, + -151.8458, + -150.0957, + -151.4982, + -161.4425, + -153.3477, + -143.4939, + -161.1196, + -119.3283, + -124.4195, + -149.0373, + -111.4417, + -120.888333, + -148.7081, + -119.640167, + 130.2316, + -178.4878, + -148.4306, + -153.7156, + -122.8475, + 74.5944, + -147.4554, + -156.1191, + -118.9048, + 141.0234, + -147.3949, + -122.176833, + -135.8468, + -142.5552, + 144.1488, + 159.6233, + -122.362, + -165.4507, + -124.417333, + -121.119, + -150.734, + -35.8191, + -112.649833, + -116.8015, + -118.939167, + 128.7982, + -153.1588, + -117.0015, + -122.8605, + -147.2941, + -121.262833, + -126.983667, + -155.434662, + -140.6992, + -153.1112, + -151.0777, + -178.1151, + -165.0025, + -151.8129, + -122.793999, + -97.7172, + -158.1399, + -152.1371, + -146.3651, + -152.6595, + -155.825667, + -126.6543, + -153.4364, + -153.6978, + -89.499167, + -126.8342, + -119.0338, + -121.041, + -140.752, + -118.202333, + -122.7205, + -136.7465, + -112.474333, + -150.4734, + -118.345, + 163.2943, + -118.816833, + -121.945833, + -121.951833, + -156.5222, + -111.397333, + -116.9245, + -140.7358, + -155.303667, + -166.8203, + -166.8262, + -121.8865, + -148.8735, + -111.430167, + -175.9282, + -111.4775, + -153.2736, + -147.9781, + -112.555833, + -116.656667, + -111.408833, + -148.7965, + -122.816333, + -125.362167, + -142.4377, + -156.043667, + -152.9448, + -117.496667, + -116.406, + -152.164, + -121.062, + -111.413333, + -111.424667, + -118.874667, + -127.211833, + -111.447833, + -116.7965, + -149.0265, + -111.4395, + -118.9043, + -155.279333, + -111.456167, + -98.4231, + -151.3603, + -162.8719, + -158.2867, + -119.1113, + 121.5573, + -155.7703, + -146.9318, + -179.4373, + -121.585167, + -118.375333, + -151.6016, + -140.7156, + -116.7945, + -122.772667, + -122.822502, + -150.3362, + 179.5624, + -152.1731, + -116.2162, + 127.2264, + -177.4418, + -151.0434, + -147.6021, + -122.773167, + 178.7372, + -122.771667, + -140.7611, + -155.465667, + -116.362833, + -140.7152, + -140.7017, + -153.1633, + -118.503333, + -139.1121, + -149.9729, + -112.526167, + -122.73983, + -122.806, + -111.445, + -153.8777, + -148.8636, + -139.923, + -115.5007, + -112.5235, + -122.841333, + -118.8235, + -117.848, + -144.2241, + -149.3288, + -155.868333, + -148.5912, + -150.632, + -111.437167, + 127.9846, + -153.7084, + -108.901833, + -151.4502, + -92.239, + -159.9518, + -122.764833, + -124.402833, + -118.8225, + -139.1147, + -111.417833, + -148.9184, + -110.338833, + 151.9837, + -118.9097, + -158.4396, + -151.1276, + -163.9814, + -155.4615, + -153.4546, + -111.447833, + -118.8235, + -117.648333, + -118.570833, + -108.7724, + 159.4959, + -112.5285, + -151.7519, + -148.827, + -121.788667, + -152.9681, + -11.1483, + -118.821833, + 26.2553, + -118.883167, + -116.797167, + -121.789333, + -96.682, + -148.7614, + -147.3642, + -136.6975, + -116.074333, + -149.1502, + -150.6692, + -136.7111, + -118.779667, + -121.0265, + -174.992, + -110.026833, + -111.558333, + -118.780833, + -114.930333, + -151.0885, + 165.3116, + 149.2095, + -97.6825, + -120.171833, + -155.755667, + 90.3605, + -148.7004, + -112.5671, + -165.0769, + -110.445667, + -116.764667, + -146.518, + -121.669, + -112.4995, + 144.5809, + -148.8706, + -146.4937, + -97.5127, + -115.397167, + -117.115667, + -152.5062, + -111.420167, + -112.5215, + -167.0329, + -179.929, + -122.821, + -151.5575, + -150.4889, + -155.7482, + -148.8756, + -121.5285, + -121.526667, + -114.9225, + -111.747833, + -117.650167, + -155.552333, + -117.157, + -155.419833, + -155.437167, + -120.9551, + -155.439167, + -116.241667, + -116.241167, + -139.8843, + -119.6985, + -118.189, + -118.371167, + -152.75, + -122.827333, + -155.0904, + -97.888333, + -117.488667, + -93.8962, + -116.882167, + -152.5203, + -111.4191, + -117.493667, + -69.359, + -122.818337, + -163.8314, + -147.6752, + -151.0122, + -118.821333, + 57.3957, + -153.5339, + -150.3633, + -152.5458, + -116.4305, + -122.105167, + -151.3313, + -116.240833, + -116.238, + -156.198, + -120.955667, + 153.792, + -152.3293, + -121.136833, + -122.830667, + -139.9511, + -94.1412, + -121.522667, + -121.523, + -111.416833, + -118.7985, + -136.8562, + -142.43, + -144.7448, + 94.8925, + -152.0389, + -155.606333, + -122.736, + -117.040833, + -108.899167, + -118.872833, + -157.7558, + -118.9071, + -152.776, + -155.1472, + -111.4287, + -141.1414, + -150.406, + -149.6121, + 150.7163, + -161.2107, + -150.7877, + -141.3702, + -119.046, + -151.4947, + -136.8273, + -149.927, + -166.8959, + -119.040833, + -118.854333, + -119.009333, + -89.530833, + -151.8383, + -150.912, + -122.196833, + -89.4975, + -93.2903, + -119.2534, + -112.834, + -153.7102, + -122.821833, + -152.1289, + -116.893333, + -143.0672, + -139.0266, + -111.4339, + -122.7595, + -150.7623, + -118.8215, + -150.6774, + 30.4877, + -151.1345, + -144.6331, + -153.6066, + -150.6496, + -152.9585, + -151.3398, + -148.5434, + -116.966, + -122.764333, + -139.9567, + -112.540333, + -155.471833, + -121.789167, + -146.6995, + -122.0545, + -73.683, + -122.784164, + -119.235667, + -153.5178, + -116.8585, + -147.7553, + -155.7415, + -160.4341, + -153.0439, + -122.775002, + -121.785833, + -138.0133, + -151.3138, + -151.4845, + -119.1193, + -177.15, + -119.6227, + -111.427333, + -147.1789, + -118.9138, + -118.9096, + -150.1806, + -158.3423, + -120.612, + -136.6084, + -116.392833, + -122.537333, + -97.6319, + -122.777664, + -136.4015, + -122.778, + -149.7592, + -147.0959, + -120.541, + -117.250167, + 178.4863, + -146.7027, + -147.6955, + -118.416, + -155.279833, + -147.6742, + -177.9506, + -147.6875, + -112.729167, + -117.389333, + -178.8238, + -141.3476, + -122.065833, + -175.3417, + -161.1071, + -150.9186, + 113.0028, + -117.513, + -147.307, + -122.830833, + -70.8955, + -115.600667, + 148.002, + -150.5728, + 147.9821, + 147.8337, + -147.7194, + -118.8235, + -152.7597, + -141.2822, + -152.7128, + -122.817497, + -112.3355, + -140.8648, + -148.1675, + -155.695496, + -117.92, + -148.4385, + -149.6592, + -120.59, + -141.3926, + 169.0947, + -155.033667, + -117.0765, + -166.8359, + -98.0579, + -148.8873, + -110.451, + -115.1139, + -118.751, + -119.1164, + -122.592833, + -146.4033, + -150.2132, + -115.389167, + -121.428333, + -111.474333, + -121.9675, + -150.582, + -151.2216, + -121.983667, + -121.546833, + -136.6968, + 144.6601, + -145.5787, + 118.8822, + 135.4357, + -141.1746, + -117.593333, + 166.9265, + -97.783, + -28.7481, + -111.455667, + 70.9001, + -82.8639, + -157.5285, + -146.5508, + -114.1207, + -117.514, + -124.179, + 121.7572, + -124.182833, + -111.4155, + -156.6193, + -150.2998, + -112.527333, + -116.453667, + -119.6465, + -117.79, + -115.197667, + -152.0983, + -148.9571, + 132.5848, + -111.078167, + -111.4578, + -155.624833, + -150.4867, + -111.418333, + -117.6351, + -116.542167, + -122.887667, + -111.426833, + -155.275162, + -147.6927, + -150.0351, + -119.802667, + -177.8205, + -123.257833, + -149.4101, + -89.502, + -136.81, + -93.4191, + -117.495167, + -111.424333, + -151.9125, + -149.2214, + -151.7292, + -136.7213, + -119.6593, + -122.810837, + -148.8825, + -155.477661, + -151.4004, + -160.1086, + -122.672, + -117.512, + 141.0335, + -139.4786, + -142.8777, + -116.797667, + -151.3632, + -118.840333, + -152.6591, + -111.409833, + -111.420167, + -111.4288, + -155.2775, + -111.426333, + -156.1734, + -120.731, + -151.2468, + -111.445667, + -117.764667, + -111.440667, + -155.6165, + -160.4523, + -111.435667, + -147.3481, + -162.4096, + -155.875167, + -136.5895, + -148.8219, + -152.8317, + -111.4045, + -155.1233, + -149.5943, + -96.7528, + -115.1044, + -142.96, + -144.8653, + -155.5664, + -148.9661, + -71.3157, + 148.9933, + -152.8016, + -159.2848, + -150.3599, + -118.8997, + -153.3362, + -139.7317, + -151.2295, + -153.2105, + -118.3295, + -111.422667, + -118.328333, + -147.1296, + -153.2703, + -140.9406, + -118.331167, + -118.3305, + -147.3801, + -94.8719, + -111.423167, + -178.4258, + -121.286167, + -116.752, + -111.445, + -116.750333, + 179.7511, + 174.3444, + -90.9075, + -66.3401, + -152.1132, + -120.522667, + -136.6365, + -2.1386, + -121.103, + 162.614, + -152.323, + -143.0763, + -112.528, + -120.586, + 141.5418, + -111.450167, + -111.415833, + -98.7971, + -121.668833, + 57.4066, + -153.744, + -159.5947, + -153.0266, + -98.8008, + -112.407833, + -111.4223, + -120.772333, + 123.9102, + -97.9891, + -94.8625, + -122.194333, + -147.3714, + 179.4478, + -150.6706, + -111.4595, + -98.7506, + -98.7831, + -116.475333, + -111.420667, + -143.6104, + -119.7943, + -165.652, + -119.7768, + -119.7817, + -147.06, + -111.4475, + -135.5801, + -151.2245, + -115.1076, + -94.5112, + -117.8445, + -118.3633, + -150.9168, + -122.721832, + -153.2675, + -69.0339, + -149.9751, + -153.476, + -158.8511, + -156.4847, + -123.194167, + -111.439833, + -140.5411, + 141.7668, + 150.8423, + -147.171, + -117.498833, + -120.729333, + -156.3232, + -170.4901, + -111.421, + -139.6328, + -151.9009, + -155.283829, + -117.7695, + -117.767, + -117.769833, + -155.249161, + -178.8186, + -122.104167, + -118.359001, + -117.767333, + -120.572167, + -74.1913, + -98.4952, + -157.026, + -117.846, + -117.768, + -89.646167, + -72.6161, + -97.682, + -121.259833, + 128.1444, + -111.426167, + -121.598167, + -117.766, + -111.448833, + -149.8949, + -111.458833, + -111.469, + -120.485667, + -154.4077, + -116.3645, + -142.9995, + -111.4455, + -141.5253, + -165.1883, + -118.833667, + -111.4431, + -111.455167, + -111.4706, + -178.4914, + -147.6176, + -152.259, + -97.5135, + -111.4724, + -178.4652, + -111.4508, + -149.0197, + -111.4429, + -98.7965, + -153.9141, + -117.763833, + -152.0429, + 178.0168, + -137.534, + -117.765667, + -117.764833, + -72.4084, + -136.7313, + -118.8959, + -147.6819, + -153.2865, + -148.3607, + -122.799667, + -118.96, + -67.596, + 53.9953, + -122.801333, + -149.9795, + -152.1838, + -116.804167, + -78.7564, + -179.1381, + -115.0787, + -139.5369, + -149.0502, + -149.013, + -147.3053, + -145.2687, + -161.4683, + -122.809833, + -87.909833, + -144.7265, + -170.3853, + -122.811333, + -115.0296, + -118.197333, + -171.074, + -72.3742, + -148.7971, + 178.3494, + -121.178833, + -121.177333, + -111.018167, + -152.2511, + -149.8298, + -168.7444, + -67.7015, + 178.6299, + -67.723, + -96.8094, + -115.0799, + -115.489167, + -155.2385, + 162.925, + -167.747, + -147.6103, + -116.053, + -142.3955, + -93.8135, + -94.0446, + -179.2219, + -122.792335, + -118.473833, + -119.786, + -94.5541, + -119.804667, + 162.5306, + -152.8602, + -147.6967, + -118.475667, + -116.774833, + 178.8368, + -149.7029, + -166.4992, + -124.194667, + -115.486333, + -151.0668, + -148.3206, + -122.682, + -149.1655, + -115.1363, + -122.7385, + -139.2708, + -68.6603, + -160.7298, + -153.1948, + -167.4718, + -122.7735, + -115.486333, + -115.484833, + -115.4825, + -118.840667, + -157.1719, + -153.3919, + -146.5941, + -112.526833, + -136.8501, + -149.6396, + -94.4373, + -111.714, + -111.707167, + -155.457833, + -111.715333, + -150.6267, + -152.0202, + -122.827331, + -146.8182, + -122.7775, + -139.4, + -139.8629, + -115.489333, + -115.488, + -150.9564, + -136.7113, + -178.4318, + -152.5948, + -117.855667, + -139.9455, + -117.852333, + -117.673833, + -115.5662, + -147.3544, + -122.826164, + -153.6811, + -123.3385, + 150.1858, + -67.2122, + -122.814667, + -161.33, + -141.3969, + -117.856, + -94.7554, + -153.3386, + -123.114667, + -164.2489, + -123.128, + -150.6751, + -115.605, + -115.604667, + -115.606, + -66.496, + -152.5226, + -147.6844, + -155.602167, + -117.024833, + -117.472833, + -72.084, + -160.4781, + -135.8292, + -117.581833, + -146.5833, + -119.54, + -115.1157, + -119.1142, + -118.820667, + -94.6427, + -116.450667, + -111.4497, + -118.1565, + -112.536167, + -117.6987, + -150.4688, + -115.1168, + -116.9445, + -122.8455, + -111.613667, + -149.838, + -116.656502, + -115.1288, + -151.4112, + -136.8004, + -115.635, + -118.418667, + -150.9735, + -149.0018, + -150.8926, + -66.5011, + -95.2066, + -154.6398, + -115.0899, + -94.8487, + -111.609167, + -150.0364, + -120.869, + -97.819333, + -122.779167, + -122.776833, + 19.9297, + -155.220333, + -151.8846, + -175.9783, + -152.5148, + -179.173, + -110.8355, + -118.0248, + -118.8995, + 77.1478, + -150.3078, + -150.5131, + -72.1652, + -177.7225, + -122.787498, + -155.431667, + -115.1332, + -94.5858, + -136.7568, + -156.9195, + -121.149, + -164.7477, + -64.7745, + -151.6658, + -178.3907, + -173.9092, + -72.2186, + -115.1135, + -94.5576, + -162.8697, + -72.147, + -112.5215, + -119.124, + 167.9613, + -154.6727, + -150.4494, + -122.0555, + -140.9796, + -112.5825, + -120.378, + -147.1555, + -177.9085, + -94.9784, + -122.784332, + -122.818001, + -152.3712, + -149.8742, + -150.8392, + -112.518, + -112.487833, + -122.8005, + -147.5693, + -122.814163, + -170.7034, + -150.6388, + -116.924667, + -118.3425, + -121.950333, + -161.5491, + -149.5426, + -155.608167, + -151.773, + -67.2451, + -120.034667, + -122.815002, + -150.5195, + -121.177167, + -146.0878, + -152.0016, + -150.7382, + -115.0964, + -154.3038, + -122.892833, + -151.9106, + -150.4141, + -165.0917, + -152.705, + -139.5274, + -150.9157, + -121.157, + -164.5368, + -147.8253, + -147.8755, + -151.6407, + -151.2909, + -150.7225, + -116.790667, + -155.218167, + -122.0175, + -122.827167, + -161.2238, + -121.180167, + -140.0029, + -165.0451, + -114.576167, + -115.6075, + -150.5838, + -140.6661, + -150.4484, + -112.529333, + -146.4235, + -165.0259, + -12.7162, + -118.9167, + 179.4353, + -151.0383, + -125.213167, + -111.457, + -111.024833, + -167.234, + -116.797, + -89.764167, + -121.583, + -140.0127, + -150.5639, + -153.0175, + -116.797, + -111.429167, + -152.8583, + -155.2714, + -112.526333, + -150.9313, + -121.735167, + -146.6172, + -116.919833, + -119.713, + -145.5107, + -94.3513, + -117.172167, + -150.8715, + -122.847333, + -94.2351, + -94.1304, + -145.5172, + -122.295333, + 159.3367, + -116.7125, + -69.5275, + -149.1193, + -117.650333, + -152.1499, + -141.8744, + -94.5206, + -149.4081, + -121.818833, + 145.306, + 119.3564, + -115.3624, + -150.7281, + -136.7896, + -118.912833, + -149.791, + -112.522, + -117.673167, + -153.4144, + -166.3972, + 149.5672, + -112.5195, + -151.5592, + -112.8165, + -121.026667, + -121.618333, + -147.3499, + -153.7406, + -147.3304, + -121.725333, + -169.006, + -118.571833, + -147.6357, + -151.1167, + -146.4894, + -118.834, + 178.4711, + -118.816167, + -150.5842, + -120.973667, + -122.809167, + -122.810167, + -151.1812, + -174.9501, + -152.5209, + -118.293, + -151.2975, + -174.8219, + -122.5365, + -115.608667, + -87.5905, + -70.2379, + -115.605333, + -111.4244, + -119.12, + -121.059667, + -96.9818, + -151.7121, + -178.4976, + -112.6775, + -149.5592, + -115.831333, + -153.4003, + -122.734667, + -155.0584, + -115.833167, + -116.273667, + 127.2591, + -67.9698, + -111.4059, + -111.4107, + -122.04, + -111.025833, + -119.0921, + -174.8489, + 140.7612, + -112.516, + 149.0118, + -144.362, + 148.9733, + -146.6029, + -112.519, + -173.6428, + 92.0846, + -116.19, + -118.825, + 149.1591, + 24.0015, + -149.9309, + 148.8708, + -17.9505, + -94.5959, + -17.6137, + -136.8499, + -116.367, + -145.0876, + -122.818333, + -122.817001, + -152.8082, + -153.6293, + -115.882333, + 126.5305, + -121.125667, + -178.9394, + -85.053333, + -117.090333, + -148.7794, + -11.7611, + -177.7236, + -148.6722, + -116.922167, + -94.4533, + -152.3466, + -118.835, + -155.6794, + -166.9646, + -116.2815, + -147.7652, + -153.454, + -116.021167, + -155.478668, + -143.7865, + -118.543833, + -154.7144, + 166.6171, + -135.7891, + -155.55, + -135.7412, + -148.4607, + -116.920667, + -67.3399, + 127.0437, + -178.4823, + -166.3827, + -122.041167, + -146.605, + -116.465667, + -116.358167, + 92.0628, + -150.5971, + -144.0384, + -155.593167, + -148.8915, + -26.4288, + -143.6831, + 141.2485, + -13.5314, + -176.1147, + -13.1689, + -153.0719, + -152.2164, + -111.025833, + -121.879167, + -150.8564, + -122.737335, + -121.117, + -82.1696, + -151.8157, + -66.7666, + -116.373667, + -118.8894, + -111.4463, + -152.7184, + -118.834167, + -111.4391, + -115.605167, + -118.952833, + -71.6223, + -148.7555, + -122.736667, + -164.5935, + -111.4531, + -110.836, + -153.5848, + -94.9805, + -110.817667, + -110.828167, + -95.0121, + -150.2, + -88.5423, + -118.0955, + -110.841667, + -110.822333, + -116.797833, + -86.4078, + -122.810165, + -116.928167, + -116.181, + -150.4712, + -121.8885, + -163.1812, + -105.7123, + -136.7399, + -151.8141, + -158.3598, + -117.1755, + -169.8861, + -146.3176, + -151.1301, + -150.8794, + -136.7851, + -122.821167, + -165.9053, + -122.822502, + -118.147333, + -147.5056, + -152.6618, + -149.2146, + -116.709667, + -116.687167, + -116.927167, + -136.771, + -178.474, + -156.177667, + -178.3048, + -116.746333, + -136.7659, + -136.7941, + -136.89, + -136.8821, + -136.8902, + -136.8916, + -136.9, + -124.863333, + -136.7498, + -96.6989, + 178.6017, + -121.754167, + -14.0114, + -151.1524, + -94.1822, + -121.616833, + -156.5667, + -153.0011, + -147.7769, + -118.834167, + -122.491167, + -116.431333, + -120.164333, + 139.4711, + -124.606167, + -156.1504, + -94.4078, + -150.8073, + -122.793999, + -116.179, + 159.8208, + -118.832833, + -148.7782, + -151.0825, + -117.509667, + -115.217, + -66.6768, + -119.9, + -118.504167, + -94.552, + -153.0556, + -111.020833, + -116.973333, + -156.7021, + -118.2045, + -94.7095, + -153.2692, + -148.2984, + -116.791667, + -116.975667, + -122.8095, + -155.8156, + -95.5572, + 142.7408, + -151.0305, + -117.878167, + 161.507, + -111.4285, + -74.1918, + -95.0682, + -122.337833, + -157.7764, + -122.711, + -122.717167, + -119.0075, + -155.611, + -119.801833, + -151.7481, + -150.7871, + -112.489667, + -121.047, + -117.9133, + -149.431, + -111.4328, + -118.895333, + -111.4287, + -139.8572, + -118.946833, + -153.3496, + -116.1775, + -139.9009, + -111.424, + -152.9804, + -94.9072, + -151.2424, + -122.0445, + -148.1823, + -118.931167, + -121.162, + -153.1816, + -122.7105, + -67.1556, + -119.5538, + -115.609667, + -97.570167, + 154.9693, + -118.840833, + -122.827667, + -121.124, + -120.96, + -178.2643, + -153.0307, + -147.5632, + -87.3487, + -151.0358, + -179.2793, + -94.0304, + -120.120167, + 128.8254, + -146.4578, + -96.8006, + -118.829167, + -94.162, + -115.1525, + -122.826, + -94.2297, + -121.998833, + 83.5155, + -120.136, + 122.1193, + -118.918167, + -115.616167, + -136.7489, + -141.7145, + -147.3921, + -151.4792, + -148.5868, + 27.685, + -115.9555, + -118.053167, + -116.920833, + -139.9221, + -64.0526, + -120.0331, + -150.9184, + -116.922833, + 178.5336, + -118.8995, + -157.487667, + -153.591, + -152.4461, + -116.918833, + -146.8364, + -90.4791, + -118.8325, + -122.181833, + -148.1125, + -122.8025, + -157.4333, + -154.4004, + -60.854, + -94.143, + -116.924667, + -111.4153, + -123.266667, + -115.719, + -116.926333, + -77.9491, + -122.777833, + -89.7094, + -148.8446, + -116.5347, + -119.682, + -115.516833, + -146.8143, + -118.8735, + -90.3315, + -117.105667, + -153.2233, + -165.7519, + -116.179, + -116.793333, + -100.0309, + -118.904167, + -150.6449, + -152.4346, + -122.764168, + -119.395167, + -122.772833, + -118.819167, + -170.5872, + -150.6913, + -150.6368, + -120.806167, + -154.276, + -153.099, + -142.3705, + -150.8357, + 69.6259, + -74.2357, + -111.4075, + -147.7991, + -139.9628, + -148.3459, + -30.9669, + -139.8797, + -156.9613, + -139.9245, + -148.3927, + -155.6105, + 142.9781, + -175.046, + 151.5667, + -153.2666, + 91.9514, + -153.1028, + -139.8103, + -153.1862, + -120.848, + -164.4161, + -122.7085, + -97.9688, + -155.0818, + 178.6723, + 147.5618, + -138.7109, + 137.0445, + -111.4379, + -139.8926, + -151.1722, + -178.4835, + -121.217167, + -119.5746, + 142.6832, + -118.3614, + -119.356667, + -140.8768, + -121.075333, + -111.4277, + -155.9781, + -122.801833, + -116.772667, + -136.6381, + -147.3557, + -152.8331, + -147.1896, + -122.407667, + -64.6295, + -150.6711, + -135.0254, + -147.5162, + -118.488333, + -116.796, + -28.3292, + -122.725334, + 169.72, + -124.858667, + -147.3749, + -111.420667, + -118.49, + -118.799667, + -118.445, + -152.4458, + -93.9892, + -138.7292, + -118.178169, + 28.8132, + -116.102833, + -152.3298, + -118.641667, + 160.527, + -117.808, + -150.3827, + -122.048333, + -122.807, + -122.0485, + -164.4354, + -66.7353, + -150.6843, + 140.4948, + -162.4074, + -111.438833, + -117.491167, + -97.96, + -151.4615, + -154.862333, + -163.5994, + -150.5105, + -139.8399, + -112.528, + 118.2763, + -115.6045, + -116.736833, + -116.742833, + -116.750167, + -119.536, + -138.734, + -138.6866, + -97.9665, + 177.1015, + -121.478833, + -164.6735, + -150.8074, + -116.172833, + 99.4856, + 178.6795, + -122.588, + -112.527, + -160.3237, + -122.799667, + -112.525, + -152.5946, + -66.7808, + -160.7994, + -161.753, + -122.723167, + -156.6709, + -150.9722, + -138.7297, + -111.4441, + -118.804667, + -119.303167, + -118.7828, + -139.54, + -122.044333, + -122.040667, + -60.5703, + -155.7454, + -97.7775, + -150.0141, + -111.4507, + -147.5654, + -65.039, + -120.106167, + -153.0438, + -164.378, + -67.9741, + -152.1086, + -111.4369, + -116.601167, + -155.473328, + -66.746, + -111.4416, + -154.2829, + -117.4437, + -121.815833, + -120.027667, + -141.3735, + -139.8448, + -148.0593, + 179.5767, + -139.7132, + -153.4989, + -153.2519, + -121.814333, + -150.0298, + -116.7685, + -146.3726, + -153.2513, + -122.810667, + -146.9297, + -116.190167, + -152.8667, + -82.4676, + -154.4902, + -148.3948, + -151.9039, + -97.7765, + -121.804667, + -138.7346, + -71.42, + -122.802333, + -143.0369, + -76.4066, + -112.529333, + -153.1687, + -139.4451, + -122.730835, + -108.831833, + -118.9033, + -122.039, + -142.9607, + -150.2585, + -151.9441, + -166.2335, + -93.5573, + -118.883667, + -155.466833, + -153.4032, + -117.3195, + -112.5689, + 94.866, + -121.813833, + -121.805667, + -119.260833, + -97.5868, + -94.4079, + -149.7, + -178.8507, + -116.729667, + -121.1895, + 141.716, + -67.3134, + -139.4097, + -121.677167, + -118.828167, + -163.6213, + -93.671, + -122.4815, + -121.8125, + -150.5301, + -172.7418, + -122.842333, + -139.6605, + -147.3686, + -97.887667, + -139.3648, + -147.7478, + -93.2168, + -118.454833, + -158.0714, + -140.0766, + 170.1022, + -116.866, + -118.0155, + 129.1685, + -155.012665, + -112.738, + -139.4453, + -164.6154, + 122.1651, + -67.8618, + -98.1847, + -121.993, + -120.516333, + -148.9235, + -67.5351, + -122.038167, + -117.484667, + -116.377, + -116.9245, + -122.041833, + -117.481, + -103.2947, + -139.541, + -114.5865, + -108.829333, + -140.9798, + -118.838833, + -153.0345, + -118.825833, + -122.201667, + -121.815167, + -162.9114, + -78.886167, + -97.5193, + -151.1135, + -166.7549, + -152.9009, + -139.4567, + -122.106667, + -141.2439, + -141.2344, + -139.6599, + -118.316167, + -121.3855, + -118.823167, + -122.808166, + -148.0556, + -150.8642, + 145.732, + -121.8135, + -111.434, + -116.795333, + -111.4403, + -122.775333, + -94.3313, + -151.8183, + -97.0236, + -165.9733, + -67.1335, + -154.4291, + -168.4598, + 147.122, + -111.640167, + -117.7005, + -154.3367, + -116.6365, + -152.5012, + -164.5211, + -118.8115, + -153.3242, + -94.8439, + -97.888167, + -148.6928, + -116.448167, + -112.534833, + -139.464, + -111.4117, + -68.3985, + -164.7867, + -136.8149, + -118.833667, + -118.9328, + -139.5142, + -140.0247, + -140.0737, + -111.4339, + -118.8295, + -155.1037, + -118.811, + -117.03, + -155.801498, + -165.6941, + -112.506167, + -141.5082, + -150.3654, + -178.3862, + -159.7931, + -150.3442, + -146.5528, + -148.3758, + -121.131, + -168.0082, + -139.5379, + -144.3238, + -164.851, + -155.223667, + -151.4212, + -150.7269, + -122.720001, + -152.0471, + -162.8518, + -158.1582, + -108.827333, + -116.181833, + -122.717499, + -122.714333, + -76.4481, + -97.570333, + -152.4585, + -122.799833, + -116.221833, + -144.7598, + -72.6754, + -139.5103, + -117.872333, + -150.8634, + -151.4454, + -115.625167, + -141.1765, + -94.6903, + -116.733, + -155.382, + -116.731167, + -94.2582, + -121.1615, + -94.3229, + -94.7112, + -98.3656, + -155.425667, + -178.4046, + -93.0841, + 148.0489, + -121.669167, + -93.0709, + -112.522, + -151.0097, + -116.405833, + -118.834, + -121.942833, + -151.959, + -117.992833, + -116.864667, + -118.834167, + -149.1668, + -97.9406, + -151.2972, + -68.791, + -97.5112, + -117.6335, + -115.606667, + -117.427667, + -111.4442, + -111.4212, + -111.4618, + -111.426833, + -152.8887, + -141.394, + -111.4263, + -116.8899, + -151.8776, + -122.737663, + -122.746833, + -153.2915, + -121.139667, + -141.3285, + 22.899, + -118.543667, + -111.4312, + -148.644, + -160.5002, + -136.6619, + -67.141, + -161.3635, + -145.2989, + 139.6152, + -116.3345, + -174.3466, + -178.4123, + -116.2715, + -155.394165, + -178.4, + -155.3835, + -121.5475, + -122.458833, + -151.3313, + -115.610333, + -115.613333, + -150.1366, + -115.161833, + -150.9358, + -69.4183, + -178.3482, + -147.3403, + -112.5646, + -121.347833, + -115.6105, + -97.966333, + -110.0425, + -116.2705, + -159.6253, + -114.999333, + -118.367, + -115.612333, + -115.613, + -115.614, + -115.615833, + -155.213667, + -146.3859, + -118.841667, + -154.5229, + -116.274, + -116.276, + -167.4531, + -166.5682, + -116.795167, + -112.622667, + -94.0086, + -115.614667, + -115.615333, + -110.043833, + -94.9904, + -119.017333, + -116.7965, + -110.075667, + -117.498833, + -112.7145, + -122.7985, + -122.811165, + -151.2791, + -122.814, + -118.817667, + -117.381833, + 112.9501, + -111.4525, + -141.8987, + -141.7682, + -152.7636, + -117.1445, + -118.850167, + -118.187167, + -178.302, + -146.3078, + -122.745666, + -151.0157, + -120.0595, + -120.0005, + -120.600167, + -115.609, + -149.2438, + -118.841167, + -80.703, + -151.7446, + -152.9553, + -153.5059, + -94.6803, + -174.8197, + -124.704667, + -174.4098, + -148.8143, + -155.485504, + -151.4592, + 152.1284, + -155.889333, + 161.9266, + -152.2966, + -89.672667, + -151.8055, + -149.627, + -117.791, + -118.9116, + -146.8896, + -157.3908, + -114.547833, + -118.918167, + -148.4711, + -118.818, + -116.585667, + -115.6185, + -155.298996, + -115.623, + -93.7023, + -114.642667, + -117.587333, + -122.820333, + -163.6774, + -115.829167, + 128.1783, + -121.082167, + -141.3182, + -177.6566, + -94.2516, + -112.511667, + -139.9212, + -136.6225, + -110.8535, + -122.793, + -155.1134, + 179.0008, + -119.8103, + -151.4897, + -164.0416, + -121.764333, + -147.7778, + -111.422, + -94.9055, + -115.6215, + -94.7401, + -98.9039, + -158.2898, + 179.5523, + -166.5476, + -94.2348, + -155.356003, + -122.793831, + -111.4275, + -148.4702, + -115.548, + -122.889333, + -153.8609, + -150.7566, + -146.7433, + -145.5871, + -149.9213, + -111.4494, + -153.0388, + -141.3111, + -118.8285, + -151.8651, + -111.4177, + -166.1432, + -179.084, + -118.9094, + -148.8175, + 147.6079, + -118.803833, + -116.795667, + -147.9732, + -112.5335, + -144.8464, + -93.453, + -117.108167, + -141.4202, + -112.529833, + -121.657667, + -122.886167, + -157.0455, + -122.795, + -178.4947, + -122.793833, + -112.537, + -122.795166, + -112.536167, + -66.4988, + -122.796669, + -122.798333, + -122.795667, + -73.0946, + -112.532, + -94.5721, + -118.643667, + -150.6691, + -66.5123, + -121.517833, + -148.2198, + -94.5276, + -112.540667, + -112.5535, + -151.2406, + -123.366833, + -66.5053, + -117.768667, + -141.4031, + -116.333667, + -147.5511, + -94.4234, + -146.5313, + -158.5006, + -95.3188, + -155.538167, + -120.273167, + -155.276672, + -120.865667, + -94.399, + -155.535, + -117.165833, + -164.4757, + -144.5762, + -122.374667, + -32.4621, + -117.675833, + -147.3463, + -155.543333, + -164.4621, + -148.3411, + -70.8843, + -32.3543, + -122.794833, + -118.193167, + -32.4259, + -141.907, + -32.4208, + -118.819333, + -116.805333, + -118.3685, + -116.575167, + -174.19, + -121.5795, + -148.9811, + -98.3683, + -122.827333, + -94.4239, + -121.876833, + -154.5902, + -117.759333, + -115.385, + -170.5817, + -147.4179, + -121.146667, + -122.875667, + -177.7715, + -139.5267, + -159.2171, + -32.2455, + -94.6417, + -94.9743, + -123.244667, + -93.5996, + -94.0643, + -153.2159, + -111.4572, + -141.1631, + -146.2683, + -155.247667, + -158.9785, + 129.6779, + -167.4402, + -148.4636, + -93.2449, + -167.5043, + -142.7095, + -118.444167, + -58.4081, + -148.7021, + -116.139333, + -151.8118, + -176.3915, + -121.976167, + 129.3156, + -117.031667, + -118.821167, + -171.7818, + -157.0909, + -179.919, + -93.9204, + -116.794, + -94.4589, + -155.4729, + -177.2892, + 167.6472, + -149.5591, + -152.5176, + -67.8866, + -151.482, + -117.166, + -122.7255, + -152.5898, + -110.334667, + -171.3403, + -111.467, + -141.3559, + -141.1399, + -166.7846, + -151.7209, + -155.929167, + -141.314, + -111.443167, + -146.0089, + -98.9201, + -150.9996, + -112.5432, + -147.9544, + -141.0159, + -118.820667, + -116.819667, + -178.4252, + -139.4876, + -151.4102, + -118.826333, + -148.1452, + -141.6326, + -148.0049, + -166.8093, + 101.7514, + -147.0512, + -94.8032, + -112.430167, + -151.8883, + -118.861167, + -111.007333, + -136.7135, + -119.801833, + -121.728833, + -150.7981, + -116.34, + -148.8733, + -173.31, + -152.4588, + -111.465333, + -153.2489, + -153.6819, + -94.7329, + -149.7269, + -67.6503, + -152.4161, + -155.975333, + -155.4164, + -174.2778, + -89.554167, + 147.4651, + -140.1732, + -159.5128, + -117.019667, + -153.4302, + -169.335, + -118.919, + -139.8746, + -94.6261, + -140.6326, + -118.835833, + -68.7348, + 175.9237, + -150.0733, + -119.959667, + -157.0626, + -151.6431, + -118.0826, + -114.294, + 70.8701, + -117.070833, + -151.9514, + -111.435667, + -94.3657, + -166.7632, + -150.5938, + -112.527333, + -122.735833, + -93.8716, + -166.7231, + -93.832, + -112.5175, + -110.973833, + -141.4231, + -118.835, + -121.788, + -67.3923, + -152.3144, + -158.0362, + -111.059333, + -157.320667, + -67.3921, + -112.530167, + -97.492167, + -122.319833, + -117.287333, + -151.8075, + -141.2832, + -112.528833, + -116.797333, + -68.0131, + -118.821333, + -118.821333, + -124.502, + -117.1715, + -118.820667, + -150.3232, + -153.0397, + -68.7961, + -111.445, + -152.6734, + -151.001, + -153.5196, + -149.8744, + -111.414167, + -118.816, + -118.025, + -118.820167, + -94.097, + -151.8044, + -118.819667, + -94.2744, + -111.4236, + -116.796167, + -111.4213, + -118.82, + -154.857, + -141.3458, + -118.8195, + -152.1737, + -111.450167, + -111.45, + -111.4619, + -173.0579, + 178.0407, + -149.9121, + -94.3251, + -119.012, + -94.6345, + -111.4698, + -178.4581, + -140.1659, + -153.2029, + -116.3355, + -94.9567, + -151.4466, + 152.2966, + -118.544833, + -178.3593, + -141.3213, + -93.1669, + -111.4105, + -156.8283, + -122.1755, + -120.939, + -94.6724, + -118.940167, + -94.0139, + -111.4202, + -173.4142, + -116.9785, + -144.7591, + -118.9149, + -173.477, + -110.327667, + -167, + -167.8204, + -150.8659, + -150.115, + -112.540833, + -111.4306, + -112.524833, + -151.2022, + -148.5505, + -148.2439, + -118.8838, + -122.778, + -111.471, + -151.3067, + -152.3368, + -147.7252, + -151.9414, + -111.423167, + 125.9192, + -153.0563, + -8.5745, + -153.1793, + -118.8175, + -118.8205, + 142.3373, + -111.4259, + -112.515833, + -150.8119, + -117.339833, + -27.1014, + 141.7999, + 93.763, + 105.5216, + 21.5733, + -111.425833, + -111.4221, + -117.870333, + 169.8301, + -116.721333, + -93.9232, + -156.3358, + -94.0414, + -136.6743, + -111.4647, + -111.462833, + -149.7738, + -153.0859, + 169.1802, + 146.6506, + -111.4148, + -94.0513, + -94.3653, + -176.0928, + -94.7122, + -112.532333, + -122.819168, + -178.2937, + -122.526167, + -94.4233, + -116.260667, + -121.98, + -67.1661, + -111.4329, + -111.440667, + -111.4268, + -33.2097, + -111.4261, + -111.4192, + -121.788833, + -111.4143, + -111.4164, + 147.2941, + -146.7415, + -111.4259, + 95.9326, + -152.3857, + -111.4339, + -111.4362, + -111.4366, + 94.6908, + -175.5913, + -111.4397, + -174.0316, + -118.293, + -147.9083, + -142.9809, + -151.2227, + -115.0108, + -118.944, + -152.0572, + -118.804, + -146.6291, + 179.5495, + -111.4384, + -111.424667, + -155.6145, + -111.4421, + -111.4364, + -149.8559, + -179.1594, + -118.9061, + -148.8547, + -151.3277, + -111.4451, + -114.591167, + -143.0317, + -116.1345, + -111.4364, + -147.1197, + -176.0508, + -74.1346, + -118.822, + -163.8371, + -149.0565, + -163.9834, + -155.28183, + -118.712, + -152.853, + -146.6217, + -152.1251, + -164.5218, + -165.3884, + -122.753998, + -117.25, + -117.210667, + -167.4191, + -111.4438, + -152.2865, + -146.3358, + -121.747167, + -136.8224, + -111.4237, + -111.4287, + -111.4315, + -117.268167, + -147.4598, + -143.565, + -116.577833, + -122.494333, + -109.851333, + -67.9758, + -145.6659, + -169.5449, + -93.9806, + -116.2325, + -111.4585, + -111.4215, + -67.1399, + -150.8258, + -142.8676, + -112.529333, + -119.403, + -142.1691, + -122.819168, + -111.4688, + -93.9711, + -121.298667, + -157.9816, + -111.4343, + -93.0235, + -166.0716, + -122.039333, + -122.0835, + -152.8937, + -153.1953, + -94.1177, + -111.4145, + -117.690333, + -110.917167, + -95.1678, + 134.2896, + -94.8401, + -153.9778, + -122.041833, + -122.041333, + -153.439, + -152.7785, + 152.4651, + -117.693833, + -96.7392, + -33.3922, + -143.1984, + -112.536833, + -139.3852, + -151.2252, + -137.7551, + -137.7475, + 134.3851, + -150.6756, + -111.4685, + -111.4535, + 122.0697, + -94.9001, + -147.9046, + -159.2586, + -119.009667, + -94.418, + -150.0357, + -116.502333, + -119.535667, + -116.507333, + 143.5451, + -153.1537, + -116.798167, + -114.6589, + 170.8111, + 95.953, + -155.490333, + 129.972, + -152.3457, + -150.6719, + -111.440667, + -111.443, + -154.0095, + -118.832333, + -117.589167, + -178.554, + -118.831, + -93.9938, + -111.4151, + -93.4901, + -150.3481, + -117.663167, + -111.4372, + -153.0012, + -111.4614, + -111.4583, + -150.9225, + -68.7241, + -117.164, + -117.166167, + -117.166667, + -97.877167, + -118.290167, + -111.439, + -150.2261, + -146.8636, + -111.4511, + -121.790333, + -154.9101, + -33.6765, + -118.937667, + -118.806, + -111.4509, + -122.011167, + -111.422167, + -153.0938, + -118.941333, + -118.946167, + -121.394833, + -66.714, + -118.881833, + -154.5368, + -94.2595, + -115.9555, + -151.1907, + -111.4239, + -115.8807, + -152.7422, + -151.4194, + -111.4599, + -155.273331, + -111.42, + -151.7217, + -69.114, + 13.2839, + -117.162, + -97.6178, + -112.527667, + -111.4094, + -111.4249, + -122.784833, + -121.153, + -118.891, + -162.4505, + -111.4177, + -121.149, + -111.4181, + -65.0411, + -155.104167, + -111.4153, + -153.6404, + -104.9924, + -121.315667, + -97.1711, + -111.4388, + -117.169667, + -117.163333, + -170.5732, + -152.7536, + -122.764168, + -122.759667, + -149.3745, + -117.166333, + -117.163333, + -153.7529, + -117.163833, + -151.0268, + -111.4209, + -119.2325, + -151.2942, + -117.172667, + -118.295, + -145.1889, + 82.4969, + -111.4577, + -111.415333, + -117.165167, + -121.157167, + -120.774667, + -119.238167, + -111.4296, + -122.801833, + -111.444, + -111.432167, + -117.167, + -117.165, + -117.164167, + -117.165667, + -142.1509, + -119.893, + -141.731, + -117.167333, + -173.3264, + -119.8935, + -178.4433, + -148.1384, + -169.3922, + -118.943667, + 139.1945, + -123.046333, + -96.7958, + -154.9025, + -116.3395, + 141.9272, + -151.7035, + -94.4383, + -111.4289, + -178.4181, + -94.2576, + -97.7823, + -154.8679, + -111.4498, + -149.1402, + -111.4462, + 146.6784, + -117.169167, + -111.4185, + -151.7386, + -111.4151, + -150.9361, + -119.442, + -67.2868, + -112.5162, + -118.824333, + -140.8767, + -114.410667, + -136.7235, + -90.3498, + -174.3526, + -153.6731, + -98.529, + -94.4173, + 128.1836, + -98.6306, + -116.7985, + -111.4232, + -136.6348, + -111.4182, + -167.3116, + -111.4688, + -112.521667, + -112.521167, + -150.2292, + -87.8604, + -111.4283, + -111.4487, + -111.4433, + -169.4897, + -111.4503, + -153.3819, + -111.4091, + -111.4617, + -111.427, + -146.3496, + -97.1554, + -98.4915, + -152.966, + -111.5652, + 120.6016, + -178.3635, + -111.4487, + -168.5488, + -111.4464, + -119.2044, + -111.4252, + -146.2918, + -111.4318, + -155.211833, + -146.3271, + -111.4701, + -111.4553, + -118.8863, + -66.305, + -111.4404, + -111.4423, + -116.192167, + -122.040167, + -175.8004, + -111.4234, + -97.878333, + -111.4475, + -116.297667, + -116.206167, + -94.5926, + -111.4649, + -111.3389, + -111.4134, + -121.680333, + -98.9657, + -111.4216, + -155.244, + -111.4155, + -118.9198, + -176.8674, + -118.9445, + 147.742, + -93.8669, + -150.9107, + -166.6897, + -151.9911, + -143.0313, + -122.818001, + -111.484, + -163.0563, + -116.362167, + -165.7762, + 142.8932, + -94.5035, + -162.8991, + -112.524667, + -104.9548, + -177.852, + 22.3039, + -117.1615, + 170.788, + -178.4988, + 179.9123, + -155.376, + -116.528667, + -121.1025, + -118.4795, + -146.6864, + -150.8811, + -149.9656, + -141.3315, + -116.793833, + -175.9799, + 179.9129, + -94.5866, + -96.804, + -111.4316, + -177.9481, + -151.0079, + -148.0949, + -116.798333, + -113.170167, + -148.2865, + -147.8107, + -120.260333, + -94.5354, + -178.4031, + -143.0051, + -117.871, + -117.1219, + -118.766333, + -94.2661, + -152.9863, + -150.7645, + -150.6083, + -115.1529, + -140.1305, + -67.0151, + -117.1665, + -97.6874, + -117.168833, + -122.712167, + -122.038167, + -173.3705, + -95.0925, + -94.9037, + -117.169833, + -153.4944, + -94.8225, + -117.169, + -151.3287, + -117.034167, + -153.915, + -117.167, + -150.4096, + -153.3522, + -97.572167, + -147.4153, + 141.7252, + -151.7877, + -122.711998, + -94.7509, + -146.8561, + -147.2491, + -173.2187, + -122.600667, + -112.520333, + -94.5278, + -146.0253, + -147.452, + 178.5196, + -94.9747, + -67.1073, + -93.3515, + -111.403, + -146.5055, + -111.4779, + -94.442, + -94.3811, + -152.7452, + -137.9725, + -118.9112, + -116.383167, + -152.6807, + -94.689, + -94.7157, + -94.5751, + -94.4987, + -129.358, + -143.3005, + -178.3901, + -129.0417, + -152.9635, + -178.4592, + -149.5578, + -112.508667, + -172.5775, + -178.0694, + -111.427, + -155.501, + -159.5442, + -129.0754, + -122.709167, + -122.424167, + -151.0175, + -151.9885, + -136.3619, + -155.28717, + -150.1873, + -157.4513, + -147.3555, + -161.5776, + -158.4861, + -111.4595, + -139.5516, + -99.3253, + -122.883167, + -73.6167, + -116.927167, + -153.6439, + -122.744499, + -111.767667, + -121.4355, + -95.0655, + -111.014167, + -122.732833, + -122.879, + -122.712667, + -177.6127, + -96.8073, + -96.8015, + -95.0828, + -152.0546, + -122.201333, + -152.8158, + -97.5041, + -155.279159, + -94.5518, + -94.8925, + -158.4077, + -151.7854, + -94.8055, + -152.6984, + -155.446, + -111.206, + -155.281998, + -150.4114, + -122.723667, + -157.1285, + -174.2291, + -111.4504, + -118.8284, + -178.5288, + -122.881, + -111.417167, + -94.4218, + -155.274333, + -166.1975, + -118.9058, + -122.480833, + 155.7383, + -152.857, + -178.4071, + -117.307667, + -151.043, + -94.459, + -154.8616, + -94.1719, + -120.621667, + -178.3606, + -120.5835, + -119.9184, + -118.9128, + -178.3563, + -111.071, + -178.3417, + -175.3148, + -94.1553, + -111.4403, + -116.274333, + -152.6619, + -148.0742, + -155.013167, + -115.497167, + -178.4283, + -94.8484, + -118.944833, + -94.5822, + -93.9636, + -118.855667, + -177.13, + -148.3618, + -94.193, + -150.7868, + -141.7112, + -116.275, + -160.4388, + -94.1556, + -152.6252, + -154.7649, + -177.4826, + -119.012333, + -119.3553, + -116.386667, + -111.431, + -110.785167, + -164.4265, + -152.0471, + -152.7554, + -94.118, + -93.9764, + -155.8765, + -97.8555, + -94.1507, + -120.2615, + -136.5542, + -94.2891, + -158.2315, + -111.3875, + -94.4075, + -136.5009, + -151.6279, + -66.1721, + -117.871333, + -118.943333, + -150.7877, + -111.4749, + -94.4489, + -118.822667, + -111.4515, + -97.7026, + -163.0448, + -94.601, + -111.4242, + 126.8292, + -118.832333, + -178.3602, + -70.2262, + -111.006167, + -67.2761, + -116.930333, + -94.5053, + -111.447, + -118.871, + -116.988, + 140.9766, + -115.3876, + -116.931667, + -149.7897, + 133.9356, + -67.0237, + -152.1724, + -140.6065, + -163.0371, + -122.642667, + -95.1532, + -120.008833, + -153.187, + -152.0279, + 169.3876, + -150.0341, + -157.3563, + -111.4451, + -121.982833, + -173.2987, + -152.5944, + -94.5388, + -115.892667, + -111.4224, + -111.4255, + -111.4298, + -111.4585, + -111.4277, + -111.4155, + -178.5064, + -116.470167, + -111.4221, + 145.5761, + -111.4167, + 130.0828, + -111.427, + -94.0129, + -25.2724, + -155.2485, + -111.4304, + 74.9524, + -111.4353, + -111.4364, + 146.7566, + -146.6119, + -146.6435, + -94.7031, + -150.6116, + -119.027333, + -123.4665, + -118.9216, + -94.4368, + -148.2717, + -146.5829, + -115.4375, + -94.6092, + -93.9169, + -94.7579, + -120.951833, + -115.433333, + -115.650333, + -94.536, + -94.4987, + -94.2803, + -112.5255, + -25.7043, + -94.4429, + -150.7939, + -149.9696, + -116.5673, + -170.4837, + -152.2112, + -94.7033, + -94.6748, + -93.7794, + -94.0338, + -94.8516, + -146.6303, + -153.3862, + -178.2638, + -94.0613, + 119.1423, + -155.238, + -121.051167, + -136.9441, + -94.6151, + -97.5107, + -112.527833, + -118.507167, + -152.2765, + -94.4593, + -116.8695, + -146.646, + -154.1393, + -94.4341, + -146.6499, + -154.1907, + -87.913, + -112.491667, + -94.9352, + -94.5559, + -146.6125, + -146.6164, + -94.2125, + -169.2368, + -152.2744, + -95.0181, + -67.4461, + -94.4711, + -152.3303, + -146.6189, + -146.6431, + -94.3472, + -94.338, + -148.5619, + -94.644, + -94.0747, + -163.2524, + -67.2748, + -94.7923, + -146.6215, + -94.2803, + -146.6908, + -153.1588, + -116.197667, + -151.8869, + -148.9394, + -118.095167, + -122.234, + -116.930333, + -153.5605, + -146.7065, + -93.8933, + -94.5492, + -149.8278, + -153.593, + -82.4369, + -94.098, + -122.797167, + -155.300507, + -93.5371, + -94.4561, + -121.63, + -94.5874, + -147.7901, + -165.1288, + -111.438333, + -151.671, + -94.3911, + -111.4281, + -111.4338, + -153.3277, + -149.056, + -163.713, + -116.2745, + -94.6805, + -136.6323, + -151.43, + -115.598333, + -115.24, + -152.3632, + -155.314, + -119.003833, + -150.2504, + -155.1821, + -152.1655, + -153.597, + -94.1585, + -111.417833, + 82.6815, + -147.3769, + -146.7587, + -139.4893, + -148.7194, + -156.0231, + -121.8175, + -97.5076, + -93.8865, + -152.3127, + -97.5069, + -112.500333, + -119.04, + -94.0113, + -150.8637, + -116.201167, + -119.038667, + -94.5854, + -119.040167, + -94.4976, + -94.0707, + -94.3905, + -122.451, + -94.2669, + -152.3787, + -168.4787, + -122.756167, + -151.8681, + -94.4812, + -144.7621, + -150.811, + -121.065167, + -122.7535, + -153.2239, + -153.2392, + -94.7805, + -164.6706, + -112.961667, + -117.243333, + 169.1397, + -94.4084, + -112.5325, + 122.6478, + -150.5122, + -151.7722, + -111.4383, + -119.013, + -111.4363, + -111.4289, + -141.1502, + -152.5601, + -115.561833, + -150.6296, + -117.184167, + -118.191833, + -94.1128, + -94.6162, + -111.4362, + 151.0589, + -94.9814, + 166.9803, + -94.4237, + -150.517, + -95.0247, + -119.369, + -118.34, + -117.5283, + -121.9525, + -94.339, + -157.7656, + -93.8739, + -116.792333, + -153.2184, + 54.7094, + -153.5364, + -115.8858, + -116.084, + -112.5415, + -94.495, + -147.3249, + 133.2388, + -94.7297, + 54.7693, + -154.153, + -122.1045, + -116.463833, + -94.6852, + -94.3813, + 130.804, + -93.8822, + -111.4688, + -116.931, + -94.1176, + -174.8013, + -94.834, + 121.5842, + -94.4164, + -94.237, + -147.7913, + -94.4908, + -154.1717, + -45.1832, + 121.1544, + -117.863167, + -119.029167, + -94.8299, + -126.4015, + -120.594833, + -120.600833, + 51.6373, + -172.4529, + -117.447333, + -123.168167, + -94.7985, + -151.0626, + -117.499333, + -94.3384, + -94.4062, + -94.1626, + -165.7019, + -93.9379, + -118.805, + -92.5495, + -118.807167, + -94.3291, + -94.3775, + -149.7176, + -122.826833, + -94.2597, + -94.3617, + -150.4859, + -94.2794, + 140.4519, + -122.493333, + -151.1326, + -168.9923, + -122.476833, + -122.487833, + -148.8024, + -93.9526, + -115.1528, + -142.2249, + -177.5174, + -114.2814, + -121.509333, + -116.717833, + -115.568167, + -94.4203, + -120.0794, + -94.752, + -94.251, + -116.5185, + -94.5788, + -121.437833, + -94.7875, + -122.485667, + -111.4645, + -94.4825, + -94.798, + -149.6965, + -122.486333, + -122.482833, + -122.491833, + -122.489, + -160.4655, + -147.0732, + 125.9223, + -151.3276, + -120.0784, + -122.476167, + -155.466833, + -97.7805, + -140.1592, + -140.1624, + -123.050833, + -178.4879, + -154.9215, + -94.4387, + -118.8075, + -94.4897, + -94.5329, + -116.622833, + -157.5627, + -123.456, + -94.7484, + -121.938, + -94.834, + -94.0811, + -93.9132, + -94.1725, + -159.0839, + -117.4838, + -149.4759, + -94.3904, + -115.0405, + -94.6852, + -111.444167, + -169.2139, + -110.647, + -94.4738, + -95.0003, + -94.801, + -94.7758, + -115.0136, + -157.4697, + -119.7805, + -94.6759, + -111.4101, + -117.778, + -94.7738, + -150.538, + -94.6365, + -111.446, + -94.7956, + -94.2068, + -164.0677, + -135.611, + -94.9743, + -121.3305, + -111.500667, + -142.7701, + -118.882167, + -155.447167, + -94.7971, + -93.8774, + -94.8976, + -104.9507, + -148.2544, + -118.982833, + -148.715, + -94.2381, + -116.789, + -94.3508, + -122.736, + -93.7954, + -116.2104, + 3.8455, + -122.8065, + -94.627, + -152.4392, + -93.9103, + -152.7947, + -94.5535, + -94.9041, + -156.0257, + -95.1989, + -94.7531, + -122.802333, + -94.1219, + -93.9647, + -94.712, + -122.800667, + -94.8795, + -122.8005, + -122.801666, + -94.7228, + -94.0216, + -122.761002, + -114.9828, + -93.9438, + -94.8391, + -94.0987, + -98.4714, + -94.4082, + -93.9331, + -122.800835, + -94.5946, + -122.802, + -115.8669, + -94.6096, + -94.5672, + -122.752167, + -122.765663, + -122.80883, + -68.2905, + -93.8789, + 128.5159, + -122.805833, + -122.766, + -122.7555, + -122.7715, + -122.771167, + -122.556, + -122.806, + -122.739667, + -122.817833, + -122.800667, + -94.2707, + -151.0631, + -112.541833, + -93.9067, + -163.4753, + -118.8105, + 178.621, + -116.899167, + 179.0405, + -165.0538, + -150.7807, + -149.5616, + -173.812, + -154.717, + -150.7323, + -116.7945, + -169.0592, + -153.81, + -174.7414, + -169.2407, + -154.978833, + -97.887167, + -118.945167, + -97.683, + -150.6982, + -122.568333, + -111.4569, + -122.053667, + -163.7652, + -155.011833 + ], + "lat": [ + 63.1016, + 63.1224, + 63.0781, + 34.299667, + 12.0623, + 63.0719, + -20.2873, + 63.1725, + 36.421833, + 33.656333, + 63.0879, + 63.0933, + 63.2272, + 63.0844, + 61.8518, + 61.6214, + 62.9656, + 61.2705, + 65.5942, + 13.5146, + 37.605499, + 37.636833, + 34.1555, + 33.5115, + 63.1812, + 19.374167, + 61.5726, + 60.2607, + 34.254833, + 63.0847, + 63.5257, + -18.9821, + 63.0775, + 36.579834, + 61.8312, + 63.0621, + 16.7195, + 47.049167, + 63.0785, + 60.7696, + 61.6478, + 63.0633, + 63.0675, + 63.083, + 63.0742, + 63.1276, + 16.6087, + 37.605335, + 33.493, + 34.0335, + 63.2623, + -30.4302, + 58.5727, + 38.030666, + 38.789166, + 37.621498, + 63.1738, + 61.7978, + 19.223499, + 59.7754, + 38.8255, + 19.338667, + 67.7636, + 59.8372, + -32.4981, + 36.3094, + 65.9499, + 63.376, + 38.760334, + -1.6647, + 62.9966, + 64.7593, + -33.0092, + 59.8473, + 33.904333, + 19.23, + 66.3947, + 34.326, + 46.865833, + 38.834835, + 38.405, + 33.486833, + -6.3628, + 36.150333, + 36.327168, + 62.5667, + 59.957, + 38.834835, + 46.869333, + -16.7961, + 37.4585, + 46.8755, + 37.603832, + 34.632, + 51.3254, + 37.4041, + 37.604168, + -23.7671, + 40.842499, + 1.1151, + 33.466333, + 60.2328, + 60.2021, + 62.4396, + 60.5797, + 34.3335, + 34.333167, + 33.490333, + 35.339667, + -33.0297, + 38.826, + 37.3789, + 64.9749, + -10.0109, + 39.6124, + 60.3395, + 43.0121, + 37.3861, + 34.34, + 46.572333, + 39.8477, + 39.8485, + 36.566667, + 17.7456, + 32.7663, + 36.5565, + 32.578667, + 36.481, + 38.107, + 62.2007, + 63.1717, + 37.5335, + 33.860833, + 59.7754, + 36.6265, + 63.6837, + 36.148333, + 35.0025, + 37.457667, + 43.553333, + 45.9945, + 32.941333, + 62.7834, + -49.2119, + 42.633167, + 37.920333, + 30.0165, + 35.052833, + -35.3171, + 62.1214, + 38.5802, + 37.4191, + 46.867167, + 42.602667, + 37.457333, + 35.633833, + 34.0145, + 66.2332, + 38.783667, + 46.8575, + 33.876, + 60.1679, + 37.0997, + 67.5663, + 31.614, + 59.8037, + 42.554833, + 39.4223, + 35.752167, + 38.4131, + 12.0039, + 63.3167, + 60.9026, + 38.805167, + 34.226167, + 38.813499, + 38.822333, + 63.5211, + 38.771667, + 46.894167, + 37.565333, + 34.172833, + 35.822833, + -6.8684, + 45.6895, + 34.000333, + 44.259167, + 43.681333, + 51.2318, + 65.2966, + 19.2805, + 18.876833, + 63.251, + -0.4925, + 61.5105, + 19.380333, + 39.4096, + 37.483833, + 37.485, + 42.660667, + 59.8808, + 47.455667, + 13.8504, + 64.8537, + 49.06, + 61.7195, + 32.948833, + 42.6517, + 38.822, + 38.6015, + 51.6139, + 42.652833, + 64.2744, + 19.329, + 37.607, + 46.873, + -17.5702, + 33.0315, + 38.8195, + 47.583333, + 47.583833, + 42.639667, + 39.599833, + 37.5295, + 38.364167, + -10.3953, + 63.0764, + 47.490167, + 63.4194, + 38.814833, + 41.2375, + 65.8813, + 33.5, + 33.957, + 0.9934, + -9.9486, + 42.5485, + 37.636, + 37.3396, + 39.4485, + 61.1327, + 33.450667, + 37.1082, + 34.427, + -29.925, + 45.685667, + 37.472, + 38.7915, + 46.871167, + 64.9761, + 62.4971, + 38.822, + 40.652333, + 61.9122, + 21.8848, + 61.0044, + 62.7658, + 42.544333, + 42.5495, + 43.357333, + 49.328833, + 61.2012, + 59.032, + 47.392167, + 37.482833, + 65.8954, + 33.508667, + 46.872833, + 63.3209, + 63.3343, + 65.8966, + 60.1339, + 38.8205, + 40.163167, + 19.374, + 65.8742, + 65.9098, + 37.504167, + 33.846167, + 37.324833, + 63.5209, + 40.709833, + 65.8735, + 40.598333, + 33.020667, + 60.8774, + 36.004, + 38.821167, + 18.903833, + 67.3896, + 62.9421, + 37.088833, + 42.600333, + 19.477667, + 46.855833, + 37.607833, + -3.0506, + 64.723, + 35.167, + 67.1103, + 35.399833, + 44.094, + 37.539333, + 46.832167, + 19.767167, + 46.8195, + 33.179667, + 44.772167, + 63.087, + 34.679333, + 67.5326, + 38.793833, + 64.7367, + 47.183667, + 51.4576, + 38.791333, + 7.3643, + 44.006167, + 64.5888, + 31.277, + 46.1425, + 46.126333, + 34.678, + -25.068, + 35.621833, + 43.0535, + 59.7884, + 46.1355, + 59.8781, + -22.4118, + 40.616833, + 63.1832, + 33.2065, + 19.363, + 37.334333, + 32.416667, + 42.578833, + 46.866167, + 19.211, + 39.013167, + 39.1075, + 33.358833, + 33.357667, + 47.179833, + 35.985167, + 37.603333, + 35.618833, + 60.6535, + 63.314, + 36.043833, + 36.043167, + 38.821667, + 33.886333, + 59.7752, + 62.3999, + 38.814333, + 38.813833, + 59.9877, + 48.836333, + 46.874333, + 42.5495, + 33.711167, + 48.845833, + 37.041, + 38.782501, + 38.775667, + 63.5162, + 37.467667, + 33.350667, + 33.3525, + 58.3623, + 36.042, + 61.3056, + 37.7977, + 36.4461, + 60.8331, + 33.033167, + 40.912333, + 53.7666, + 36.45, + 33.961333, + 40.594833, + 67.5542, + 46.873667, + 37.303, + 36.0425, + 33.1335, + 33.67, + 62.8345, + 64.9696, + 62.6072, + -23.9861, + 46.862667, + 62.1419, + 46.116, + 36.4507, + 61.1185, + 36.042, + 46.875, + 36.044667, + 37.603167, + 38.819667, + 33.506833, + 36.044167, + 36.0435, + 37.451833, + 15.6807, + 45.922167, + 37.2677, + 48.8415, + 54.6732, + 32.9105, + 19.384667, + 33.481, + 34.859167, + 62.8046, + 61.7684, + 37.6255, + 33.307, + 23.7468, + 47.519667, + 59.2967, + 37.9535, + 38.823166, + 34.995667, + 37.459167, + 36.540667, + 46.003833, + 62.9001, + 36.539667, + 60.4284, + 68.4924, + -22.7343, + 16.6332, + 38.6437, + 33.8245, + 37.550333, + 37.975, + 37.554167, + 37.565167, + 63.2003, + 39.2152, + 42.623, + 62.788, + 37.001167, + 34.0245, + 36.764667, + 62.4313, + 33.499, + 38.3958, + 36.881, + 36.8815, + 63.5134, + 15.8774, + 62.9914, + 63.1143, + -0.2479, + 39.6344, + 14.9246, + 33.952, + 33.576, + 59.0371, + 61.7579, + 63.315, + 33.9995, + 61.8748, + 60.8439, + 46.866833, + 59.549, + 63.6903, + 38.8355, + 33.080833, + 36.506, + 42.55, + 36.7845, + 46.867833, + 34.0275, + 39.034, + 65.8348, + 34.561167, + 47.466167, + 63.0932, + 37.479167, + 15.081, + 37.453, + 37.634, + 37.655, + 59.7843, + 36.7355, + 58.1927, + 65.1213, + 19.958167, + 33.3585, + 59.0929, + 46.889167, + 18.3756, + 19.608333, + 42.600833, + 62.5624, + 61.9391, + 18.778833, + 61.3011, + 63.8125, + 33.395667, + 33.743333, + -31.5827, + 36.593167, + 38.771667, + -23.1056, + 37.1571, + 61.634, + 37.6515, + 61.2547, + 34.101167, + 46.872833, + 46.876167, + 60.3952, + 40.2609, + 63.2608, + 19.553667, + 34.0685, + 47.996333, + 8.5663, + 35.0345, + 62.1345, + 61.0371, + 48.275333, + 48.259, + 64.9934, + 38.822667, + 38.823166, + 63.0394, + 37.5469, + 38.805667, + 46.078167, + 67.7665, + 61.1448, + 15.6198, + 34.153333, + 43.682, + 65.2302, + 39.024, + 33.392, + 42.583667, + 57.0749, + 65.0131, + 63.3407, + 62.216, + 41.531833, + 42.521333, + 34.1535, + 37.529167, + 13.4552, + 38.799167, + 62.1795, + 60.5934, + 55.3488, + 34.156167, + 61.3457, + 61.6046, + 38.788502, + 33.4895, + 59.6816, + 58.3127, + 40.1731, + 34.1545, + 35.002, + 32.908, + -55.2702, + 46.830333, + 57.4998, + 37.503833, + 61.6607, + 19.406667, + 34.157667, + 42.592167, + 20.034833, + 46.334833, + 60.8946, + 61.0247, + 37.598833, + 59.8428, + -2.5625, + 33.264333, + 37.8049, + 39.998667, + 61.1262, + 64.9183, + 34.154333, + 37.455833, + 37.287833, + 34.054167, + 36.750833, + 62.9454, + 60.0003, + 59.3569, + 59.5043, + 38.820167, + 58.3192, + 51.6134, + 59.3023, + 62.9235, + 59.6428, + 36.4458, + 62.1118, + 35.975833, + 20.027333, + -39.6706, + 37.537333, + 53.5035, + 51.3674, + 25.0488, + 62.2253, + 54.3692, + 61.871, + 34.044333, + 51.67, + 54.2478, + 61.9955, + 35.946833, + 62.0401, + 37.635667, + 57.8662, + 38.825832, + 60.0214, + 43.520167, + 37.630333, + 34.096833, + 34.092333, + 38.807835, + 51.6479, + 38.789001, + 61.3679, + 61.2532, + 62.8909, + 51.6323, + 61.7554, + 53.1343, + 64.5325, + 64.5216, + 58.4847, + 33.687167, + 61.698, + 46.873, + -33.014, + 60.4739, + 42.522333, + 60.1685, + 36.378, + 32.737333, + 61.1636, + 63.1031, + 34.832, + 54.6037, + 59.8936, + 46.877333, + 37.7813, + 62.5244, + 51.6742, + 63.1068, + 33.662167, + 33.171, + 51.73, + 51.6732, + 33.147, + 63.3262, + 32.748667, + 33.267833, + 15.4089, + 43.6785, + 46.871167, + 51.8129, + 62.778, + 33.485333, + 61.1529, + 46.869, + 52.9982, + 38.4484, + 62.7285, + 66.888, + 46.860333, + 53.5386, + 63.268, + 53.8446, + 58.9289, + 38.829834, + 37.487833, + 33.346333, + 62.5803, + 61.9755, + 60.1335, + 61.6682, + 19.795834, + 64.7374, + 38.824001, + 34.0055, + 49.145, + 61.3885, + 36.088167, + 12.8626, + 35.035333, + 36.8167, + 36.232667, + 33.975833, + 40.153833, + 46.173833, + -22.2431, + 48.1035, + -19.4817, + 38.824833, + 37.139833, + 36.959667, + 39.5165, + 47.358667, + 37.590333, + 33.8695, + 35.5909, + 36.880667, + 46.8805, + 37.455667, + 34.993167, + 45.995667, + 35.932833, + 40.750667, + 35.639, + 38.533833, + 34.279, + -7.056, + 46.87, + 33.912167, + 37.530667, + 21.4218, + 40.935167, + 59.642, + 37.2386, + 37.457667, + 34.328667, + 34.3255, + 37.456667, + 46.8625, + 37.457167, + 37.4555, + 37.456333, + 37.453667, + 33.879333, + 35.706833, + 67.1697, + 36.5559, + 42.546333, + 36.462667, + 36.5505, + 61.2492, + 46.870333, + 2.6798, + 37.513833, + 64.6409, + 38.832832, + 28.6895, + 46.868167, + 46.866667, + 44.7795, + 46.855833, + 19.465333, + 36.2851, + 46.869833, + 63.1205, + 36.3165, + 13.209, + -37.3176, + 46.869833, + 42.571667, + 63.0196, + 63.3321, + 34.2985, + 19.919001, + 46.119833, + 12.3486, + 34.208333, + 34.207833, + 36.368667, + 63.1057, + 33.481, + 64.6842, + 35.88, + 42.384833, + 46.8675, + 46.872333, + 34.2065, + 16.708, + 34.332333, + 38.805, + 43.6653, + 42.520333, + 42.544333, + 33.1775, + 63.1998, + 67.3068, + 46.874, + 65.5759, + 19.245501, + 34.9895, + 65.155, + 46.867167, + 33.04, + 61.9608, + 38.600333, + 58.7701, + 42.562167, + -41.7636, + 32.780833, + 33.179833, + -21.8514, + 33.179, + 47.887833, + 36.243667, + 37.0814, + 38.1132, + 66.5767, + 35.967333, + 36.9048, + 46.345833, + 33.500167, + 42.640167, + 33.028833, + 33.2415, + 42.608333, + 35.754, + 19.397499, + 36.2819, + 55.7636, + 46.8582, + 44.484667, + 40.704167, + 42.516667, + 61.2439, + 42.520667, + 46.872833, + 63.1691, + 59.5948, + 42.5178, + 63.3329, + 38.404, + 42.518833, + 42.512667, + 19.484333, + 61.5177, + 33.502333, + 34.2865, + 37.1971, + 40.3085, + 63.105, + 58.9916, + 60.8928, + 33.976333, + 38.816834, + 46.891833, + 60.5402, + 61.9345, + 65.5166, + 59.9364, + 33.712, + 36.996333, + 61.0789, + 39.1963, + 61.4311, + 49.3235, + 57.8862, + 60.1976, + 46.8785, + 53.748, + 59.782, + 59.2151, + 61.5648, + 35.9855, + 36.969667, + 62.336, + 51.8512, + 46.889833, + 40.710333, + 36.1992, + 15.6065, + 30.4016, + 38.816833, + 62.3649, + 37.612, + 37.0626, + 60.2829, + 38.831833, + 62.1039, + 38.2725, + 19.198166, + 37.082, + 59.9497, + 59.4532, + -24.2867, + 46.525667, + -45.7692, + 37.5015, + 63.225, + 60.399, + 62.0191, + 51.9812, + 60.236, + -18.2769, + 37.427833, + 38.822666, + 37.4345, + 12.898, + 37.4125, + 40.1598, + 44.103667, + 56.4945, + -22.8028, + 60.0824, + 42.650333, + 46.866, + 19.408501, + 58.2689, + 60.5977, + 60.1804, + 61.3015, + 12.7332, + 59.3749, + 59.7999, + 58.1855, + 33.034167, + 38.812668, + 51.4282, + 57.888, + 40.0949, + 59.7494, + 34.330833, + 46.908167, + 51.6302, + 58.9928, + 60.035, + 38.742333, + 64.299, + 59.9216, + 33.649, + 51.8814, + 20.355333, + 59.9863, + 37.5295, + 62.2825, + 38.3646, + 33.502167, + -24.4751, + 36.311167, + 58.7981, + 59.6631, + 37.402167, + 14.9405, + 60.1713, + 59.8604, + 18.4858, + 35.934333, + 35.5955, + 51.7987, + 61.0501, + -1.5006, + 62.7976, + 61.6968, + 46.866, + 34.452833, + 37.328333, + 59.2315, + 59.3191, + 36.4532, + 62.6019, + 37.604, + 37.604333, + 19.188999, + 60.1863, + 38.7305, + -6.2836, + 9.126, + 61.3678, + 51.6192, + 62.7735, + 33.669167, + 36.3695, + 46.889833, + 19.715167, + 60.1429, + 36.626, + 46.871, + 36.619333, + 61.1833, + 41.6481, + 35.111667, + 19.216, + 51.7576, + 48.316167, + 46.877, + 53.1332, + 51.2465, + 59.9658, + 37.351167, + 7.5135, + 33.961167, + 36.9167, + 51.8357, + 33.9365, + 57.2184, + 63.1122, + 37.635333, + 60.1498, + 51.7288, + 52.7581, + 51.7076, + 51.8802, + 7.2071, + 60.0896, + 64.9885, + 51.9828, + 19.313999, + 42.663667, + 42.652, + 42.6545, + 42.6754, + 62.3699, + 34.324167, + 3.9405, + 59.2674, + 60.014, + 62.3522, + 62.6659, + 37.2915, + 37.2878, + 37.279, + 37.2885, + 42.661, + 63.352, + 40.2201, + 61.4217, + 60.9307, + 59.621, + 61.7318, + 27.653, + 48.412333, + 38.558167, + 35.5105, + 33.512, + -8.0939, + 17.7855, + 19.209667, + 21.6564, + 33.357333, + 38.796667, + 59.7871, + 63.5864, + 38.2888, + 55.8639, + 52.0688, + 46.872833, + 42.6659, + 61.3123, + 63.2441, + 15.4984, + 34.349167, + 51.4801, + 61.5616, + 34.4365, + 16.1602, + 40.699167, + 60.1354, + 60.1565, + 51.4689, + 1.0533, + 38.817833, + 37.8225, + 51.4147, + 57.4545, + 38.7405, + 36.2305, + 61.542, + 46.8685, + 34.216, + 59.916, + 37.864833, + 37.603833, + 34.059333, + 48.382667, + 19.405333, + 60.3017, + 63.8592, + 62.981, + 34.329167, + 67.8158, + 31.867, + 33.326833, + 62.3275, + 37.605333, + 67.3687, + 38.3688, + 67.3815, + 37.764167, + 63.1022, + 59.0106, + 37.522667, + 40.809333, + 62.1893, + 61.0872, + 34.5615, + 60.0493, + 42.547, + 61.4708, + 1.8973, + 60.0072, + 38.792667, + 61.6465, + 15.3765, + 51.6362, + 38.962833, + 37.688333, + 59.2509, + 61.8814, + 38.788, + 36.2286, + 33.255167, + 33.165167, + 51.2732, + 38.806835, + 39.463167, + 50.7723, + 61.2042, + 37.604167, + 36.564333, + 51.7808, + 60.1564, + 62.4859, + 59.9398, + 51.6622, + 38.821167, + 63.5229, + 34.512167, + 37.590333, + -37.146, + 15.1606, + 32.3196, + 37.407833, + 36.188833, + 47.5955, + 46.8038, + 60.3536, + 52.6671, + -6.071, + 37.603833, + 63.2374, + 42.576, + 52.2402, + 31.4264, + 27.8699, + 59.736, + 37.493667, + 61.9828, + 59.3044, + 57.5293, + -3.3243, + 59.7863, + 34.689, + 36.441167, + 59.7789, + 61.2392, + 51.6603, + 38.6102, + 59.672, + 15.2552, + 34.69, + 37.604833, + 59.8685, + 62.6213, + -17.429, + 37.608667, + 63.7125, + 60.1242, + 33.1715, + 62.8827, + 33.172833, + 51.9212, + 64.4141, + 61.9028, + 13.6996, + 61.5138, + 64.9795, + 37.604667, + 33.499833, + 6.7514, + 37.6045, + 60.3483, + 38.0515, + 14.8225, + -31.7027, + 44.419, + 61.0736, + 44.419667, + 51.6225, + 58.8526, + 34.1175, + 15.2008, + 43.4329, + 36.4662, + 63.5145, + 33.998333, + 37.604667, + 61.6517, + 38.643167, + 49.4225, + 16.1453, + 37.535, + 33.336167, + 14.7629, + 38.777668, + 46.588333, + 51.2251, + 33.223167, + 51.6654, + 51.6073, + 59.8156, + 14.6951, + 53.2159, + 37.5695, + 36.582167, + 61.7159, + 46.492667, + 38.841, + 35.050333, + 38.771, + 37.477, + 40.4991, + 42.627833, + 65.8694, + -29.9428, + 51.924, + 37.608833, + 65.3108, + 60.0338, + 62.2086, + 37.604, + 51.6138, + 62.8722, + 38.815, + 60.0784, + -24.5018, + 60.1469, + 46.8309, + 52.0599, + 37.573667, + 33.161667, + 37.604167, + 20.052667, + 61.9357, + 36.9513, + 36.892667, + 21.3911, + 59.6184, + 60.6887, + 51.6803, + 51.6975, + 51.8006, + 63.4968, + 15.7931, + 36.066, + 37.606167, + 42.0255, + 61.0412, + 37.603833, + 63.4064, + 58.8106, + 58.8134, + 36.3324, + 58.9824, + 42.031167, + 63.5817, + 52.0676, + 37.5625, + 61.729, + 33.67, + 39.8728, + 37.605667, + 37.606167, + 60.1847, + 42.543833, + 46.8625, + 37.605667, + 37.7048, + 52.0495, + 19.1075, + 36.589833, + 42.548333, + 33.924, + 42.651167, + 38.2711, + 47.670333, + 19.839833, + 57.1271, + 15.1312, + 65.8679, + 35.8708, + 37.5745, + 53.4134, + 51.6411, + 34.684167, + 32.295833, + 45.779, + 38.2921, + 51.5953, + 34.686333, + 37.606833, + 42.556667, + 36.556333, + 33.502667, + 41.2685, + 21.3618, + 63.338, + 33.215333, + 38.776001, + 37.489833, + 38.4923, + 58.492, + 60.9057, + 14.9856, + 38.186667, + 51.5518, + 63.2488, + 37.523167, + 66.1069, + 34.163833, + 33.9272, + 38.2758, + 33.994167, + 38.2704, + 38.808833, + 36.427667, + 37.406667, + 47.824, + 28.2886, + 36.012667, + 62.1976, + 37.6535, + 37.506167, + 37.507167, + 61.6303, + 62.2695, + 37.5065, + 35.8653, + 38.52, + 33.1725, + 62.1641, + 37.505167, + 37.5055, + 52.4839, + 37.605667, + 61.1521, + 38.829334, + 36.539667, + -24.0812, + 60.1234, + 41.1085, + 37.647833, + 33.995, + 63.102, + 53.6407, + 14.8894, + 38.814, + 35.8549, + 46.840833, + 34.015, + 64.8546, + 14.9039, + 53.5031, + 37.502333, + 37.201833, + 38.832333, + 38.793499, + 33.995833, + 62.1991, + 51.845, + 19.481, + 34.099, + 35.9821, + 32.454333, + 31.324, + 33.976167, + 35.5727, + 33.494833, + 33.5105, + 51.7396, + 38.775501, + 61.8075, + 41.150667, + 38.921333, + 52.0498, + 52.3421, + 63.4906, + 51.7059, + 37.504, + 31.324667, + 63.0417, + 67.8468, + 38.8405, + 38.816667, + 34.094167, + 33.502667, + 37.470667, + 37.234667, + 62.8222, + 60.0462, + 58.196, + 51.6466, + 61.4006, + 19.052, + 61.8988, + 62.3327, + 36.978, + 37.606667, + 37.608333, + 41.357, + 59.5213, + 51.5228, + 38.3722, + -24.8725, + 1.0849, + 2.9053, + 59.6717, + 68.4586, + 37.500333, + -34.0499, + -6.5326, + 35.6885, + 37.534, + 45.624333, + 46.910833, + 67.5431, + 58.8115, + 59.8707, + 62.56, + 38.743, + 64.8337, + 62.868, + 39.9063, + 63.1677, + 49.1768, + 61.8846, + 61.8689, + 38.4032, + 62.2054, + 33.765333, + 38.2802, + 19.4155, + 61.7831, + 35.6755, + -7.2814, + 63.2958, + 60.9639, + 32.218833, + 63.1036, + 46.870167, + 59.9548, + 59.606, + 36.039167, + 60.9023, + 3.222, + 42.614667, + 52.1592, + 33.2435, + 62.7268, + 35.994, + 60.994, + 62.7886, + 35.347, + 59.752, + 19.331, + 59.9048, + 36.62, + 46.896167, + 61.5482, + 39.427167, + 60.1776, + 33.506833, + 2.1483, + 6.0164, + 61.7278, + 19.3215, + 60.4189, + 61.5228, + 60.8947, + 42.5767, + 36.4415, + 63.589, + 63.0526, + 68.1439, + 57.8245, + 37.506167, + 62.197, + 39.425333, + 58.785, + 61.515, + 37.351, + 62.3692, + 36.3885, + 61.8375, + 38.808834, + 39.428167, + 40.137833, + 51.7632, + 42.593667, + 37.6065, + 42.591167, + 59.282, + 63.4604, + 61.0393, + 61.1056, + 59.8225, + 38.6992, + 62.8911, + 63.0052, + 37.519667, + 48.235833, + 64.7557, + 37.663333, + 61.0462, + 42.584, + 66.821, + 57.9069, + 68.9058, + 61.6728, + 65.8646, + 37.535, + 61.7151, + 38.840167, + 62.1612, + 28.7786, + 63.0271, + 38.5015, + 51.5863, + 61.0931, + 51.6195, + 51.5739, + 36.553167, + 63.1851, + 35.838833, + 37.607, + 61.3755, + 32.734667, + 19.392167, + 38.063167, + -23.7242, + 52.1877, + 33.325167, + 51.6758, + 62.131, + 66.8364, + 38.3801, + 61.9903, + 46.868167, + 37.536333, + -10.7291, + 20.2657, + 61.6101, + 37.610167, + 48.074, + 38.7874, + 58.2365, + 19.430333, + 38.783, + 65.3932, + 61.6155, + 38.7911, + 59.8727, + 46.867333, + 46.878167, + 34.8665, + 60.2053, + 45.241, + 37.4649, + 67.5652, + 61.1485, + 66.0421, + 37.5365, + 61.7515, + 36.025167, + 33.846833, + 41.514167, + 42.5195, + 60.9615, + 60.4702, + 64.4345, + 16.6784, + 61.6771, + 35.9915, + 37.531833, + 68.5953, + 37.454833, + 36.5915, + 51.535, + 61.418, + 37.3741, + 37.3739, + -5.2471, + 37.5315, + 36.174833, + 46.872833, + 36.399167, + 37.535167, + 39.5809, + 33.309667, + 64.3314, + 60.5992, + 47.8948, + 9.972, + 62.3276, + 52.3165, + 33.975833, + 60.5442, + 38.905, + 36.016833, + 33.686667, + 61.4562, + 39.396667, + 61.7015, + 35.6985, + 38.821167, + 37.378, + 46.874833, + 37.1112, + 53.8015, + 38.760166, + 60.0089, + -8.2451, + 38.755333, + 60.8545, + 62.4437, + 61.555, + 37.5385, + 34.878667, + 67.5732, + 33.666667, + 63.0496, + 64.7419, + 51.666, + 41.517833, + 63.2463, + 33.505667, + 24.998, + 51.4823, + 38.788502, + 41.516333, + 28.7476, + 19.411667, + 62.8856, + 60.4052, + 28.769, + -10.8691, + 38.775167, + 46.865333, + 58.8739, + 36.770333, + 35.890833, + 46.818167, + -15.1614, + 61.2784, + 37.520333, + 61.5729, + 60.2787, + 59.8511, + 51.0507, + 61.5488, + 33.471167, + 61.2429, + 34.992, + 46.002167, + 38.569833, + 34.018167, + 33.395, + 46.870667, + 46.873167, + 35.0755, + 55.267, + 57.4219, + 37.1805, + 46.867, + 59.8933, + 37.325167, + 37.3086, + 62.0045, + 62.1421, + 46.553167, + 33.501667, + 52.9317, + 62.1579, + 59.4743, + 59.6598, + 64.1209, + 52.9731, + 44.3257, + 37.569167, + 33.502, + 67.422, + 39.432667, + -7.5373, + -7.2935, + 35.611, + 58.9648, + 46.866, + 37.558167, + 58.8609, + 34.440833, + 37.492667, + 59.8103, + 57.6875, + 47.1825, + 56.7652, + 60.0761, + 19.199167, + 61.9693, + 59.6108, + 61.9643, + 46.870167, + 65.1678, + 40.1708, + 34.4565, + 37.5315, + 39.398333, + 38.784333, + 46.8463, + 51.3519, + 60.4494, + 61.6238, + 61.1389, + 46.869667, + 62.4107, + 65.177, + 58.0206, + 59.1963, + 59.9564, + 33.489167, + 46.881, + 31.1697, + 38.828833, + 36.490333, + 59.7325, + 36.9715, + 60.198, + 37.480333, + 59.9932, + 59.8387, + 61.1428, + 60.4592, + 19.597167, + 38.0846, + 31.1511, + 37.604333, + 46.8705, + 42.665833, + 33.171333, + -29.45, + 59.1851, + 42.664667, + 33.172, + 32.944667, + 28.1091, + 65.2147, + 51.0555, + 38.927167, + -21.2747, + 37.568167, + 59.8103, + 37.332333, + 38.816334, + 58.9707, + 38.4922, + 51.5599, + 38.2811, + 59.5783, + 34.425667, + 66.8722, + 51.5723, + 62.1686, + 37.277667, + 67.4203, + 46.8695, + 62.1792, + 37.201833, + 46.867667, + 38.2859, + 34.4205, + 33.257333, + 37.643167, + 33.1715, + 34.032667, + 59.8749, + 59.8596, + 33.275333, + 33.492, + 34.4215, + 44.765667, + 38.836667, + -3.5926, + 38.788, + 28.7234, + 31.1233, + 37.796167, + 51.7067, + 59.6347, + 44.547167, + 45.372667, + 32.888, + 51.6434, + 38.659333, + 64.9151, + 38.7006, + 37.2184, + 51.4303, + 35.076167, + 61.6649, + 62.8518, + 53.4796, + -21.409, + 63.2266, + 4.6053, + 57.0675, + 33.325667, + 36.4815, + 51.7337, + 58.2594, + 40.39, + 60.1282, + 60.9937, + 14.1324, + 64.8914, + 33.506, + 61.8508, + 37.624833, + 35.033667, + 15.0466, + 65.1477, + 46.8715, + 64.9811, + 63.4886, + 38.832001, + 59.9001, + 38.7877, + -2.0113, + 44.251833, + 33.253667, + 33.010333, + -31.7843, + 38.7826, + 33.516333, + 40.263833, + 59.6612, + 59.8886, + -23.5856, + 38.8215, + 46.8605, + 65.8632, + 43.545833, + 59.8031, + 61.3357, + 38.789833, + 19.227667, + 36.888333, + 40.3206, + 62.1538, + 37.2773, + 59.5574, + 61.2493, + 63.0711, + 35.677333, + 46.900667, + 36.100833, + 46.488167, + 32.7725, + 45.912833, + 33.509, + 38.5144, + 61.6115, + 1.2169, + 38.837833, + 16.5993, + 65.8633, + 46.869333, + 62.9438, + 37.983333, + 62.4498, + 38.812, + 33.5035, + 35.292167, + 19.290833, + 59.4295, + 36.025833, + 36.028167, + 62.9479, + 46.8605, + 61.1514, + 43.419667, + 36.660333, + 55.6327, + 46.872167, + 56.5802, + 60.912, + 62.5503, + 59.6817, + 61.142, + 62.3953, + 63.5317, + 42.558833, + 33.4855, + 37.472833, + 46.901167, + 40.8515, + 42.7365, + 33.302833, + 42.61, + 37.6035, + 19.188499, + 61.4705, + 41.940333, + 61.1528, + 59.6178, + 44.768833, + 50.3055, + 57.0801, + 19.403833, + 36.045, + 53.0759, + -28.3432, + 62.7345, + 32.109167, + 33.9755, + 63.4664, + 36.1555, + 33.196, + 57.5978, + 62.9807, + 57.8313, + 51.4819, + 51.994, + -37.4108, + 57.0274, + 37.594333, + 58.7839, + 19.364833, + 46.871167, + 63.0698, + 60.021, + 38.803333, + -17.1048, + 53.8051, + 59.5065, + 38.756167, + 44.8185, + 61.1571, + 38.401, + 60.0718, + 37.633667, + 63.4737, + 60.3111, + 34.0325, + 37.595833, + 59.9121, + 60.1704, + 57.3937, + 63.2669, + 38.3653, + 37.5205, + -5.8706, + 37.473333, + -8.3437, + 63.3098, + -24.5502, + 61.3722, + 38.399, + 52.6448, + 33.438833, + 61.4913, + 61.6414, + 59.9305, + 58.8354, + 37.573833, + 38.8245, + 66.702, + 59.4363, + 62.2517, + 44.820667, + 59.3036, + 59.5006, + 34.926833, + -5.7378, + -21.3378, + 46.9085, + 15.0621, + 59.9191, + 37.454833, + 38.824833, + 46.880667, + 34.207167, + 34.207333, + 37.0804, + 60.9055, + -23.7135, + 46.8815, + 58.8409, + 58.8355, + 62.7984, + 37.455333, + 38.956, + 39.753833, + 58.5151, + 62.3609, + 47.576333, + 59.8577, + 37.161167, + 37.4545, + 59.8105, + 62.5638, + 61.6959, + 46.755833, + 58.719, + 62.6136, + 61.5055, + -18.0618, + 61.2841, + 62.8641, + -38.2792, + 60.4358, + -12.1347, + 61.6796, + 62.3774, + 38.955667, + 39.3599, + -4.9919, + 79.5651, + 59.8203, + 19.509167, + 38.7455, + 36.013, + 33.508833, + 35.033833, + 37.6445, + 46.872833, + -10.6682, + 33.013167, + 38.832167, + 40.798667, + 60.0163, + 46.865833, + 37.3519, + 64.3489, + 0.8223, + 42.646667, + -19.6395, + 65.756, + 33.492, + 46.851167, + 33.034833, + 37.572333, + 63.8003, + 63.268, + 37.454333, + 61.007, + 33.822333, + 32.220833, + -6.2113, + 19.223333, + 46.868, + 36.4119, + -5.8793, + 46.8795, + 60.0082, + 61.4244, + 61.5145, + 40.3587, + 59.8382, + 38.8375, + 51.4218, + 33.163167, + 19.540833, + 51.697, + 35.5745, + 34.343333, + 41.8725, + 63.1578, + 33.495667, + 40.0864, + 59.5329, + 46.866667, + 36.209, + 60.3302, + 46.8665, + 33.4945, + -5.9298, + 37.324, + 63.9342, + 46.316833, + 59.6819, + 36.215667, + 40.4414, + 33.486667, + 51.9886, + 33.995333, + 59.7613, + 40.288667, + 35.752333, + 38.794833, + 33.8575, + 31.688833, + 46.896, + 46.867, + 62.0271, + 60.1663, + 60.3908, + 58.8255, + 59.636, + -14.8531, + 59.8126, + 46.870833, + 33.526167, + 59.9538, + -12.6224, + 34.8405, + 15.5423, + 38.837334, + 63.3492, + -32.683, + 38.837833, + 33.976667, + -38.3887, + 51.5898, + 61.5212, + 63.1289, + 36.211667, + 53.699, + 57.6776, + 37.613167, + 60.321, + 34.439, + -28.2916, + 36.431, + 35.341833, + 64.8764, + 34.8799, + 36.100167, + -17.8551, + -17.9975, + 51.676, + 19.201667, + 34.247833, + 62.9535, + 37.838667, + 19.815, + 46.869333, + 60.3211, + 33.506667, + 37.476667, + 36.094, + 38.843166, + -3.5898, + 37.551, + 46.872333, + 46.875167, + -5.3939, + 60.337, + 51.7565, + 51.7427, + 37.650667, + 46.879333, + 38.3947, + 33.497667, + 51.6208, + 60.2131, + 68.5865, + 61.1695, + 39.0988, + 64.8595, + 33.9555, + 46.8486, + 35.1735, + 38.3811, + 60.6736, + 59.5881, + 38.993, + 58.3143, + -4.8417, + 42.620667, + 37.281833, + 14.8764, + 37.478667, + 37.479333, + 64.5882, + -30.022, + 15.5215, + 37.478667, + -8.3755, + 37.478167, + 41.6963, + 59.5535, + 33.655, + -59.0289, + 41.7004, + 46.891333, + 59.5158, + 65.7781, + 69.0584, + 37.334167, + 39.697, + 57.5544, + 61.4034, + 37.2234, + -60.0959, + 38.800999, + 38.797667, + 38.050167, + 63.4162, + 15.5489, + 61.3427, + 63.4294, + 61.1303, + 62.8463, + 38.824165, + 63.2243, + 48.589333, + 63.2689, + 34.048833, + 62.9432, + 33.325667, + 59.995, + 59.9936, + 19.765, + 59.4416, + 61.3391, + 60.2569, + 61.3592, + 55.424, + 37.470667, + 32.171167, + 15.9582, + 38.787333, + 37.434167, + 44.797667, + 61.9049, + 57.7026, + 60.0816, + 37.3768, + 31.2471, + 15.6767, + 42.575667, + 60.3588, + 37.544833, + 62.1675, + 60.2626, + 38.044833, + 58.2749, + 44.7975, + 38.824501, + 37.3786, + 62.2207, + 37.474667, + 37.477167, + 58.4123, + 52.8069, + 59.9552, + 38.965833, + 36.277667, + 61.3116, + 33.0106, + 59.8585, + 51.6336, + 19.4085, + 36.601833, + 37.476167, + 19.407, + -3.3959, + 61.1564, + 38.841167, + 38.042667, + 51.6829, + 35.512, + 33.494, + 38.806833, + 62.907, + 37.8015, + 37.474833, + 48.284667, + 33.0905, + 37.475833, + 59.4501, + 19.110833, + 51.7438, + 66.1088, + 47.593, + 38.264833, + 38.3509, + 35.604833, + 53.9184, + 68.4549, + 68.0219, + 51.7225, + 38.836, + 36.4428, + 49.447833, + -22.6476, + 33.096333, + 37.538167, + 36.912, + 48.245, + 33.096, + 62.8907, + 60.9895, + 66.4015, + 38.3427, + 64.2272, + 61.1531, + 38.3125, + 37.604333, + 19.106833, + 37.602333, + 46.8405, + 38.595, + 36.063833, + 46.835833, + 16.5258, + 60.3293, + 41.843167, + 33.074, + 68.8735, + 58.9133, + 38.308167, + 46.836833, + 39.4306, + 63.8369, + 51.4777, + 60.1784, + 59.7654, + -21.4068, + 33.4475, + 19.400499, + 15.0164, + 62.5252, + 16.4456, + -36.2005, + 15.5422, + 38.334333, + 53.1628, + 58.4119, + -22.0133, + 33.198833, + 51.1205, + 33.281167, + 33.2015, + 15.2643, + 38.839333, + 58.556, + 33.1915, + -3.5379, + 65.8304, + 61.0579, + 19.41, + 15.3335, + 60.4252, + 61.3979, + 52.299, + 46.455, + 11.9773, + 61.6735, + 37.529333, + 61.5181, + 16.4152, + 62.8873, + 60.0823, + 61.9971, + 19.416667, + 65.857, + 37.469667, + 36.824833, + 62.9113, + 33.996167, + 42.6043, + 16.4793, + 59.6562, + 57.6124, + 46.868, + 42.1841, + -35.1565, + 62.9467, + 61.3903, + 44.8, + 35.541667, + 38.341333, + 51.4418, + -14.3043, + 41.046333, + 37.471333, + 61.261, + 33.977667, + 50.4387, + 67.8619, + 19.110833, + 37.536833, + 37.536833, + 63.077, + 51.588, + 23.9217, + 61.5229, + 42.6086, + 35.937333, + 37.5355, + 16.526, + 60.3798, + 34.611167, + 57.6827, + 38.6065, + 38.596667, + 38.615, + 32.691333, + 59.9807, + 19.394167, + 19.403999, + -18.0175, + 51.3236, + 59.9979, + 36.477167, + 38.788, + 62.9812, + -27.8834, + 57.8123, + 37.478833, + 52.1986, + 40.3465, + 16.574, + 68.6004, + 37.475, + 36.5355, + 51.4616, + 36.3727, + 36.555, + 34.2865, + -10.6598, + 63.2188, + 33.996, + 63.06, + 63.0643, + 63.0635, + 12.9849, + 37.574667, + 33.195833, + 34.0525, + 61.4518, + 61.5229, + 63.8335, + 61.8507, + 38.772667, + 33.9745, + 33.9845, + 16.6593, + 64.9969, + 44.720667, + 38.787167, + -33.7421, + 33.181333, + 51.8267, + 7.5438, + 7.5946, + 64.7531, + 7.6285, + 52.5903, + 37.604333, + 59.7818, + 48.248, + 51.8485, + 64.7452, + 34.223333, + 40.494333, + 37.572667, + 37.574, + 51.3293, + 59.8983, + 37.6045, + 65.5315, + 67.1099, + 42.5566, + 60.3011, + 37.604, + -11.942, + 33.1465, + 33.217167, + 38.821167, + 64.4224, + 53.4208, + 19.4215, + 7.0739, + 37.484667, + 58.1668, + 60.6215, + -30.7535, + 34.231833, + 36.714, + 38.833832, + 36.183167, + 36.179667, + 38.052667, + 36.4703, + -28.772, + 36.407667, + 33.498333, + 34.006833, + 42.5711, + 16.8156, + 37.170833, + 37.198667, + 57.1033, + 59.0921, + 52.3026, + 26.1798, + 61.0689, + 60.5708, + 37.188167, + 33.030667, + 42.5433, + 16.603, + 46.886, + 40.2311, + 33.495667, + 16.6905, + 16.7939, + 38.818667, + 34.503333, + 16.7434, + 60.3407, + 37.392833, + 58.8539, + 34.867667, + 64.8661, + 13.6704, + 16.7308, + 64.8605, + 64.8563, + -2.9658, + 37.000833, + 16.7732, + 64.9158, + 64.6752, + 64.8585, + 31.1823, + 52.2553, + 51.6605, + 40.274333, + -5.8521, + 62.5649, + 63.2977, + 37.231, + 52.2784, + 32.957167, + 60.1913, + 60.0468, + 51.5307, + 15.6979, + 58.8323, + 59.9894, + 37.610667, + 62.6833, + 57.8298, + 60.342, + 64.8808, + 36.670833, + 9.1385, + 40.348333, + 47.606333, + 36.643167, + 61.5311, + 41.3116, + 44.3731, + 65.4383, + 61.5946, + 38.794, + 33.0265, + 38.4054, + 52.2081, + 51.6761, + 33.310833, + 42.565833, + 15.8203, + 37.524833, + 15.2768, + 33.893167, + 38.2952, + 20.1804, + 33.982167, + 10.6523, + 61.3779, + -3.0863, + 68.6023, + 47.7015, + 36.061833, + -24.2891, + 33.586167, + 66.2475, + 38.2127, + 32.5255, + 38.3346, + 9.7486, + -8.2399, + 40.89, + 38.837166, + 38.839168, + 40.264333, + 59.199, + 60.3298, + 38.4929, + 33.3405, + 60.4409, + 38.3867, + 38.489, + 38.488, + 38.790001, + 40.335333, + 15.6003, + 40.471167, + 58.348, + 61.7127, + 63.0889, + 54.2787, + 59.8339, + 67.7172, + 54.9637, + 38.6945, + 40.470333, + 62.0301, + 42.5563, + 36.006167, + 62.2652, + 36.048667, + -6.5899, + -17.8955, + 62.433, + 59.1725, + 47.767167, + 34.2131, + 62.0263, + 56.3855, + 38.3823, + 31.3473, + 64.9801, + 48.224167, + 66.6906, + 60.2789, + -4.6487, + -7.7533, + 45.695667, + 53.4966, + 40.495333, + 36.5365, + 61.0547, + 7.4851, + 45.463833, + 33.496833, + 37.600667, + -5.8817, + 60.2166, + 34.316333, + 39.795333, + 60.3659, + 36.6425, + 40.3995, + 19.227833, + 61.5094, + 60.0903, + 62.5847, + -17.7862, + 54.0581, + 59.8684, + 38.820167, + 36.3761, + 56.7494, + 60.4549, + 61.5158, + 59.6404, + 19.312167, + 40.4678, + 62.2279, + 58.82, + 36.239, + 40.4144, + 40.677, + 35.58, + 61.522, + 34.987667, + 38.773333, + 59.9075, + 46.006833, + 63.1712, + 35.0535, + 54.9226, + 37.4545, + 41.046833, + 41.047667, + 56.3354, + 42.534833, + 35.899167, + 61.509, + 18.980667, + 53.8611, + 53.8452, + 47.171, + 62.7643, + 42.589833, + 51.3815, + 42.630333, + 59.4158, + 63.2957, + 46.892333, + 34.638, + 42.514, + 62.8041, + 38.808833, + 40.3915, + 69.5097, + 19.653667, + 59.8191, + 33.561167, + 33.502167, + 62.5769, + 35.522667, + 42.546167, + 42.595, + 37.619833, + 40.581333, + 42.59, + 33.495167, + 62.027, + 42.584333, + 38.3654, + 18.952333, + 42.602333, + 36.6952, + 60.6882, + 54.5409, + 67.5064, + 38.2958, + 18.5841, + 57.7311, + 61.3129, + -23.752, + 40.4755, + 45.841833, + 61.227, + 61.5096, + 33.498167, + 38.806833, + 38.836666, + 62.1574, + -22.5585, + 59.963, + 38.2627, + -0.3969, + -19.1856, + 64.7457, + 60.5947, + 38.807167, + 51.5859, + 38.808833, + 61.5102, + 19.190833, + 33.373333, + 61.5125, + 61.5113, + 59.909, + 35.304167, + 59.2751, + 61.6318, + 46.879833, + 38.763668, + 38.8165, + 42.561833, + 58.9992, + 62.788, + 64.7739, + 36.7388, + 46.871, + 38.844167, + 38.8303, + 36.181833, + 61.5539, + 63.1852, + 20.063333, + 61.9919, + 62.4195, + 42.637667, + 3.8293, + 58.832, + 38.286167, + 59.8034, + 35.7905, + 54.8173, + 38.786167, + 49.2735, + 37.524667, + 59.229, + 42.575667, + 63.4232, + 46.125333, + 45.5973, + 38.416, + 55.4155, + 62.6705, + 52.5733, + 19.287167, + 56.5041, + 42.622833, + 38.8296, + 35.934, + 35.360833, + 23.5614, + 54.788, + 46.885167, + 60.0539, + 62.7929, + 37.456333, + 59.782, + -6.3489, + 37.5205, + 39.1304, + 37.538333, + 33.495167, + 37.455, + 35.846, + 63.1414, + 64.8396, + 59.8426, + 32.868, + 60.9709, + 62.5598, + 59.884, + 37.392333, + 36.559833, + 51.8656, + 44.7755, + 46.402, + 37.389167, + 44.292833, + 63.2553, + -15.6295, + 43.8815, + 37.184, + 34.730667, + 19.862667, + 2.1475, + 63.8605, + 46.8969, + 52.3761, + 43.5435, + 33.324167, + 61.5639, + 37.2905, + 46.8705, + 38.0785, + 62.7902, + 61.5906, + 36.2915, + 32.383, + 34.625667, + 64.6747, + 42.525833, + 46.8665, + 53.5528, + -23.7349, + 38.814833, + 60.0344, + 59.8624, + 66.977, + 62.7831, + 36.803333, + 36.809667, + 44.303333, + 45.079167, + 35.935333, + 19.137667, + 33.634167, + 19.099167, + 19.160333, + 40.0739, + 19.1175, + 32.920333, + 32.916667, + 61.2141, + 39.7645, + 38.4602, + 35.054, + 60.0811, + 38.841167, + 58.6739, + 37.204167, + 33.850333, + 15.2536, + 33.977333, + 61.3055, + 42.5686, + 33.846667, + -24.593, + 38.807335, + 53.8887, + 67.929, + 60.6265, + 37.606, + 30.689, + 56.4471, + 62.2263, + 60.2285, + 33.027167, + 37.325333, + 62.0747, + 33.339, + 33.341, + 56.7455, + 36.390833, + -5.2273, + 61.4367, + 36.591, + 38.841833, + 61.182, + 14.9651, + 37.119333, + 37.119333, + 42.5455, + 38.024167, + 59.8876, + 69.5255, + 65.4677, + 24.9992, + 62.6945, + 19.988, + 38.789501, + 34.932167, + 38.2825, + 37.542167, + 56.7802, + 38.404, + 59.9457, + 58.225, + 42.5341, + 61.9718, + 61.1636, + 60.6288, + -5.3996, + 54.658, + 63.0935, + 60.2093, + 37.631, + 65.9329, + 59.8914, + 63.1123, + 53.8648, + 37.6325, + 37.553667, + 37.578833, + 36.304833, + 65.938, + 65.5133, + 37.9145, + 36.289667, + 15.7805, + 40.7726, + 37.5, + 59.2193, + 38.807833, + 60.9457, + 33.8875, + 60.3368, + 58.0197, + 42.5809, + 39.290333, + 63.2246, + 37.605333, + 60.3679, + 39.7496, + 61.0202, + 69.6221, + 58.3406, + 63.2391, + 60.2394, + 60.0395, + 62.0196, + 33.952667, + 38.786167, + 61.1836, + 46.865833, + 19.187167, + 37.455, + 61.302, + 37.976333, + -37.9104, + 38.838165, + 34.473, + 59.5615, + 33.885833, + 60.3904, + 56.6876, + 54.7916, + 60.1347, + 38.797669, + 37.46, + 60.1082, + 59.699, + 60.1615, + 38.2806, + 51.5531, + 38.8065, + 42.584333, + 60.7931, + 38.4144, + 38.3591, + 62.1688, + 67.4818, + 39.7777, + 59.8249, + 34.0695, + 45.623, + 35.02, + 38.821335, + 58.981, + 38.822333, + 62.4966, + 69.101, + 35.984333, + 34.038167, + 51.2677, + 61.7499, + 63.1111, + 33.868667, + 19.405667, + 63.0988, + -18.3191, + 63.1114, + 46.9255, + 34.875667, + 52.2316, + 61.7239, + 37.977333, + -18.3348, + 68.0646, + 60.9563, + -6.141, + 33.929833, + 64.9865, + 38.8385, + -19.9851, + 32.8185, + -5.1396, + 63.1811, + -5.1384, + -5.11, + 63.0772, + 37.532, + 60.286, + 60.1956, + 62.2758, + 38.818165, + 46.855167, + 61.3084, + 59.8496, + 19.176666, + 47.376, + 61.7606, + 62.5852, + 36.021667, + 60.1466, + -18.7978, + 19.2375, + 32.813833, + 53.871, + 36.6187, + 62.1092, + 43.543667, + 37.3666, + 34.839333, + 38.3161, + 39.610333, + 69.0735, + 61.1317, + 32.380167, + 36.582667, + 42.6455, + 40.890167, + 62.6618, + 61.5685, + 40.891333, + 36.829167, + 59.7895, + 37.9814, + 62.1577, + -10.1961, + 33.9578, + 60.1861, + 34.202833, + -14.913, + 37.3255, + 43.6321, + 42.606, + 36.5943, + 5.1272, + 56.3302, + 61.18, + -17.9346, + 33.93, + 40.2545, + 23.2931, + 40.246333, + 42.592833, + 67.4066, + 61.7353, + 46.886167, + 34.324833, + 36.06, + 36.101, + 32.419333, + 64.9958, + 64.0729, + 1.0854, + 44.806167, + 42.6105, + 19.4175, + 61.3624, + 42.6315, + 40.2652, + 33.157167, + 39.9645, + 42.575667, + 19.410833, + 60.366, + 61.9136, + 36.023667, + 51.5611, + 39.404167, + 61.9294, + 36.239333, + 59.8821, + 15.2723, + 35.975167, + 42.560333, + 61.7794, + 61.9475, + 62.9468, + 59.8967, + 38.6914, + 38.818668, + 63.8483, + 19.182333, + 63.1493, + 55.2931, + 48.548667, + 33.929167, + 30.5728, + 59.9819, + 60.4396, + 33.493667, + 62.9389, + 37.569333, + 59.7355, + 42.577333, + 42.597, + 42.5861, + 19.387833, + 42.581333, + 57.6592, + 35.610333, + 62.4591, + 42.595833, + 36.027, + 42.600667, + 19.4305, + 53.0789, + 42.589167, + 59.8279, + 54.4777, + 19.494, + 59.7855, + 63.9434, + 59.5969, + 42.559, + 56.6112, + 62.8332, + 35.56, + 37.3927, + 68.8119, + 65.3778, + 57.7913, + 63.2402, + -16.2747, + 44.304, + 59.167, + 54.6322, + 61.7927, + 38.3821, + 59.9873, + 59.9227, + 62.4633, + 59.7151, + 36.066833, + 42.523667, + 36.063333, + 60.1348, + 59.8732, + 59.985, + 36.0625, + 36.062833, + 60.7066, + 16.1444, + 42.581333, + 51.6886, + 36.776667, + 33.713, + 42.617667, + 33.961833, + -25.3193, + -41.5073, + 14.5711, + 18.9298, + 59.1631, + 35.964833, + 59.7836, + 37.4306, + 36.606333, + -50.7145, + 61.0377, + 60.3456, + 46.8965, + 36.020333, + -3.912, + 42.612833, + 42.508, + 36.457, + 37.291667, + 30.7208, + 56.8763, + 55.8757, + 60.2087, + 36.4519, + 45.589, + 42.5909, + 46.652333, + 6.3611, + 36.9623, + 16.2348, + 46.983167, + 64.9781, + -36.2513, + 62.0713, + 42.608, + 36.4396, + 36.4511, + 33.486667, + 42.524833, + 61.9413, + 38.658, + 53.3989, + 38.66, + 38.6647, + 61.1692, + 42.619, + 68.0241, + 61.5244, + 37.3659, + 15.3218, + 36.1795, + 38.1896, + 61.6291, + 38.778832, + 59.6779, + -20.6057, + 62.3114, + 59.9101, + 55.6543, + 57.8969, + 40.744, + 42.608667, + 60.0259, + 37.2998, + -5.5637, + 64.5345, + 33.866667, + 36.3275, + 58.1622, + 52.1476, + 42.579, + 59.921, + 61.545, + 19.389834, + 36.0195, + 36.0195, + 36.019333, + 19.378334, + 52.0581, + 37.325333, + 36.981335, + 36.019, + 35.430667, + -37.2281, + 18.5539, + 67.0927, + 36.179167, + 36.018667, + 36.5445, + -31.7548, + 37.184833, + 36.753, + -7.5033, + 42.5295, + 36.752, + 36.02, + 42.606, + 63.2912, + 42.607, + 42.6077, + 35.221333, + 58.8832, + 33.1855, + 67.1881, + 42.613833, + 60.121, + 53.9422, + 37.507667, + 42.6149, + 42.616, + 42.6154, + 51.7473, + 61.14, + 60.5626, + 36.2854, + 42.6121, + 51.7084, + 42.6064, + 66.1072, + 42.6135, + 36.4516, + 57.1404, + 36.020667, + 60.6104, + 52.0275, + 58.7008, + 36.018833, + 36.019667, + -31.8109, + 59.8087, + 38.3975, + 63.0946, + 59.7628, + 61.0755, + 38.815333, + 37.587, + 19.2688, + 27.9548, + 38.709667, + 61.8762, + 62.582, + 33.865333, + -2.1725, + 51.2155, + 37.3317, + 59.9737, + 66.1255, + 66.1279, + 64.2153, + 63.3135, + 54.3778, + 38.802, + 38.423833, + 65.4529, + 52.1246, + 38.8115, + 37.3121, + 34.085167, + 52.1917, + -31.7199, + 56.0595, + 51.1124, + 36.5795, + 36.582833, + 44.796, + 57.9599, + 61.5636, + 52.8226, + 19.0933, + 51.8122, + 19.2006, + 35.9883, + 37.3335, + 32.91, + 19.383667, + -10.7783, + 56.8207, + 61.758, + 33.079333, + 61.6352, + 15.201, + 15.1414, + 51.3226, + 38.809666, + 34.086, + 38.6641, + 15.6968, + 38.658333, + -11.0433, + 60.3455, + 63.0934, + 34.086667, + 34.169667, + 51.4427, + 61.7782, + 53.7654, + 46.453167, + 32.916167, + 60.2297, + 62.3117, + 46.13, + 62.2572, + 37.4312, + 38.757333, + 60.1059, + 17.4281, + 54.4321, + 59.7387, + 53.5765, + 38.656833, + 32.9165, + 32.910667, + 32.916333, + 37.569167, + 66.2583, + 59.6211, + 61.448, + 46.8665, + 59.9025, + 62.818, + 15.5332, + 41.274333, + 41.273, + 19.1825, + 41.2735, + 63.2162, + 60.2096, + 38.841667, + 61.2069, + 38.816, + 60.0341, + 61.2326, + 32.905167, + 32.911333, + 61.0148, + 59.8038, + 51.6727, + 59.4167, + 36.109333, + 64.7711, + 36.108833, + 35.0495, + 37.4193, + 64.9878, + 38.803165, + 59.3157, + 46.609, + 46.1638, + -24.1635, + 38.797333, + 54.9516, + 60.1593, + 36.108833, + 15.1768, + 60.1473, + 39.267, + 54.4702, + 39.249833, + 61.3285, + 32.830833, + 32.8245, + 32.822667, + 19.0255, + 60.8929, + 60.3627, + 19.474, + 34.482, + 34.117167, + -30.3511, + 55.9976, + 66.9662, + 34.027833, + 61.5338, + 46.3245, + 37.3834, + 38.3008, + 37.543667, + 15.3134, + 34.371167, + 42.6436, + 35.016333, + 46.875, + 37.801, + 62.7498, + 37.3993, + 34.324333, + 38.818, + 40.6905, + 63.3882, + 31.030666, + 37.4056, + 62.8303, + 59.9261, + 33.146167, + 37.284667, + 60.9138, + 62.0064, + 61.2214, + 19.09, + 15.6332, + 58.3116, + 37.3433, + 15.9949, + 40.700833, + 64.4942, + 36.443167, + 37.204, + 38.816834, + 38.818833, + 40.1065, + 19.426333, + 59.8511, + 51.5536, + 59.7419, + 52.0554, + 39.743833, + 38.8721, + 37.521833, + 40.9769, + 62.9046, + 62.8898, + -31.8057, + 51.7093, + 38.798832, + 19.343833, + 37.421, + 15.1833, + 59.8878, + 57.1996, + 40.217, + 53.6076, + 18.8611, + 61.6841, + 51.552, + -17.3471, + -31.8431, + 37.3693, + 15.2537, + 55.3906, + -31.82, + 46.8389, + 38.2695, + 54.8175, + 58.1121, + 63.2584, + 37.236667, + 60.2252, + 46.902333, + 36.3415, + 60.2089, + -30.4189, + 16.2017, + 38.838333, + 38.813499, + 59.8705, + 61.715, + 63.0532, + 46.853667, + 46.873667, + 38.805833, + 64.3804, + 38.801998, + 52.2855, + 61.2241, + 34.9205, + 35.462, + 41.046833, + 54.9912, + 63.5414, + 19.4375, + 63.2917, + 18.1321, + 34.574333, + 38.806999, + 61.7191, + 36.580167, + 61.0048, + 62.7051, + 59.7002, + 37.3646, + 57.9653, + 39.342333, + 60.4014, + 63.186, + 53.5664, + 62.5617, + 59.9845, + 63.5359, + 36.5615, + 53.884, + 64.8958, + 64.8906, + 59.7861, + 61.9803, + 60.6284, + 33.495, + 19.4285, + 37.221333, + 38.8125, + 64.9935, + 36.585333, + 61.1046, + 53.5595, + 48.519, + 32.833667, + 63.1688, + 60.0063, + 61.3659, + 46.9025, + 61.487, + 53.5803, + -18.5262, + 38.4153, + 51.7384, + 61.8395, + 41.036, + 42.6072, + 44.791, + 53.4469, + 33.496667, + 36.103833, + 36.899833, + 61.0975, + 63.255, + 55.7675, + 33.6865, + 42.593667, + 58.216, + 58.1899, + 46.8725, + 61.6519, + 37.656, + 61.5636, + 33.9785, + 38.8287, + 62.1708, + 15.0304, + 34.033667, + 60.6663, + 47.759167, + 15.3068, + 14.9812, + 62.1736, + 37.912, + 53.381, + 33.986833, + -17.5255, + 62.3401, + 36.996833, + 61.9617, + 60.2484, + 14.824, + 64.6136, + 37.41, + 19.0286, + -8.1346, + 37.0509, + 60.3555, + 59.8626, + 37.621667, + 61.7452, + 46.869667, + 35.042833, + 67.2216, + 53.7854, + -4.6379, + 46.899167, + 60.9727, + 46.9305, + 36.453333, + 36.970833, + 60.4807, + 64.6981, + 60.4706, + 47.439333, + 52.386, + 37.947167, + 60.5724, + 59.7703, + 61.5289, + 37.496, + 51.686, + 37.455833, + 61.7746, + 36.395167, + 38.797667, + 38.799167, + 62.2538, + -18.9829, + 60.1956, + 35.488167, + 62.163, + 51.8825, + 47.603667, + 32.830167, + 12.0757, + -31.7388, + 32.8245, + 42.5958, + 38.2855, + 36.477833, + 35.7788, + 63.5719, + 51.6544, + 46.891833, + 62.857, + 32.775833, + 64.8531, + 38.788167, + 57.21, + 32.781833, + 33.981333, + 0.908, + 19.0821, + 42.5497, + 42.5429, + 46.880167, + 44.790333, + 41.885, + 51.9624, + 44.1688, + 46.881333, + -6.3464, + 63.1318, + -6.4551, + 66.5697, + 46.855, + -16.6386, + 12.809, + 33.2585, + 37.453, + -6.3567, + 39.2721, + 62.6606, + -6.3113, + 64.5019, + 15.2169, + 64.4904, + 59.8804, + 33.357167, + 69.5184, + 38.818167, + 38.8185, + 60.1773, + 59.5728, + 31.6215, + 1.7746, + 36.566167, + -17.3298, + 35.561333, + 33.473833, + 63.9496, + -21.01, + 51.4933, + 62.9044, + 33.9755, + 15.5042, + 61.07, + 37.479333, + 67.9633, + 53.8971, + 36.537, + 62.1126, + 59.2923, + 33.921, + 19.212334, + 65.3345, + 37.339667, + 57.2975, + -11.7459, + 66.3882, + 57.7487, + 66.3682, + 60.5815, + 33.972167, + -21.9058, + 3.6252, + 51.6608, + 53.8702, + 46.879167, + 61.6723, + 34.376833, + 33.415667, + 12.7773, + 61.5891, + 63.1445, + 19.476, + 64.848, + -59.7896, + 60.3761, + 37.3415, + -7.0219, + 51.5611, + -7.0877, + 60.2719, + 60.4788, + 44.786167, + 37.109167, + 60.3231, + 38.786167, + 36.594333, + 7.5057, + 63.2668, + -23.8893, + 32.9405, + 38.3778, + 42.5857, + 59.603, + 37.493833, + 42.6077, + 32.828333, + 37.588167, + -35.7292, + 60.0405, + 38.757, + 53.8081, + 42.5908, + 44.307333, + 64.1727, + 16.0409, + 44.294, + 44.305167, + 16.1058, + 62.1778, + 14.4117, + 36.761167, + 44.302333, + 44.293667, + 33.501167, + 10.7018, + 38.820499, + 35.9015, + 33.187833, + 59.8595, + 37.105, + 54.0118, + 17.7366, + 59.8813, + 63.2696, + 64.3838, + 33.965, + 52.4075, + 61.144, + 60.8625, + 60.7582, + 59.8817, + 38.807999, + 67.6564, + 38.808998, + 34.5405, + 61.4142, + 60.5653, + 64.7331, + 33.653333, + 33.6285, + 33.971833, + 59.8672, + 51.671, + 19.442, + 51.6525, + 33.887, + 59.8663, + 59.8509, + 59.8885, + 59.8989, + 59.9059, + 59.9103, + 59.889, + 45.526833, + 59.9037, + 35.8586, + 51.905, + 46.857333, + -17.7554, + 61.3778, + 15.4761, + 36.971, + 57.9908, + 60.0807, + 62.4045, + 37.493, + 46.067333, + 33.040167, + 35.816, + 35.839, + 40.391, + 57.6803, + 15.1552, + 63.0653, + 38.805332, + 33.192167, + 52.9335, + 37.5715, + 63.4422, + 63.2217, + 36.069667, + 32.373167, + -23.7075, + 39.4039, + 37.923833, + 15.3031, + 59.9293, + 44.802, + 33.989, + 67.8201, + 34.993167, + 15.6575, + 60.1941, + 62.5136, + 33.507667, + 33.992333, + 38.823167, + 57.4983, + 15.6925, + 24.878, + 61.8843, + 35.360667, + -10.1846, + 42.5847, + -37.2167, + 16.1115, + 37.820167, + 56.9377, + 38.750833, + 38.752667, + 37.570667, + 19.430167, + 34.514833, + 62.8102, + 61.8971, + 44.705667, + 36.467, + 37.0358, + 64.4709, + 42.5757, + 37.565, + 42.5771, + 64.7619, + 37.638167, + 59.7545, + 33.193, + 64.7582, + 42.5936, + 59.5744, + 16.226, + 62.5449, + 46.876833, + 62.4985, + 37.587167, + 34.381, + 59.9775, + 38.752667, + 17.5196, + 38.7481, + 33.184833, + 37.344833, + -6.4027, + 37.499667, + 38.837502, + 36.5485, + 36.383333, + 51.2858, + 59.9768, + 63.5373, + 38.1953, + 63.0385, + -17.0456, + 14.9269, + 35.9645, + -7.4355, + 61.5042, + 35.9908, + 37.4595, + 15.1165, + 48.101667, + 38.836333, + 14.9414, + 47.691333, + 42.2053, + 35.962667, + -10.8831, + 38.061667, + 33.169667, + 59.845, + 60.2604, + 63.5231, + 63.0863, + 63.8926, + 37.0689, + 33.145833, + 36.123167, + 33.975167, + 64.7554, + 18.4531, + 40.436, + 62.2903, + 33.978, + 51.3744, + 37.518833, + 21.642167, + 58.4419, + 59.504, + 33.976667, + 61.486, + 13.6017, + 37.540333, + 37.775667, + 62.0856, + 38.706667, + 66.2529, + 57.5066, + 17.4925, + 15.2335, + 33.976667, + 42.5716, + 39.366833, + 36.6783, + 33.9745, + -1.4664, + 39.807833, + 13.2544, + 61.8774, + 38.3939, + 35.141167, + 32.862, + 61.3719, + 37.542, + 35.6915, + 34.034, + 59.405, + 54.2192, + 33.193833, + 33.493667, + 17.2785, + 37.519667, + 63.5861, + 59.0192, + 38.786999, + 34.877167, + 38.807167, + 37.545, + 52.0486, + 63.5749, + 63.6017, + 36.224833, + 57.4142, + 59.7523, + 66.2593, + 63.5631, + -23.9788, + -37.2039, + 42.596, + 61.6212, + 64.7584, + 62.5868, + 2.8319, + 64.7729, + 56.0051, + 64.7851, + 62.7723, + 19.420833, + 67.621, + 51.6929, + -4.6769, + 60.2335, + 12.8959, + 59.5574, + 64.7863, + 59.9258, + 40.281, + 53.6697, + 38.747, + 37.279, + 58.2131, + 51.5577, + -5.9077, + 60.4891, + 34.5022, + 42.6057, + 64.7765, + 61.1116, + 51.7117, + 35.152667, + 38.7781, + 12.6788, + 38.5819, + 34.4865, + 60.2433, + 36.496667, + 42.5599, + 57.0654, + 38.823167, + 33.326167, + 59.7681, + 64.9805, + 59.8732, + 63.4641, + 37.504333, + 19.1915, + 60.3885, + 58.4988, + 63.4918, + 37.450833, + 33.503167, + -55.4644, + 38.757, + 54.0122, + 48.515, + 60.4419, + 42.537167, + 37.447667, + 37.462333, + 37.379333, + 61.0059, + 15.1825, + 60.4845, + 35.602833, + -2.7314, + 33.170333, + 60.0961, + 37.477167, + 53.8618, + 36.012167, + 63.102, + 47.3965, + 38.822667, + 47.395833, + 53.7237, + 18.0013, + 60.3013, + -51.951, + 55.3684, + 42.587833, + 33.8525, + 37.276667, + 63.0908, + 19.450333, + 64.2424, + 60.533, + 59.9528, + 46.898, + -7.0257, + 33.127833, + 33.222833, + 33.223833, + 33.221833, + 39.4025, + 60.477, + 60.4978, + 37.2798, + 51.6899, + 36.923833, + 54.2139, + 61.6789, + 33.1885, + 1.5915, + 51.3691, + 45.973333, + 46.868167, + 54.8499, + 38.833832, + 46.8611, + 57.6534, + 18.0135, + 54.9781, + 54.3697, + 38.750667, + 67.7999, + 63.0999, + 60.4779, + 42.568, + 37.458833, + 35.032833, + 38.6088, + 59.9657, + 46.870333, + 46.874167, + 14.9752, + 57.1664, + 37.328833, + 62.1581, + 42.5991, + 60.6122, + 18.7165, + 36.291833, + 60.2245, + 53.6654, + 18.1111, + 60.3742, + 42.5723, + 35.792, + 19.201, + 17.9996, + 42.5753, + 57.3488, + 37.5652, + 37.416, + 35.933167, + 59.7943, + 60.0925, + 61.7131, + -21.9172, + 60.0014, + 60.1125, + 60.1326, + 37.412167, + 65.3407, + 33.327833, + 61.4994, + 60.1603, + 38.83, + 60.9306, + 33.332667, + 60.0997, + -42.4862, + 57.7349, + 61.1147, + 61.8273, + 37.333333, + 37.415, + 60.4761, + 45.73, + 38.8245, + 60.3155, + -11.9189, + 46.896667, + 59.8152, + 60.022, + 38.793999, + 40.139667, + 38.4011, + 46.879667, + 69.4522, + 60.8639, + 60.8403, + 53.7145, + 15.2748, + 37.553, + 19.197667, + 62.4253, + 34.068167, + -26.6333, + 18.8304, + 37.412167, + 37.414, + 45.950833, + 37.2136, + 15.6978, + 64.3159, + -18.1469, + 33.651667, + 36.589667, + 24.4725, + -31.912, + 60.0357, + 47.835167, + 37.448333, + 54.0704, + 15.2225, + 38.607167, + 37.417833, + 63.0381, + -15.3348, + 38.821, + 59.9169, + 64.993, + 37.203667, + 60.031, + 61.0185, + 15.3544, + 37.434333, + 56.1589, + 61.1472, + -13.8345, + 34.011167, + 38.8648, + -7.2026, + 19.708, + 38.746667, + 59.9712, + 53.6195, + -12.9278, + 18.9605, + 37.3761, + 37.849, + 49.4855, + 64.0866, + 18.7848, + 46.8785, + 33.852667, + 34.075, + 33.981667, + 46.875667, + 33.8295, + 31.1684, + 59.9804, + 48.5185, + 40.126, + 59.9221, + 37.542333, + 59.5576, + 37.479167, + 47.657667, + 37.412167, + 52.3919, + 43.172167, + 36.2853, + 61.6397, + 53.141, + 60.0386, + 60.0012, + 37.328833, + 60.5671, + 60.5666, + 59.9119, + 35.0525, + 45.629833, + 37.5355, + 38.800167, + 61.0558, + 60.9198, + 18.6699, + 37.411667, + 42.5971, + 33.494833, + 42.586, + 47.590667, + 15.7247, + 60.7702, + 32.7967, + 53.4109, + 18.0533, + 57.7254, + 52.5561, + -6.0228, + 41.675, + 36.071833, + 58.804, + 33.9595, + 61.3116, + 53.4862, + 37.473, + 59.9299, + 15.4623, + 37.203167, + 63.8584, + 33.465, + 46.870333, + 59.9879, + 42.6047, + 17.9023, + 53.5505, + 59.8173, + 37.603833, + 38.4065, + 60.0065, + 61.1655, + 61.1407, + 42.5276, + 37.486167, + 58.6121, + 37.47, + 34.269167, + 20.135166, + 53.4145, + 37.5615, + 60.1407, + 61.4964, + 51.6162, + 54.8482, + 61.3489, + 61.7241, + 61.1701, + 36.571833, + 52.3291, + 59.9886, + 66.4782, + 54.0129, + 18.879, + 60.1553, + 61.5265, + 38.778168, + 60.1915, + 53.4455, + 56.2796, + 40.120667, + 31.831667, + 38.774666, + 38.776667, + -11.977, + 37.345667, + 60.3656, + 38.712667, + 32.924167, + 65.436, + -34.2973, + 60.0002, + 36.502833, + 59.8384, + 63.0596, + 32.844, + 60.359, + 15.5507, + 33.668167, + 19.236, + 33.674333, + 14.9559, + 36.5675, + 15.1323, + 15.4856, + 36.7402, + 19.294167, + 51.5999, + 14.4266, + -1.356, + 40.386833, + 14.4637, + 46.8975, + 62.5721, + 33.049333, + 37.54, + 46.866667, + 59.8075, + 33.957167, + 34.336333, + 37.540667, + 62.6309, + 37.3096, + 61.0176, + 18.2223, + 36.2854, + 37.005167, + 32.828, + 34.225833, + 42.5241, + 42.5232, + 42.5096, + 42.522333, + 59.6609, + 60.1683, + 42.5303, + 37.3603, + 62.7371, + 38.785168, + 38.787833, + 59.077, + 37.139, + 60.1933, + 42.6704, + 34.513833, + 42.6014, + 62.6994, + 54.7664, + 59.8124, + 18.0321, + 54.4582, + 65.668, + 35.7719, + 33.3545, + 52.1109, + 51.617, + 33.976667, + 19.238333, + 51.6505, + 19.243, + 37.143167, + 45.814167, + 60.824, + 32.834, + 32.828, + 63.4085, + 48.091333, + 61.9565, + -18.058, + 51.3154, + 64.9963, + 46.8793, + 44.090833, + 32.832833, + 37.277833, + 44.6825, + 33.978, + 55.5692, + 33.073, + 38.5022, + 32.834667, + 32.838667, + 32.8335, + 32.843833, + 19.3035, + 61.6698, + 37.532167, + 57.7401, + 33.976333, + 33.975333, + 53.5386, + 53.9212, + 33.507167, + 46.909667, + 15.1566, + 32.832167, + 32.843, + 44.678167, + 15.7092, + 37.5655, + 33.504167, + 44.674, + 33.8575, + 46.9035, + 38.833168, + 38.815666, + 60.1339, + 38.8085, + 37.481167, + 35.980833, + -6.0986, + 42.6029, + 61.0912, + 61.1384, + 59.6753, + 33.667, + 37.644667, + 34.993167, + 51.3949, + 61.2967, + 38.787834, + 63.5538, + 40.449667, + 35.943167, + 35.482, + 32.840667, + 62.4485, + 37.491667, + 37.472833, + 59.8908, + 59.6095, + 60.1768, + 15.7969, + 51.97, + 40.484, + 51.7491, + 62.8428, + 19.219, + 63.3484, + -4.88, + 19.9115, + -10.7647, + 59.7717, + 36.156667, + 59.8229, + 60.7945, + 36.012167, + 38.3879, + 60.3719, + 66.2048, + 44.257, + 37.593167, + 65.4989, + 38.8311, + 35.139667, + 32.838, + 19.424334, + 32.839333, + 15.8472, + 46.956667, + 36.179667, + 38.804, + 53.9359, + 32.782333, + 2.9917, + 35.707667, + 60.2384, + 51.5758, + 14.855, + 46.9035, + 64.7545, + 59.7836, + 44.770833, + 38.8215, + 57.8805, + 50.1653, + 39.3643, + 63.0467, + 53.5692, + 48.271333, + 60.5002, + 42.567833, + 15.639, + 32.831333, + 15.5449, + 36.2089, + 58.6446, + -23.5684, + 52.7346, + 15.2732, + 19.467167, + 38.822334, + 42.596, + 60.5679, + 37.4198, + 39.366167, + 62.2453, + 62.9227, + 64.7476, + 61.6459, + 62.8983, + 42.6632, + 59.8755, + 60.5579, + 37.467, + 62.2629, + 42.5618, + 53.7072, + -22.1327, + 38.3681, + 60.5189, + 13.4506, + 37.486167, + 33.5045, + 60.9785, + 46.862167, + 60.3009, + 15.3914, + 34.0375, + 60.2062, + 46.864167, + 37.1885, + 39.3655, + 67.102, + 38.834667, + 51.6652, + 38.835667, + 46.87, + 38.836666, + 46.872333, + 19.1065, + 38.836834, + 38.835167, + 38.835, + 9.5711, + 46.864667, + 15.2889, + 34.5065, + 63.5608, + 19.091, + 36.804167, + 61.7575, + 15.1558, + 46.872333, + 46.8885, + 64.8451, + 40.4805, + 19.0955, + 33.774833, + 60.2216, + 32.933167, + 61.3707, + 15.3254, + 60.6712, + 65.2775, + 15.5954, + 19.256333, + 36.148167, + 19.404333, + 36.439667, + 14.9659, + 19.849, + 34.0375, + 53.3828, + 67.0334, + 45.693833, + 58.0975, + 35.043, + 64.994, + 19.851167, + 65.79, + 61.6898, + -20.2485, + 58.0241, + 38.819333, + 34.9985, + 58.0753, + 60.3564, + 58.165, + 37.604167, + 33.691833, + 33.956333, + 33.465333, + -15.0799, + 39.603833, + 64.7032, + 36.7446, + 38.839, + 15.7169, + 37.8095, + 57.2026, + 33.8575, + 32.3285, + 52.3665, + 63.5705, + 40.211833, + 38.839667, + -21.9227, + 60.0018, + 59.7927, + 58.0337, + 15.6677, + 16.3622, + 39.3805, + 15.3334, + 15.2212, + 59.366, + 42.5165, + 60.0754, + 61.5446, + 19.393167, + 55.7766, + -5.2108, + 53.5209, + 60.5717, + 15.2798, + 53.6304, + 60.5946, + 37.384167, + 13.9047, + 63.9919, + 35.857167, + 65.9855, + 52.0051, + 37.596833, + -7.5665, + 33.866, + 37.605, + 52.0274, + 55.1751, + -24.5557, + 15.0356, + 33.505667, + 15.8693, + 57.3614, + -30.4261, + -14.1046, + 61.6356, + 60.4846, + 18.066, + 62.559, + 34.036, + 38.788667, + 60.4951, + 44.621667, + 52.1694, + 42.663667, + 60.1768, + 60.3035, + 53.7799, + 60.3452, + 19.870667, + 60.1844, + 42.595, + 61.3182, + 36.2062, + 62.229, + 46.8852, + 67.3188, + 59.8987, + 37.602667, + 33.71, + 51.6857, + 60.0043, + 62.0418, + 37.602833, + 62.8895, + 60.2201, + 60.6518, + 53.7706, + 27.9618, + 61.2674, + 16.1985, + 38.334333, + 61.2794, + 37.426667, + 44.7855, + 59.8217, + 35.832333, + 46.841667, + 61.0848, + 33.3915, + 61.5592, + -20.0675, + 61.074, + 42.608333, + 60.3172, + 58.4203, + 15.7927, + 62.2754, + 18.1753, + 60.188, + 19.557, + 57.0134, + 52.1101, + 36.472, + -4.9334, + 61.3766, + 54.8119, + 34.347833, + 65.4772, + 52.1151, + 38.3871, + 64.7668, + 15.7276, + 59.9341, + 37.502, + 17.4213, + -40.6778, + 62.8571, + 36.079833, + 55.2018, + 63.3655, + 39.1124, + 37.806, + -26.0946, + 34.124, + 59.3304, + 42.555167, + 15.4552, + 53.2354, + 63.2379, + 46.863, + 38.760833, + 15.0886, + 53.1426, + 15.182, + 46.899833, + 43.2425, + 60.1297, + 37.502667, + 37.455, + 18.5168, + 60.1274, + 56.0678, + 40.568667, + 21.633833, + 18.5325, + 46.8705, + 37.299667, + 40.4865, + 34.079667, + 61.2964, + 60.1725, + 46.863667, + 33.494667, + 19.0945, + 37.6055, + 37.468667, + 40.2965, + 34.0385, + 37.4715, + 62.0502, + 60.1249, + 18.688, + 42.5935, + 59.8319, + 59.4008, + 59.9375, + 63.0936, + 42.53, + 37.475, + 36.311333, + 37.474167, + 15.4421, + 60.0035, + 37.471, + 15.0853, + 42.5422, + 33.491167, + 42.5825, + 37.473, + 19.358667, + 60.155, + 37.4765, + 62.7988, + 42.593667, + 42.6006, + 42.5922, + 52.772, + 51.8595, + 61.9185, + 15.4699, + 37.426833, + 15.6178, + 42.6061, + 51.6497, + 59.9838, + 59.1798, + 32.933, + 15.7603, + 62.4273, + -4.9444, + 37.529, + 51.5235, + 60.2363, + 15.1965, + 42.5306, + 55.1229, + 46.198833, + 35.641167, + 15.4385, + 35.427833, + 14.9074, + 42.5566, + 51.8321, + 32.6095, + 65.4356, + 38.3846, + 52.2896, + 46.1355, + 53.2916, + 65.319, + 62.8899, + 63.145, + 46.904833, + 42.5727, + 46.8675, + 60.4231, + 65.8017, + 66.0161, + 38.8119, + 38.7915, + 42.609, + 62.9071, + 59.849, + 63.4914, + 58.9343, + 42.524333, + 10.9561, + 59.7893, + 37.1247, + 60.2771, + 38.8318, + 37.474, + 23.9529, + 42.5401, + 46.859, + 60.5833, + 33.717167, + -58.1449, + 10.8571, + 11.1912, + 28.9426, + 39.2104, + 42.545833, + 42.5774, + 36.5125, + -18.5966, + 33.538833, + 15.0128, + 57.9354, + 15.1729, + 59.7685, + 42.6086, + 42.578167, + 62.154, + 60.2049, + 54.2242, + -2.821, + 42.5413, + 14.8747, + 15.3524, + -23.8876, + 15.3112, + 46.8915, + 38.845001, + 51.4307, + 45.054, + 15.4024, + 32.865667, + 37.905667, + 18.2745, + 42.6048, + 42.570833, + 42.5293, + 57.3966, + 42.5344, + 42.5317, + 37.4565, + 42.5438, + 42.5288, + 49.241, + 61.4216, + 42.5325, + 17.4028, + 59.1724, + 42.5419, + 42.5456, + 42.5476, + 22.421, + 51.4481, + 42.547, + -19.7635, + 35.087333, + 64.6086, + 60.2846, + 61.5128, + 37.3174, + 37.596667, + 63.3368, + 37.487667, + 68.5279, + 51.3476, + 42.5522, + 42.5545, + 19.417333, + 42.5481, + 42.5648, + 62.6857, + -25.8043, + 38.3603, + 61.7247, + 62.9497, + 42.6131, + 48.595333, + 60.2939, + 33.263, + 42.5733, + 60.1444, + -16.1442, + -37.5234, + 37.459167, + 52.7853, + 64.7051, + 54.7566, + 19.407, + 33.879333, + 59.6229, + 68.5348, + 64.9961, + 65.7316, + 53.8156, + 38.790165, + 34.0295, + 33.964, + 53.5639, + 42.5496, + 60.4132, + 61.5763, + 37.409167, + 59.7877, + 42.5673, + 42.5544, + 42.546167, + 34.059667, + 60.9205, + 68.8276, + 33.463, + 48.421333, + 41.686167, + 19.4726, + 62.2481, + 52.5632, + 15.3004, + 33.327833, + 42.6238, + 42.555167, + -24.246, + 60.1009, + 59.0889, + 46.8645, + 34.906, + 60.3968, + 38.807335, + 42.5774, + 15.3853, + 36.839667, + 56.0816, + 42.6729, + 15.4152, + 53.7182, + 46.874833, + 41.351667, + 61.0452, + 59.1308, + 14.9912, + 42.553333, + 36.111167, + 39.7665, + 15.2785, + -4.2452, + 15.5681, + 58.2872, + 46.873833, + 46.872667, + 59.7864, + 59.9173, + -10.314, + 36.111833, + 35.5637, + 57.1877, + 60.4559, + 46.868167, + 59.9636, + 63.2571, + 60.3801, + 60.3735, + -4.1892, + 61.6922, + 42.672, + 42.6306, + 24.7471, + 15.6517, + 61.531, + 62.549, + 37.590833, + 15.8113, + 62.0888, + 35.679, + 37.632333, + 34.488, + 12.9836, + 59.7401, + 33.493667, + 37.3487, + 53.8607, + 17.3198, + 19.339667, + -6.9548, + 60.4497, + 63.2902, + 42.578333, + 42.5904, + 58.5704, + 37.542333, + 36.0335, + 51.5916, + 37.541833, + 15.3932, + 42.563, + 14.0924, + 62.1328, + 35.044, + 42.584, + 60.1398, + 42.6018, + 42.5935, + 60.1912, + 19.5025, + 34.038833, + 34.037667, + 34.039167, + 37.229167, + 35.090833, + 42.5855, + 62.1899, + 68.2355, + 42.5959, + 37.452833, + 57.044, + 57.1272, + 37.601667, + 37.5175, + 42.5792, + 46.792, + 42.554167, + 58.0932, + 37.642833, + 37.638667, + 36.9325, + 18.0166, + 37.512333, + 58.8361, + 15.0768, + 40.8314, + 63.4845, + 42.5436, + 36.8036, + 60.0074, + 63.2783, + 42.5711, + 19.413166, + 42.5453, + 63.3651, + -23.6018, + 42.1689, + 34.035333, + 36.1361, + 46.862667, + 42.5488, + 42.5451, + 38.824667, + 37.129167, + 37.544167, + 54.6854, + 42.5563, + 37.1305, + 42.5449, + 19.2021, + 19.329333, + 42.5555, + 58.5519, + 37.0464, + 36.955833, + 35.6565, + 42.6003, + 34.037167, + 34.028, + 52.3355, + 59.2097, + 38.833, + 38.833667, + 62.1772, + 34.044667, + 34.041167, + 58.6862, + 34.040667, + 60.5262, + 42.5639, + 34.474333, + 63.1472, + 34.034333, + 35.088667, + 65.0868, + 41.9157, + 42.6058, + 42.567, + 34.041667, + 37.135667, + 35.547833, + 34.467833, + 42.5627, + 38.789333, + 42.594667, + 42.5965, + 34.038667, + 34.039333, + 34.037667, + 34.038667, + 60.3803, + 35.343333, + 60.0161, + 34.040167, + 52.5377, + 35.3405, + 51.6859, + 63.4871, + 52.3983, + 37.596167, + 35.7377, + 38.9295, + 35.9926, + 57.4691, + 34.014333, + 37.8866, + 58.208, + 15.2976, + 42.5593, + 51.7014, + 14.9344, + 37.3283, + 57.3821, + 42.5804, + 60.9584, + 42.5738, + 14.1109, + 34.0425, + 42.5625, + 61.4915, + 42.55, + 60.2731, + 37.695667, + 18.1121, + 46.8743, + 38.060667, + 61.5617, + 44.4485, + 59.8179, + 13.069, + 52.4771, + 59.5546, + 15.6631, + 15.2922, + -7.5542, + 15.7653, + 33.504667, + 42.5578, + 59.8194, + 42.5509, + 53.3278, + 42.6115, + 46.8615, + 46.853, + 62.187, + 12.4905, + 42.5536, + 42.6011, + 42.6033, + 52.4554, + 42.6011, + 59.8907, + 42.5736, + 42.6284, + 42.59, + 69.231, + 14.0483, + 15.8549, + 59.8093, + 42.6019, + 12.9144, + 51.6272, + 42.6201, + 52.6471, + 42.565, + 38.3052, + 42.5577, + 69.235, + 42.5604, + 19.916833, + 69.2374, + 42.6074, + 42.6057, + 39.0228, + 18.603, + 42.601, + 42.5705, + 33.778, + 46.875333, + 51.946, + 42.6126, + 37.226333, + 42.5965, + 34.7275, + 33.030167, + 15.8657, + 42.5713, + 42.5698, + 42.5966, + 36.934833, + 36.5378, + 42.6147, + 19.404333, + 42.5629, + 38.3864, + 50.427, + 37.642333, + 44.4006, + 15.7031, + 62.993, + 53.169, + 60.3931, + 60.3066, + 38.801998, + 42.6096, + 54.0093, + 33.154333, + 53.453, + 41.7813, + 15.7644, + 53.5788, + 46.889167, + 37.0369, + -18.159, + 38.0722, + 34.0365, + 53.8251, + 51.6871, + -25.0133, + 19.109, + 33.143833, + 35.652333, + 34.347667, + 61.2792, + 62.6834, + 62.9587, + 60.2265, + 33.508, + 52.0013, + -24.5931, + 15.1076, + 35.9918, + 42.5611, + 51.2072, + 59.5892, + 62.0857, + 33.501167, + 47.328333, + 62.4037, + 60.5943, + 36.150833, + 15.0816, + 51.77, + 60.2926, + 36.511333, + 37.3848, + 37.576333, + 15.0962, + 59.5419, + 61.916, + 61.2662, + 37.0254, + 61.3941, + 18.2211, + 34.037667, + 36.6964, + 34.037667, + 38.750333, + 46.874333, + 67.5564, + 15.7467, + 15.4311, + 34.0395, + 60.3044, + 15.3927, + 34.039333, + 63.2644, + 34.268333, + 59.1941, + 34.037833, + 62.1404, + 59.8641, + 37.347167, + 61.11, + 38.0198, + 59.5199, + 38.755501, + 15.2659, + 61.3045, + 60.9757, + 67.6427, + 43.836167, + 46.896167, + 15.3896, + 66.769, + 60.9238, + 51.817, + 15.1883, + 18.2203, + 14.9239, + 42.6058, + 61.4008, + 42.6737, + 15.7739, + 14.9456, + 63.1544, + 59.1241, + 38.3937, + 33.193, + 59.9356, + 16.7045, + 15.408, + 15.5308, + 15.3526, + 44.2464, + 58.2485, + 51.6935, + 44.4745, + 59.4036, + 51.7361, + 62.0025, + 46.879833, + -16.7183, + 51.6811, + 42.5803, + 19.948333, + 56.1065, + 44.3952, + 38.768333, + 38.768, + 59.5958, + 60.7112, + 57.7499, + 19.4025, + 63.1024, + 66.9866, + 64.9906, + 54.9813, + 55.435, + 42.6646, + 60.1674, + 36.95, + 39.862333, + -36.1497, + 35.897667, + 60.0021, + 38.774666, + 45.618, + 39.501833, + 15.7772, + 44.781833, + 38.768167, + 39.861333, + 38.913333, + -27.7277, + 35.9883, + 35.9914, + 15.537, + 60.3983, + 37.802667, + 59.9912, + 36.2908, + 19.391001, + 15.0779, + 15.5513, + 55.6085, + 60.1774, + 15.4862, + 60.153, + 20.027167, + 39.282333, + 19.411833, + 60.0877, + 38.753833, + 55.2452, + 50.8322, + 42.6494, + 38.06, + 51.7278, + 38.833667, + 42.555833, + 15.787, + 18.915833, + 53.2518, + 38.3558, + 38.843833, + 49.4785, + 67.7643, + 51.6082, + 34.0925, + 60.3576, + 15.3004, + 58.3062, + 15.1363, + 39.523333, + 51.5729, + 49.325, + 39.4189, + 38.3555, + 51.6531, + 44.717, + 51.6239, + 51.695, + 15.4199, + 42.5514, + 33.977333, + 59.5746, + 62.1419, + 19.393333, + 32.741, + 51.6859, + 15.8296, + 37.598167, + 15.0866, + 15.3251, + 37.658833, + 51.4897, + 61.0444, + 15.2562, + 63.1355, + 60.6453, + 33.978333, + 54.8237, + 16.3217, + 59.9753, + 56.8018, + 51.2597, + 37.593667, + 40.6574, + 33.320333, + 42.5704, + 43.612, + 54.015, + 60.762, + 59.5701, + 15.2555, + 15.3921, + 58.9325, + 37.210833, + 15.2159, + 36.143, + 59.755, + 15.5969, + 55.4677, + 42.5392, + 16.1573, + 59.7863, + 61.013, + -22.4546, + 36.511, + 37.597, + 61.7723, + 42.5793, + 15.7338, + 37.604833, + 42.5732, + 36.641, + 53.9738, + 15.854, + 42.579, + 3.6504, + 37.5415, + 51.5792, + -15.3425, + 44.792, + 18.0591, + 35.903, + 15.7495, + 46.021167, + 37.554833, + 36.408833, + 44.5128, + 37.2486, + 34.0345, + 67.3419, + -4.9459, + -24.161, + 62.5675, + 60.0265, + 53.9395, + 38.4305, + 14.9116, + 39.729667, + 59.0211, + 61.4535, + -19.5742, + 61.6767, + 55.6967, + 42.6157, + 37.917667, + 51.7726, + 59.4202, + 15.3559, + 32.718333, + 42.5665, + 42.5806, + 42.5744, + 42.6108, + 42.5592, + 42.5631, + 51.8445, + 34.3615, + 42.5799, + 18.7533, + 42.5619, + -6.9776, + 42.5842, + 15.2713, + -59.2757, + 19.386833, + 42.5789, + 38.8091, + 42.5792, + 42.5726, + 13.8193, + 68.4897, + 68.4109, + 15.6436, + 61.8175, + 34.440333, + 48.458667, + 38.3812, + 15.1947, + 59.963, + 68.5268, + 32.7105, + 15.0415, + 15.1747, + 15.8771, + 36.388167, + 32.708, + 32.557, + 15.7206, + 15.6186, + 15.4532, + 46.891167, + -59.8211, + 15.8428, + 63.1602, + 65.5175, + 40.9452, + 52.2353, + 59.8068, + 15.6728, + 15.2159, + 15.3776, + 15.1325, + 15.6769, + 68.5196, + 58.1118, + 51.342, + 15.0808, + -8.6068, + 65.7544, + 36.471667, + 58.6028, + 15.175, + 36.2919, + 46.862667, + 33.653, + 60.0722, + 15.3365, + 34.238, + 68.5258, + 61.7136, + 15.1257, + 68.5284, + 61.6985, + 38.425, + 46.891833, + 15.3169, + 15.8989, + 68.5273, + 68.5069, + 15.079, + 51.9836, + 61.3017, + 16.0961, + 18.7428, + 15.1531, + 60.1916, + 68.5221, + 68.5555, + 15.9092, + 15.4947, + 63.1355, + 15.4622, + 15.195, + 54.0919, + -24.2322, + 15.6429, + 68.5087, + 15.0759, + 68.536, + 59.9206, + 33.036667, + 60.0725, + 63.4575, + 35.773167, + 46.341167, + 35.896833, + 58.7828, + 68.5298, + 15.7086, + 15.7942, + 67.3421, + 58.7481, + 7.7941, + 15.37, + 38.8195, + 19.404333, + 15.6773, + 15.2969, + 40.262167, + 15.6439, + 64.8033, + 53.4202, + 42.574167, + 59.1673, + 16.0661, + 42.5718, + 42.5822, + 59.285, + 67.2634, + 53.9765, + 33.978, + 16.8287, + 59.8055, + 61.3236, + 33.300667, + 32.322667, + 60.1661, + 18.895833, + 37.588667, + 62.3109, + 58.2348, + 60.5722, + 58.7696, + 15.0785, + 42.557333, + 44.316, + 64.9856, + 61.2722, + 60.1552, + 62.6908, + 58.2214, + 37.486333, + 36.2848, + 15.3302, + 62.4824, + 36.2872, + 46.870333, + 37.6285, + 15.4861, + 60.6448, + 33.035167, + 37.624833, + 15.5735, + 37.63, + 15.7473, + 15.2209, + 15.4318, + 37.990333, + 15.5886, + 62.4883, + 52.748, + 39.273333, + 59.9024, + 15.6987, + 65.5089, + 61.2391, + 44.442833, + 39.279333, + 60.1717, + 60.1979, + 15.528, + 53.1595, + 44.423667, + 34.049667, + -18.9749, + 14.947, + 46.863333, + 18.4195, + 61.5519, + 60.316, + 42.5694, + 37.593167, + 42.571, + 42.5733, + 60.3533, + 59.2544, + 31.0585, + 61.6699, + 34.008167, + 34.995167, + 15.0427, + 15.5292, + 42.5723, + 51.6006, + 16.231, + -12.2109, + 15.0921, + 62.887, + 15.6158, + 37.616167, + 35.0645, + 37.177, + 37.9215, + 15.3801, + 56.9755, + 15.6809, + 33.504167, + 60.0235, + 14.7125, + 59.0829, + 39.5547, + 33.233167, + 46.8995, + 15.1404, + 60.9139, + -6.8416, + 15.3343, + 14.6837, + 61.7092, + 37.325167, + 34.355833, + 15.6184, + 15.1628, + -6.0426, + 15.7603, + 42.6127, + 35.8975, + 15.3478, + 51.3347, + 15.2659, + 0.5634, + 15.3325, + 15.3669, + 61.8643, + 15.0663, + 61.2338, + 25.2517, + 13.7011, + 36.514, + 37.64, + 15.2537, + 40.656167, + 36.036167, + 36.033, + 29.0196, + -15.2805, + 34.149, + 39.1465, + 15.5213, + 62.8988, + 33.723667, + 15.544, + 15.406, + 15.9178, + 53.1531, + 15.4789, + 37.519, + 15.2436, + 37.5155, + 15.5119, + 15.3318, + 61.7913, + 38.884833, + 15.3155, + 15.3594, + 62.9279, + 15.5765, + 39.5355, + 38.505333, + 61.9648, + 52.3567, + 38.505667, + 38.504167, + 62.2347, + 15.348, + 36.3422, + 66.2606, + 51.2619, + 37.8092, + 40.482667, + 33.649333, + 33.822667, + 15.4936, + 39.7864, + 15.6687, + 15.2604, + 33.500333, + 16.0581, + 39.504833, + 15.7988, + 38.504833, + 42.6225, + 15.1089, + 15.8932, + 62.1823, + 38.5055, + 38.504333, + 38.504667, + 38.504333, + 55.6664, + 60.0832, + 5.4358, + 61.5525, + 39.7853, + 38.507167, + 19.2065, + 37.3255, + 61.3969, + 61.4081, + 48.9275, + 51.7374, + 58.7206, + 15.3946, + 37.512833, + 15.3898, + 15.609, + 33.107167, + 66.997, + 39.646667, + 15.3716, + 37.831333, + 15.3232, + 15.785, + 15.2837, + 15.2148, + 54.9712, + 37.3947, + 63.0882, + 15.121, + 37.2978, + 15.833, + 42.664333, + 52.5352, + 44.396167, + 14.8297, + 15.7457, + 14.8524, + 15.5339, + 37.3074, + 58.6313, + 38.6696, + 15.5537, + 42.5653, + 36.031333, + 15.4661, + 63.3273, + 15.5777, + 42.6598, + 15.6082, + 15.1108, + 53.8832, + 66.2631, + 15.126, + 41.068, + 45.881, + 57.7458, + 37.522833, + 19.4775, + 14.6019, + 14.8705, + 15.4459, + 36.9956, + 63.717, + 37.5425, + 63.9895, + 15.5108, + 33.501333, + 15.2654, + 38.759167, + 14.8479, + 36.4921, + 72.6309, + 38.792167, + 15.4476, + 60.165, + 15.3461, + 60.1163, + 15.437, + 15.1749, + 67.0569, + 15.0884, + 15.4362, + 38.820667, + 15.2941, + 15.304, + 15.4284, + 38.847667, + 15.668, + 38.846333, + 38.847332, + 15.5333, + 15.4454, + 38.832501, + 37.2854, + 15.1471, + 15.6629, + 14.9089, + 36.5024, + 15.2843, + 15.1504, + 38.847832, + 15.2029, + 38.848167, + 37.2911, + 15.9617, + 15.5726, + 39.287167, + 38.848667, + 38.829666, + 19.3283, + 15.4565, + 2.4289, + 38.815333, + 38.8255, + 38.775667, + 38.817333, + 38.819333, + 38.807, + 38.822, + 38.774, + 38.815167, + 38.83, + 15.1746, + 61.4229, + 46.857167, + 15.0356, + 53.7845, + 37.463833, + 51.2706, + 34.321833, + 51.3724, + 52.2197, + 61.7731, + 61.4081, + 51.8664, + 58.7435, + 60.5323, + 33.496333, + 52.1619, + 64.7157, + 52.1837, + 52.3318, + 19.772, + 37.203, + 34.213667, + 36.6996, + 63.5777, + 48.699167, + 42.6238, + 37.835167, + 67.5597, + 19.399333 + ], + "z": [ + 2.3, + 1.7, + 1.6, + 1.42, + 4.2, + 1.6, + 4.6, + 2.4, + 1.39, + 1.11, + 1.5, + 2, + 1.5, + 1.4, + 1.3, + 1.8, + 1.9, + 1.2, + 2, + 4.1, + 1.38, + 1.4, + 1.34, + 1, + 1.4, + 2.55, + 1.4, + 1.7, + 1.04, + 1.3, + 1.3, + 4.6, + 1.6, + 2.64, + 1.4, + 1.2, + 4.3, + 1.91, + 1.7, + 2.5, + 1.6, + 1.5, + 1.6, + 1.3, + 2.3, + 4.2, + 4.3, + 1.21, + 1.95, + 1.02, + 1.9, + 4.9, + 2.1, + 3.09, + 1.07, + 1.17, + 1.9, + 1.6, + 1.98, + 1.5, + 1.39, + 2.66, + 1.9, + 2.1, + 4.1, + 1.3, + 1.5, + 1.4, + 1.22, + 5.1, + 2.1, + 1.8, + 4.9, + 2.2, + 1, + 1.72, + 1.8, + 1, + 1.03, + 1.19, + 1, + 1.89, + 4.5, + 2.4, + 1.77, + 1.4, + 1.8, + 1.77, + 1.46, + 4.7, + 1.48, + 1.08, + 1.46, + 2.12, + 2.3, + 1.1, + 1.27, + 4.9, + 1.94, + 5, + 1.46, + 1.7, + 1.6, + 1.7, + 2.1, + 1.56, + 1.22, + 1.81, + 1.76, + 5.3, + 1.16, + 1.1, + 1.4, + 4.4, + 4.2, + 2, + 4.3, + 1.3, + 1.45, + 1.37, + 1, + 1.47, + 1.23, + 4.5, + 2.6, + 1.41, + 1.19, + 2.4, + 1, + 1, + 1.8, + 1.24, + 1.5, + 1.8, + 2.4, + 2.6, + 1.03, + 1.08, + 1.19, + 1.65, + 1.66, + 1.22, + 2, + 4.7, + 2.18, + 1.24, + 4.4, + 1.28, + 5.5, + 1.8, + 1.9, + 4.6, + 1.25, + 2.1, + 2.33, + 1.61, + 1.04, + 1.6, + 1.17, + 0.95, + 1.2, + 2.8, + 5.4, + 1.7, + 2.6, + 1.6, + 1.18, + 1.1, + 1.4, + 2, + 5.1, + 2, + 2.4, + 1.69, + 0.98, + 1.14, + 1.27, + 1.6, + 1.31, + 1.29, + 1.25, + 2, + 1.05, + 5.2, + 1.22, + 1.4, + 1.6, + 1.18, + 3, + 3.2, + 1.78, + 1.67, + 1.9, + 4.4, + 1.6, + 2.94, + 1.6, + 0.99, + 6, + 1.43, + 3.1, + 1.86, + 4.7, + 1.3, + 3.3, + 1.9, + 1.08, + 2.7, + 1.79, + 1.13, + 4.3, + 1.47, + 1.1, + 1.75, + 1.08, + 1.03, + 4.6, + 1.06, + 1.56, + 1.62, + 1.33, + 1.61, + 1.32, + 1.06, + 1.41, + 4.8, + 1.5, + 1.26, + 2.1, + 1, + 2.97, + 1.6, + 1.89, + 1.53, + 4.8, + 4.6, + 1.12, + 0.98, + 1.5, + 1.16, + 1.6, + 1.38, + 1, + 1.92, + 4, + 1.12, + 2.81, + 1.36, + 0.99, + 1.4, + 1.8, + 1.65, + 2.14, + 1.5, + 4.6, + 2.5, + 1.8, + 1.66, + 2.6, + 1.17, + 2.3, + 1.4, + 1.9, + 2.27, + 0.97, + 1.7, + 1, + 1.45, + 1.6, + 2.5, + 1.8, + 1.7, + 1.63, + 3.14, + 1.02, + 1.7, + 1.9, + 1.29, + 1.31, + 1.41, + 1.5, + 2.03, + 1.6, + 1.48, + 1.44, + 2.4, + 1, + 1.87, + 1.58, + 2.5, + 1.5, + 1.3, + 2.09, + 1.71, + 0.99, + 1.2, + 4.3, + 1.8, + 1.28, + 1.8, + 1.18, + 1.25, + 1.17, + 1.26, + 2.22, + 1.11, + 2.55, + 1.23, + 1.3, + 1.15, + 1.9, + 1.66, + 1.4, + 1.16, + 2.6, + 2.64, + 5, + 1.25, + 1, + 4.7, + 1.3, + 2.63, + 2, + 4.5, + 1.27, + 1.58, + 1.9, + 1.73, + 2.2, + 5.4, + 2.52, + 1.8, + 1.38, + 1.21, + 1.23, + 1.99, + 1.34, + 1.28, + 2.09, + 0.96, + 1.35, + 2.06, + 1.49, + 1.16, + 1.81, + 0.95, + 1.25, + 1.9, + 1, + 1.99, + 1.69, + 1.22, + 1.33, + 2.2, + 2, + 2.37, + 2.61, + 1.8, + 1.1, + 1.6, + 2.38, + 1.08, + 1.65, + 1.51, + 1.12, + 1.34, + 1.2, + 1.16, + 1.21, + 1.35, + 4.3, + 2.12, + 1.7, + 1.2, + 2.6, + 2.3, + 1.21, + 1.37, + 2.6, + 3.4, + 1.34, + 1.81, + 2, + 1.11, + 1.2, + 1.13, + 1.06, + 0.95, + 2.4, + 1.2, + 2.1, + 4.5, + 1.02, + 1.8, + 2.1, + 3.5, + 1.6, + 0.95, + 2.43, + 1.11, + 2.17, + 2.03, + 1.23, + 1.23, + 1.02, + 1.39, + 4.2, + 1.09, + 1.4, + 2.13, + 3.2, + 1.42, + 2.34, + 1.43, + 1.23, + 2.3, + 1.9, + 1.4, + 1.34, + 4.1, + 2.31, + 2, + 1.44, + 0.97, + 0.98, + 1.42, + 2.01, + 1.54, + 1.5, + 2.19, + 1.5, + 1.6, + 4.8, + 4.3, + 2, + 1.17, + 1.13, + 1.26, + 1.44, + 0.95, + 1.6, + 1.1, + 2.02, + 1.7, + 1.83, + 0.95, + 1, + 1.5, + 1.57, + 2.1, + 1.38, + 2.71, + 1.4, + 4.4, + 2, + 1.7, + 2.9, + 1.1, + 4.3, + 1.04, + 1.21, + 1.4, + 1.7, + 1.2, + 1.97, + 1.3, + 2.6, + 1.42, + 2, + 1.7, + 1.09, + 1.17, + 1.12, + 2.09, + 0.97, + 2.46, + 1.17, + 1.65, + 1.6, + 1.04, + 1.11, + 1.5, + 1, + 4.8, + 1.15, + 0.99, + 1.13, + 2.1, + 1.93, + 2.1, + 1.1, + 2.54, + 1.48, + 2, + 1.12, + 4.7, + 1.47, + 1.84, + 1.4, + 2, + 2.06, + 1.7, + 1.6, + 0.97, + 1.15, + 5, + 1.89, + 1.09, + 5.2, + 1.8, + 1.7, + 1.42, + 1.9, + 1.01, + 1.6, + 1.65, + 2.3, + 1.7, + 1.6, + 1.47, + 0.98, + 0.96, + 4.2, + 1.57, + 2, + 1.3, + 1.86, + 1.89, + 1, + 1.12, + 1.06, + 1.2, + 1.5, + 1.23, + 1, + 2, + 1.6, + 4.2, + 1.69, + 1.07, + 1.7, + 1.7, + 1.71, + 1.76, + 2.6, + 1.6, + 1.2, + 2.3, + 1.11, + 2.05, + 1.59, + 1.19, + 5.7, + 2.49, + 1.3, + 2.2, + 4.5, + 1.07, + 1.3, + 1.5, + 1.18, + 1.69, + 1.6, + 1.4, + 1.1, + 1.43, + 1.19, + 1.26, + 5.2, + 1.71, + 1.8, + 1.14, + 1.4, + 2.65, + 1.04, + 1.12, + 2.16, + 1.12, + 1.6, + 1.9, + 2.07, + 2, + 4.6, + 1.9, + 1.2, + 1.41, + 1.1, + 1.8, + 0.98, + 1.69, + 1.3, + 1.05, + 2.58, + 1.4, + 1.6, + 1.7, + 2.7, + 1.33, + 1.6, + 2.7, + 1.7, + 1.3, + 1.6, + 2.1, + 1.4, + 1.7, + 2.87, + 4.6, + 1.04, + 1.8, + 2.6, + 4.5, + 1.3, + 1.9, + 1.3, + 0.99, + 2.4, + 2.5, + 1.8, + 1.25, + 1.5, + 1.19, + 1.6, + 1.07, + 1.7, + 2.51, + 1.59, + 1.23, + 1.47, + 1.09, + 2.7, + 1.14, + 1.4, + 1.6, + 1.2, + 2.1, + 1.3, + 2.6, + 1.2, + 1.3, + 1.4, + 1.28, + 2, + 1.18, + 4.2, + 1.8, + 1.69, + 1.8, + 1.22, + 1.46, + 1.4, + 1.2, + 1.41, + 4.1, + 1.7, + 1.07, + 1.1, + 1.4, + 2.1, + 1, + 1.24, + 1.25, + 1.9, + 2.3, + 1.5, + 1.2, + 1.4, + 1.19, + 4.9, + 1.01, + 1.31, + 2.4, + 1.4, + 1.1, + 1.5, + 1.2, + 2.7, + 1.2, + 1.6, + 1.7, + 1.1, + 2.7, + 1.2, + 1, + 2.2, + 1.03, + 1.23, + 1.05, + 1.4, + 1.6, + 1.6, + 1.2, + 2.1, + 1.1, + 1.16, + 1.36, + 1.47, + 2.8, + 1.99, + 4.7, + 1.72, + 2.4, + 1.11, + 1, + 1.77, + 1.36, + 4.4, + 1.27, + 5.3, + 1.65, + 1.09, + 1.08, + 1.46, + 2.36, + 0.97, + 0.96, + 2.8, + 2.25, + 1.4, + 1.85, + 1.08, + 1.49, + 0.99, + 1.78, + 1.41, + 1.21, + 1.66, + 4.6, + 1.46, + 1.26, + 0.96, + 4.6, + 1.14, + 2.2, + 1, + 0.98, + 1.57, + 1.25, + 1.36, + 1.03, + 1.21, + 1.88, + 1.69, + 3.02, + 1.17, + 1.08, + 1.4, + 1.7, + 2.05, + 1.41, + 2.19, + 2.7, + 1.19, + 4.7, + 1.04, + 1.1, + 1.18, + 4.7, + 1.08, + 1.16, + 1.34, + 1.19, + 2.4, + 2.6, + 1.69, + 1.5, + 1.5, + 4.3, + 4.3, + 2.2, + 1.6, + 1.3, + 1.4, + 1.44, + 2.13, + 1.48, + 4.9, + 1.12, + 1.75, + 1.87, + 1.7, + 1.08, + 1.1, + 1.71, + 1.5, + 2.37, + 3.08, + 1.01, + 4.3, + 0.97, + 1.45, + 1.4, + 1.44, + 1.13, + 1.28, + 2.3, + 1.7, + 1.94, + 1.1, + 1.98, + 1.9, + 1.1, + 1.32, + 0.97, + 1.4, + 1.58, + 3, + 1.58, + 4.2, + 1.49, + 2.39, + 4.7, + 2.46, + 3.25, + 1.51, + 1, + 4.8, + 1.4, + 1.91, + 2.2, + 1.27, + 2.31, + 1.41, + 1, + 1.08, + 1.42, + 1.32, + 2.26, + 2.5, + 3.4, + 2.7, + 1.27, + 1.67, + 1.01, + 1.1, + 1.18, + 1.56, + 1.3, + 1.4, + 2.6, + 1.8, + 1.52, + 1.35, + 1.43, + 1.71, + 1.5, + 1.6, + 1.3, + 2.5, + 2.66, + 2, + 2, + 1.3, + 1.6, + 1.02, + 1.05, + 1.1, + 1.8, + 2, + 1.5, + 1.52, + 2.36, + 1.1, + 1.4, + 1.2, + 1.82, + 1.9, + 1.2, + 1.06, + 2.1, + 1.5, + 2.7, + 2, + 2.5, + 1.2, + 1.3, + 1.6, + 1.08, + 1.72, + 3.3, + 4.4, + 4.7, + 1.6, + 1.1, + 1.16, + 1.2, + 1.4, + 1.01, + 1.1, + 1.1, + 2.13, + 1.4, + 1.3, + 1.4, + 4.9, + 1.08, + 4.8, + 2.39, + 1.2, + 1, + 1.3, + 1.6, + 2, + 4.2, + 1.08, + 0.97, + 1.02, + 4.5, + 1.48, + 4.5, + 1.68, + 1.7, + 5, + 1.2, + 2.06, + 1.07, + 1.73, + 1, + 1, + 1.4, + 1.1, + 4.6, + 1.3, + 1.4, + 1.9, + 0.97, + 1.01, + 2, + 1.1, + 2, + 1.5, + 1.31, + 1.22, + 2, + 1.7, + 1.6, + 1.04, + 1.2, + 1.5, + 1.28, + 2.8, + 2.82, + 1.4, + 1.69, + 1, + 1.1, + 1.06, + 5.1, + 1.27, + 1.3, + 1.3, + 1.37, + 4, + 1.6, + 1.1, + 4.4, + 1.75, + 1.37, + 2.5, + 1.1, + 4.1, + 1.5, + 1.2, + 1.59, + 1.44, + 1.72, + 1.1, + 2.6, + 3.2, + 2.7, + 1.42, + 1.71, + 1.81, + 1.3, + 2.13, + 4.2, + 4.1, + 2, + 1.9, + 1, + 1.04, + 1.1, + 1.59, + 2.95, + 1, + 1.45, + 1.11, + 1.44, + 2, + 1.6, + 1.15, + 2.05, + 1.4, + 1.16, + 1.53, + 1.8, + 2, + 1.3, + 1.22, + 5.1, + 1.75, + 4.9, + 2.5, + 1, + 1.3, + 1, + 1.79, + 1.8, + 1.5, + 2.1, + 1.5, + 2.7, + 4.5, + 1.9, + 1.2, + 4.3, + 2.02, + 2.38, + 3.2, + 2.8, + 2.7, + 1.2, + 1.87, + 5.5, + 1.6, + 1.4, + 1, + 1, + 1, + 1, + 1.1, + 1.1, + 2.43, + 1.2, + 1.4, + 1.1, + 2.3, + 4.2, + 1.1, + 4.7, + 1.82, + 2.5, + 0.96, + 1, + 4.1, + 3.5, + 3.49, + 4.7, + 1.38, + 1.77, + 1.1, + 1.5, + 1.2, + 3, + 1.9, + 1.87, + 2.5, + 1.4, + 1.1, + 4.1, + 1.28, + 2, + 1.1, + 1.52, + 4.8, + 1.25, + 1.1, + 1.1, + 1.6, + 4.9, + 1.84, + 1.19, + 2.9, + 1.1, + 1.16, + 2.6, + 1, + 1.27, + 2.28, + 1.6, + 1.53, + 1.34, + 1.46, + 1.05, + 2.29, + 1.1, + 1.2, + 1.1, + 1.53, + 1.8, + 2, + 1.28, + 1.2, + 1.41, + 2, + 1.2, + 2.8, + 2.59, + 1.6, + 1.6, + 1.55, + 0.98, + 1.2, + 1.4, + 1.58, + 1.5, + 1.97, + 1.5, + 5.2, + 1.1, + 1.22, + 1.6, + 4.4, + 3.1, + 1.1, + 2.24, + 2, + 1.1, + 1.37, + 2.5, + 1.48, + 1.54, + 2.5, + 1.08, + 1.52, + 2.3, + 1.2, + 1.43, + 1.08, + 1.7, + 1.5, + 1.2, + 1.2, + 1.4, + 1.49, + 1.8, + 1.45, + 1.71, + 5, + 4, + 5.5, + 1.62, + 1.67, + 1.02, + 2.7, + 1.8, + 2.3, + 4.5, + 1.59, + 1.2, + 1.55, + 2.1, + 2, + 4.2, + 1.9, + 1.11, + 1.2, + 2.6, + 1.9, + 4.5, + 1.2, + 1.78, + 1.6, + 1, + 1, + 2.7, + 1.3, + 1.8, + 4.2, + 1.59, + 1.53, + 1.5, + 1.2, + 4.4, + 1.18, + 1.2, + 1.7, + 1.92, + 2.7, + 2.71, + 1.6, + 1.3, + 1.6, + 4.7, + 2, + 1.2, + 1.7, + 1.14, + 4.3, + 1.27, + 1.4, + 1.68, + 4.2, + 4.2, + 1.71, + 1, + 0.97, + 2.2, + 1.8, + 2.26, + 4.9, + 3, + 2.5, + 1.1, + 1.38, + 1.79, + 2.1, + 2.87, + 2.5, + 4.4, + 1.92, + 1.05, + 4.7, + 1.02, + 1.68, + 1.6, + 1.05, + 1.3, + 1.8, + 1.8, + 4.7, + 5.3, + 1.13, + 1.22, + 1.1, + 1.21, + 1.03, + 1.27, + 1.25, + 1.14, + 2.6, + 1.43, + 2.2, + 4.4, + 1.2, + 0.97, + 1.3, + 1.4, + 1.8, + 1.19, + 2.7, + 1.6, + 1.37, + 1.3, + 4.2, + 1.4, + 2.8, + 2.9, + 1.08, + 1.38, + 2.1, + 2.18, + 1.2, + 4.6, + 1.66, + 5, + 1.9, + 1.5, + 2.3, + 3, + 1.4, + 1.6, + 4.4, + 1.45, + 1.16, + 1.31, + 1.5, + 1.58, + 1.3, + 1.7, + 1.7, + 2.5, + 2.5, + 1.65, + 1.3, + 2, + 2.08, + 1.3, + 2.51, + 5, + 1.74, + 2.76, + 1.5, + 1.79, + 1.06, + 1.82, + 1.8, + 2.8, + 1.62, + 1.71, + 1.68, + 1.51, + 1.2, + 1.5, + 1.01, + 2.78, + 1.9, + 4.5, + 1.4, + 3.2, + 1.81, + 2.8, + 2.8, + 1.09, + 1.41, + 1.31, + 1.3, + 4, + 2.27, + 1.72, + 1.5, + 1.23, + 1.52, + 1.18, + 4.7, + 1.2, + 1.53, + 1.15, + 1.25, + 1.9, + 1.8, + 1.3, + 4.4, + 1.77, + 1.8, + 1.1, + 1.25, + 1, + 1.18, + 4.2, + 1.4, + 2.46, + 1.8, + 1.15, + 1.25, + 1.07, + 1.94, + 4.2, + 0.96, + 1.2, + 1.14, + 1.25, + 2.27, + 1.4, + 1, + 1.28, + 2.6, + 1, + 1.28, + 1.1, + 2.23, + 3.34, + 1.9, + 1.16, + 1.1, + 1.19, + 1.74, + 4.5, + 1.7, + 1.14, + 1.46, + 2, + 1.2, + 2.3, + 5, + 1.62, + 3, + 2.26, + 1.03, + 1.1, + 5.6, + 2, + 1.05, + 1.64, + 1.98, + 1.12, + 1.6, + 1.8, + 1.9, + 0.95, + 1, + 4.4, + 2.07, + 2.39, + 1.12, + 1, + 0.97, + 1.05, + 2.4, + 1.16, + 2.6, + 1.32, + 2.53, + 4.5, + 4.9, + 1, + 1.6, + 1.15, + 2.61, + 1, + 1.9, + 1.03, + 1.63, + 2.24, + 1.51, + 1.03, + 1.62, + 1.3, + 1.7, + 1.1, + 1.6, + 1.4, + 4.9, + 1.5, + 1.2, + 1.9, + 1.93, + 1.13, + 0.96, + 1.6, + 4.4, + 1.1, + 5.4, + 4.8, + 4.7, + 1.7, + 2.5, + 1.1, + 5.1, + 4.3, + 2.32, + 1.35, + 1.84, + 1.37, + 1.9, + 2, + 2, + 1.1, + 1.35, + 1.1, + 1.2, + 3.3, + 1.3, + 4, + 2.6, + 2.8, + 2, + 1.7, + 1.79, + 1, + 1.37, + 2.3, + 2.4, + 4.7, + 1.3, + 1.8, + 1.94, + 1.2, + 1.36, + 1.6, + 1.5, + 1.19, + 1.4, + 4.9, + 1.41, + 2.9, + 1.11, + 1.3, + 1.2, + 2.1, + 1.9, + 1.24, + 1.6, + 2.4, + 1.6, + 1.21, + 1.95, + 1.2, + 1.44, + 1.5, + 1.17, + 4.6, + 4.9, + 1.2, + 1.37, + 1.6, + 1.4, + 1.3, + 2.7, + 1.38, + 1.3, + 1.2, + 2, + 2, + 1.97, + 1.5, + 1.53, + 1.6, + 1.3, + 2.4, + 1.6, + 2.3, + 1.4, + 1.03, + 1.68, + 3.21, + 2.9, + 1.1, + 1.09, + 1.52, + 2.1, + 1.2, + 1.6, + 1.4, + 2.4, + 1.4, + 1, + 1.5, + 1.45, + 1.41, + 1.1, + 1.23, + 1.3, + 2.05, + 1, + 1.3, + 1.2, + 1.4, + 1.1, + 1.36, + 1.2, + 2.75, + 2.2, + 5.3, + 1.2, + 1.92, + 1.5, + 1.4, + 3.1, + 1.5, + 1.17, + 1.2, + 1.12, + 1.49, + 1.1, + 1.31, + 1.45, + 1.63, + 4.4, + 2.7, + 1.18, + 1.5, + 2.3, + 2.6, + 1.4, + 2, + 1.62, + 1.19, + 4.7, + 5.3, + 2.3, + 1.18, + 2.19, + 1.8, + 1.6, + 1.7, + 1.41, + 2.4, + 1.6, + 1.4, + 1.5, + 1.59, + 1.16, + 1.17, + 1.8, + 1.5, + 4.8, + 1.8, + 2, + 1.1, + 1.14, + 1.6, + 0.96, + 1, + 1.26, + 1.56, + 1.2, + 2.5, + 1.1, + 4.2, + 1.4, + 3, + 1.08, + 1, + 2.37, + 1.11, + 2.2, + 1.3, + 2.8, + 3.2, + 4.9, + 1.12, + 1.78, + 0.96, + 1.94, + 1.95, + 1, + 1.54, + 1.4, + 1.6, + 3.5, + 3.4, + 1.5, + 2.4, + 1.44, + 1.2, + 2.9, + 1, + 1.66, + 1.3, + 1.32, + 1, + 1.47, + 1.15, + 1.3, + 1.57, + 1.6, + 1.3, + 1.12, + 1.9, + 4.2, + 1.16, + 1.1, + 1, + 1.3, + 1.22, + 1.27, + 1.6, + 1.61, + 1.6, + 1, + 1.7, + 1.14, + 1, + 1.36, + 4.5, + 1.9, + 1.15, + 1.22, + 4.7, + 1.68, + 1.1, + 1.3, + 4.8, + 4.4, + 1.24, + 1.99, + 1.9, + 1.73, + 1.02, + 1.62, + 4.5, + 1.3, + 1.46, + 1.4, + 1.2, + 1.5, + 3, + 1.3, + 0.98, + 1.1, + 1.3, + 1.59, + 1.55, + 1.32, + 1.78, + 1.34, + 1.67, + 1.26, + 2.5, + 1.8, + 1.04, + 1.14, + 1.8, + 1.43, + 1.3, + 1.3, + 1.8, + 1.36, + 1.4, + 3.9, + 1.3, + 2.2, + 1.9, + 1.1, + 2.4, + 2.6, + 1.08, + 1.03, + 1.6, + 1.85, + 4.1, + 4.1, + 1.23, + 1.6, + 1.8, + 1.11, + 1.2, + 1.73, + 0.95, + 1.8, + 1.5, + 1.06, + 2.4, + 1.4, + 1.78, + 2, + 2, + 2.9, + 1.28, + 1, + 1.5, + 1.13, + 1.01, + 1.77, + 1.35, + 2.7, + 2.5, + 1.2, + 2.6, + 1.2, + 1.95, + 1.4, + 2.1, + 1.4, + 1.9, + 1.3, + 1.07, + 1.33, + 2.7, + 1.29, + 1.52, + 1.5, + 1.33, + 1.5, + 1.1, + 1.7, + 1.4, + 1.7, + 1.3, + 1.49, + 1.3, + 3, + 1.06, + 1.06, + 1.65, + 1.21, + 4.2, + 2, + 1.72, + 1.37, + 1.16, + 4.6, + 1, + 2, + 1.29, + 4.3, + 1.1, + 1.9, + 1.79, + 1.07, + 1.7, + 1.4, + 2.4, + 1.3, + 1.4, + 2.15, + 1, + 2, + 1, + 1.72, + 2.2, + 1.15, + 2.4, + 2.14, + 1.58, + 1.5, + 2.36, + 1.19, + 1.3, + 1.48, + 1.09, + 1.2, + 1.7, + 1.35, + 1.28, + 2.62, + 1.11, + 2.03, + 5.3, + 1.2, + 5, + 2.7, + 1.02, + 1.8, + 1.9, + 2.23, + 1.11, + 1.57, + 2, + 1.76, + 1.4, + 1.2, + 2.7, + 1.6, + 1.8, + 2, + 1.2, + 1.8, + 4.7, + 1.3, + 4.7, + 2.4, + 2.25, + 1.82, + 1.9, + 1.6, + 4.3, + 1.6, + 1.9, + 4.8, + 1, + 1.21, + 1, + 0.98, + 1.67, + 4.2, + 1.9, + 1.23, + 1, + 1, + 1.12, + 1.7, + 1.1, + 4.8, + 2.77, + 1.75, + 1.59, + 4.2, + 2.8, + 1.81, + 2.97, + 1.6, + 1.6, + 5.4, + 1.3, + 0.95, + 1.1, + 1.08, + 1.8, + 1.9, + 1.35, + 1.7, + 1.89, + 5.8, + 1.3, + 2.6, + 2.1, + 1.6, + 1.4, + 1.19, + 1.78, + 1.14, + 1.51, + 1.37, + 1.46, + 1.05, + 1, + 1.2, + 5.4, + 0.98, + 4.3, + 1.1, + 1.17, + 1.7, + 1.39, + 1.2, + 1.66, + 1.82, + 1.66, + 3.25, + 1.4, + 1.2, + 0.98, + 2.2, + 1.11, + 1.5, + 1.41, + 1.2, + 2, + 1.6, + 1.8, + 2.2, + 1.2, + 1.4, + 1.6, + 1.1, + 2, + 1.38, + 1.03, + 1.49, + 1.46, + 1.48, + 1.82, + 2.13, + 2.6, + 2.73, + 1.89, + 1.3, + 1.01, + 1.8, + 1.5, + 1.15, + 2.7, + 1.5, + 1.6, + 1.32, + 2.3, + 4.2, + 1, + 2.34, + 1.64, + 2.4, + 2.34, + 1.31, + 1.3, + 1.5, + 1.4, + 1.9, + 2.3, + 4.8, + 1.7, + 1.37, + 1.6, + 1.75, + 1.22, + 2.6, + 1.4, + 1.33, + 4.6, + 1.2, + 1.9, + 1.69, + 1.11, + 1.6, + 1, + 1.6, + 1.49, + 1.4, + 1.7, + 1.35, + 1.28, + 1.7, + 1.7, + 1.7, + 1.2, + 3.4, + 1.38, + 4.4, + 1.35, + 4, + 2.5, + 4.9, + 1.7, + 1.1, + 3, + 1.11, + 1.3, + 1.7, + 1.5, + 1.3, + 1.03, + 1.42, + 2, + 1.6, + 1.1, + 2.87, + 2.2, + 1.7, + 1.17, + 4.9, + 5, + 1.03, + 4.6, + 1.5, + 0.97, + 0.96, + 1.14, + 1.46, + 1.16, + 1.5, + 2.7, + 6.4, + 1.75, + 1.4, + 1.3, + 2.3, + 1.73, + 1.13, + 1.7, + 1.5, + 1.3, + 1.38, + 2.1, + 1.67, + 1.36, + 1.8, + 1.2, + 1.2, + 1.1, + 1.8, + 1.1, + 2, + 5.1, + 1, + 1.1, + 4.1, + 1, + 3.9, + 1.5, + 1.7, + 1.94, + 1.1, + 4.4, + 4.5, + 2, + 2.37, + 1.13, + 1.63, + 1, + 1.86, + 1.13, + 1.58, + 4.3, + 1.42, + 1.13, + 1.71, + 1.6, + 1.5, + 2.5, + 1, + 5, + 1.72, + 4.3, + 1.3, + 1.52, + 1.11, + 1.15, + 1.32, + 1.2, + 1.1, + 1.01, + 1.5, + 1.25, + 3.1, + 5.9, + 1.72, + 1.07, + 2.6, + 4.2, + 1.44, + 1.4, + 1.1, + 1.1, + 4.3, + 1.2, + 1.41, + 2.2, + 1.04, + 2.06, + 2, + 1.27, + 1.17, + 1.29, + 2.1, + 1.04, + 1.1, + 2.5, + 1.4, + 1.62, + 1.5, + 1.05, + 1.42, + 5.1, + 1.32, + 1, + 1.36, + 2, + 1.99, + 3, + 2.11, + 1.5, + 1.51, + 1.6, + 1.48, + 1.55, + 1.12, + 1.04, + 2.41, + 1.3, + 1.12, + 1.7, + 1.1, + 1.4, + 1.3, + 2, + 4.6, + 1.8, + 0.98, + 1.21, + 1.1, + 4.6, + 1.19, + 4.4, + 1.03, + 2.7, + 4.3, + 1.78, + 0.96, + 4.7, + 1.9, + 2.2, + 1.6, + 1.5, + 1.8, + 1.5, + 1.04, + 2, + 1.32, + 4.6, + 1.86, + 1.46, + 1, + 4.2, + 1.46, + 4.2, + 4.6, + 1.8, + 2.06, + 0.99, + 1, + 2.36, + 1.81, + 1.42, + 1.8, + 1.06, + 0.95, + 1.23, + 1.04, + 4.9, + 1.4, + 1.3, + 0.99, + 5, + 1.2, + 2.7, + 2.7, + 1.34, + 2.91, + 1.5, + 1.11, + 1.9, + 1.4, + 1.1, + 1, + 2.5, + 1.3, + 1.15, + 3.5, + 1.01, + 1.2, + 1.4, + 1.6, + 2.17, + 1.1, + 4.7, + 1.79, + 2.04, + 4.4, + 0.95, + 1.27, + 2.1, + 4.4, + 4.5, + 1.64, + 4.6, + 1.01, + 1.6, + 1.6, + 1.23, + 5, + 1.7, + 1.02, + 1.7, + 1, + 1.8, + 2.32, + 1.9, + 1.4, + 1.2, + 1.4, + 4.2, + 0.97, + 2.07, + 1.3, + 1.1, + 4.3, + 1.5, + 1.1, + 1.2, + 1.1, + 1.09, + 1.1, + 1.41, + 2.4, + 1.71, + 1, + 1.15, + 1.3, + 1.3, + 2.11, + 1.7, + 1.5, + 1.3, + 1.8, + 2.2, + 0.97, + 1.77, + 4.2, + 1.53, + 1.17, + 1.05, + 1.8, + 1.9, + 1.6, + 1.4, + 4.6, + 4.7, + 2.04, + 1.4, + 1.5, + 1.1, + 1.7, + 1.51, + 2.2, + 2.2, + 1.06, + 1.6, + 1.1, + 1.11, + 1.11, + 1.6, + 2.5, + 2.4, + 1.82, + 1.93, + 2.3, + 4.1, + 1.4, + 3.5, + 1.61, + 1.46, + 1.94, + 2.03, + 5, + 1.6, + 1.02, + 1.57, + 2.3, + 1.24, + 0.95, + 1.08, + 1.6, + 1.6, + 2.26, + 1.11, + 1.3, + 2.1, + 1.6, + 1.9, + 1.7, + 2.1, + 1.51, + 1.13, + 1.5, + 1.23, + 2.3, + 1.1, + 1.5, + 1.8, + 1.54, + 1.3, + 2.14, + 4.3, + 2.39, + 1.18, + 4.9, + 0.97, + 1.59, + 1.3, + 1.5, + 1, + 1.3, + 2.1, + 1.2, + 1.72, + 2.26, + 2.2, + 1.35, + 0.99, + 1.55, + 1.31, + 1.02, + 4.2, + 1.1, + 2.23, + 2.47, + 1.6, + 1.9, + 1.98, + 1.01, + 1, + 1.6, + 1.9, + 1.4, + 1.5, + 4.5, + 1.01, + 2.71, + 4, + 1.3, + 4.5, + 4.3, + 4.3, + 1.94, + 1.9, + 2.2, + 4.4, + 1.4, + 1.7, + 1.39, + 1.47, + 4, + 1, + 3.1, + 1.29, + 4.5, + 1.1, + 1.4, + 2.09, + 5.8, + 1.8, + 1.2, + 2.2, + 1.32, + 4.3, + 1.5, + 1.12, + 1.4, + 4, + 1.5, + 1.7, + 1.2, + 2.47, + 1.5, + 1.06, + 2.08, + 1.4, + 1.11, + 2.6, + 4, + 1.7, + 1.8, + 1.2, + 1.5, + 4.3, + 1.9, + 1, + 1.26, + 1.79, + 2.12, + 1.6, + 4.6, + 1.02, + 1.71, + 1.3, + 0.99, + 3.3, + 1.1, + 1.76, + 1.19, + 1.19, + 1.1, + 1.9, + 4.6, + 1.8, + 3.2, + 1.1, + 1.86, + 4.4, + 2.2, + 2.54, + 2.5, + 1.45, + 2.65, + 3.34, + 1.66, + 1.4, + 1.76, + 1.99, + 4.1, + 2.3, + 1.2, + 1.17, + 1.28, + 1.1, + 4.6, + 1.8, + 1.07, + 2.4, + 2.48, + 4.2, + 1, + 1.48, + 1.19, + 2.1, + 3.8, + 2.17, + 1.32, + 5, + 2, + 1, + 1.4, + 2, + 1.9, + 4.4, + 1.44, + 1.02, + 1.07, + 1.8, + 1.5, + 1.3, + 1.6, + 1.03, + 1.4, + 1.35, + 4.5, + 1, + 2.12, + 1.23, + 4.6, + 1.58, + 3.1, + 4.9, + 4.9, + 1, + 5.7, + 2.8, + 1.26, + 1.2, + 1.38, + 2.2, + 1, + 1.2, + 2.51, + 2.07, + 1.83, + 2.8, + 1, + 1.74, + 1.2, + 1.2, + 2.6, + 1.1, + 2.28, + 4.5, + 1.23, + 1.14, + 1.68, + 1.4, + 2.7, + 2.94, + 4.4, + 1.1, + 2.9, + 1.7, + 5, + 1.14, + 2.49, + 1.19, + 1.09, + 1.35, + 1.85, + 4.4, + 4.5, + 1.44, + 2.68, + 1.11, + 2.7, + 4.4, + 1.31, + 1.56, + 2.6, + 2, + 3.1, + 4.3, + 1.9, + 1.1, + 1.24, + 1.58, + 3.8, + 4.2, + 1.15, + 1, + 1.59, + 4.9, + 4.2, + 1.06, + 2.34, + 4.4, + 1.1, + 0.96, + 2.5, + 1.78, + 1.1, + 5.1, + 4.8, + 1.2, + 1.6, + 4.3, + 1.35, + 6.1, + 1.4, + 1.7, + 1.5, + 4.6, + 2.6, + 2.3, + 1.05, + 4.6, + 1.2, + 1.3, + 1.79, + 3.4, + 1.41, + 1.3, + 1.7, + 1.5, + 5.8, + 2, + 1.5, + 1.09, + 1.6, + 2.2, + 1.9, + 1.5, + 1.12, + 4.5, + 3.32, + 1.35, + 1.14, + 1.1, + 3.5, + 4.7, + 1, + 2, + 1.31, + 1.63, + 1.2, + 3.6, + 1.9, + 1.48, + 2.41, + 4.1, + 1.32, + 4.1, + 1.27, + 1.5, + 4.4, + 1.19, + 4.2, + 2, + 4.7, + 1.1, + 1.77, + 2.11, + 4.5, + 1.25, + 1.8, + 1.3, + 1.58, + 1.5, + 4.5, + 4.4, + 1.88, + 1.17, + 0.95, + 1.9, + 2.3, + 1.3, + 1, + 0.95, + 1.4, + 1.2, + 1.1, + 1.78, + 1.19, + 2.9, + 4.2, + 3.28, + 2.4, + 1.3, + 1, + 2.5, + 2.6, + 2.2, + 2.6, + 1.3, + 2.05, + 1.4, + 2.6, + 1.16, + 1.2, + 2.19, + 4.3, + 4.4, + 1.3, + 1.8, + 1.37, + 4.6, + 1, + 2.1, + 1.1, + 5.3, + 1.1, + 1.03, + 1.4, + 1.4, + 4.2, + 4.9, + 1.22, + 1.8, + 3.91, + 2.5, + 1.8, + 4.8, + 0.96, + 1.88, + 1.12, + 4, + 2.1, + 1.02, + 1.46, + 1.8, + 1.12, + 2.87, + 1.89, + 1.1, + 1.9, + 1.1, + 4.3, + 2.3, + 1.7, + 0.96, + 2.4, + 2.5, + 1.9, + 1.4, + 2, + 1.43, + 3, + 1.1, + 1.8, + 0.97, + 5.7, + 1.7, + 1.34, + 1.1, + 1.35, + 1.91, + 1.9, + 1.62, + 1.6, + 1.22, + 4.5, + 1.19, + 1.64, + 1.88, + 2.2, + 1.68, + 1.55, + 1.2, + 1.63, + 1.7, + 1.6, + 1.6, + 1.9, + 1.26, + 2.3, + 2.15, + 1.9, + 1.1, + 1.48, + 1.7, + 1.13, + 3.4, + 1.1, + 3.01, + 1.4, + 2.14, + 1.7, + 1.03, + 1.01, + 1.6, + 0.95, + 1.11, + 1.32, + 1.04, + 3.06, + 1.72, + 1.36, + 1.5, + 1.93, + 1.6, + 1.65, + 2.05, + 2.6, + 1.7, + 2.1, + 1.4, + 1.3, + 4.3, + 1.3, + 1.7, + 4.5, + 1.3, + 2.05, + 1.6, + 1.3, + 1.07, + 1.6, + 1.03, + 1.7, + 4.3, + 1.9, + 1.4, + 4.4, + 4.5, + 1, + 2.3, + 1.59, + 2.4, + 1.74, + 1.4, + 1.74, + 1.33, + 1.5, + 1.8, + 2.2, + 1.19, + 1.9, + 1.2, + 1.05, + 1.05, + 1.1, + 1.45, + 1.9, + 1.1, + 1.4, + 2.6, + 1.43, + 1.39, + 1.1, + 1.52, + 1.6, + 1.6, + 2.09, + 1.4, + 1.3, + 1.3, + 4.5, + 1.6, + 2.03, + 1.9, + 2.21, + 3.5, + 1.45, + 1.49, + 1.2, + 1.9, + 1.79, + 1, + 1.71, + 4.4, + 1, + 2.9, + 1.5, + 2.5, + 1.88, + 2.4, + 1.34, + 1.2, + 1.17, + 1.8, + 5.5, + 4.5, + 1.12, + 1.3, + 1.1, + 2, + 2, + 4.7, + 0.97, + 4.2, + 1.98, + 1.64, + 1.12, + 2.9, + 1.2, + 1, + 2.8, + 1.04, + 1.6, + 1.7, + 2.1, + 1.78, + 1.29, + 2.5, + 1.34, + 1.73, + 1.92, + 2.09, + 1.1, + 4.2, + 4.6, + 1.82, + 2.86, + 1.7, + 4.6, + 1.4, + 2.6, + 2.8, + 1.07, + 1.19, + 1.4, + 1.31, + 1.13, + 4.4, + 2.4, + 1.7, + 2.7, + 3, + 1.61, + 1.6, + 2.1, + 1.72, + 1.5, + 4.3, + 1.29, + 1.5, + 1.2, + 1.4, + 4.2, + 1.85, + 1.45, + 2.12, + 1.26, + 1.87, + 2.02, + 1.21, + 1.88, + 1.76, + 1.1, + 1.85, + 1.81, + 1.83, + 1.4, + 2.6, + 1.1, + 1.75, + 1.7, + 1.53, + 1.9, + 2.5, + 1.24, + 4.8, + 1.18, + 1.7, + 2.8, + 1.54, + 4.5, + 0.97, + 2, + 2.1, + 1.6, + 1.59, + 4.5, + 2.8, + 2.8, + 2, + 0.97, + 1.32, + 3.4, + 1.52, + 1.22, + 2.2, + 1.56, + 5.2, + 1, + 1.29, + 1.65, + 1.7, + 4.1, + 1.65, + 2.74, + 1.24, + 1.42, + 1.5, + 1.5, + 1.4, + 4.4, + 2, + 1.65, + 1.08, + 1.64, + 1.93, + 1.05, + 2.6, + 1.4, + 1.8, + 1, + 3.1, + 1.2, + 2.2, + 1.5, + 4.5, + 2, + 1.3, + 1.3, + 1.58, + 1.5, + 1.2, + 1, + 1, + 1.49, + 1.09, + 1.43, + 1.81, + 1.2, + 1.2, + 1.47, + 1.64, + 4.8, + 1.4, + 1.76, + 1.8, + 1.87, + 1.4, + 1.16, + 2.4, + 3.9, + 3.2, + 1.31, + 1.2, + 1.81, + 1.2, + 3.2, + 1.1, + 1.8, + 1.4, + 1.6, + 3, + 1.8, + 1.6, + 1.01, + 1.8, + 1.2, + 1.19, + 2.23, + 1.82, + 2.5, + 1.44, + 4.8, + 1.08, + 1.44, + 1.8, + 1.35, + 1.4, + 1.9, + 2.4, + 1.6, + 0.98, + 2.49, + 1.3, + 1.4, + 1.2, + 1.3, + 1.8, + 1, + 1.16, + 1, + 1.1, + 1.2, + 2.2, + 1.5, + 1.1, + 1.4, + 1.33, + 1.41, + 2.3, + 1, + 1.6, + 2.63, + 1.4, + 1.2, + 2.06, + 1.05, + 3.1, + 1.1, + 1.1, + 1.4, + 1.72, + 2, + 4.5, + 1, + 1.22, + 2.27, + 3.1, + 1.9, + 2.7, + 5, + 1.3, + 1.3, + 5.7, + 1, + 1.5, + 2.34, + 4.4, + 2.26, + 4.7, + 1.8, + 5.2, + 5.9, + 1.3, + 1.33, + 1.5, + 1.6, + 1.5, + 1.05, + 1.19, + 1, + 1.3, + 2, + 2.31, + 1.4, + 1.1, + 1.45, + 1.4, + 6.4, + 2.51, + 1, + 2, + 2.5, + 1.2, + 1.79, + 1.5, + 1.15, + 1.3, + 1.27, + 2.2, + 1.7, + 2.71, + 1.69, + 1.44, + 2.1, + 1.2, + 1.5, + 3.65, + 3.18, + 1.4, + 6.1, + 1, + 5.3, + 4.4, + 1.2, + 0.95, + 4.9, + 2.4, + 4.6, + 1.14, + 4.4, + 4.1, + 2.1, + 1.5, + 5, + 1.44, + 2.2, + 5.3, + 2.76, + 2.13, + 2, + 1.8, + 1.37, + 1.47, + 2.38, + 1.06, + 2.21, + 1, + 1.1, + 5, + 1.05, + 2.7, + 1.25, + 1.3, + 1.62, + 1.9, + 1.08, + 1.65, + 1.97, + 2.38, + 1.3, + 1.1, + 1.89, + 2.7, + 1.58, + 1.1, + 1.74, + 1.6, + 4.7, + 1.07, + 1.89, + 2, + 1.5, + 1.3, + 1.2, + 1, + 1.05, + 1, + 1.76, + 1.1, + 3.7, + 1.1, + 2.13, + 4.9, + 1.6, + 1.1, + 1.46, + 2.2, + 1.43, + 1.6, + 1.21, + 1.04, + 2.8, + 2.56, + 2.6, + 1.4, + 1.53, + 1.5, + 1.81, + 1.12, + 1.76, + 1.67, + 3, + 1.36, + 1.6, + 2.2, + 1.93, + 1.1, + 1.7, + 1.5, + 1.25, + 1.6, + 1.1, + 2.7, + 1.5, + 2.3, + 1, + 2, + 1, + 5.3, + 4.8, + 1.7, + 2.1, + 1.4, + 1.2, + 1.9, + 1.4, + 1.9, + 1.6, + 1.15, + 1.22, + 1.09, + 2.4, + 1.7, + 1.2, + 1.86, + 1.61, + 1.3, + 4.6, + 2.35, + 2.5, + 1.94, + 1.07, + 1.47, + 1.07, + 4, + 4.9, + 4.9, + 2.75, + 1.9, + 1.58, + 2.7, + 2.8, + 1.14, + 6.1, + 2, + 1.1, + 1.31, + 1.47, + 4.5, + 2.04, + 1.14, + 2.5, + 1.52, + 5, + 1.9, + 1.8, + 1.8, + 2.5, + 1.38, + 3, + 1.93, + 4.6, + 2.6, + 4.6, + 1.43, + 1, + 4.7, + 1.3, + 2.4, + 3.2, + 2.6, + 0.96, + 1.65, + 1.1, + 1.5, + 1.7, + 1.4, + 1.4, + 1.4, + 1.74, + 1.7, + 1.3, + 1.2, + 4.9, + 1.62, + 1.4, + 2.3, + 1.19, + 1.9, + 4, + 2.3, + 2.2, + 3, + 3.6, + 2.22, + 1.28, + 1.1, + 5.2, + 5.2, + 1.1, + 1.38, + 1.43, + 1.3, + 2.9, + 1.44, + 1.3, + 1.2, + 1.85, + 1.05, + 1.61, + 3.65, + 1.84, + 2.8, + 1.32, + 2.76, + 3.19, + 1.33, + 4.6, + 7.1, + 1.6, + 1.54, + 1.44, + 1.72, + 4.5, + 1.89, + 1.15, + 4.6, + 1.62, + 1.32, + 2.45, + 2.11, + 2.1, + 1.62, + 2.7, + 1.35, + 1.9, + 1.22, + 1.6, + 2.07, + 1.1, + 1.9, + 2.9, + 2.9, + 2.11, + 3.1, + 2.2, + 1.1, + 1.5, + 2.6, + 2.5, + 2.6, + 3, + 1.3, + 3.5, + 2.5, + 1.6, + 1.14, + 1.5, + 4.8, + 1.4, + 1.96, + 1.15, + 4.5, + 1.3, + 1.3, + 1.9, + 1.7, + 1.6, + 1.4, + 1.21, + 3.12, + 5.1, + 2.1, + 1.5, + 1.6, + 0.96, + 4.4, + 3, + 1, + 1.3, + 1.7, + 2.2, + 1.1, + 1.2, + 2.3, + 1.33, + 3.8, + 1.6, + 2.4, + 1.5, + 1, + 1.51, + 2.8, + 4.4, + 3.4, + 2.9, + 1.78, + 2.12, + 1.36, + 1.6, + 1.3, + 2.3, + 3.05, + 2.3, + 3.03, + 3.1, + 2, + 1.76, + 1.46, + 4.7, + 3, + 1.1, + 2.63, + 1.3, + 4.8, + 5.5, + 2.1, + 1.17, + 1.92, + 1, + 4.9, + 2.38, + 4.9, + 1.9, + 1.5, + 3.61, + 1.21, + 1.8, + 1.1, + 1.4, + 2.06, + 1.67, + 1.9, + 1.1, + 1.13, + 1.3, + 1.1, + 1.31, + 1.1, + 3.54, + 2.4, + 1.7, + 1.6, + 1.57, + 1.69, + 1.34, + 1.85, + 1.72, + 1, + 1.7, + 1.1, + 1.39, + 1.1, + 1.1, + 4.1, + 1.04, + 1.47, + 1.76, + 2.67, + 2.3, + 2.5, + 0.99, + 1.1, + 1.36, + 1.6, + 1.5, + 1.9, + 1.73, + 1.7, + 1.4, + 1.8, + 2, + 1.34, + 1, + 0.98, + 1.52, + 1, + 1.3, + 1.11, + 2.2, + 1.73, + 4.3, + 3.9, + 1.66, + 3.7, + 1.1, + 2.36, + 4.3, + 1.9, + 1.27, + 2.2, + 2, + 1.4, + 1.45, + 1.71, + 2.17, + 2.77, + 1.8, + 1.8, + 2.13, + 1.2, + 1.05, + 4, + 3.1, + 1.1, + 0.99, + 1.2, + 1.54, + 1.4, + 1.1, + 1.86, + 4.9, + 0.97, + 2.7, + 1.36, + 1.49, + 1.3, + 1.9, + 1.3, + 1.17, + 1.25, + 1.19, + 2.1, + 3.51, + 1.7, + 1.4, + 1.1, + 1.12, + 0.98, + 1.4, + 1, + 1.2, + 2.83, + 4.3, + 1.4, + 2.1, + 4.1, + 3.28, + 1, + 1.54, + 2.16, + 1.11, + 2.71, + 4.3, + 1.88, + 1.9, + 2.1, + 1.4, + 3, + 1.56, + 1, + 1.22, + 4.5, + 1, + 1.3, + 4.3, + 3.5, + 1.04, + 1.1, + 1, + 4.7, + 1.3, + 2.1, + 2.19, + 2.3, + 2.61, + 2.1, + 4.1, + 4.9, + 4.3, + 1.4, + 5.6, + 2.5, + 5.8, + 2.7, + 1.7, + 4.6, + 1.6, + 1.1, + 2.07, + 1.1, + 2.14, + 2.01, + 1.3, + 5, + 4.9, + 1.07, + 0.97, + 2.1, + 1, + 1.3, + 1.05, + 1.81, + 1.16, + 1.5, + 1.04, + 3.1, + 1.4, + 1.95, + 1.35, + 1.64, + 2, + 3.6, + 1.91, + 1.2, + 2.03, + 1.15, + 1.16, + 1.3, + 1.99, + 1.4, + 1.3, + 1.2, + 1.9, + 1.4, + 1.37, + 1.3, + 1.2, + 2.8, + 1.3, + 1.9, + 1.3, + 1.22, + 1.8, + 1.3, + 1.3, + 1.4, + 1.2, + 1.3, + 0.96, + 1.73, + 1.05, + 1.53, + 1.3, + 1.22, + 1.1, + 2.8, + 2.84, + 1.11, + 1.2, + 1.2, + 1.6, + 1.81, + 1.9, + 3.2, + 5.7, + 1, + 2.7, + 1.4, + 2.68, + 3.6, + 1.94, + 1.6, + 1.11, + 2.5, + 1.78, + 1.6, + 1.7, + 3, + 1.44, + 2.42, + 2.4, + 1.1, + 1.01, + 1, + 1.84, + 1.6, + 1.59, + 1.4, + 1.3, + 4.1, + 1.43, + 1.2, + 1.49, + 4.2, + 4.2, + 1, + 2.03, + 4.5, + 1.01, + 4.2, + 1, + 1.87, + 1.4, + 1.5, + 4, + 1.3, + 1.21, + 4.1, + 4.4, + 1.2, + 2, + 1.8, + 1.42, + 1.3, + 1.41, + 1.3, + 1.1, + 1.9, + 4.9, + 2.34, + 1.5, + 1.49, + 0.95, + 1.46, + 1.3, + 1.7, + 2.1, + 2.46, + 2.2, + 1.14, + 1.3, + 1.6, + 1.6, + 1.41, + 2.6, + 0.99, + 1.2, + 1.35, + 1.91, + 1.47, + 1.4, + 4.9, + 1.3, + 1.42, + 1.3, + 1.8, + 1, + 1.12, + 4.1, + 3.9, + 1.54, + 2.5, + 1.3, + 1.21, + 3.1, + 1.4, + 2.7, + 1.09, + 1.2, + 1.4, + 1.1, + 1.3, + 1.6, + 1.52, + 0.98, + 4.3, + 2.31, + 2.6, + 2.7, + 1.11, + 1.06, + 1.3, + 1.9, + 4.5, + 2.04, + 4.5, + 1.4, + 4.3, + 1.1, + 1.49, + 5.4, + 5, + 1.03, + 1.19, + 4.9, + 4.5, + 1.3, + 5.7, + 4.3, + 4.2, + 4.6, + 1.4, + 1.11, + 1.4, + 1.51, + 1.02, + 1.7, + 1.9, + 2.88, + 4.1, + 0.98, + 4.4, + 2.03, + 1.07, + 1.9, + 4.9, + 2.6, + 2.3, + 0.97, + 4, + 1, + 0.99, + 1.4, + 1.5, + 1, + 1.8, + 2.2, + 1.39, + 1.91, + 2.1, + 1.23, + 3.2, + 4.3, + 2.6, + 2, + 2.8, + 2.1, + 1.03, + 4.2, + 4.7, + 2.2, + 1.2, + 1.94, + 1.5, + 1.02, + 1.28, + 4.5, + 1.4, + 1.9, + 2.48, + 1.1, + 4.7, + 2.8, + 4.9, + 4.6, + 2.7, + 4.8, + 2.1, + 2.8, + 1.01, + 1.48, + 1.9, + 1.14, + 2.61, + 4.6, + 1.1, + 4.1, + 2.2, + 1.8, + 2.4, + 1.9, + 1.84, + 2.6, + 0.98, + 1.35, + 4.3, + 2, + 1.36, + 2.9, + 2.9, + 1.05, + 1.1, + 4.9, + 1.16, + 1.13, + 4.5, + 1.6, + 4.3, + 1.19, + 3.15, + 2.04, + 1.52, + 4.4, + 1.12, + 1.62, + 1.96, + 1.4, + 1.37, + 3.2, + 4.3, + 1.8, + 1.2, + 1.7, + 0.95, + 2.7, + 1, + 1.9, + 2.5, + 2.8, + 1.03, + 2.2, + 1.07, + 1.12, + 1.6, + 1.2, + 1, + 1.1, + 1.21, + 1.47, + 1.8, + 1.7, + 2.42, + 2.6, + 0.95, + 2.3, + 2.4, + 1.8, + 1.4, + 1.6, + 1.9, + 2.3, + 2.57, + 5.1, + 3.9, + 2.9, + 1.23, + 4.7, + 1.6, + 4.5, + 2.29, + 1.5, + 1.6, + 1.7, + 1.34, + 1.03, + 1.29, + 1.75, + 3.8, + 2.39, + 2.6, + 4.1, + 1.5, + 1.07, + 1.25, + 5.2, + 1.68, + 1.2, + 1.3, + 1.01, + 1.86, + 4.2, + 1, + 1.01, + 5.1, + 2.1, + 1.36, + 1, + 2.1, + 1.11, + 4.3, + 2.1, + 1.2, + 1.09, + 1.32, + 1.14, + 2.1, + 4, + 4.7, + 1.4, + 1.28, + 4.9, + 3, + 4.6, + 4.5, + 1.49, + 2.1, + 1.43, + 1.6, + 1.39, + 1.68, + 1.5, + 1.6, + 2.6, + 1.22, + 1.35, + 1, + 2.4, + 2.5, + 1.04, + 2.6, + 1.1, + 1.41, + 2, + 1.64, + 1.4, + 2.7, + 2.5, + 5.4, + 1.3, + 1.85, + 1.9, + 1.29, + 2.74, + 1.8, + 1.67, + 2.53, + 1.9, + 1.73, + 2.43, + 5.1, + 1.22, + 1.02, + 1.16, + 1.98, + 2.3, + 1.8, + 1, + 2.6, + 1.4, + 4.9, + 4.9, + 1.71, + 4.2, + 1.4, + 2.4, + 1.21, + 4.2, + 1.86, + 1.55, + 4.5, + 1.52, + 5.4, + 1.84, + 4, + 2.2, + 3.37, + 1.5, + 1.9, + 1.1, + 2, + 1.1, + 4, + 1.53, + 1.72, + 1, + 1.9, + 3.64, + 1.3, + 1.3, + 0.95, + 3.1, + 1, + 3.66, + 2.6, + 1.9, + 0.97, + 1.7, + 4.4, + 0.96, + 1.36, + 1.2, + 1.57, + 1, + 1.8, + 4.4, + 4.1, + 1.57, + 3.7, + 1.74, + 1.2, + 3.03, + 4.6, + 1.09, + 4.3, + 1, + 1.1, + 1.68, + 1.75, + 1.3, + 0.98, + 1.9, + 1.33, + 1.7, + 2.6, + 1.37, + 1.44, + 4.3, + 1.06, + 1.1, + 1.8, + 1.02, + 1.17, + 1.34, + 1.51, + 4.6, + 1.8, + 1.1, + 1.16, + 2, + 1.8, + 1, + 1.4, + 4.6, + 4.3, + 1.18, + 1.2, + 1, + 1.6, + 4.6, + 2.5, + 3.4, + 2.2, + 1.5, + 1.46, + 4.9, + 2.3, + 4.2, + 2.1, + 4.2, + 1.7, + 1.5, + 1.7, + 1.71, + 3.2, + 1.42, + 2.8, + 1.3, + 2.6, + 4.6, + 1.7, + 4.3, + 3.1, + 3, + 1.5, + 2, + 1.56, + 1.3, + 4.4, + 1, + 1.45, + 2.1, + 2.43, + 2.3, + 2.6, + 1.21, + 1.6, + 2, + 1.3, + 3.2, + 1.1, + 1.26, + 3.43, + 1.5, + 2.1, + 1.1, + 1.03, + 1.72, + 5.5, + 1.05, + 4.5, + 0.97, + 1.6, + 1.51, + 2.33, + 1, + 1.02, + 1.1, + 4.2, + 1.9, + 1.44, + 5, + 1.02, + 1.8, + 1.22, + 4.6, + 1.04, + 1.4, + 1.41, + 1.1, + 1.17, + 2.9, + 1.98, + 1.6, + 4.7, + 3.2, + 1.78, + 1.3, + 2.08, + 1.4, + 2.13, + 2.3, + 1.5, + 1.6, + 1.54, + 4, + 1.43, + 1.14, + 1.65, + 2.98, + 1.4, + 1.1, + 1.1, + 3, + 4, + 1.2, + 2.2, + 1.3, + 1.43, + 5, + 2.1, + 0.95, + 1.19, + 2.1, + 1.01, + 2.7, + 1.4, + 2.18, + 2, + 3.8, + 2, + 1.6, + 1.8, + 1.4, + 2.7, + 1.04, + 3.23, + 1.1, + 1.7, + 1.91, + 2.04, + 4.6, + 2.3, + 1.73, + 1.2, + 3, + 1.6, + 3.3, + 2.13, + 1.9, + 2.7, + 3.31, + 1.9, + 2.1, + 1.32, + 1.86, + 2.64, + 3.6, + 1.3, + 1.7, + 2.34, + 1.69, + 1.4, + 1.3, + 1.4, + 4.4, + 1.4, + 2.8, + 2.5, + 2.6, + 1.1, + 1.07, + 1.4, + 1.9, + 1.03, + 1.6, + 1.21, + 1.7, + 4.6, + 1.1, + 1.4, + 1.6, + 1.62, + 2.78, + 1.1, + 2, + 1.26, + 1.4, + 4.3, + 1.23, + 2, + 1.7, + 1.1, + 2.38, + 1, + 1.87, + 1.7, + 1.6, + 1.7, + 1.6, + 4.4, + 1.02, + 3.04, + 1.5, + 1.55, + 5.2, + 4.8, + 1.99, + 3.28, + 1.35, + 2.7, + 4.3, + 1.3, + 4.1, + 1.36, + 1.05, + 4.4, + 4.1, + 1.1, + 1.13, + 1.21, + 2.4, + 4.1, + 1.5, + 1.83, + 2.1, + 4.7, + 1.34, + 1.7, + 1.4, + 1.58, + 1.9, + 1.2, + 4, + 2.04, + 1.9, + 2, + 5.2, + 1.49, + 2.2, + 4.1, + 2.43, + 1.37, + 1.7, + 2.3, + 4.4, + 3.03, + 2.8, + 1.71, + 1.91, + 2.6, + 3.1, + 2.41, + 1.09, + 2.06, + 1.19, + 2.03, + 1.01, + 3.2, + 1.7, + 3.06, + 2.41, + 1.6, + 1.03, + 1.9, + 1.93, + 1.61, + 2.58, + 3.3, + 1.13, + 3, + 1.5, + 3, + 2.1, + 1.4, + 1.22, + 1.5, + 2.1, + 1.2, + 1.39, + 1.1, + 0.96, + 1.1, + 1.2, + 1.6, + 5.8, + 3.28, + 2.9, + 1.37, + 3.2, + 2.03, + 4.1, + 2.2, + 2.5, + 3.4, + 1.93, + 3, + 2.2, + 4.5, + 1.46, + 1.53, + 1.9, + 1.08, + 1.4, + 2.2, + 2.8, + 2.5, + 4.3, + 2.12, + 1, + 1.82, + 1.87, + 1.8, + 2.4, + 3.32, + 2, + 1.1, + 0.97, + 1.1, + 1.8, + 1.1, + 1.3, + 2.8, + 1.12, + 2.8, + 1.95, + 2.48, + 1.74, + 1.8, + 1.86, + 1.4, + 1, + 1.9, + 2.1, + 1.5, + 1.2, + 1.2, + 1.22, + 2.5, + 1.6, + 1.2, + 1.9, + 1.61, + 1.4, + 2, + 0.97, + 2, + 2.6, + 2.6, + 2.53, + 2.96, + 1.02, + 1.11, + 4.6, + 1.81, + 1.6, + 1.19, + 1.04, + 1.6, + 4.4, + 1.8, + 1.14, + 1, + 1.3, + 1.64, + 1.3, + 4, + 1.32, + 1.75, + 0.96, + 4, + 1.08, + 4.5, + 4.4, + 3, + 2.26, + 3.2, + 4.2, + 4.7, + 1, + 4.7, + 0.98, + 1.2, + 0.95, + 1.38, + 1.78, + 1.9, + 1.23, + 2.12, + 1.83, + 1, + 3.2, + 2, + 4.32, + 3.3, + 1.43, + 1.39, + 1.41, + 3.2, + 3.1, + 4, + 3.43, + 1.6, + 1.2, + 2.4, + 1, + 1.2, + 0.98, + 1.09, + 1.7, + 1.67, + 1.2, + 3.2, + 1.21, + 2.6, + 1, + 2.1, + 1.1, + 1.33, + 2.7, + 1.1, + 4.6, + 1, + 2.8, + 2.3, + 1.28, + 1.75, + 1.7, + 2.19, + 1.15, + 1.18, + 1.7, + 2.21, + 1.23, + 1.4, + 0.99, + 1.4, + 4.2, + 2.8, + 1.3, + 3.2, + 1.57, + 2.63, + 1.72, + 1.4, + 1.11, + 2.2, + 1.75, + 1.1, + 1.66, + 1.75, + 1.83, + 3.47, + 1.67, + 2.5, + 1.45, + 1.5, + 1.73, + 3.26, + 1.6, + 1.1, + 1.12, + 1.13, + 4.7, + 1.17, + 1.59, + 1.54, + 5, + 1.29, + 1.69, + 1.82, + 1.49, + 2.29, + 1.11, + 1.01, + 1.7, + 1.64, + 1.52, + 1.56, + 4.6, + 3, + 1.8, + 1.3, + 1.9, + 1.01, + 1.2, + 1.15, + 2, + 1.3, + 1.1, + 1.3, + 2.5, + 1.77, + 1.4, + 1.47, + 1.2, + 1.07, + 3.2, + 1.1, + 1.8, + 2, + 4.4, + 1.8, + 2.56, + 1.8, + 1.1, + 2.1, + 1.3, + 4.3, + 1.87, + 5, + 2.1, + 1.77, + 1.8, + 1.5, + 1.34, + 1.1, + 1.1, + 1.1, + 1.92, + 1.02, + 1.4, + 2.3, + 2.3, + 1.26, + 1.95, + 1.11, + 4.5, + 1.19, + 0.99, + 1.15, + 2.5, + 1.4, + 4.1, + 0.99, + 1.1, + 2.3, + 3.9, + 1.07, + 1.5, + 3.3, + 2.35, + 1.53, + 1.9, + 3, + 1.7, + 1.2, + 2.4, + 1.34, + 1.2, + 2.44, + 4.3, + 1.02, + 4.5, + 2.4, + 2.5, + 4.3, + 2.1, + 3.9, + 2.11, + 1.09, + 2.6, + 1.5, + 1.6, + 1.57, + 1.4, + 1.5, + 1.1, + 3.4, + 4.2, + 2.3, + 1.8, + 1.3, + 1.39, + 1.6, + 2.6, + 1.7, + 4.5, + 1.1, + 1.2, + 4.7, + 2.62, + 1.06, + 1.4, + 1.01, + 1.5, + 4.5, + 0.97, + 1.1, + 0.95, + 1.1, + 1.74, + 1.6, + 1.07, + 3.5, + 2.64, + 0.96, + 0.95, + 1.36, + 2.65, + 0.95, + 1.43, + 2.57, + 4.7, + 1.06, + 4.4, + 1.4, + 1, + 3.12, + 1.06, + 1.7, + 5, + 1.38, + 0.99, + 1.1, + 1.94, + 3.05, + 2.16, + 1, + 1.35, + 1.3, + 4.1, + 2.1, + 1.7, + 4.1, + 1.46, + 1.92, + 2.02, + 1.7, + 3.9, + 1.94, + 1.56, + 2.2, + 1, + 1.1, + 4.9, + 1.49, + 1.3, + 1.81, + 2.7, + 1.5, + 4, + 4.8, + 1.22, + 1.17, + 4.6, + 1.5, + 4.9, + 1.1, + 1.74, + 1.49, + 1.03, + 4.8, + 2.07, + 1.5, + 2.7, + 1.59, + 4.3, + 1.98, + 1.8, + 0.96, + 2.18, + 3, + 1.3, + 2.16, + 1.1, + 4.4, + 1.4, + 1.6, + 4.7, + 4.3, + 4.4, + 1.19, + 4.4, + 4.6, + 1.7, + 2.8, + 1.1, + 1, + 2.1, + 2.8, + 4.3, + 2.3, + 2.4, + 4.5, + 3.1, + 1, + 1.63, + 4.6, + 1.9, + 1.12, + 1, + 2.3, + 1.17, + 4.5, + 1.38, + 1.13, + 3.4, + 4.1, + 4.2, + 5, + 0.99, + 4.4, + 2, + 4.5, + 4.7, + 1.4, + 1.8, + 3.11, + 1.3, + 1.33, + 1.34, + 1.5, + 1.65, + 3.1, + 1.34, + 1.2, + 1.2, + 1, + 1.4, + 1.72, + 1.4, + 2.41, + 1, + 2.9, + 2, + 2.5, + 1.1, + 1, + 1.16, + 1.06, + 2.4, + 1, + 1.3, + 0.96, + 1.3, + 1.1, + 1.7, + 1.5, + 4.7, + 1.1, + 4.2, + 1.7, + 1.9, + 1.31, + 1.02, + 1.4, + 1.86, + 1.64, + 1.9, + 0.97, + 1, + 4.7, + 1.6, + 2.1, + 1.6, + 1.7, + 4.4, + 1.4, + 3.01, + 2.4, + 2.02, + 2.1, + 3, + 1.12, + 4.1, + 1.4, + 2.8, + 1.29, + 1.1, + 3.4, + 1.5, + 1.4, + 4, + 1.1, + 1.14, + 3.62, + 4.5, + 1, + 1.85, + 4.5, + 1.3, + 1.4, + 2.8, + 4.9, + 1.35, + 1.4, + 1.22, + 4.4, + 1.9, + 1.2, + 1.15, + 1.09, + 4.6, + 2.5, + 5.3, + 1.28, + 1.54, + 1.1, + 1.14, + 1.45, + 1.94, + 1.4, + 1.8, + 1.29, + 2.8, + 2.63, + 2.17, + 2.06, + 2.21, + 1.81, + 1.3, + 1.4, + 1.19, + 1.89, + 2.13, + 2.85, + 1.11, + 2.54, + 0.96, + 1.03, + 1.6, + 1.5, + 3.99, + 2.5, + 1.4, + 1.9, + 1.9, + 1.6, + 1.28, + 0.96, + 1.18, + 1.11, + 5.1, + 1.9, + 2.1, + 4.8, + 2.4, + 1.78, + 2.8, + 2.34, + 1.99, + 1.3, + 1.42, + 2.9, + 1.28, + 2.7, + 3.1, + 3.4, + 3.3, + 1.1, + 4.4, + 1.3, + 4.2, + 2.8, + 2, + 1, + 1.5, + 1.26, + 5, + 1.5, + 4.4, + 1.11, + 5.1, + 1.4, + 4.3, + 2.6, + 2.3, + 1.21, + 2.23, + 4.1, + 2.29, + 5.5, + 2.4, + 1.9, + 1.47, + 1, + 1.3, + 4.1, + 1.54, + 2.4, + 2.2, + 2, + 3.2, + 1.38, + 2.5, + 1.16, + 1.2, + 2.9, + 3, + 1.3, + 1.74, + 3, + 1.1, + 1.6, + 1, + 1.6, + 2.04, + 4.8, + 1.4, + 3.5, + 2, + 1.1, + 1.57, + 5.7, + 2.5, + 1, + 1.4, + 1.15, + 4.5, + 4.7, + 4.4, + 4.3, + 5, + 2.37, + 3.2, + 1.27, + 4.2, + 1.04, + 4.4, + 1.8, + 4.3, + 1.9, + 3.1, + 1.47, + 1.9, + 1.9, + 4.8, + 4.3, + 3, + 4.4, + 5, + 4.9, + 4.2, + 1.16, + 0.96, + 2, + 1.82, + 4.2, + 1.15, + 1.47, + 1.99, + 2.7, + 2.26, + 2.8, + 4.4, + 2.8, + 2.8, + 1.18, + 3.4, + 2.7, + 4.2, + 2, + 2.7, + 4.6, + 1.9, + 2.6, + 2.9, + 3, + 4.6, + 2.1, + 4.7, + 4.3, + 1.09, + 2.6, + 1.1, + 1.3, + 1.4, + 1.53, + 1.2, + 2.28, + 1, + 2, + 2.5, + 1.53, + 1.21, + 4.1, + 2.7, + 1, + 4.2, + 1.2, + 1.1, + 1.5, + 2.5, + 2.11, + 1.3, + 1.58, + 3, + 3.1, + 4, + 4.5, + 2.17, + 2.3, + 1.3, + 1.3, + 2.16, + 2.03, + 1.5, + 1.3, + 1.5, + 1.6, + 1.6, + 1.01, + 1.32, + 1.79, + 1.6, + 3, + 1.5, + 1, + 0.98, + 1.6, + 2.9, + 4.3, + 2.2, + 1.63, + 2.6, + 1.2, + 1.22, + 1.48, + 2.59, + 3.41, + 1, + 3.4, + 4.4, + 1.14, + 2.7, + 1.42, + 4.3, + 1.5, + 1.9, + 1.5, + 2.02, + 2.3, + 1.12, + 2.9, + 4.3, + 1.68, + 2.3, + 2.5, + 4.3, + 1.8, + 1.9, + 1.14, + 2.4, + 1.6, + 4, + 2.04, + 1.88, + 1.62, + 4.2, + 4.3, + 4.2, + 1.5, + 2.04, + 2.25, + 1.6, + 1.3, + 4.1, + 1.09, + 3.6, + 4.3, + 1.2, + 1.33, + 1.5, + 1, + 2.2, + 3.1, + 5.1, + 1.1, + 3, + 2.8, + 4.3, + 4.7, + 1.3, + 1.6, + 1.21, + 4.2, + 1.2, + 2.05, + 1.71, + 1.34, + 4.6, + 1.3, + 1.69, + 1.5, + 3.5, + 4.2, + 1.26, + 4.1, + 1.3, + 1.1, + 2.47, + 2.3, + 1.3, + 1.58, + 1.01, + 3, + 0.97, + 4.9, + 3.2, + 4.4, + 1.2, + 1.54, + 2.4, + 1.2, + 2.4, + 3, + 1.3, + 3.55, + 1.47, + 2.37, + 1.26, + 1.57, + 1.03, + 1.52, + 2, + 2.4, + 3.3, + 1.01, + 2.5, + 5.9, + 1.22, + 1.1, + 2.8, + 1.13, + 1.44, + 1, + 1.74, + 1.62, + 0.99, + 2.52, + 0.95, + 1.6, + 4.5, + 1.4, + 1.3, + 3.3, + 1.1, + 1.2, + 1, + 2.5, + 1.86, + 3.2, + 1.2, + 4.3, + 4.6, + 1.13, + 2.7, + 1.15, + 3.1, + 2.7, + 1.7, + 1.54, + 1.28, + 2.5, + 4.1, + 1.58, + 2.4, + 3.24, + 1.57, + 2.9, + 1.6, + 2.5, + 1.12, + 2.3, + 2.4, + 1.53, + 0.99, + 2.7, + 1.3, + 1, + 1.06, + 1.3, + 1.48, + 1.53, + 1, + 1.34, + 1.1, + 2.5, + 1.32, + 1.3, + 1.1, + 1.69, + 1.5, + 4.4, + 2.7, + 1.36, + 1.1, + 1.62, + 1.01, + 2.15, + 2.5, + 2.49, + 1.65, + 2.02, + 1.59, + 1.92, + 1.57, + 1.42, + 1.1, + 1.49, + 1.5, + 1.2, + 3.4, + 1.41, + 1.5, + 1.1, + 2.2, + 1.29, + 4.6, + 1.32, + 2.5, + 1.4, + 1.83, + 4.2, + 1.7, + 4.6, + 2.6, + 1.5, + 4.2, + 2.5, + 1.1, + 2.8, + 1.2, + 2.5, + 4.9, + 1, + 3.4, + 1.1, + 3.1, + 2.5, + 1.38, + 2.17, + 2.9, + 1.38, + 1, + 1.59, + 1.7, + 4.3, + 4, + 1.7, + 4.6, + 4.5, + 4.1, + 4.3, + 1.26, + 2.8, + 1.3, + 3, + 1.6, + 2.6, + 1.41, + 1.23, + 2, + 4.4, + 3.6, + 2.8, + 2.5, + 3.4, + 3.1, + 1.6, + 3.9, + 3.1, + 2.14, + 1.3, + 4.3, + 4.5, + 2.6, + 2.6, + 4.4, + 1.6, + 2.9, + 2.1, + 2.9, + 1.1, + 2.6, + 1.7, + 3.1, + 2.42, + 1.3, + 4.7, + 2.6, + 1, + 2.88, + 3.1, + 2.6, + 1.02, + 2.37, + 2.3, + 2.5, + 1.52, + 2.5, + 1.83, + 1.46, + 4.9, + 2.8, + 2.8, + 2.5, + 2.44, + 2.7, + 3.5, + 2.02, + 5, + 1.3, + 2.3, + 1.55, + 4.7, + 4.1, + 3.3, + 2.4, + 1.4, + 2.3, + 1.08, + 2.4, + 2.8, + 1.28, + 1.8, + 5.5, + 5.2, + 2.8, + 1.76, + 3.8, + 4.4, + 4.2, + 0.97, + 3.8, + 2.6, + 4.5, + 1.9, + 2.32, + 1.68, + 0.99, + 1.6, + 2.8, + 1.1, + 1.4, + 1.03, + 2.2, + 4.2, + 4.5, + 3.3, + 3, + 1.6, + 1.2, + 1.3, + 1.58, + 1.14, + 1, + 1.6, + 1.8, + 4.3, + 1.3, + 1.4, + 1.89, + 1.2, + 0.98, + 4, + 1.4, + 1.7, + 1.2, + 1.4, + 1.7, + 2.14, + 1.41, + 2.8, + 1.58, + 1.12, + 2.05, + 4.1, + 4.1, + 4.2, + 1.24, + 2.1, + 4, + 1.14, + 1.4, + 0.97, + 1.4, + 1.67, + 1.2, + 2.2, + 1.63, + 1.2, + 4.3, + 1.3, + 1.11, + 4.1, + 2.2, + 1.8, + 4.1, + 1.81, + 1.18, + 5.8, + 1.5, + 1.9, + 2.3, + 4, + 2.65, + 4.3, + 2.4, + 1.5, + 3.2, + 3.9, + 4.2, + 1, + 1.8, + 1.1, + 1.22, + 1.2, + 4.1, + 4.3, + 4.3, + 4.4, + 3.3, + 2.3, + 2, + 3.3, + 1.5, + 1.4, + 1.5, + 0.96, + 4.7, + 1.2, + 2.3, + 1.97, + 2.1, + 3.3, + 1.43, + 1.18, + 1, + 1.5, + 1.5, + 1.83, + 1.5, + 1.9, + 1.1, + 2.9, + 3, + 2.6, + 1.1, + 2.6, + 1.53, + 4.3, + 0.97, + 1.9, + 1.01, + 1.35, + 1.15, + 4, + 1.28, + 1.37, + 1.64, + 0.99, + 4.9, + 2.8, + 3.1, + 4.2, + 1.6, + 0.96, + 1.4, + 2.8, + 1.98, + 4.4, + 4.2, + 2.3, + 1.2, + 4.8, + 1.5, + 2.68, + 1.31, + 2.08, + 1.2, + 1.15, + 4.4, + 2.3, + 2.3, + 1.1, + 1.7, + 1.77, + 2.17, + 4.4, + 1.45, + 1.7, + 2.1, + 1.22, + 4.4, + 2.4, + 1.8, + 1.06, + 1.3, + 4.4, + 1.5, + 4.2, + 1.86, + 2.9, + 1.96, + 1, + 1, + 1.7, + 1.09, + 3.1, + 1.9, + 4.4, + 2.7, + 1.49, + 1.4, + 1.4, + 1.3, + 1.6, + 2.4, + 5.3, + 1.07, + 4.8, + 4.6, + 1.09, + 2.1, + 1.2, + 4.1, + 2.5, + 1.9, + 1.41, + 1.9, + 4.2, + 1.4, + 1.7, + 1.6, + 1.03, + 2.3, + 1.15, + 2.6, + 1.01, + 2, + 1.4, + 1.7, + 4.8, + 4.7, + 1.1, + 1.66, + 4.3, + 1.59, + 1.3, + 4.5, + 2.3, + 3.5, + 4.9, + 1.8, + 1.2, + 5.2, + 2.17, + 1.89, + 1.2, + 3.9, + 4.9, + 1.42, + 3.1, + 3, + 2.5, + 4, + 2.4, + 4.5, + 1.04, + 2.3, + 4.2, + 1.27, + 2.09, + 1.45, + 4.1, + 1.52, + 1.03, + 1.12, + 4.3, + 1.1, + 1.08, + 1.1, + 5.4, + 4.6, + 1.5, + 1.4, + 3.8, + 1.8, + 3.9, + 1.84, + 1.6, + 1.5, + 4.1, + 1.4, + 2.2, + 2.3, + 0.98, + 2, + 2.6, + 4.1, + 1.03, + 2.8, + 2.6, + 2.7, + 3.3, + 3.6, + 4, + 1.8, + 1.19, + 3.3, + 4.5, + 4.1, + 4.5, + 3.3, + 4.8, + 4.7, + 1.62, + 2.6, + 4.2, + 2.3, + 2.8, + 4.7, + 2.2, + 2.3, + 4.1, + 1.4, + 1.42, + 1.15, + 1.1, + 4.2, + 1.3, + 2.6, + 1.28, + 4.2, + 4.8, + 5, + 1.74, + 1.69, + 2.17, + 4.2, + 4.1, + 4.5, + 1.16, + 4.9, + 4.1, + 1.2, + 1.2, + 1.2, + 3.4, + 1.4, + 4.7, + 4.3, + 4, + 4.3, + 4.3, + 1.3, + 1.4, + 1.9, + 5.5, + 4.5, + 1.7, + 1.03, + 2.9, + 4.1, + 2.7, + 1.19, + 1.67, + 1.1, + 4.2, + 1.52, + 1.4, + 1, + 4.7, + 1.8, + 2, + 3.06, + 1.63, + 4.1, + 3.7, + 2.5, + 2.4, + 4.2, + 2.7, + 1.5, + 3.8, + 3.08, + 4.1, + 1.8, + 2.3, + 2.1, + 4.9, + 4, + 1.4, + 4, + 4, + 2.7, + 4.5, + 5.1, + 2.6, + 4.9, + 1.6, + 1.6, + 1.09, + 1.2, + 1.3, + 1.64, + 1.22, + 0.96, + 1.1, + 1.5, + 4.2, + 4, + 1.2, + 1.3, + 4.3, + 4.1, + 1.51, + 2.49, + 4.1, + 3.9, + 1.43, + 4.4, + 1.5, + 1.8, + 1.64, + 1.6, + 4.1, + 2.8, + 2.5, + 1.6, + 1.1, + 2.1, + 1.56, + 4.3, + 1.2, + 1.6, + 1.71, + 2.09, + 1.6, + 1.94, + 1, + 1.1, + 1.3, + 1.4, + 1.1, + 4.1, + 1.86, + 4.4, + 1.1, + 1.1, + 1.5, + 1.4, + 1.7, + 1.9, + 2.5, + 4.8, + 1.1, + 3, + 1.02, + 1.37, + 4.4, + 1.3, + 1.18, + 1.42, + 4.7, + 1.8, + 4.6, + 4.5, + 4.8, + 1.19, + 4.3, + 1, + 2.3, + 1.38, + 1.2, + 4.2, + 1.1, + 2.5, + 1.93, + 1.54, + 3, + 2.9, + 4.1, + 2.3, + 1.28, + 1.23, + 4.8, + 4.7, + 1.15, + 4.2, + 1.5, + 1.3, + 2.5, + 1.05, + 2.8, + 2.6, + 1.7, + 3.9, + 2.02, + 1.4, + 1.52, + 1.23, + 4.7, + 4.5, + 2.7, + 4, + 5.3, + 4.4, + 4.2, + 1.1, + 5, + 1.13, + 1.29, + 1.1, + 1.24, + 4.9, + 2, + 4.4, + 1.09, + 2.7, + 5.1, + 1.9, + 1.7, + 1.06, + 0.95, + 4.3, + 1.4, + 4.5, + 4.1, + 4.4, + 1.5, + 1.23, + 2.31, + 4.9, + 4.8, + 4.6, + 4.7, + 3.1, + 1.07, + 5, + 2.6, + 4.8, + 4.4, + 4.9, + 4.1, + 1, + 4.6, + 1.7, + 4.8, + 4.3, + 2.49, + 1.18, + 4.3, + 2.76, + 1.22, + 1.29, + 4.4, + 5, + 1.56, + 1.66, + 4.2, + 1.8, + 0.97, + 5.3, + 5, + 5.1, + 1.9, + 4.6, + 1.64, + 4.3, + 1.11, + 4.4, + 4.5, + 2.1, + 1.4, + 4.5, + 4.3, + 1.1, + 4.3, + 4.9, + 1.84, + 1.4, + 2.2, + 2.07, + 2.29, + 1.2, + 4.7, + 1.6, + 1.1, + 1.7, + 1.1, + 1.21, + 1.39, + 1.17, + 5.2, + 1.1, + 4.5, + 4.7, + 1.13, + 4.8, + 1.42, + 5, + 1.91, + 3.1, + 4.5, + 4.3, + 2.4, + 1.29, + 1.9, + 1.71, + 1.08, + 2.1, + 1.4, + 4.7, + 1, + 1.2, + 1.53, + 1.74, + 2.39, + 2.4, + 2.2, + 2.01, + 1.7, + 1.8, + 4.6, + 1.27, + 4.5, + 4.5, + 1.16, + 1.9, + 2.09, + 4.1, + 2.1, + 4.4, + 4.6, + 4.5, + 5.3, + 2.1, + 1.1, + 1.2, + 4.3, + 1, + 4.3, + 2.45, + 2.9, + 1.54, + 4.2, + 4.3, + 4.3, + 4.5, + 1.2, + 1.2, + 1, + 4.3, + 3.2, + 1.01, + 4.1, + 1.3, + 4.4, + 3.2, + 4.4, + 4.1, + 3, + 3.2, + 4.2, + 1.89, + 1.45, + 2.3, + 1.26, + 1.09, + 4.2, + 4.2, + 4.1, + 3.6, + 1.1, + 0.98, + 1.3, + 4.2, + 0.96, + 4.2, + 1.19, + 4, + 1.2, + 4.7, + 1.8, + 4.3, + 2.1, + 4.3, + 1.5, + 4.6, + 4.3, + 1.3, + 4.2, + 4.2, + 1.87, + 4.6, + 4.3, + 4.2, + 1.15, + 4.4, + 1.56, + 1.02, + 5, + 4.3, + 0.99, + 2.1, + 4.9, + 4.7, + 5.1, + 2.5, + 5.2, + 4.6, + 1.03, + 5.2, + 1.48, + 1.9, + 4.8, + 5.3, + 2.16, + 1.01, + 1.17, + 3.73, + 4.8, + 5, + 1.35, + 1.45, + 2.28, + 1.83, + 1.12, + 1.24, + 1.36, + 1.79, + 2.3, + 2.42, + 5.7, + 1.1, + 1.72, + 8.1, + 2.5, + 1.2, + 2, + 1.24, + 2, + 2.4, + 1.4, + 1.1, + 1.9, + 1.7, + 1.3, + 1.47, + 4.7, + 1, + 2.4, + 2.4, + 2.1, + 1.85, + 1.49, + 4.3, + 1.3, + 1.15, + 3.7, + 2.03, + 1.5, + 2.91 + ], + "coloraxis": "coloraxis" + }, + { + "type": "scattermap", + "lon": [ + -151.5129, + -150.4048, + -151.3597, + -118.497, + -87.6901, + -151.5053, + -178.4576, + -148.789, + -120.993164, + -117.0155, + -151.512, + -151.4378, + -149.6538, + -151.5325, + -149.4752, + -150.8597, + -149.7142, + -151.2484, + -152.0732, + -90.5445, + -118.819504, + -118.930168, + -117.509167, + -116.792167, + -150.9126, + -155.078659, + -147.3106, + -150.5846, + -116.929, + -151.5065, + -147.8929, + -175.7258, + -151.3473, + -121.137497, + -151.1075, + -151.3769, + -94.8319, + -120.689833, + -151.5283, + -151.6683, + -149.7591, + -151.3458, + -151.4669, + -151.5169, + -151.4771, + -151.458, + -94.9686, + -119.023666, + -116.793833, + -117.225, + -151.0033, + -177.3179, + -154.1913, + -113.140503, + -122.765663, + -121.678001, + -148.8813, + -149.531, + -155.423492, + -138.8317, + -122.793999, + -155.32016, + -158.4264, + -136.5725, + -71.7814, + -115.9711, + -163.8046, + -147.8309, + -122.724167, + -77.9778, + -150.3324, + -146.4858, + -177.7469, + -136.8133, + -116.673833, + -155.382172, + -153.427, + -116.457667, + -112.529833, + -122.791832, + -118.9071, + -116.793833, + 130.1291, + -83.749833, + -120.900833, + -153.0276, + -138.5063, + -122.792, + -112.530833, + -69.504, + -118.831169, + -112.516333, + -118.816666, + -116.655333, + -177.8808, + -115.1285, + -118.817169, + 69.1471, + -121.101166, + 132.668, + -116.462667, + -141.2596, + -141.2013, + -149.7575, + -152.3178, + -116.460167, + -116.468167, + -116.793, + -118.566333, + -178.3171, + -122.795998, + -117.1247, + -147.2293, + 152.3636, + 73.3529, + -152.4583, + 138.9649, + -117.1198, + -116.955667, + -122.991667, + -120.747, + -120.753833, + -121.127, + 145.6471, + -108.8949, + -121.155667, + -116.991, + -98.7321, + -122.178833, + -148.1644, + -150.5804, + -121.688667, + -117.516, + -136.6965, + -98.2269, + -146.3172, + -117.646667, + -118.1915, + -118.803333, + -121.7105, + -112.477167, + -116.362, + -148.9279, + 68.9568, + -111.457, + -121.962333, + 86.7487, + -118.351667, + -15.5503, + -149.9372, + -118.6177, + 143.7841, + -112.5305, + -111.460333, + -118.803333, + -116.2815, + -116.314167, + -150.0099, + -122.706, + -112.5315, + -117.019833, + -153.2441, + 141.1969, + -156.519, + -115.894167, + -152.1925, + -111.436333, + -119.9267, + -118.476667, + -118.9217, + 95.0977, + -150.4456, + -149.6485, + -122.7755, + -117.445, + -122.797333, + -122.806167, + -147.164, + -122.600333, + -112.557667, + -118.798333, + -117.757833, + -118.355667, + 155.9405, + -122.509333, + -116.8455, + -114.5795, + -110.322167, + -178.2949, + -156.0402, + -155.42366, + -155.248833, + -151.1519, + 119.9639, + -150.7545, + -156.2205, + -115.2224, + -118.8245, + 143.9537, + -111.444, + -136.7235, + -115.997833, + 146.6145, + -148.7833, + -67.92, + -150.3206, + -115.557333, + -111.4493, + -122.801167, + -122.478167, + 178.4985, + -111.455333, + -148.2116, + -155.428833, + -118.823167, + -112.532167, + -64.1261, + -116.434833, + -122.7915, + -122.2, + -122.200333, + -111.494833, + -121.9235, + -118.831, + -122.403, + 151.9528, + -151.3718, + -121.744833, + -149.6057, + -122.822, + -125.777167, + -151.063, + -116.7975, + -116.875167, + -25.496, + 152.1867, + -111.414167, + -118.9395, + -114.857, + -111.672333, + -140.6081, + -116.598667, + -117.0539, + -119.377167, + -71.348, + -122.395167, + -118.8105, + -122.7825, + -112.529, + -147.2289, + -151.1245, + -122.808, + -123.588667, + -149.857, + 144.6063, + -152.192, + -149.939, + -111.418167, + -111.4355, + -110.965, + -120.549833, + -140.5289, + -136.701, + -117.817167, + -118.8365, + -151.0124, + -116.794167, + -112.525667, + -145.3071, + -145.414, + -151.0004, + -152.6575, + -122.810167, + -127.192, + -155.289833, + -151.0126, + -150.9865, + -118.837167, + -117.491, + -122.104833, + -147.7663, + -122.3835, + -151.0051, + -122.194667, + -116.072333, + -150.785, + -117.720667, + -122.8105, + -155.252167, + -163.5871, + -151.1613, + -112.711, + -111.413167, + -155.600174, + -112.4755, + -118.817667, + 127.6953, + -141.1068, + -120.786667, + -155.9487, + -118.2355, + -75.237833, + -118.883667, + -121.924167, + -155.427667, + -112.482833, + -116.010667, + -111.086833, + -151.3491, + -116.294333, + -159.6654, + -122.798167, + -146.4807, + -122.192333, + -178.1435, + -122.8035, + 126.4874, + -114.476333, + -149.9384, + 49.1899, + -110.318333, + -110.317333, + -116.290167, + 178.5051, + -117.412333, + -110.989667, + -136.8165, + -110.3, + -136.8358, + -68.5742, + -123.472, + -152.611, + -115.7095, + -155.2125, + -122.236667, + -116.2315, + -111.442667, + -112.527833, + -155.470673, + -122.572333, + -111.301167, + -116.372167, + -116.366, + -122.191167, + -83.742167, + -118.819, + -117.394, + -151.3822, + -145.2677, + -117.806833, + -117.807333, + -122.7625, + -118.319833, + -153.0253, + -150.9621, + -122.793167, + -122.792, + -151.5816, + -122.048833, + -112.526667, + -111.415167, + -116.846167, + -122.027667, + -112.880667, + -122.7565, + -122.753167, + -151.2568, + -118.808667, + -116.3645, + -116.3545, + -152.901, + -117.805167, + -150.1162, + -117.7192, + -98.7663, + -150.5337, + -116.435667, + -121.975, + -165.8816, + -98.755, + -116.6665, + -124.311667, + -162.2549, + -112.529, + -114.8195, + -117.801333, + -116.352833, + -116.758833, + -150.7536, + -147.4466, + -151.3316, + -66.7169, + -112.531, + -150.2126, + -110.326833, + -98.7425, + -151.2414, + -117.803667, + -112.529, + -117.805667, + -118.821833, + -122.802, + -116.796667, + -117.805333, + -117.803833, + -117.986333, + -94.5193, + -112.249667, + -114.5709, + -122.029167, + -156.904, + -116.937167, + -155.0805, + -116.469333, + -118.7775, + -148.9048, + -149.3904, + -118.835, + -116.282833, + -108.5682, + -124.101667, + -150.9792, + -118.590333, + -122.807335, + -118.191, + -118.8315, + -121.127667, + -112.466667, + -151.2987, + -121.125833, + -151.9517, + -147.4575, + 69.2314, + -95.0179, + -115.6247, + -117.480167, + -118.843333, + -121.9105, + -118.839167, + -118.848, + -150.5043, + -120.0698, + -111.438667, + -148.7521, + -98.036, + -117.469667, + -121.407833, + -149.2816, + -116.797167, + -118.9268, + -121.614333, + -121.609333, + -151.032, + -94.7831, + -151.5468, + -150.8528, + -78.3466, + -119.8623, + -94.219, + -116.979333, + -117.153667, + -154.0651, + -150.7431, + -145.2404, + -117.047667, + -152.038, + -138.3287, + -112.520833, + -150.7265, + -149.561, + -122.793, + -116.608833, + -120.942, + -111.414333, + -121.365667, + -112.527833, + -117.5975, + -122.59, + -155.4053, + -116.243833, + -122.3995, + -151.3314, + -121.831667, + -94.0265, + -113.109167, + -118.886, + -118.873, + -136.6853, + -121.174833, + -152.599, + -149.1044, + -155.471, + -116.237333, + -152.4213, + -112.5195, + 145.7448, + -155.7645, + -111.456667, + -152.8997, + -147.6239, + -155.6845, + -149.0205, + -149.1141, + -116.364, + -118.118, + -178.1517, + -121.157333, + -122.718666, + -68.1988, + -117.2313, + -146.3056, + -118.847167, + -146.8168, + -118.112167, + -112.521833, + -112.5265, + -147.4064, + -119.5495, + -151.3311, + -155.6385, + -117.269, + -122.751333, + -82.7745, + -117.681, + -151.2617, + -148.2839, + -120.616667, + -120.6095, + -147.3354, + -122.805, + -122.808998, + -150.8464, + -117.445, + -122.739333, + -122.319167, + -164.1558, + -148.3107, + -94.2992, + -116.446333, + -110.4045, + -150.6733, + -118.0874, + -116.347667, + -111.412333, + -156.2687, + -161.3929, + -145.6212, + -151.0452, + -121.4595, + -111.399, + -116.445833, + -118.8805, + -49.3194, + -122.767, + -145.5134, + -152.8761, + 166.7231, + -116.4405, + -148.0856, + -150.9837, + -122.764831, + -116.7955, + -152.6496, + -153.6613, + -119.9271, + -116.440833, + -118.1795, + -116.941667, + -28.8364, + -112.503, + -154.6502, + -118.84, + -146.8175, + -155.324, + -116.44, + -111.424333, + -155.373667, + -111.609167, + -150.9718, + -152.3579, + -118.787667, + -153.4244, + 140.1126, + -116.445167, + -114.2901, + -111.760333, + -147.9116, + -149.1084, + -116.446833, + -118.8285, + -121.5795, + -117.136833, + -121.464333, + -151.1249, + -149.2536, + -152.6674, + -153.0117, + -122.800667, + -151.3814, + -178.3915, + -150.1107, + -150.9147, + -153.0354, + -98.8228, + -151.2842, + -117.665167, + -155.370833, + 175.9616, + -118.979333, + -165.8047, + -178.1971, + 94.7848, + -150.5284, + -162.9795, + -147.3659, + -116.962167, + -179.8074, + -162.3851, + -150.8594, + -120.496833, + -149.705, + -118.973167, + -156.1077, + -122.802002, + -152.0389, + -110.353833, + -118.887667, + -117.812833, + -117.808167, + -122.82267, + -178.4068, + -122.763168, + -149.5708, + -151.958, + -151.1195, + -178.3958, + -150.7855, + -166.7772, + -149.872, + -149.929, + -154.8923, + -116.791333, + -151.2158, + -112.521333, + -72.0212, + -152.1655, + -111.137833, + -147.0756, + -121.486, + -115.479, + -140.0368, + -151.4998, + -116.363333, + -161.3923, + -136.7964, + -112.523, + -114.3199, + -151.264, + -178.4061, + -151.539, + -117.013833, + -116.047333, + -175.4878, + -178.3903, + -115.936833, + -145.6337, + -115.4845, + -116.783833, + -93.9398, + -110.430667, + -112.5225, + -174.1659, + -150.7077, + -116.790667, + -140.0237, + -112.529833, + -167.6571, + -119.3057, + -150.3039, + -146.178, + -112.528833, + -166.4948, + -151.3526, + -166.5335, + -154.6125, + -122.847336, + -119.315667, + -116.334333, + -151.2536, + -151.155, + -151.7768, + -149.6738, + -155.565506, + -140.0156, + -122.803169, + -117.168667, + -122.044167, + -150.6324, + -89.444833, + 91.8995, + -117.674, + -97.6124, + -89.517167, + -116.2705, + -120.991833, + -123.4015, + -68.7039, + -121.930333, + 167.7345, + -122.802, + -121.531667, + -121.444667, + -123.351667, + -113.9055, + -118.946833, + -117.503167, + -102.3612, + -121.609167, + -112.5355, + -118.831833, + -118.192, + -112.4715, + -117.649167, + -122.308833, + -120.932667, + -122.679167, + -117.133167, + 102.3915, + -112.523167, + -118.623333, + -118.880333, + 94.5291, + -121.718167, + -152.9366, + -115.4944, + -118.833, + -116.4615, + -116.466833, + -118.827833, + -112.528667, + -118.827833, + -118.827167, + -118.8265, + -118.829, + -117.0325, + -120.371333, + -142.9837, + -113.8425, + -111.4145, + -120.997333, + -89.8025, + -146.8151, + -112.526167, + 127.1289, + -118.822667, + -149.2609, + -122.751663, + 51.6372, + -112.524667, + -112.523333, + -111.084, + -112.527333, + -155.592667, + -97.5037, + -112.527833, + -151.1189, + -120.885667, + -61.2682, + 176.4854, + -112.533, + -111.218667, + -149.912, + -145.3257, + -118.510667, + -155.524002, + -110.33, + -88.2184, + -117.067167, + -117.064833, + -120.908833, + -152.1495, + -116.448833, + -146.8806, + -90.1365, + -111.480833, + -112.534333, + -112.529167, + -117.065667, + -94.8824, + -116.460667, + -122.812667, + -71.32, + -111.4165, + -111.414333, + -116.003333, + -151.5448, + -155.4204, + -112.523333, + -148.829, + -155.412338, + -82.894667, + -148.5467, + -112.528833, + -116.422833, + -150.2817, + -112.033833, + -154.1032, + -111.409667, + 174.3565, + -116.589167, + -116.009833, + -179.4587, + -116.010167, + -122.8935, + -89.527833, + -117.0518, + 72.4324, + -147.5212, + -120.524833, + -97.5118, + -122.245667, + -116.7985, + -111.411167, + -116.43, + -116.048333, + -111.446167, + -118.482167, + -155.021835, + -97.5196, + -154.9176, + -112.5073, + -113.017333, + -122.4705, + -111.418333, + -146.8167, + -111.411833, + -112.523167, + -151.5285, + -151.6012, + -111.4159, + -145.2312, + -122.426, + -111.4175, + -111.422333, + -155.584503, + -149.7914, + -116.793667, + -118.5175, + -114.7954, + -124.506167, + -150.6022, + -154.1198, + -138.1479, + -116.2755, + -122.810165, + -112.525833, + -141.9167, + -149.1362, + -149.9985, + -139.6538, + -116.830833, + -97.905833, + -150.3425, + -119.6519, + -149.8709, + -120.567667, + -153.8509, + -149.5477, + -112.515667, + -164.2618, + -136.5485, + -152.2691, + -149.1083, + -96.7952, + -121.619333, + -149.4052, + -174.5246, + -112.525167, + -122.3795, + -97.4467, + -94.3923, + 131.0709, + -122.806167, + -151.2184, + -121.676, + -117.7983, + -152.4695, + -122.800835, + -149.7414, + -119.1156, + -155.408493, + -117.7769, + -139.5344, + -152.7881, + -115.6588, + -123.289333, + -76.1816, + -118.8365, + -149.0123, + -141.3476, + -151.1025, + -173.7815, + -153.142, + -177.8183, + -118.736333, + -122.80983, + -119.018, + 92.3426, + -119.033833, + 142.306, + -123.078833, + -156.3848, + -174.5287, + -140.7487, + -111.447833, + -112.525833, + -155.633499, + -154.909, + -141.6138, + -153.1725, + -150.3672, + 91.9129, + -157.0328, + -153.3802, + -155.3702, + -116.200333, + -122.793999, + -175.5366, + -153.7216, + -119.6834, + -136.6219, + -116.46, + -112.509667, + -178.4679, + -154.0171, + -153.6069, + -122.718, + -154.5011, + -139.5182, + -116.731167, + 179.4705, + -156.485667, + -148.6332, + -118.984, + -149.0636, + -118.9213, + -116.791833, + -176.6916, + -117.464167, + -154.4428, + -153.1498, + -118.452, + -93.8612, + -153.2003, + -136.7558, + -67.7814, + -117.651333, + -116.908333, + -169.7071, + -150.4859, + -77.5019, + -149.6539, + -150.8258, + -112.459167, + -119.2085, + -97.7785, + -152.7218, + -148.5055, + -98.7711, + -152.9474, + -118.8205, + -118.8205, + -155.631836, + -141.345, + -112.578, + 146.1269, + -85.5987, + -149.6914, + -175.9412, + -150.577, + -116.833167, + -117.485, + -112.5235, + -156.095333, + -141.2898, + -121.157167, + -112.526333, + -121.228833, + -151.739, + -70.9053, + -118.3845, + -155.476502, + -174.2232, + -121.9095, + -112.528833, + -166.7866, + -173.6834, + -139.521, + -121.7125, + -73.1491, + -116.354833, + 140.5685, + -169.8117, + -117.119167, + -153.8841, + -150.4019, + -118.939, + -152.9252, + -178.4432, + -166.7041, + -178.4546, + -169.6939, + 126.9456, + -151.9899, + -147.3486, + -169.9474, + -155.123672, + -111.459167, + -111.4566, + -111.4606, + -111.473, + -149.5092, + -116.455333, + 128.5426, + -152.5291, + -152.7509, + -149.1116, + -152.6933, + -115.9049, + -115.8999, + -115.9056, + -115.9061, + -111.4515, + -151.5204, + -117.6755, + -147.3476, + -144.0067, + -152.2422, + -151.7955, + 139.9751, + -123.056833, + -122.2745, + -120.780167, + -116.791, + 122.7108, + -68.5125, + -155.469, + 143.8145, + -116.363167, + -122.781, + -152.1783, + -150.6852, + -118.1362, + -143.1572, + -176.2132, + -112.525333, + -111.4618, + -152.5093, + -149.7901, + -94.8027, + -116.89, + -177.8619, + -151.5581, + -119.160667, + -94.9189, + -121.484167, + -141.6079, + -141.5942, + -178.119, + -90.9767, + -122.8085, + -122.3415, + 179.9778, + -154.7866, + -122.691, + -97.5446, + -150.7001, + -112.531167, + -117.492667, + -139.5985, + -122.249667, + -118.819833, + -117.2715, + -122.452333, + -155.627833, + -143.5599, + -148.6949, + -150.4836, + -116.461667, + -159.2124, + -115.658167, + -116.768833, + -151.4069, + -118.82, + -163.7202, + -118.8976, + -163.7286, + -110.635, + -150.6494, + -153.8697, + -118.898833, + -74.5095, + -150.0654, + -148.3117, + -119.155, + -153.1722, + -111.4255, + -149.9682, + 128.7797, + -151.8184, + -122.800833, + -147.3164, + -94.0971, + -178.3876, + -111.411333, + -120.1355, + -152.7222, + -149.0664, + -122.7435, + -97.5543, + -116.3055, + -115.638333, + -179.9144, + -122.750832, + -123.270833, + -173.4581, + -151.2563, + -118.820833, + -121.095167, + -176.4734, + -152.7203, + -150.0463, + -147.4986, + -176.4214, + -122.7965, + -147.3389, + -118.784, + -118.9575, + 178.7893, + -94.1802, + 105.0015, + -118.599667, + -118.076333, + -113.9725, + -112.2913, + -152.3454, + -169.3954, + 146.5825, + -118.82, + -150.7455, + -111.416167, + -176.3938, + -103.5373, + 56.8179, + -151.0884, + -118.833, + -150.9578, + -153.6653, + -155.7167, + 136.7409, + -136.643, + -120.242833, + -89.540333, + -136.6248, + -149.3855, + -175.4182, + -118.2269, + -153.4354, + -94.1267, + -120.231333, + -118.820667, + -136.8027, + -151.7993, + -178.5238, + -118.821, + -149.6362, + -152.6879, + -116.0465, + -148.9689, + -116.046167, + -174.2839, + -146.9672, + -149.1933, + 120.696, + -140.6767, + -147.3628, + -118.822, + -116.794167, + -72.9693, + -118.819667, + -151.2194, + -118.7985, + -93.7775, + -72.1967, + -110.33, + -146.5236, + -110.331, + -178.3899, + -154.6224, + -119.2355, + -94.0878, + -126.71, + -96.8727, + -147.3481, + -116.9775, + -118.822, + -148.3588, + -122.352667, + -120.5572, + -94.8406, + -118.878667, + -117.142333, + -94.3377, + -122.722, + -112.210167, + -178.6762, + -117.174667, + -178.4109, + -173.0656, + -153.0358, + -93.8244, + 160.0808, + -118.839833, + -117.962833, + -149.7372, + -122.5445, + -122.840332, + -118.351833, + -122.638, + -118.813333, + -126.9812, + -111.408333, + -150.1805, + -71.7041, + -178.5133, + -118.823167, + -161.5563, + -151.5157, + -146.4094, + -118.819833, + -178.3979, + -150.7333, + -122.763167, + -141.9223, + -67.2978, + -141.3415, + -112.561, + -176.2265, + -118.8685, + -115.9525, + -118.822, + -155.601833, + -147.4859, + 30.6565, + -121.628333, + 143.8294, + -153.3591, + -150.347, + -174.4266, + -178.523, + -178.5572, + -146.4554, + -94.674, + -120.190833, + -118.820167, + -112.502167, + -152.1692, + -118.8215, + -147.2498, + -153.7332, + -153.7502, + -98.0981, + -153.9597, + -112.506667, + -147.3879, + -176.2136, + -118.862333, + -148.0206, + -118.270167, + 67.9437, + -118.821167, + -118.822, + -141.3697, + -111.431, + -112.531833, + -118.821, + -117.7002, + -176.2102, + -155.457667, + -118.030167, + -111.410833, + -118.292833, + -111.451, + -119.1244, + -113.712667, + -155.030667, + -155.2959, + -94.0117, + -150.2101, + -105.3739, + -118.8685, + -170.2168, + -178.4342, + -120.248167, + -116.6475, + -121.713833, + -119.1157, + -168.1308, + -120.236167, + -118.821833, + -111.408833, + -121.0275, + -116.798333, + -111.772667, + 143.7467, + -149.7405, + -115.671, + -122.721832, + -118.838167, + -119.2245, + -154.0102, + -150.1298, + -93.929, + -112.7785, + -176.291, + -151.1687, + -118.898667, + -150.5017, + -117.4335, + 90.3467, + -119.1177, + -116.978833, + -119.1188, + -122.8105, + -120.989667, + -118.540833, + -122.733667, + 55.3123, + -120.571833, + -145.5877, + -118.848167, + -118.838333, + -118.835333, + -146.3945, + -149.1712, + -118.834167, + -96.6816, + -118.5308, + -115.982833, + -145.485, + -118.8385, + -118.8355, + -168.5107, + -118.824833, + -139.9358, + -122.78717, + -89.653833, + -179.5233, + -150.8708, + -111.55, + -118.846833, + -116.978, + -150.4686, + -165.0654, + -94.1021, + -122.826833, + -96.6968, + -112.514, + -117.02, + -150.311, + -94.0465, + -165.3696, + -118.835833, + -97.887333, + -122.8045, + -122.758667, + -116.976, + -150.9369, + 178.5129, + -155.463667, + -117.302333, + 141.7803, + -116.259833, + -115.569, + -116.924833, + -116.1923, + -116.7885, + -116.791167, + -174.9834, + -122.720497, + -150.8838, + -111.687, + -111.936667, + -169.976, + -170.1717, + -147.0631, + -178.579, + -118.834333, + -115.570333, + -151.4881, + -156.135, + -122.876831, + -122.818333, + -117.313, + -116.7955, + -118.818, + -118.585667, + -148.3267, + -139.2144, + -155.3512, + -178.3692, + -147.7379, + 144.7489, + -151.8862, + -148.9604, + -117.5187, + -118.821, + -118.818833, + -122.0985, + -152.9034, + -175.6403, + -118.9062, + -179.7911, + 127.5676, + 133.3331, + -153.3134, + -147.1768, + -118.834833, + -178.5949, + 130.4998, + -121.1135, + -118.878833, + -121.417833, + -112.521333, + -158.5454, + -153.4826, + -153.4008, + -151.2636, + -122.710833, + -149.2148, + -151.0761, + 19.9413, + -150.8044, + 150.778, + -150.9288, + -150.7041, + -118.9234, + -145.6029, + -116.990833, + -119.1182, + -155.430333, + -149.484, + -97.3897, + 129.2381, + -150.5815, + -148.1989, + -116.131167, + -151.0033, + -112.525833, + -153.2274, + -152.4925, + -120.631667, + -150.3296, + -84.1381, + -111.457167, + -171.0327, + -116.118167, + -149.6565, + -116.0954, + -151.596, + -151.8361, + -118.530333, + -152.5986, + -155.122167, + -136.8725, + -121.129833, + -112.495833, + -146.5002, + -122.995833, + -153.0379, + -116.792167, + 127.5691, + 120.0401, + -150.7645, + -155.142167, + -147.8062, + -151.9273, + -150.3551, + -111.4394, + -121.0045, + -150.0408, + -150.3231, + -136.3488, + -156.1177, + -118.833833, + -151.1247, + -122.996667, + -154.4495, + -140.6854, + -98.1391, + -147.9819, + -98.3926, + -148.7975, + -122.821335, + -122.995167, + -127.1635, + -174.9091, + -111.421333, + -118.821333, + -111.415667, + -153.4995, + -149.5495, + -152.3463, + -150.1075, + -153.3566, + -118.4887, + -149.09, + -149.5382, + -119.023333, + -121.905, + -139.9752, + -122.078, + -152.42, + -111.440333, + -143.596, + -154.1565, + -147.3908, + -146.4079, + -150.8998, + -118.88, + -148.174, + -122.825333, + -151.4189, + 140.558, + -150.1805, + -119.485667, + -178.1313, + -150.9834, + 176.7195, + -177.5238, + -121.096, + -151.338, + -117.6855, + -118.823333, + -150.3689, + -115.834333, + -155.421333, + -122.2205, + -66.6261, + -170.4192, + -116.7675, + -178.4957, + -149.7058, + -143.6191, + -118.9118, + -147.4437, + -112.525167, + -118.880833, + 117.1706, + 145.2449, + -149.7694, + -118.823, + -121.6315, + -119.6237, + -155.1681, + -155.865167, + -122.751, + -166.0108, + -149.7632, + -119.6325, + -136.6957, + -112.525167, + -112.53, + -118.817833, + -153.2642, + -69.1659, + 141.4054, + -159.6189, + -150.1188, + -149.8057, + -118.88, + -149.0895, + -117.767667, + -117.884833, + -112.285833, + -111.4205, + -152.0285, + -151.4519, + -147.9371, + -94.9228, + -150.9601, + -96.8025, + -118.876833, + -147.1846, + -118.8255, + -121.088333, + 178.6248, + -154.1124, + -98.1712, + -98.1535, + 151.8102, + -118.878833, + -120.191167, + -112.5215, + -120.970833, + -118.8805, + -120.0173, + -116.3855, + -150.7449, + -148.7299, + -1.5206, + -83.8862, + -151.2038, + -174.5433, + -116.9255, + -148.3529, + -111.946, + -117.812, + -115.939667, + -150.5701, + -123.2635, + -149.9128, + -118.089667, + -122.794, + -115.1041, + -112.526333, + -117.059, + -166.4042, + -122.731667, + -153.0633, + 119.4365, + -122.738335, + -146.2845, + -150.1097, + -149.6125, + -118.832, + -117.392833, + -159.5885, + -116.758833, + -151.6143, + -140.0102, + -178.4287, + -112.297667, + -151.7318, + -116.792167, + 123.4716, + -177.4366, + -122.745331, + -112.294333, + 140.5824, + -155.233167, + -150.5065, + -151.3499, + 140.5529, + -73.9242, + -122.7435, + -112.533833, + -154.5993, + -120.852333, + -120.307333, + -123.103667, + -71.6095, + -147.6538, + -119.024, + -151.9637, + -151.1366, + -139.1298, + -179.8525, + -138.178, + -116.481833, + -150.501, + -118.197, + -112.472833, + -122.4435, + -117.193167, + -116.929, + -112.524833, + -112.525, + -118.313333, + -153.2174, + -155.5095, + -117.8595, + -112.542833, + -136.8081, + -122.1055, + -114.8105, + -151.0074, + -152.1276, + -111.9895, + -116.796333, + -165.5261, + -150.0546, + -153.0431, + -154.1368, + -150.1018, + -165.6494, + -114.0737, + -118.836, + -116.795833, + -143.7065, + -122.995833, + 119.9926, + 129.0234, + -121.231667, + -152.9254, + -112.533333, + -118.989167, + -153.7404, + -119.417833, + -118.8715, + -151.3466, + -155.561, + -121.941333, + -154.3316, + -139.533, + -155.401167, + -150.649, + -152.2196, + -150.3755, + -112.5215, + -151.5503, + -117.7233, + -117.935333, + -118.840667, + -121.243667, + -122.745833, + -112.555, + 179.4288, + -143.1318, + -150.0235, + -150.9213, + -112.528667, + -148.4582, + -168.2773, + -153.1779, + -135.4027, + -151.9174, + -116.789667, + -112.526833, + -103.2764, + -122.809, + -121.074167, + -136.664, + -121.621833, + -141.3194, + -118.830667, + -152.8154, + -152.1528, + -140.0126, + -143.6373, + -155.2035, + -117.2622, + -103.2693, + -118.819167, + -112.529667, + -111.067, + -116.0485, + -71.3374, + -135.4344, + -111.061667, + -116.052, + -115.542667, + 54.1871, + -152.4269, + 179.5053, + -122.570833, + -179.1801, + -118.8395, + -153.5535, + -97.776167, + -122.818169, + -154.5074, + -118.0035, + -175.3064, + -119.1202, + -150.4062, + -119.377, + -146.74, + -179.6222, + -150.3009, + -97.966167, + -148.227, + -112.53, + -150.2772, + -97.886, + -112.536833, + -119.114, + -119.3735, + -116.296833, + -122.492333, + -116.050333, + -117.1045, + -136.7916, + -151.8594, + -116.011667, + -116.796667, + -119.372333, + -110.7735, + -122.784333, + 139.7504, + -119.6245, + -43.5388, + -103.2078, + -119.004333, + -178.399, + -153.0454, + -122.555, + -121.683, + -115.519833, + -178.3801, + -122.880667, + -145.6852, + -118.4858, + -97.8806, + 179.3827, + -116.628167, + -146.3878, + -149.6683, + -165.6565, + -68.4332, + -150.7491, + 126.6287, + -155.2738, + -116.7765, + -89.549667, + -178.4471, + -152.0762, + 142.4161, + -150.7558, + -147.0546, + 145.0971, + -149.0231, + -116.792667, + -149.2412, + -118.873833, + -117.679333, + -94.2432, + -151.6178, + -112.632, + -147.3996, + -152.0673, + -122.808502, + -152.9009, + -119.6252, + -11.6494, + -123.953167, + -116.304167, + -116.216, + -72.2376, + -119.6217, + -116.750667, + -127.0155, + -153.0128, + -153.3493, + -179.9476, + -122.810333, + -112.496, + -151.0111, + -110.515167, + -136.56, + -146.6788, + -122.735333, + -155.471167, + -121.609667, + 142.4059, + -151.1826, + -97.9668, + -152.8619, + -152.0714, + -150.6417, + -120.989167, + -112.4975, + -120.6625, + -122.398833, + -116.897333, + -111.413167, + -116.797167, + -119.4885, + -146.4352, + 132.7412, + -122.783165, + -94.6352, + -150.9798, + -112.531667, + -148.2303, + -122.46, + -150.9789, + -122.811, + -116.7965, + -118.948, + -155.231, + -152.1914, + -117.813667, + -117.8115, + -148.1385, + -112.532, + -151.8207, + -122.884, + -121.291667, + -161.7955, + -112.530333, + -155.0092, + -152.3757, + -149.837, + -152.4629, + -148.3694, + -150.0798, + -147.5248, + -111.442, + -115.823833, + -118.809833, + -112.498, + -122.182167, + -111.139833, + -116.289833, + -111.4364, + -118.821, + -155.504837, + -146.3857, + -112.090667, + -139.9329, + -138.6533, + -110.9865, + 177.8212, + -157.5906, + -155.617667, + -120.617833, + -164.7207, + -71.3743, + -148.9281, + -115.097167, + -116.275333, + -147.1982, + -120.2285, + -115.599833, + -153.5507, + -150.7286, + -132.545, + -177.9939, + -179.9246, + -74.1449, + -156.8671, + -118.786167, + -153.0976, + -155.293667, + -112.524667, + -151.0017, + -140.0459, + -122.737833, + 168.1159, + -166.412, + -152.7411, + -112.4815, + -111.387167, + -139.9572, + -118.8963, + -153.2644, + -119.041333, + -147.8181, + -152.9641, + -117.104333, + -118.931833, + -151.8017, + -148.402, + -153.871, + -150.6564, + -118.8949, + -119.0225, + -77.3187, + -118.810667, + 115.4547, + -145.2525, + 178.8693, + -151.558, + -118.8996, + -162.222, + -116.4375, + -146.6643, + -147.6643, + -152.2404, + -153.6597, + -118.914, + -122.807833, + -135.8603, + -152.82, + -149.778, + -110.651333, + -152.1721, + -152.737, + -118.498833, + 101.3356, + -66.5505, + -112.522667, + -93.9602, + -153.1229, + -118.825667, + -122.798332, + -112.5275, + -117.061, + -117.064333, + -117.0413, + -143.4106, + -176.9366, + -112.525167, + -153.643, + -153.6304, + -148.8611, + -118.823667, + -122.764167, + -110.943167, + -153.7269, + -151.2988, + -122.737167, + -136.6717, + -97.620667, + -118.823833, + -136.5638, + -149.4631, + -148.2072, + -121.9235, + -153.9619, + -151.393, + -140.6474, + -178.2892, + -146.8119, + -150.616, + -68.2679, + -143.7961, + -77.6296, + -150.6406, + -148.0359, + -122.759667, + -118.0721, + 130.4109, + 3.755, + -136.7759, + -155.826167, + -122.7125, + -120.579, + -116.792667, + -117.681667, + -119.320667, + -112.523833, + 115.85, + -116.0935, + -122.7885, + -74.513833, + -153.4035, + -112.528833, + -98.154, + -154.034, + 124.3318, + -111.460833, + -177.4659, + -145.4807, + -116.792333, + -121.748833, + -116.200667, + -118.887667, + -149.2776, + -151.1161, + -121.791667, + -147.0547, + -117.492167, + -115.220833, + 152.7133, + -155.421333, + -112.526, + -99.1495, + 107.7299, + -112.530333, + -139.5073, + -150.5651, + -140.7001, + -127.1586, + -136.8124, + -122.785167, + 179.3689, + -117.018667, + -155.950667, + -178.478, + -118.4445, + -116.862667, + -112.712833, + -150.8085, + -116.790833, + -119.689, + -152.8848, + -112.5255, + -120.781833, + -152.7347, + -112.525167, + -116.792667, + 106.3876, + -122.104, + -138.2167, + -111.615667, + -153.1637, + -120.778667, + -127.3303, + -116.797167, + -174.7769, + -116.977, + -153.4355, + -121.679333, + -120.322, + -122.811333, + -116.858833, + -115.9285, + -112.534667, + -112.531833, + -150.8601, + -141.3984, + -143.1565, + -153.6264, + -150.0949, + 167.4691, + -136.8449, + -112.521333, + -116.552, + -151.2671, + 167.0258, + -118.953833, + -94.1777, + -122.838333, + -147.0448, + -71.99, + -122.838, + -116.271667, + 178.6657, + -177.0765, + -140.7016, + -150.4545, + -120.787167, + -165.2595, + -156.1793, + -118.862667, + -152.2424, + -119.241667, + -71.282, + -121.000167, + -118.559, + -156.7013, + 138.5087, + -120.256667, + -178.4582, + -178.4978, + -178.4489, + -155.473667, + -117.471167, + -149.3115, + -119.938333, + -156.023667, + -112.521667, + -146.8893, + -116.7915, + -118.6475, + -120.2805, + -122.839333, + 139.9741, + -117.943, + -112.523833, + -112.523, + 154.0023, + -139.8097, + -177.9674, + -177.9649, + -121.401667, + -112.525833, + -118.9249, + -116.790167, + -178.4079, + -151.3579, + -147.4142, + -139.991, + -118.1098, + -148.9036, + -118.815, + -112.5238, + -118.568, + -118.8911, + -150.2932, + -152.8348, + -111.448333, + -154.6407, + 129.4008, + -111.448, + -97.968667, + -93.7801, + -118.818667, + -118.8175, + -160.5224, + -71.5244, + -94.1793, + -118.818167, + 106.9645, + -118.818833, + -119.5993, + -152.7721, + -116.738333, + -25.7407, + -119.604, + -112.538333, + -152.9967, + -155.2438, + -146.4148, + -117.909, + -122.705833, + -155.0479, + -150.9489, + -116.8855, + -27.4466, + -122.80867, + -122.810833, + -119.1325, + -145.1369, + -94.7839, + -150.5906, + -151.457, + -148.0928, + -151.7179, + -122.797501, + -153.8303, + -119.943833, + -150.6826, + -116.813167, + -148.6095, + -116.765333, + -141.6787, + -141.667, + -155.050167, + -152.57, + -149.5629, + -141.1978, + -151.6915, + -162.4539, + -118.821, + -115.721333, + -94.6458, + -122.760333, + -118.902833, + -111.028, + -151.0832, + -154.9051, + -152.9559, + -117.0863, + 130.3868, + -94.3651, + -111.424667, + -150.934, + -118.799167, + -150.0019, + -150.9808, + -119.123, + -154.9667, + -111.027, + -122.80867, + -115.1188, + -148.5309, + -118.8205, + -118.819667, + -152.4754, + -164.0291, + -153.3822, + -123.1525, + -120.849, + -152.5039, + 137.7689, + -136.7694, + -178.4213, + -155.2325, + -89.900667, + -118.819, + -155.278503, + 102.0863, + -151.1504, + -122.826836, + -119.113333, + -179.7022, + -120.777, + -116.909333, + -122.81, + -151.421, + -119.010167, + -118.8185, + -122.812333, + -116.038, + -118.818333, + -152.7731, + -155.4185, + -178.5363, + -141.4135, + -122.581833, + -122.543167, + -118.885, + -118.492333, + -163.1998, + -147.1933, + -144.3135, + -179.0551, + -122.810333, + -115.6642, + -120.502167, + -66.369, + -116.032333, + -118.880667, + 27.2871, + -121.677, + -116.0285, + -151.3105, + -150.2217, + -147.7754, + -119.3547, + -147.9052, + -140.0305, + -108.899, + -118.820667, + -155.553, + -118.978833, + -121.7565, + -112.045667, + -120.359333, + -121.7535, + -94.9623, + -139.7832, + -124.458, + -117.965667, + -145.0762, + -154.4328, + -108.8955, + -121.757333, + -118.9076, + -149.2725, + -175.9271, + -140.1228, + -139.537, + -176.6787, + -117.6935, + -155.326172, + -94.0503, + -150.1247, + -95.2151, + -99.7664, + -94.8221, + -119.353833, + -166.7084, + -155.9705, + -114.3134, + -115.573, + -178.541, + -115.547333, + -115.565833, + -94.2354, + -122.771164, + -155.4939, + -115.577833, + 101.4422, + -150.6804, + -147.0578, + -155.282165, + -94.0996, + -148.2731, + -146.4789, + -176.1457, + -119.3825, + -86.8213, + -147.1034, + -118.880333, + -140.6899, + -95.2276, + -151.0562, + -142.0331, + -150.7525, + -155.234167, + -150.7169, + -118.8435, + -121.552333, + -151.2949, + -117.0385, + -111.4513, + -94.9034, + -152.1541, + -152.5249, + -112.523333, + -120.1999, + -71.864, + -150.8397, + -141.1115, + -111.028333, + -120.845333, + -119.3545, + -176.5436, + -75.5466, + -121.948167, + -118.8185, + -150.9435, + -116.828167, + -173.3164, + -149.0067, + -155.438667, + -118.879667, + -118.880167, + -151.625, + -178.4442, + 122.3102, + -140.6676, + -111.4686, + -117.65, + -118.880833, + -97.9698, + -147.3609, + -120.708833, + -156.1558, + -112.041833, + -112.063667, + -112.056, + -115.754667, + -139.4813, + -155.284164, + -155.28067, + -69.2705, + -176.4834, + -139.387, + -89.522833, + -122.720833, + -149.3418, + -71.2801, + -155.1268, + -118.8245, + -169.8092, + -125.023333, + -94.8425, + -147.5769, + -118.819333, + -121.125, + 179.8852, + -97.1371, + -121.141167, + -116.450333, + 161.7808, + -150.6803, + -116.8005, + -151.6167, + -151.5807, + -151.5965, + -88.7877, + -118.836167, + -116.178333, + -116.430333, + -151.6255, + -140.5978, + -148.6346, + -149.5334, + -122.7145, + -116.801167, + -116.924333, + -94.9873, + -147.3702, + -111.304, + -122.735333, + -71.616, + -115.609, + 178.1771, + 124.82, + 124.8199, + -139.96, + 124.8736, + -169.6652, + -118.821667, + -136.5445, + -121.684333, + -178.0461, + -149.8099, + -118.403833, + -124.396167, + -118.835833, + -118.8365, + -175.8992, + -136.8833, + -118.820833, + -150.4017, + -157.0611, + -111.4214, + -143.197, + -118.821667, + -138.4442, + -116.415167, + -115.972, + -122.811833, + -148.742, + -163.1544, + -155.611167, + 125.1457, + -118.7965, + -151.5715, + -151.6425, + -68.9096, + -117.4515, + -121.3425, + -122.773834, + -117.848333, + -117.845167, + -118.807, + 71.1291, + -69.21, + -120.9955, + -116.8015, + -117.261167, + -111.4447, + -94.7171, + -118.606833, + -118.606833, + -157.6342, + -152.8058, + -173.0149, + 62.7519, + -150.7141, + -141.5959, + -118.623667, + -116.444, + -111.4292, + -95.0107, + -112.525833, + -121.0924, + -116.795667, + -94.8831, + -94.97, + -122.811667, + -118.0575, + -95.1269, + -139.8075, + -118.612, + -154.6324, + -118.817167, + -148.8881, + 120.8176, + -94.9123, + -148.8726, + -148.8844, + 129.9043, + -112.890833, + -94.9509, + -148.8768, + -149.6941, + -148.9047, + 142.1923, + -175.84, + -175.8612, + -111.340667, + 154.9573, + -151.7852, + -150.5567, + -118.112333, + -170.4308, + -116.561667, + -141.3968, + -139.4355, + -177.3627, + -94.1625, + -154.4514, + -139.4379, + -118.827, + -148.9513, + -156.2999, + -143.0011, + -151.2829, + -121.288667, + -77.7746, + -127.0845, + -122.313333, + -121.254167, + -140.5764, + 129.0524, + 152.0272, + -142.1159, + -151.6279, + -122.762, + -116.4425, + -118.9167, + -170.3853, + -178.4175, + -116.324167, + -111.419667, + -94.2976, + -118.898167, + -94.3958, + -118.200167, + -116.2696, + 144.8812, + -116.9395, + -87.0247, + -150.0613, + 129.7584, + -147.2865, + -122.281667, + -119.6555, + -179.8683, + -116.616, + -142.2213, + -116.1876, + -117.4415, + -118.917, + -74.7175, + 108.9322, + -121.9835, + -122.827667, + -122.848, + -121.177333, + -153.6246, + -139.7807, + -119.2867, + -116.208667, + -151.2827, + -118.9021, + -119.2929, + -119.285333, + -122.735336, + -126.992667, + -94.9729, + -127.014, + -151.8458, + -150.0957, + -151.4982, + -161.4425, + -153.3477, + -143.4939, + -161.1196, + -119.3283, + -124.4195, + -149.0373, + -111.4417, + -120.888333, + -148.7081, + -119.640167, + 130.2316, + -178.4878, + -148.4306, + -153.7156, + -122.8475, + 74.5944, + -147.4554, + -156.1191, + -118.9048, + 141.0234, + -147.3949, + -122.176833, + -135.8468, + -142.5552, + 144.1488, + 159.6233, + -122.362, + -165.4507, + -124.417333, + -121.119, + -150.734, + -35.8191, + -112.649833, + -116.8015, + -118.939167, + 128.7982, + -153.1588, + -117.0015, + -122.8605, + -147.2941, + -121.262833, + -126.983667, + -155.434662, + -140.6992, + -153.1112, + -151.0777, + -178.1151, + -165.0025, + -151.8129, + -122.793999, + -97.7172, + -158.1399, + -152.1371, + -146.3651, + -152.6595, + -155.825667, + -126.6543, + -153.4364, + -153.6978, + -89.499167, + -126.8342, + -119.0338, + -121.041, + -140.752, + -118.202333, + -122.7205, + -136.7465, + -112.474333, + -150.4734, + -118.345, + 163.2943, + -118.816833, + -121.945833, + -121.951833, + -156.5222, + -111.397333, + -116.9245, + -140.7358, + -155.303667, + -166.8203, + -166.8262, + -121.8865, + -148.8735, + -111.430167, + -175.9282, + -111.4775, + -153.2736, + -147.9781, + -112.555833, + -116.656667, + -111.408833, + -148.7965, + -122.816333, + -125.362167, + -142.4377, + -156.043667, + -152.9448, + -117.496667, + -116.406, + -152.164, + -121.062, + -111.413333, + -111.424667, + -118.874667, + -127.211833, + -111.447833, + -116.7965, + -149.0265, + -111.4395, + -118.9043, + -155.279333, + -111.456167, + -98.4231, + -151.3603, + -162.8719, + -158.2867, + -119.1113, + 121.5573, + -155.7703, + -146.9318, + -179.4373, + -121.585167, + -118.375333, + -151.6016, + -140.7156, + -116.7945, + -122.772667, + -122.822502, + -150.3362, + 179.5624, + -152.1731, + -116.2162, + 127.2264, + -177.4418, + -151.0434, + -147.6021, + -122.773167, + 178.7372, + -122.771667, + -140.7611, + -155.465667, + -116.362833, + -140.7152, + -140.7017, + -153.1633, + -118.503333, + -139.1121, + -149.9729, + -112.526167, + -122.73983, + -122.806, + -111.445, + -153.8777, + -148.8636, + -139.923, + -115.5007, + -112.5235, + -122.841333, + -118.8235, + -117.848, + -144.2241, + -149.3288, + -155.868333, + -148.5912, + -150.632, + -111.437167, + 127.9846, + -153.7084, + -108.901833, + -151.4502, + -92.239, + -159.9518, + -122.764833, + -124.402833, + -118.8225, + -139.1147, + -111.417833, + -148.9184, + -110.338833, + 151.9837, + -118.9097, + -158.4396, + -151.1276, + -163.9814, + -155.4615, + -153.4546, + -111.447833, + -118.8235, + -117.648333, + -118.570833, + -108.7724, + 159.4959, + -112.5285, + -151.7519, + -148.827, + -121.788667, + -152.9681, + -11.1483, + -118.821833, + 26.2553, + -118.883167, + -116.797167, + -121.789333, + -96.682, + -148.7614, + -147.3642, + -136.6975, + -116.074333, + -149.1502, + -150.6692, + -136.7111, + -118.779667, + -121.0265, + -174.992, + -110.026833, + -111.558333, + -118.780833, + -114.930333, + -151.0885, + 165.3116, + 149.2095, + -97.6825, + -120.171833, + -155.755667, + 90.3605, + -148.7004, + -112.5671, + -165.0769, + -110.445667, + -116.764667, + -146.518, + -121.669, + -112.4995, + 144.5809, + -148.8706, + -146.4937, + -97.5127, + -115.397167, + -117.115667, + -152.5062, + -111.420167, + -112.5215, + -167.0329, + -179.929, + -122.821, + -151.5575, + -150.4889, + -155.7482, + -148.8756, + -121.5285, + -121.526667, + -114.9225, + -111.747833, + -117.650167, + -155.552333, + -117.157, + -155.419833, + -155.437167, + -120.9551, + -155.439167, + -116.241667, + -116.241167, + -139.8843, + -119.6985, + -118.189, + -118.371167, + -152.75, + -122.827333, + -155.0904, + -97.888333, + -117.488667, + -93.8962, + -116.882167, + -152.5203, + -111.4191, + -117.493667, + -69.359, + -122.818337, + -163.8314, + -147.6752, + -151.0122, + -118.821333, + 57.3957, + -153.5339, + -150.3633, + -152.5458, + -116.4305, + -122.105167, + -151.3313, + -116.240833, + -116.238, + -156.198, + -120.955667, + 153.792, + -152.3293, + -121.136833, + -122.830667, + -139.9511, + -94.1412, + -121.522667, + -121.523, + -111.416833, + -118.7985, + -136.8562, + -142.43, + -144.7448, + 94.8925, + -152.0389, + -155.606333, + -122.736, + -117.040833, + -108.899167, + -118.872833, + -157.7558, + -118.9071, + -152.776, + -155.1472, + -111.4287, + -141.1414, + -150.406, + -149.6121, + 150.7163, + -161.2107, + -150.7877, + -141.3702, + -119.046, + -151.4947, + -136.8273, + -149.927, + -166.8959, + -119.040833, + -118.854333, + -119.009333, + -89.530833, + -151.8383, + -150.912, + -122.196833, + -89.4975, + -93.2903, + -119.2534, + -112.834, + -153.7102, + -122.821833, + -152.1289, + -116.893333, + -143.0672, + -139.0266, + -111.4339, + -122.7595, + -150.7623, + -118.8215, + -150.6774, + 30.4877, + -151.1345, + -144.6331, + -153.6066, + -150.6496, + -152.9585, + -151.3398, + -148.5434, + -116.966, + -122.764333, + -139.9567, + -112.540333, + -155.471833, + -121.789167, + -146.6995, + -122.0545, + -73.683, + -122.784164, + -119.235667, + -153.5178, + -116.8585, + -147.7553, + -155.7415, + -160.4341, + -153.0439, + -122.775002, + -121.785833, + -138.0133, + -151.3138, + -151.4845, + -119.1193, + -177.15, + -119.6227, + -111.427333, + -147.1789, + -118.9138, + -118.9096, + -150.1806, + -158.3423, + -120.612, + -136.6084, + -116.392833, + -122.537333, + -97.6319, + -122.777664, + -136.4015, + -122.778, + -149.7592, + -147.0959, + -120.541, + -117.250167, + 178.4863, + -146.7027, + -147.6955, + -118.416, + -155.279833, + -147.6742, + -177.9506, + -147.6875, + -112.729167, + -117.389333, + -178.8238, + -141.3476, + -122.065833, + -175.3417, + -161.1071, + -150.9186, + 113.0028, + -117.513, + -147.307, + -122.830833, + -70.8955, + -115.600667, + 148.002, + -150.5728, + 147.9821, + 147.8337, + -147.7194, + -118.8235, + -152.7597, + -141.2822, + -152.7128, + -122.817497, + -112.3355, + -140.8648, + -148.1675, + -155.695496, + -117.92, + -148.4385, + -149.6592, + -120.59, + -141.3926, + 169.0947, + -155.033667, + -117.0765, + -166.8359, + -98.0579, + -148.8873, + -110.451, + -115.1139, + -118.751, + -119.1164, + -122.592833, + -146.4033, + -150.2132, + -115.389167, + -121.428333, + -111.474333, + -121.9675, + -150.582, + -151.2216, + -121.983667, + -121.546833, + -136.6968, + 144.6601, + -145.5787, + 118.8822, + 135.4357, + -141.1746, + -117.593333, + 166.9265, + -97.783, + -28.7481, + -111.455667, + 70.9001, + -82.8639, + -157.5285, + -146.5508, + -114.1207, + -117.514, + -124.179, + 121.7572, + -124.182833, + -111.4155, + -156.6193, + -150.2998, + -112.527333, + -116.453667, + -119.6465, + -117.79, + -115.197667, + -152.0983, + -148.9571, + 132.5848, + -111.078167, + -111.4578, + -155.624833, + -150.4867, + -111.418333, + -117.6351, + -116.542167, + -122.887667, + -111.426833, + -155.275162, + -147.6927, + -150.0351, + -119.802667, + -177.8205, + -123.257833, + -149.4101, + -89.502, + -136.81, + -93.4191, + -117.495167, + -111.424333, + -151.9125, + -149.2214, + -151.7292, + -136.7213, + -119.6593, + -122.810837, + -148.8825, + -155.477661, + -151.4004, + -160.1086, + -122.672, + -117.512, + 141.0335, + -139.4786, + -142.8777, + -116.797667, + -151.3632, + -118.840333, + -152.6591, + -111.409833, + -111.420167, + -111.4288, + -155.2775, + -111.426333, + -156.1734, + -120.731, + -151.2468, + -111.445667, + -117.764667, + -111.440667, + -155.6165, + -160.4523, + -111.435667, + -147.3481, + -162.4096, + -155.875167, + -136.5895, + -148.8219, + -152.8317, + -111.4045, + -155.1233, + -149.5943, + -96.7528, + -115.1044, + -142.96, + -144.8653, + -155.5664, + -148.9661, + -71.3157, + 148.9933, + -152.8016, + -159.2848, + -150.3599, + -118.8997, + -153.3362, + -139.7317, + -151.2295, + -153.2105, + -118.3295, + -111.422667, + -118.328333, + -147.1296, + -153.2703, + -140.9406, + -118.331167, + -118.3305, + -147.3801, + -94.8719, + -111.423167, + -178.4258, + -121.286167, + -116.752, + -111.445, + -116.750333, + 179.7511, + 174.3444, + -90.9075, + -66.3401, + -152.1132, + -120.522667, + -136.6365, + -2.1386, + -121.103, + 162.614, + -152.323, + -143.0763, + -112.528, + -120.586, + 141.5418, + -111.450167, + -111.415833, + -98.7971, + -121.668833, + 57.4066, + -153.744, + -159.5947, + -153.0266, + -98.8008, + -112.407833, + -111.4223, + -120.772333, + 123.9102, + -97.9891, + -94.8625, + -122.194333, + -147.3714, + 179.4478, + -150.6706, + -111.4595, + -98.7506, + -98.7831, + -116.475333, + -111.420667, + -143.6104, + -119.7943, + -165.652, + -119.7768, + -119.7817, + -147.06, + -111.4475, + -135.5801, + -151.2245, + -115.1076, + -94.5112, + -117.8445, + -118.3633, + -150.9168, + -122.721832, + -153.2675, + -69.0339, + -149.9751, + -153.476, + -158.8511, + -156.4847, + -123.194167, + -111.439833, + -140.5411, + 141.7668, + 150.8423, + -147.171, + -117.498833, + -120.729333, + -156.3232, + -170.4901, + -111.421, + -139.6328, + -151.9009, + -155.283829, + -117.7695, + -117.767, + -117.769833, + -155.249161, + -178.8186, + -122.104167, + -118.359001, + -117.767333, + -120.572167, + -74.1913, + -98.4952, + -157.026, + -117.846, + -117.768, + -89.646167, + -72.6161, + -97.682, + -121.259833, + 128.1444, + -111.426167, + -121.598167, + -117.766, + -111.448833, + -149.8949, + -111.458833, + -111.469, + -120.485667, + -154.4077, + -116.3645, + -142.9995, + -111.4455, + -141.5253, + -165.1883, + -118.833667, + -111.4431, + -111.455167, + -111.4706, + -178.4914, + -147.6176, + -152.259, + -97.5135, + -111.4724, + -178.4652, + -111.4508, + -149.0197, + -111.4429, + -98.7965, + -153.9141, + -117.763833, + -152.0429, + 178.0168, + -137.534, + -117.765667, + -117.764833, + -72.4084, + -136.7313, + -118.8959, + -147.6819, + -153.2865, + -148.3607, + -122.799667, + -118.96, + -67.596, + 53.9953, + -122.801333, + -149.9795, + -152.1838, + -116.804167, + -78.7564, + -179.1381, + -115.0787, + -139.5369, + -149.0502, + -149.013, + -147.3053, + -145.2687, + -161.4683, + -122.809833, + -87.909833, + -144.7265, + -170.3853, + -122.811333, + -115.0296, + -118.197333, + -171.074, + -72.3742, + -148.7971, + 178.3494, + -121.178833, + -121.177333, + -111.018167, + -152.2511, + -149.8298, + -168.7444, + -67.7015, + 178.6299, + -67.723, + -96.8094, + -115.0799, + -115.489167, + -155.2385, + 162.925, + -167.747, + -147.6103, + -116.053, + -142.3955, + -93.8135, + -94.0446, + -179.2219, + -122.792335, + -118.473833, + -119.786, + -94.5541, + -119.804667, + 162.5306, + -152.8602, + -147.6967, + -118.475667, + -116.774833, + 178.8368, + -149.7029, + -166.4992, + -124.194667, + -115.486333, + -151.0668, + -148.3206, + -122.682, + -149.1655, + -115.1363, + -122.7385, + -139.2708, + -68.6603, + -160.7298, + -153.1948, + -167.4718, + -122.7735, + -115.486333, + -115.484833, + -115.4825, + -118.840667, + -157.1719, + -153.3919, + -146.5941, + -112.526833, + -136.8501, + -149.6396, + -94.4373, + -111.714, + -111.707167, + -155.457833, + -111.715333, + -150.6267, + -152.0202, + -122.827331, + -146.8182, + -122.7775, + -139.4, + -139.8629, + -115.489333, + -115.488, + -150.9564, + -136.7113, + -178.4318, + -152.5948, + -117.855667, + -139.9455, + -117.852333, + -117.673833, + -115.5662, + -147.3544, + -122.826164, + -153.6811, + -123.3385, + 150.1858, + -67.2122, + -122.814667, + -161.33, + -141.3969, + -117.856, + -94.7554, + -153.3386, + -123.114667, + -164.2489, + -123.128, + -150.6751, + -115.605, + -115.604667, + -115.606, + -66.496, + -152.5226, + -147.6844, + -155.602167, + -117.024833, + -117.472833, + -72.084, + -160.4781, + -135.8292, + -117.581833, + -146.5833, + -119.54, + -115.1157, + -119.1142, + -118.820667, + -94.6427, + -116.450667, + -111.4497, + -118.1565, + -112.536167, + -117.6987, + -150.4688, + -115.1168, + -116.9445, + -122.8455, + -111.613667, + -149.838, + -116.656502, + -115.1288, + -151.4112, + -136.8004, + -115.635, + -118.418667, + -150.9735, + -149.0018, + -150.8926, + -66.5011, + -95.2066, + -154.6398, + -115.0899, + -94.8487, + -111.609167, + -150.0364, + -120.869, + -97.819333, + -122.779167, + -122.776833, + 19.9297, + -155.220333, + -151.8846, + -175.9783, + -152.5148, + -179.173, + -110.8355, + -118.0248, + -118.8995, + 77.1478, + -150.3078, + -150.5131, + -72.1652, + -177.7225, + -122.787498, + -155.431667, + -115.1332, + -94.5858, + -136.7568, + -156.9195, + -121.149, + -164.7477, + -64.7745, + -151.6658, + -178.3907, + -173.9092, + -72.2186, + -115.1135, + -94.5576, + -162.8697, + -72.147, + -112.5215, + -119.124, + 167.9613, + -154.6727, + -150.4494, + -122.0555, + -140.9796, + -112.5825, + -120.378, + -147.1555, + -177.9085, + -94.9784, + -122.784332, + -122.818001, + -152.3712, + -149.8742, + -150.8392, + -112.518, + -112.487833, + -122.8005, + -147.5693, + -122.814163, + -170.7034, + -150.6388, + -116.924667, + -118.3425, + -121.950333, + -161.5491, + -149.5426, + -155.608167, + -151.773, + -67.2451, + -120.034667, + -122.815002, + -150.5195, + -121.177167, + -146.0878, + -152.0016, + -150.7382, + -115.0964, + -154.3038, + -122.892833, + -151.9106, + -150.4141, + -165.0917, + -152.705, + -139.5274, + -150.9157, + -121.157, + -164.5368, + -147.8253, + -147.8755, + -151.6407, + -151.2909, + -150.7225, + -116.790667, + -155.218167, + -122.0175, + -122.827167, + -161.2238, + -121.180167, + -140.0029, + -165.0451, + -114.576167, + -115.6075, + -150.5838, + -140.6661, + -150.4484, + -112.529333, + -146.4235, + -165.0259, + -12.7162, + -118.9167, + 179.4353, + -151.0383, + -125.213167, + -111.457, + -111.024833, + -167.234, + -116.797, + -89.764167, + -121.583, + -140.0127, + -150.5639, + -153.0175, + -116.797, + -111.429167, + -152.8583, + -155.2714, + -112.526333, + -150.9313, + -121.735167, + -146.6172, + -116.919833, + -119.713, + -145.5107, + -94.3513, + -117.172167, + -150.8715, + -122.847333, + -94.2351, + -94.1304, + -145.5172, + -122.295333, + 159.3367, + -116.7125, + -69.5275, + -149.1193, + -117.650333, + -152.1499, + -141.8744, + -94.5206, + -149.4081, + -121.818833, + 145.306, + 119.3564, + -115.3624, + -150.7281, + -136.7896, + -118.912833, + -149.791, + -112.522, + -117.673167, + -153.4144, + -166.3972, + 149.5672, + -112.5195, + -151.5592, + -112.8165, + -121.026667, + -121.618333, + -147.3499, + -153.7406, + -147.3304, + -121.725333, + -169.006, + -118.571833, + -147.6357, + -151.1167, + -146.4894, + -118.834, + 178.4711, + -118.816167, + -150.5842, + -120.973667, + -122.809167, + -122.810167, + -151.1812, + -174.9501, + -152.5209, + -118.293, + -151.2975, + -174.8219, + -122.5365, + -115.608667, + -87.5905, + -70.2379, + -115.605333, + -111.4244, + -119.12, + -121.059667, + -96.9818, + -151.7121, + -178.4976, + -112.6775, + -149.5592, + -115.831333, + -153.4003, + -122.734667, + -155.0584, + -115.833167, + -116.273667, + 127.2591, + -67.9698, + -111.4059, + -111.4107, + -122.04, + -111.025833, + -119.0921, + -174.8489, + 140.7612, + -112.516, + 149.0118, + -144.362, + 148.9733, + -146.6029, + -112.519, + -173.6428, + 92.0846, + -116.19, + -118.825, + 149.1591, + 24.0015, + -149.9309, + 148.8708, + -17.9505, + -94.5959, + -17.6137, + -136.8499, + -116.367, + -145.0876, + -122.818333, + -122.817001, + -152.8082, + -153.6293, + -115.882333, + 126.5305, + -121.125667, + -178.9394, + -85.053333, + -117.090333, + -148.7794, + -11.7611, + -177.7236, + -148.6722, + -116.922167, + -94.4533, + -152.3466, + -118.835, + -155.6794, + -166.9646, + -116.2815, + -147.7652, + -153.454, + -116.021167, + -155.478668, + -143.7865, + -118.543833, + -154.7144, + 166.6171, + -135.7891, + -155.55, + -135.7412, + -148.4607, + -116.920667, + -67.3399, + 127.0437, + -178.4823, + -166.3827, + -122.041167, + -146.605, + -116.465667, + -116.358167, + 92.0628, + -150.5971, + -144.0384, + -155.593167, + -148.8915, + -26.4288, + -143.6831, + 141.2485, + -13.5314, + -176.1147, + -13.1689, + -153.0719, + -152.2164, + -111.025833, + -121.879167, + -150.8564, + -122.737335, + -121.117, + -82.1696, + -151.8157, + -66.7666, + -116.373667, + -118.8894, + -111.4463, + -152.7184, + -118.834167, + -111.4391, + -115.605167, + -118.952833, + -71.6223, + -148.7555, + -122.736667, + -164.5935, + -111.4531, + -110.836, + -153.5848, + -94.9805, + -110.817667, + -110.828167, + -95.0121, + -150.2, + -88.5423, + -118.0955, + -110.841667, + -110.822333, + -116.797833, + -86.4078, + -122.810165, + -116.928167, + -116.181, + -150.4712, + -121.8885, + -163.1812, + -105.7123, + -136.7399, + -151.8141, + -158.3598, + -117.1755, + -169.8861, + -146.3176, + -151.1301, + -150.8794, + -136.7851, + -122.821167, + -165.9053, + -122.822502, + -118.147333, + -147.5056, + -152.6618, + -149.2146, + -116.709667, + -116.687167, + -116.927167, + -136.771, + -178.474, + -156.177667, + -178.3048, + -116.746333, + -136.7659, + -136.7941, + -136.89, + -136.8821, + -136.8902, + -136.8916, + -136.9, + -124.863333, + -136.7498, + -96.6989, + 178.6017, + -121.754167, + -14.0114, + -151.1524, + -94.1822, + -121.616833, + -156.5667, + -153.0011, + -147.7769, + -118.834167, + -122.491167, + -116.431333, + -120.164333, + 139.4711, + -124.606167, + -156.1504, + -94.4078, + -150.8073, + -122.793999, + -116.179, + 159.8208, + -118.832833, + -148.7782, + -151.0825, + -117.509667, + -115.217, + -66.6768, + -119.9, + -118.504167, + -94.552, + -153.0556, + -111.020833, + -116.973333, + -156.7021, + -118.2045, + -94.7095, + -153.2692, + -148.2984, + -116.791667, + -116.975667, + -122.8095, + -155.8156, + -95.5572, + 142.7408, + -151.0305, + -117.878167, + 161.507, + -111.4285, + -74.1918, + -95.0682, + -122.337833, + -157.7764, + -122.711, + -122.717167, + -119.0075, + -155.611, + -119.801833, + -151.7481, + -150.7871, + -112.489667, + -121.047, + -117.9133, + -149.431, + -111.4328, + -118.895333, + -111.4287, + -139.8572, + -118.946833, + -153.3496, + -116.1775, + -139.9009, + -111.424, + -152.9804, + -94.9072, + -151.2424, + -122.0445, + -148.1823, + -118.931167, + -121.162, + -153.1816, + -122.7105, + -67.1556, + -119.5538, + -115.609667, + -97.570167, + 154.9693, + -118.840833, + -122.827667, + -121.124, + -120.96, + -178.2643, + -153.0307, + -147.5632, + -87.3487, + -151.0358, + -179.2793, + -94.0304, + -120.120167, + 128.8254, + -146.4578, + -96.8006, + -118.829167, + -94.162, + -115.1525, + -122.826, + -94.2297, + -121.998833, + 83.5155, + -120.136, + 122.1193, + -118.918167, + -115.616167, + -136.7489, + -141.7145, + -147.3921, + -151.4792, + -148.5868, + 27.685, + -115.9555, + -118.053167, + -116.920833, + -139.9221, + -64.0526, + -120.0331, + -150.9184, + -116.922833, + 178.5336, + -118.8995, + -157.487667, + -153.591, + -152.4461, + -116.918833, + -146.8364, + -90.4791, + -118.8325, + -122.181833, + -148.1125, + -122.8025, + -157.4333, + -154.4004, + -60.854, + -94.143, + -116.924667, + -111.4153, + -123.266667, + -115.719, + -116.926333, + -77.9491, + -122.777833, + -89.7094, + -148.8446, + -116.5347, + -119.682, + -115.516833, + -146.8143, + -118.8735, + -90.3315, + -117.105667, + -153.2233, + -165.7519, + -116.179, + -116.793333, + -100.0309, + -118.904167, + -150.6449, + -152.4346, + -122.764168, + -119.395167, + -122.772833, + -118.819167, + -170.5872, + -150.6913, + -150.6368, + -120.806167, + -154.276, + -153.099, + -142.3705, + -150.8357, + 69.6259, + -74.2357, + -111.4075, + -147.7991, + -139.9628, + -148.3459, + -30.9669, + -139.8797, + -156.9613, + -139.9245, + -148.3927, + -155.6105, + 142.9781, + -175.046, + 151.5667, + -153.2666, + 91.9514, + -153.1028, + -139.8103, + -153.1862, + -120.848, + -164.4161, + -122.7085, + -97.9688, + -155.0818, + 178.6723, + 147.5618, + -138.7109, + 137.0445, + -111.4379, + -139.8926, + -151.1722, + -178.4835, + -121.217167, + -119.5746, + 142.6832, + -118.3614, + -119.356667, + -140.8768, + -121.075333, + -111.4277, + -155.9781, + -122.801833, + -116.772667, + -136.6381, + -147.3557, + -152.8331, + -147.1896, + -122.407667, + -64.6295, + -150.6711, + -135.0254, + -147.5162, + -118.488333, + -116.796, + -28.3292, + -122.725334, + 169.72, + -124.858667, + -147.3749, + -111.420667, + -118.49, + -118.799667, + -118.445, + -152.4458, + -93.9892, + -138.7292, + -118.178169, + 28.8132, + -116.102833, + -152.3298, + -118.641667, + 160.527, + -117.808, + -150.3827, + -122.048333, + -122.807, + -122.0485, + -164.4354, + -66.7353, + -150.6843, + 140.4948, + -162.4074, + -111.438833, + -117.491167, + -97.96, + -151.4615, + -154.862333, + -163.5994, + -150.5105, + -139.8399, + -112.528, + 118.2763, + -115.6045, + -116.736833, + -116.742833, + -116.750167, + -119.536, + -138.734, + -138.6866, + -97.9665, + 177.1015, + -121.478833, + -164.6735, + -150.8074, + -116.172833, + 99.4856, + 178.6795, + -122.588, + -112.527, + -160.3237, + -122.799667, + -112.525, + -152.5946, + -66.7808, + -160.7994, + -161.753, + -122.723167, + -156.6709, + -150.9722, + -138.7297, + -111.4441, + -118.804667, + -119.303167, + -118.7828, + -139.54, + -122.044333, + -122.040667, + -60.5703, + -155.7454, + -97.7775, + -150.0141, + -111.4507, + -147.5654, + -65.039, + -120.106167, + -153.0438, + -164.378, + -67.9741, + -152.1086, + -111.4369, + -116.601167, + -155.473328, + -66.746, + -111.4416, + -154.2829, + -117.4437, + -121.815833, + -120.027667, + -141.3735, + -139.8448, + -148.0593, + 179.5767, + -139.7132, + -153.4989, + -153.2519, + -121.814333, + -150.0298, + -116.7685, + -146.3726, + -153.2513, + -122.810667, + -146.9297, + -116.190167, + -152.8667, + -82.4676, + -154.4902, + -148.3948, + -151.9039, + -97.7765, + -121.804667, + -138.7346, + -71.42, + -122.802333, + -143.0369, + -76.4066, + -112.529333, + -153.1687, + -139.4451, + -122.730835, + -108.831833, + -118.9033, + -122.039, + -142.9607, + -150.2585, + -151.9441, + -166.2335, + -93.5573, + -118.883667, + -155.466833, + -153.4032, + -117.3195, + -112.5689, + 94.866, + -121.813833, + -121.805667, + -119.260833, + -97.5868, + -94.4079, + -149.7, + -178.8507, + -116.729667, + -121.1895, + 141.716, + -67.3134, + -139.4097, + -121.677167, + -118.828167, + -163.6213, + -93.671, + -122.4815, + -121.8125, + -150.5301, + -172.7418, + -122.842333, + -139.6605, + -147.3686, + -97.887667, + -139.3648, + -147.7478, + -93.2168, + -118.454833, + -158.0714, + -140.0766, + 170.1022, + -116.866, + -118.0155, + 129.1685, + -155.012665, + -112.738, + -139.4453, + -164.6154, + 122.1651, + -67.8618, + -98.1847, + -121.993, + -120.516333, + -148.9235, + -67.5351, + -122.038167, + -117.484667, + -116.377, + -116.9245, + -122.041833, + -117.481, + -103.2947, + -139.541, + -114.5865, + -108.829333, + -140.9798, + -118.838833, + -153.0345, + -118.825833, + -122.201667, + -121.815167, + -162.9114, + -78.886167, + -97.5193, + -151.1135, + -166.7549, + -152.9009, + -139.4567, + -122.106667, + -141.2439, + -141.2344, + -139.6599, + -118.316167, + -121.3855, + -118.823167, + -122.808166, + -148.0556, + -150.8642, + 145.732, + -121.8135, + -111.434, + -116.795333, + -111.4403, + -122.775333, + -94.3313, + -151.8183, + -97.0236, + -165.9733, + -67.1335, + -154.4291, + -168.4598, + 147.122, + -111.640167, + -117.7005, + -154.3367, + -116.6365, + -152.5012, + -164.5211, + -118.8115, + -153.3242, + -94.8439, + -97.888167, + -148.6928, + -116.448167, + -112.534833, + -139.464, + -111.4117, + -68.3985, + -164.7867, + -136.8149, + -118.833667, + -118.9328, + -139.5142, + -140.0247, + -140.0737, + -111.4339, + -118.8295, + -155.1037, + -118.811, + -117.03, + -155.801498, + -165.6941, + -112.506167, + -141.5082, + -150.3654, + -178.3862, + -159.7931, + -150.3442, + -146.5528, + -148.3758, + -121.131, + -168.0082, + -139.5379, + -144.3238, + -164.851, + -155.223667, + -151.4212, + -150.7269, + -122.720001, + -152.0471, + -162.8518, + -158.1582, + -108.827333, + -116.181833, + -122.717499, + -122.714333, + -76.4481, + -97.570333, + -152.4585, + -122.799833, + -116.221833, + -144.7598, + -72.6754, + -139.5103, + -117.872333, + -150.8634, + -151.4454, + -115.625167, + -141.1765, + -94.6903, + -116.733, + -155.382, + -116.731167, + -94.2582, + -121.1615, + -94.3229, + -94.7112, + -98.3656, + -155.425667, + -178.4046, + -93.0841, + 148.0489, + -121.669167, + -93.0709, + -112.522, + -151.0097, + -116.405833, + -118.834, + -121.942833, + -151.959, + -117.992833, + -116.864667, + -118.834167, + -149.1668, + -97.9406, + -151.2972, + -68.791, + -97.5112, + -117.6335, + -115.606667, + -117.427667, + -111.4442, + -111.4212, + -111.4618, + -111.426833, + -152.8887, + -141.394, + -111.4263, + -116.8899, + -151.8776, + -122.737663, + -122.746833, + -153.2915, + -121.139667, + -141.3285, + 22.899, + -118.543667, + -111.4312, + -148.644, + -160.5002, + -136.6619, + -67.141, + -161.3635, + -145.2989, + 139.6152, + -116.3345, + -174.3466, + -178.4123, + -116.2715, + -155.394165, + -178.4, + -155.3835, + -121.5475, + -122.458833, + -151.3313, + -115.610333, + -115.613333, + -150.1366, + -115.161833, + -150.9358, + -69.4183, + -178.3482, + -147.3403, + -112.5646, + -121.347833, + -115.6105, + -97.966333, + -110.0425, + -116.2705, + -159.6253, + -114.999333, + -118.367, + -115.612333, + -115.613, + -115.614, + -115.615833, + -155.213667, + -146.3859, + -118.841667, + -154.5229, + -116.274, + -116.276, + -167.4531, + -166.5682, + -116.795167, + -112.622667, + -94.0086, + -115.614667, + -115.615333, + -110.043833, + -94.9904, + -119.017333, + -116.7965, + -110.075667, + -117.498833, + -112.7145, + -122.7985, + -122.811165, + -151.2791, + -122.814, + -118.817667, + -117.381833, + 112.9501, + -111.4525, + -141.8987, + -141.7682, + -152.7636, + -117.1445, + -118.850167, + -118.187167, + -178.302, + -146.3078, + -122.745666, + -151.0157, + -120.0595, + -120.0005, + -120.600167, + -115.609, + -149.2438, + -118.841167, + -80.703, + -151.7446, + -152.9553, + -153.5059, + -94.6803, + -174.8197, + -124.704667, + -174.4098, + -148.8143, + -155.485504, + -151.4592, + 152.1284, + -155.889333, + 161.9266, + -152.2966, + -89.672667, + -151.8055, + -149.627, + -117.791, + -118.9116, + -146.8896, + -157.3908, + -114.547833, + -118.918167, + -148.4711, + -118.818, + -116.585667, + -115.6185, + -155.298996, + -115.623, + -93.7023, + -114.642667, + -117.587333, + -122.820333, + -163.6774, + -115.829167, + 128.1783, + -121.082167, + -141.3182, + -177.6566, + -94.2516, + -112.511667, + -139.9212, + -136.6225, + -110.8535, + -122.793, + -155.1134, + 179.0008, + -119.8103, + -151.4897, + -164.0416, + -121.764333, + -147.7778, + -111.422, + -94.9055, + -115.6215, + -94.7401, + -98.9039, + -158.2898, + 179.5523, + -166.5476, + -94.2348, + -155.356003, + -122.793831, + -111.4275, + -148.4702, + -115.548, + -122.889333, + -153.8609, + -150.7566, + -146.7433, + -145.5871, + -149.9213, + -111.4494, + -153.0388, + -141.3111, + -118.8285, + -151.8651, + -111.4177, + -166.1432, + -179.084, + -118.9094, + -148.8175, + 147.6079, + -118.803833, + -116.795667, + -147.9732, + -112.5335, + -144.8464, + -93.453, + -117.108167, + -141.4202, + -112.529833, + -121.657667, + -122.886167, + -157.0455, + -122.795, + -178.4947, + -122.793833, + -112.537, + -122.795166, + -112.536167, + -66.4988, + -122.796669, + -122.798333, + -122.795667, + -73.0946, + -112.532, + -94.5721, + -118.643667, + -150.6691, + -66.5123, + -121.517833, + -148.2198, + -94.5276, + -112.540667, + -112.5535, + -151.2406, + -123.366833, + -66.5053, + -117.768667, + -141.4031, + -116.333667, + -147.5511, + -94.4234, + -146.5313, + -158.5006, + -95.3188, + -155.538167, + -120.273167, + -155.276672, + -120.865667, + -94.399, + -155.535, + -117.165833, + -164.4757, + -144.5762, + -122.374667, + -32.4621, + -117.675833, + -147.3463, + -155.543333, + -164.4621, + -148.3411, + -70.8843, + -32.3543, + -122.794833, + -118.193167, + -32.4259, + -141.907, + -32.4208, + -118.819333, + -116.805333, + -118.3685, + -116.575167, + -174.19, + -121.5795, + -148.9811, + -98.3683, + -122.827333, + -94.4239, + -121.876833, + -154.5902, + -117.759333, + -115.385, + -170.5817, + -147.4179, + -121.146667, + -122.875667, + -177.7715, + -139.5267, + -159.2171, + -32.2455, + -94.6417, + -94.9743, + -123.244667, + -93.5996, + -94.0643, + -153.2159, + -111.4572, + -141.1631, + -146.2683, + -155.247667, + -158.9785, + 129.6779, + -167.4402, + -148.4636, + -93.2449, + -167.5043, + -142.7095, + -118.444167, + -58.4081, + -148.7021, + -116.139333, + -151.8118, + -176.3915, + -121.976167, + 129.3156, + -117.031667, + -118.821167, + -171.7818, + -157.0909, + -179.919, + -93.9204, + -116.794, + -94.4589, + -155.4729, + -177.2892, + 167.6472, + -149.5591, + -152.5176, + -67.8866, + -151.482, + -117.166, + -122.7255, + -152.5898, + -110.334667, + -171.3403, + -111.467, + -141.3559, + -141.1399, + -166.7846, + -151.7209, + -155.929167, + -141.314, + -111.443167, + -146.0089, + -98.9201, + -150.9996, + -112.5432, + -147.9544, + -141.0159, + -118.820667, + -116.819667, + -178.4252, + -139.4876, + -151.4102, + -118.826333, + -148.1452, + -141.6326, + -148.0049, + -166.8093, + 101.7514, + -147.0512, + -94.8032, + -112.430167, + -151.8883, + -118.861167, + -111.007333, + -136.7135, + -119.801833, + -121.728833, + -150.7981, + -116.34, + -148.8733, + -173.31, + -152.4588, + -111.465333, + -153.2489, + -153.6819, + -94.7329, + -149.7269, + -67.6503, + -152.4161, + -155.975333, + -155.4164, + -174.2778, + -89.554167, + 147.4651, + -140.1732, + -159.5128, + -117.019667, + -153.4302, + -169.335, + -118.919, + -139.8746, + -94.6261, + -140.6326, + -118.835833, + -68.7348, + 175.9237, + -150.0733, + -119.959667, + -157.0626, + -151.6431, + -118.0826, + -114.294, + 70.8701, + -117.070833, + -151.9514, + -111.435667, + -94.3657, + -166.7632, + -150.5938, + -112.527333, + -122.735833, + -93.8716, + -166.7231, + -93.832, + -112.5175, + -110.973833, + -141.4231, + -118.835, + -121.788, + -67.3923, + -152.3144, + -158.0362, + -111.059333, + -157.320667, + -67.3921, + -112.530167, + -97.492167, + -122.319833, + -117.287333, + -151.8075, + -141.2832, + -112.528833, + -116.797333, + -68.0131, + -118.821333, + -118.821333, + -124.502, + -117.1715, + -118.820667, + -150.3232, + -153.0397, + -68.7961, + -111.445, + -152.6734, + -151.001, + -153.5196, + -149.8744, + -111.414167, + -118.816, + -118.025, + -118.820167, + -94.097, + -151.8044, + -118.819667, + -94.2744, + -111.4236, + -116.796167, + -111.4213, + -118.82, + -154.857, + -141.3458, + -118.8195, + -152.1737, + -111.450167, + -111.45, + -111.4619, + -173.0579, + 178.0407, + -149.9121, + -94.3251, + -119.012, + -94.6345, + -111.4698, + -178.4581, + -140.1659, + -153.2029, + -116.3355, + -94.9567, + -151.4466, + 152.2966, + -118.544833, + -178.3593, + -141.3213, + -93.1669, + -111.4105, + -156.8283, + -122.1755, + -120.939, + -94.6724, + -118.940167, + -94.0139, + -111.4202, + -173.4142, + -116.9785, + -144.7591, + -118.9149, + -173.477, + -110.327667, + -167, + -167.8204, + -150.8659, + -150.115, + -112.540833, + -111.4306, + -112.524833, + -151.2022, + -148.5505, + -148.2439, + -118.8838, + -122.778, + -111.471, + -151.3067, + -152.3368, + -147.7252, + -151.9414, + -111.423167, + 125.9192, + -153.0563, + -8.5745, + -153.1793, + -118.8175, + -118.8205, + 142.3373, + -111.4259, + -112.515833, + -150.8119, + -117.339833, + -27.1014, + 141.7999, + 93.763, + 105.5216, + 21.5733, + -111.425833, + -111.4221, + -117.870333, + 169.8301, + -116.721333, + -93.9232, + -156.3358, + -94.0414, + -136.6743, + -111.4647, + -111.462833, + -149.7738, + -153.0859, + 169.1802, + 146.6506, + -111.4148, + -94.0513, + -94.3653, + -176.0928, + -94.7122, + -112.532333, + -122.819168, + -178.2937, + -122.526167, + -94.4233, + -116.260667, + -121.98, + -67.1661, + -111.4329, + -111.440667, + -111.4268, + -33.2097, + -111.4261, + -111.4192, + -121.788833, + -111.4143, + -111.4164, + 147.2941, + -146.7415, + -111.4259, + 95.9326, + -152.3857, + -111.4339, + -111.4362, + -111.4366, + 94.6908, + -175.5913, + -111.4397, + -174.0316, + -118.293, + -147.9083, + -142.9809, + -151.2227, + -115.0108, + -118.944, + -152.0572, + -118.804, + -146.6291, + 179.5495, + -111.4384, + -111.424667, + -155.6145, + -111.4421, + -111.4364, + -149.8559, + -179.1594, + -118.9061, + -148.8547, + -151.3277, + -111.4451, + -114.591167, + -143.0317, + -116.1345, + -111.4364, + -147.1197, + -176.0508, + -74.1346, + -118.822, + -163.8371, + -149.0565, + -163.9834, + -155.28183, + -118.712, + -152.853, + -146.6217, + -152.1251, + -164.5218, + -165.3884, + -122.753998, + -117.25, + -117.210667, + -167.4191, + -111.4438, + -152.2865, + -146.3358, + -121.747167, + -136.8224, + -111.4237, + -111.4287, + -111.4315, + -117.268167, + -147.4598, + -143.565, + -116.577833, + -122.494333, + -109.851333, + -67.9758, + -145.6659, + -169.5449, + -93.9806, + -116.2325, + -111.4585, + -111.4215, + -67.1399, + -150.8258, + -142.8676, + -112.529333, + -119.403, + -142.1691, + -122.819168, + -111.4688, + -93.9711, + -121.298667, + -157.9816, + -111.4343, + -93.0235, + -166.0716, + -122.039333, + -122.0835, + -152.8937, + -153.1953, + -94.1177, + -111.4145, + -117.690333, + -110.917167, + -95.1678, + 134.2896, + -94.8401, + -153.9778, + -122.041833, + -122.041333, + -153.439, + -152.7785, + 152.4651, + -117.693833, + -96.7392, + -33.3922, + -143.1984, + -112.536833, + -139.3852, + -151.2252, + -137.7551, + -137.7475, + 134.3851, + -150.6756, + -111.4685, + -111.4535, + 122.0697, + -94.9001, + -147.9046, + -159.2586, + -119.009667, + -94.418, + -150.0357, + -116.502333, + -119.535667, + -116.507333, + 143.5451, + -153.1537, + -116.798167, + -114.6589, + 170.8111, + 95.953, + -155.490333, + 129.972, + -152.3457, + -150.6719, + -111.440667, + -111.443, + -154.0095, + -118.832333, + -117.589167, + -178.554, + -118.831, + -93.9938, + -111.4151, + -93.4901, + -150.3481, + -117.663167, + -111.4372, + -153.0012, + -111.4614, + -111.4583, + -150.9225, + -68.7241, + -117.164, + -117.166167, + -117.166667, + -97.877167, + -118.290167, + -111.439, + -150.2261, + -146.8636, + -111.4511, + -121.790333, + -154.9101, + -33.6765, + -118.937667, + -118.806, + -111.4509, + -122.011167, + -111.422167, + -153.0938, + -118.941333, + -118.946167, + -121.394833, + -66.714, + -118.881833, + -154.5368, + -94.2595, + -115.9555, + -151.1907, + -111.4239, + -115.8807, + -152.7422, + -151.4194, + -111.4599, + -155.273331, + -111.42, + -151.7217, + -69.114, + 13.2839, + -117.162, + -97.6178, + -112.527667, + -111.4094, + -111.4249, + -122.784833, + -121.153, + -118.891, + -162.4505, + -111.4177, + -121.149, + -111.4181, + -65.0411, + -155.104167, + -111.4153, + -153.6404, + -104.9924, + -121.315667, + -97.1711, + -111.4388, + -117.169667, + -117.163333, + -170.5732, + -152.7536, + -122.764168, + -122.759667, + -149.3745, + -117.166333, + -117.163333, + -153.7529, + -117.163833, + -151.0268, + -111.4209, + -119.2325, + -151.2942, + -117.172667, + -118.295, + -145.1889, + 82.4969, + -111.4577, + -111.415333, + -117.165167, + -121.157167, + -120.774667, + -119.238167, + -111.4296, + -122.801833, + -111.444, + -111.432167, + -117.167, + -117.165, + -117.164167, + -117.165667, + -142.1509, + -119.893, + -141.731, + -117.167333, + -173.3264, + -119.8935, + -178.4433, + -148.1384, + -169.3922, + -118.943667, + 139.1945, + -123.046333, + -96.7958, + -154.9025, + -116.3395, + 141.9272, + -151.7035, + -94.4383, + -111.4289, + -178.4181, + -94.2576, + -97.7823, + -154.8679, + -111.4498, + -149.1402, + -111.4462, + 146.6784, + -117.169167, + -111.4185, + -151.7386, + -111.4151, + -150.9361, + -119.442, + -67.2868, + -112.5162, + -118.824333, + -140.8767, + -114.410667, + -136.7235, + -90.3498, + -174.3526, + -153.6731, + -98.529, + -94.4173, + 128.1836, + -98.6306, + -116.7985, + -111.4232, + -136.6348, + -111.4182, + -167.3116, + -111.4688, + -112.521667, + -112.521167, + -150.2292, + -87.8604, + -111.4283, + -111.4487, + -111.4433, + -169.4897, + -111.4503, + -153.3819, + -111.4091, + -111.4617, + -111.427, + -146.3496, + -97.1554, + -98.4915, + -152.966, + -111.5652, + 120.6016, + -178.3635, + -111.4487, + -168.5488, + -111.4464, + -119.2044, + -111.4252, + -146.2918, + -111.4318, + -155.211833, + -146.3271, + -111.4701, + -111.4553, + -118.8863, + -66.305, + -111.4404, + -111.4423, + -116.192167, + -122.040167, + -175.8004, + -111.4234, + -97.878333, + -111.4475, + -116.297667, + -116.206167, + -94.5926, + -111.4649, + -111.3389, + -111.4134, + -121.680333, + -98.9657, + -111.4216, + -155.244, + -111.4155, + -118.9198, + -176.8674, + -118.9445, + 147.742, + -93.8669, + -150.9107, + -166.6897, + -151.9911, + -143.0313, + -122.818001, + -111.484, + -163.0563, + -116.362167, + -165.7762, + 142.8932, + -94.5035, + -162.8991, + -112.524667, + -104.9548, + -177.852, + 22.3039, + -117.1615, + 170.788, + -178.4988, + 179.9123, + -155.376, + -116.528667, + -121.1025, + -118.4795, + -146.6864, + -150.8811, + -149.9656, + -141.3315, + -116.793833, + -175.9799, + 179.9129, + -94.5866, + -96.804, + -111.4316, + -177.9481, + -151.0079, + -148.0949, + -116.798333, + -113.170167, + -148.2865, + -147.8107, + -120.260333, + -94.5354, + -178.4031, + -143.0051, + -117.871, + -117.1219, + -118.766333, + -94.2661, + -152.9863, + -150.7645, + -150.6083, + -115.1529, + -140.1305, + -67.0151, + -117.1665, + -97.6874, + -117.168833, + -122.712167, + -122.038167, + -173.3705, + -95.0925, + -94.9037, + -117.169833, + -153.4944, + -94.8225, + -117.169, + -151.3287, + -117.034167, + -153.915, + -117.167, + -150.4096, + -153.3522, + -97.572167, + -147.4153, + 141.7252, + -151.7877, + -122.711998, + -94.7509, + -146.8561, + -147.2491, + -173.2187, + -122.600667, + -112.520333, + -94.5278, + -146.0253, + -147.452, + 178.5196, + -94.9747, + -67.1073, + -93.3515, + -111.403, + -146.5055, + -111.4779, + -94.442, + -94.3811, + -152.7452, + -137.9725, + -118.9112, + -116.383167, + -152.6807, + -94.689, + -94.7157, + -94.5751, + -94.4987, + -129.358, + -143.3005, + -178.3901, + -129.0417, + -152.9635, + -178.4592, + -149.5578, + -112.508667, + -172.5775, + -178.0694, + -111.427, + -155.501, + -159.5442, + -129.0754, + -122.709167, + -122.424167, + -151.0175, + -151.9885, + -136.3619, + -155.28717, + -150.1873, + -157.4513, + -147.3555, + -161.5776, + -158.4861, + -111.4595, + -139.5516, + -99.3253, + -122.883167, + -73.6167, + -116.927167, + -153.6439, + -122.744499, + -111.767667, + -121.4355, + -95.0655, + -111.014167, + -122.732833, + -122.879, + -122.712667, + -177.6127, + -96.8073, + -96.8015, + -95.0828, + -152.0546, + -122.201333, + -152.8158, + -97.5041, + -155.279159, + -94.5518, + -94.8925, + -158.4077, + -151.7854, + -94.8055, + -152.6984, + -155.446, + -111.206, + -155.281998, + -150.4114, + -122.723667, + -157.1285, + -174.2291, + -111.4504, + -118.8284, + -178.5288, + -122.881, + -111.417167, + -94.4218, + -155.274333, + -166.1975, + -118.9058, + -122.480833, + 155.7383, + -152.857, + -178.4071, + -117.307667, + -151.043, + -94.459, + -154.8616, + -94.1719, + -120.621667, + -178.3606, + -120.5835, + -119.9184, + -118.9128, + -178.3563, + -111.071, + -178.3417, + -175.3148, + -94.1553, + -111.4403, + -116.274333, + -152.6619, + -148.0742, + -155.013167, + -115.497167, + -178.4283, + -94.8484, + -118.944833, + -94.5822, + -93.9636, + -118.855667, + -177.13, + -148.3618, + -94.193, + -150.7868, + -141.7112, + -116.275, + -160.4388, + -94.1556, + -152.6252, + -154.7649, + -177.4826, + -119.012333, + -119.3553, + -116.386667, + -111.431, + -110.785167, + -164.4265, + -152.0471, + -152.7554, + -94.118, + -93.9764, + -155.8765, + -97.8555, + -94.1507, + -120.2615, + -136.5542, + -94.2891, + -158.2315, + -111.3875, + -94.4075, + -136.5009, + -151.6279, + -66.1721, + -117.871333, + -118.943333, + -150.7877, + -111.4749, + -94.4489, + -118.822667, + -111.4515, + -97.7026, + -163.0448, + -94.601, + -111.4242, + 126.8292, + -118.832333, + -178.3602, + -70.2262, + -111.006167, + -67.2761, + -116.930333, + -94.5053, + -111.447, + -118.871, + -116.988, + 140.9766, + -115.3876, + -116.931667, + -149.7897, + 133.9356, + -67.0237, + -152.1724, + -140.6065, + -163.0371, + -122.642667, + -95.1532, + -120.008833, + -153.187, + -152.0279, + 169.3876, + -150.0341, + -157.3563, + -111.4451, + -121.982833, + -173.2987, + -152.5944, + -94.5388, + -115.892667, + -111.4224, + -111.4255, + -111.4298, + -111.4585, + -111.4277, + -111.4155, + -178.5064, + -116.470167, + -111.4221, + 145.5761, + -111.4167, + 130.0828, + -111.427, + -94.0129, + -25.2724, + -155.2485, + -111.4304, + 74.9524, + -111.4353, + -111.4364, + 146.7566, + -146.6119, + -146.6435, + -94.7031, + -150.6116, + -119.027333, + -123.4665, + -118.9216, + -94.4368, + -148.2717, + -146.5829, + -115.4375, + -94.6092, + -93.9169, + -94.7579, + -120.951833, + -115.433333, + -115.650333, + -94.536, + -94.4987, + -94.2803, + -112.5255, + -25.7043, + -94.4429, + -150.7939, + -149.9696, + -116.5673, + -170.4837, + -152.2112, + -94.7033, + -94.6748, + -93.7794, + -94.0338, + -94.8516, + -146.6303, + -153.3862, + -178.2638, + -94.0613, + 119.1423, + -155.238, + -121.051167, + -136.9441, + -94.6151, + -97.5107, + -112.527833, + -118.507167, + -152.2765, + -94.4593, + -116.8695, + -146.646, + -154.1393, + -94.4341, + -146.6499, + -154.1907, + -87.913, + -112.491667, + -94.9352, + -94.5559, + -146.6125, + -146.6164, + -94.2125, + -169.2368, + -152.2744, + -95.0181, + -67.4461, + -94.4711, + -152.3303, + -146.6189, + -146.6431, + -94.3472, + -94.338, + -148.5619, + -94.644, + -94.0747, + -163.2524, + -67.2748, + -94.7923, + -146.6215, + -94.2803, + -146.6908, + -153.1588, + -116.197667, + -151.8869, + -148.9394, + -118.095167, + -122.234, + -116.930333, + -153.5605, + -146.7065, + -93.8933, + -94.5492, + -149.8278, + -153.593, + -82.4369, + -94.098, + -122.797167, + -155.300507, + -93.5371, + -94.4561, + -121.63, + -94.5874, + -147.7901, + -165.1288, + -111.438333, + -151.671, + -94.3911, + -111.4281, + -111.4338, + -153.3277, + -149.056, + -163.713, + -116.2745, + -94.6805, + -136.6323, + -151.43, + -115.598333, + -115.24, + -152.3632, + -155.314, + -119.003833, + -150.2504, + -155.1821, + -152.1655, + -153.597, + -94.1585, + -111.417833, + 82.6815, + -147.3769, + -146.7587, + -139.4893, + -148.7194, + -156.0231, + -121.8175, + -97.5076, + -93.8865, + -152.3127, + -97.5069, + -112.500333, + -119.04, + -94.0113, + -150.8637, + -116.201167, + -119.038667, + -94.5854, + -119.040167, + -94.4976, + -94.0707, + -94.3905, + -122.451, + -94.2669, + -152.3787, + -168.4787, + -122.756167, + -151.8681, + -94.4812, + -144.7621, + -150.811, + -121.065167, + -122.7535, + -153.2239, + -153.2392, + -94.7805, + -164.6706, + -112.961667, + -117.243333, + 169.1397, + -94.4084, + -112.5325, + 122.6478, + -150.5122, + -151.7722, + -111.4383, + -119.013, + -111.4363, + -111.4289, + -141.1502, + -152.5601, + -115.561833, + -150.6296, + -117.184167, + -118.191833, + -94.1128, + -94.6162, + -111.4362, + 151.0589, + -94.9814, + 166.9803, + -94.4237, + -150.517, + -95.0247, + -119.369, + -118.34, + -117.5283, + -121.9525, + -94.339, + -157.7656, + -93.8739, + -116.792333, + -153.2184, + 54.7094, + -153.5364, + -115.8858, + -116.084, + -112.5415, + -94.495, + -147.3249, + 133.2388, + -94.7297, + 54.7693, + -154.153, + -122.1045, + -116.463833, + -94.6852, + -94.3813, + 130.804, + -93.8822, + -111.4688, + -116.931, + -94.1176, + -174.8013, + -94.834, + 121.5842, + -94.4164, + -94.237, + -147.7913, + -94.4908, + -154.1717, + -45.1832, + 121.1544, + -117.863167, + -119.029167, + -94.8299, + -126.4015, + -120.594833, + -120.600833, + 51.6373, + -172.4529, + -117.447333, + -123.168167, + -94.7985, + -151.0626, + -117.499333, + -94.3384, + -94.4062, + -94.1626, + -165.7019, + -93.9379, + -118.805, + -92.5495, + -118.807167, + -94.3291, + -94.3775, + -149.7176, + -122.826833, + -94.2597, + -94.3617, + -150.4859, + -94.2794, + 140.4519, + -122.493333, + -151.1326, + -168.9923, + -122.476833, + -122.487833, + -148.8024, + -93.9526, + -115.1528, + -142.2249, + -177.5174, + -114.2814, + -121.509333, + -116.717833, + -115.568167, + -94.4203, + -120.0794, + -94.752, + -94.251, + -116.5185, + -94.5788, + -121.437833, + -94.7875, + -122.485667, + -111.4645, + -94.4825, + -94.798, + -149.6965, + -122.486333, + -122.482833, + -122.491833, + -122.489, + -160.4655, + -147.0732, + 125.9223, + -151.3276, + -120.0784, + -122.476167, + -155.466833, + -97.7805, + -140.1592, + -140.1624, + -123.050833, + -178.4879, + -154.9215, + -94.4387, + -118.8075, + -94.4897, + -94.5329, + -116.622833, + -157.5627, + -123.456, + -94.7484, + -121.938, + -94.834, + -94.0811, + -93.9132, + -94.1725, + -159.0839, + -117.4838, + -149.4759, + -94.3904, + -115.0405, + -94.6852, + -111.444167, + -169.2139, + -110.647, + -94.4738, + -95.0003, + -94.801, + -94.7758, + -115.0136, + -157.4697, + -119.7805, + -94.6759, + -111.4101, + -117.778, + -94.7738, + -150.538, + -94.6365, + -111.446, + -94.7956, + -94.2068, + -164.0677, + -135.611, + -94.9743, + -121.3305, + -111.500667, + -142.7701, + -118.882167, + -155.447167, + -94.7971, + -93.8774, + -94.8976, + -104.9507, + -148.2544, + -118.982833, + -148.715, + -94.2381, + -116.789, + -94.3508, + -122.736, + -93.7954, + -116.2104, + 3.8455, + -122.8065, + -94.627, + -152.4392, + -93.9103, + -152.7947, + -94.5535, + -94.9041, + -156.0257, + -95.1989, + -94.7531, + -122.802333, + -94.1219, + -93.9647, + -94.712, + -122.800667, + -94.8795, + -122.8005, + -122.801666, + -94.7228, + -94.0216, + -122.761002, + -114.9828, + -93.9438, + -94.8391, + -94.0987, + -98.4714, + -94.4082, + -93.9331, + -122.800835, + -94.5946, + -122.802, + -115.8669, + -94.6096, + -94.5672, + -122.752167, + -122.765663, + -122.80883, + -68.2905, + -93.8789, + 128.5159, + -122.805833, + -122.766, + -122.7555, + -122.7715, + -122.771167, + -122.556, + -122.806, + -122.739667, + -122.817833, + -122.800667, + -94.2707, + -151.0631, + -112.541833, + -93.9067, + -163.4753, + -118.8105, + 178.621, + -116.899167, + 179.0405, + -165.0538, + -150.7807, + -149.5616, + -173.812, + -154.717, + -150.7323, + -116.7945, + -169.0592, + -153.81, + -174.7414, + -169.2407, + -154.978833, + -97.887167, + -118.945167, + -97.683, + -150.6982, + -122.568333, + -111.4569, + -122.053667, + -163.7652, + -155.011833 + ], + "lat": [ + 63.1016, + 63.1224, + 63.0781, + 34.299667, + 12.0623, + 63.0719, + -20.2873, + 63.1725, + 36.421833, + 33.656333, + 63.0879, + 63.0933, + 63.2272, + 63.0844, + 61.8518, + 61.6214, + 62.9656, + 61.2705, + 65.5942, + 13.5146, + 37.605499, + 37.636833, + 34.1555, + 33.5115, + 63.1812, + 19.374167, + 61.5726, + 60.2607, + 34.254833, + 63.0847, + 63.5257, + -18.9821, + 63.0775, + 36.579834, + 61.8312, + 63.0621, + 16.7195, + 47.049167, + 63.0785, + 60.7696, + 61.6478, + 63.0633, + 63.0675, + 63.083, + 63.0742, + 63.1276, + 16.6087, + 37.605335, + 33.493, + 34.0335, + 63.2623, + -30.4302, + 58.5727, + 38.030666, + 38.789166, + 37.621498, + 63.1738, + 61.7978, + 19.223499, + 59.7754, + 38.8255, + 19.338667, + 67.7636, + 59.8372, + -32.4981, + 36.3094, + 65.9499, + 63.376, + 38.760334, + -1.6647, + 62.9966, + 64.7593, + -33.0092, + 59.8473, + 33.904333, + 19.23, + 66.3947, + 34.326, + 46.865833, + 38.834835, + 38.405, + 33.486833, + -6.3628, + 36.150333, + 36.327168, + 62.5667, + 59.957, + 38.834835, + 46.869333, + -16.7961, + 37.4585, + 46.8755, + 37.603832, + 34.632, + 51.3254, + 37.4041, + 37.604168, + -23.7671, + 40.842499, + 1.1151, + 33.466333, + 60.2328, + 60.2021, + 62.4396, + 60.5797, + 34.3335, + 34.333167, + 33.490333, + 35.339667, + -33.0297, + 38.826, + 37.3789, + 64.9749, + -10.0109, + 39.6124, + 60.3395, + 43.0121, + 37.3861, + 34.34, + 46.572333, + 39.8477, + 39.8485, + 36.566667, + 17.7456, + 32.7663, + 36.5565, + 32.578667, + 36.481, + 38.107, + 62.2007, + 63.1717, + 37.5335, + 33.860833, + 59.7754, + 36.6265, + 63.6837, + 36.148333, + 35.0025, + 37.457667, + 43.553333, + 45.9945, + 32.941333, + 62.7834, + -49.2119, + 42.633167, + 37.920333, + 30.0165, + 35.052833, + -35.3171, + 62.1214, + 38.5802, + 37.4191, + 46.867167, + 42.602667, + 37.457333, + 35.633833, + 34.0145, + 66.2332, + 38.783667, + 46.8575, + 33.876, + 60.1679, + 37.0997, + 67.5663, + 31.614, + 59.8037, + 42.554833, + 39.4223, + 35.752167, + 38.4131, + 12.0039, + 63.3167, + 60.9026, + 38.805167, + 34.226167, + 38.813499, + 38.822333, + 63.5211, + 38.771667, + 46.894167, + 37.565333, + 34.172833, + 35.822833, + -6.8684, + 45.6895, + 34.000333, + 44.259167, + 43.681333, + 51.2318, + 65.2966, + 19.2805, + 18.876833, + 63.251, + -0.4925, + 61.5105, + 19.380333, + 39.4096, + 37.483833, + 37.485, + 42.660667, + 59.8808, + 47.455667, + 13.8504, + 64.8537, + 49.06, + 61.7195, + 32.948833, + 42.6517, + 38.822, + 38.6015, + 51.6139, + 42.652833, + 64.2744, + 19.329, + 37.607, + 46.873, + -17.5702, + 33.0315, + 38.8195, + 47.583333, + 47.583833, + 42.639667, + 39.599833, + 37.5295, + 38.364167, + -10.3953, + 63.0764, + 47.490167, + 63.4194, + 38.814833, + 41.2375, + 65.8813, + 33.5, + 33.957, + 0.9934, + -9.9486, + 42.5485, + 37.636, + 37.3396, + 39.4485, + 61.1327, + 33.450667, + 37.1082, + 34.427, + -29.925, + 45.685667, + 37.472, + 38.7915, + 46.871167, + 64.9761, + 62.4971, + 38.822, + 40.652333, + 61.9122, + 21.8848, + 61.0044, + 62.7658, + 42.544333, + 42.5495, + 43.357333, + 49.328833, + 61.2012, + 59.032, + 47.392167, + 37.482833, + 65.8954, + 33.508667, + 46.872833, + 63.3209, + 63.3343, + 65.8966, + 60.1339, + 38.8205, + 40.163167, + 19.374, + 65.8742, + 65.9098, + 37.504167, + 33.846167, + 37.324833, + 63.5209, + 40.709833, + 65.8735, + 40.598333, + 33.020667, + 60.8774, + 36.004, + 38.821167, + 18.903833, + 67.3896, + 62.9421, + 37.088833, + 42.600333, + 19.477667, + 46.855833, + 37.607833, + -3.0506, + 64.723, + 35.167, + 67.1103, + 35.399833, + 44.094, + 37.539333, + 46.832167, + 19.767167, + 46.8195, + 33.179667, + 44.772167, + 63.087, + 34.679333, + 67.5326, + 38.793833, + 64.7367, + 47.183667, + 51.4576, + 38.791333, + 7.3643, + 44.006167, + 64.5888, + 31.277, + 46.1425, + 46.126333, + 34.678, + -25.068, + 35.621833, + 43.0535, + 59.7884, + 46.1355, + 59.8781, + -22.4118, + 40.616833, + 63.1832, + 33.2065, + 19.363, + 37.334333, + 32.416667, + 42.578833, + 46.866167, + 19.211, + 39.013167, + 39.1075, + 33.358833, + 33.357667, + 47.179833, + 35.985167, + 37.603333, + 35.618833, + 60.6535, + 63.314, + 36.043833, + 36.043167, + 38.821667, + 33.886333, + 59.7752, + 62.3999, + 38.814333, + 38.813833, + 59.9877, + 48.836333, + 46.874333, + 42.5495, + 33.711167, + 48.845833, + 37.041, + 38.782501, + 38.775667, + 63.5162, + 37.467667, + 33.350667, + 33.3525, + 58.3623, + 36.042, + 61.3056, + 37.7977, + 36.4461, + 60.8331, + 33.033167, + 40.912333, + 53.7666, + 36.45, + 33.961333, + 40.594833, + 67.5542, + 46.873667, + 37.303, + 36.0425, + 33.1335, + 33.67, + 62.8345, + 64.9696, + 62.6072, + -23.9861, + 46.862667, + 62.1419, + 46.116, + 36.4507, + 61.1185, + 36.042, + 46.875, + 36.044667, + 37.603167, + 38.819667, + 33.506833, + 36.044167, + 36.0435, + 37.451833, + 15.6807, + 45.922167, + 37.2677, + 48.8415, + 54.6732, + 32.9105, + 19.384667, + 33.481, + 34.859167, + 62.8046, + 61.7684, + 37.6255, + 33.307, + 23.7468, + 47.519667, + 59.2967, + 37.9535, + 38.823166, + 34.995667, + 37.459167, + 36.540667, + 46.003833, + 62.9001, + 36.539667, + 60.4284, + 68.4924, + -22.7343, + 16.6332, + 38.6437, + 33.8245, + 37.550333, + 37.975, + 37.554167, + 37.565167, + 63.2003, + 39.2152, + 42.623, + 62.788, + 37.001167, + 34.0245, + 36.764667, + 62.4313, + 33.499, + 38.3958, + 36.881, + 36.8815, + 63.5134, + 15.8774, + 62.9914, + 63.1143, + -0.2479, + 39.6344, + 14.9246, + 33.952, + 33.576, + 59.0371, + 61.7579, + 63.315, + 33.9995, + 61.8748, + 60.8439, + 46.866833, + 59.549, + 63.6903, + 38.8355, + 33.080833, + 36.506, + 42.55, + 36.7845, + 46.867833, + 34.0275, + 39.034, + 65.8348, + 34.561167, + 47.466167, + 63.0932, + 37.479167, + 15.081, + 37.453, + 37.634, + 37.655, + 59.7843, + 36.7355, + 58.1927, + 65.1213, + 19.958167, + 33.3585, + 59.0929, + 46.889167, + 18.3756, + 19.608333, + 42.600833, + 62.5624, + 61.9391, + 18.778833, + 61.3011, + 63.8125, + 33.395667, + 33.743333, + -31.5827, + 36.593167, + 38.771667, + -23.1056, + 37.1571, + 61.634, + 37.6515, + 61.2547, + 34.101167, + 46.872833, + 46.876167, + 60.3952, + 40.2609, + 63.2608, + 19.553667, + 34.0685, + 47.996333, + 8.5663, + 35.0345, + 62.1345, + 61.0371, + 48.275333, + 48.259, + 64.9934, + 38.822667, + 38.823166, + 63.0394, + 37.5469, + 38.805667, + 46.078167, + 67.7665, + 61.1448, + 15.6198, + 34.153333, + 43.682, + 65.2302, + 39.024, + 33.392, + 42.583667, + 57.0749, + 65.0131, + 63.3407, + 62.216, + 41.531833, + 42.521333, + 34.1535, + 37.529167, + 13.4552, + 38.799167, + 62.1795, + 60.5934, + 55.3488, + 34.156167, + 61.3457, + 61.6046, + 38.788502, + 33.4895, + 59.6816, + 58.3127, + 40.1731, + 34.1545, + 35.002, + 32.908, + -55.2702, + 46.830333, + 57.4998, + 37.503833, + 61.6607, + 19.406667, + 34.157667, + 42.592167, + 20.034833, + 46.334833, + 60.8946, + 61.0247, + 37.598833, + 59.8428, + -2.5625, + 33.264333, + 37.8049, + 39.998667, + 61.1262, + 64.9183, + 34.154333, + 37.455833, + 37.287833, + 34.054167, + 36.750833, + 62.9454, + 60.0003, + 59.3569, + 59.5043, + 38.820167, + 58.3192, + 51.6134, + 59.3023, + 62.9235, + 59.6428, + 36.4458, + 62.1118, + 35.975833, + 20.027333, + -39.6706, + 37.537333, + 53.5035, + 51.3674, + 25.0488, + 62.2253, + 54.3692, + 61.871, + 34.044333, + 51.67, + 54.2478, + 61.9955, + 35.946833, + 62.0401, + 37.635667, + 57.8662, + 38.825832, + 60.0214, + 43.520167, + 37.630333, + 34.096833, + 34.092333, + 38.807835, + 51.6479, + 38.789001, + 61.3679, + 61.2532, + 62.8909, + 51.6323, + 61.7554, + 53.1343, + 64.5325, + 64.5216, + 58.4847, + 33.687167, + 61.698, + 46.873, + -33.014, + 60.4739, + 42.522333, + 60.1685, + 36.378, + 32.737333, + 61.1636, + 63.1031, + 34.832, + 54.6037, + 59.8936, + 46.877333, + 37.7813, + 62.5244, + 51.6742, + 63.1068, + 33.662167, + 33.171, + 51.73, + 51.6732, + 33.147, + 63.3262, + 32.748667, + 33.267833, + 15.4089, + 43.6785, + 46.871167, + 51.8129, + 62.778, + 33.485333, + 61.1529, + 46.869, + 52.9982, + 38.4484, + 62.7285, + 66.888, + 46.860333, + 53.5386, + 63.268, + 53.8446, + 58.9289, + 38.829834, + 37.487833, + 33.346333, + 62.5803, + 61.9755, + 60.1335, + 61.6682, + 19.795834, + 64.7374, + 38.824001, + 34.0055, + 49.145, + 61.3885, + 36.088167, + 12.8626, + 35.035333, + 36.8167, + 36.232667, + 33.975833, + 40.153833, + 46.173833, + -22.2431, + 48.1035, + -19.4817, + 38.824833, + 37.139833, + 36.959667, + 39.5165, + 47.358667, + 37.590333, + 33.8695, + 35.5909, + 36.880667, + 46.8805, + 37.455667, + 34.993167, + 45.995667, + 35.932833, + 40.750667, + 35.639, + 38.533833, + 34.279, + -7.056, + 46.87, + 33.912167, + 37.530667, + 21.4218, + 40.935167, + 59.642, + 37.2386, + 37.457667, + 34.328667, + 34.3255, + 37.456667, + 46.8625, + 37.457167, + 37.4555, + 37.456333, + 37.453667, + 33.879333, + 35.706833, + 67.1697, + 36.5559, + 42.546333, + 36.462667, + 36.5505, + 61.2492, + 46.870333, + 2.6798, + 37.513833, + 64.6409, + 38.832832, + 28.6895, + 46.868167, + 46.866667, + 44.7795, + 46.855833, + 19.465333, + 36.2851, + 46.869833, + 63.1205, + 36.3165, + 13.209, + -37.3176, + 46.869833, + 42.571667, + 63.0196, + 63.3321, + 34.2985, + 19.919001, + 46.119833, + 12.3486, + 34.208333, + 34.207833, + 36.368667, + 63.1057, + 33.481, + 64.6842, + 35.88, + 42.384833, + 46.8675, + 46.872333, + 34.2065, + 16.708, + 34.332333, + 38.805, + 43.6653, + 42.520333, + 42.544333, + 33.1775, + 63.1998, + 67.3068, + 46.874, + 65.5759, + 19.245501, + 34.9895, + 65.155, + 46.867167, + 33.04, + 61.9608, + 38.600333, + 58.7701, + 42.562167, + -41.7636, + 32.780833, + 33.179833, + -21.8514, + 33.179, + 47.887833, + 36.243667, + 37.0814, + 38.1132, + 66.5767, + 35.967333, + 36.9048, + 46.345833, + 33.500167, + 42.640167, + 33.028833, + 33.2415, + 42.608333, + 35.754, + 19.397499, + 36.2819, + 55.7636, + 46.8582, + 44.484667, + 40.704167, + 42.516667, + 61.2439, + 42.520667, + 46.872833, + 63.1691, + 59.5948, + 42.5178, + 63.3329, + 38.404, + 42.518833, + 42.512667, + 19.484333, + 61.5177, + 33.502333, + 34.2865, + 37.1971, + 40.3085, + 63.105, + 58.9916, + 60.8928, + 33.976333, + 38.816834, + 46.891833, + 60.5402, + 61.9345, + 65.5166, + 59.9364, + 33.712, + 36.996333, + 61.0789, + 39.1963, + 61.4311, + 49.3235, + 57.8862, + 60.1976, + 46.8785, + 53.748, + 59.782, + 59.2151, + 61.5648, + 35.9855, + 36.969667, + 62.336, + 51.8512, + 46.889833, + 40.710333, + 36.1992, + 15.6065, + 30.4016, + 38.816833, + 62.3649, + 37.612, + 37.0626, + 60.2829, + 38.831833, + 62.1039, + 38.2725, + 19.198166, + 37.082, + 59.9497, + 59.4532, + -24.2867, + 46.525667, + -45.7692, + 37.5015, + 63.225, + 60.399, + 62.0191, + 51.9812, + 60.236, + -18.2769, + 37.427833, + 38.822666, + 37.4345, + 12.898, + 37.4125, + 40.1598, + 44.103667, + 56.4945, + -22.8028, + 60.0824, + 42.650333, + 46.866, + 19.408501, + 58.2689, + 60.5977, + 60.1804, + 61.3015, + 12.7332, + 59.3749, + 59.7999, + 58.1855, + 33.034167, + 38.812668, + 51.4282, + 57.888, + 40.0949, + 59.7494, + 34.330833, + 46.908167, + 51.6302, + 58.9928, + 60.035, + 38.742333, + 64.299, + 59.9216, + 33.649, + 51.8814, + 20.355333, + 59.9863, + 37.5295, + 62.2825, + 38.3646, + 33.502167, + -24.4751, + 36.311167, + 58.7981, + 59.6631, + 37.402167, + 14.9405, + 60.1713, + 59.8604, + 18.4858, + 35.934333, + 35.5955, + 51.7987, + 61.0501, + -1.5006, + 62.7976, + 61.6968, + 46.866, + 34.452833, + 37.328333, + 59.2315, + 59.3191, + 36.4532, + 62.6019, + 37.604, + 37.604333, + 19.188999, + 60.1863, + 38.7305, + -6.2836, + 9.126, + 61.3678, + 51.6192, + 62.7735, + 33.669167, + 36.3695, + 46.889833, + 19.715167, + 60.1429, + 36.626, + 46.871, + 36.619333, + 61.1833, + 41.6481, + 35.111667, + 19.216, + 51.7576, + 48.316167, + 46.877, + 53.1332, + 51.2465, + 59.9658, + 37.351167, + 7.5135, + 33.961167, + 36.9167, + 51.8357, + 33.9365, + 57.2184, + 63.1122, + 37.635333, + 60.1498, + 51.7288, + 52.7581, + 51.7076, + 51.8802, + 7.2071, + 60.0896, + 64.9885, + 51.9828, + 19.313999, + 42.663667, + 42.652, + 42.6545, + 42.6754, + 62.3699, + 34.324167, + 3.9405, + 59.2674, + 60.014, + 62.3522, + 62.6659, + 37.2915, + 37.2878, + 37.279, + 37.2885, + 42.661, + 63.352, + 40.2201, + 61.4217, + 60.9307, + 59.621, + 61.7318, + 27.653, + 48.412333, + 38.558167, + 35.5105, + 33.512, + -8.0939, + 17.7855, + 19.209667, + 21.6564, + 33.357333, + 38.796667, + 59.7871, + 63.5864, + 38.2888, + 55.8639, + 52.0688, + 46.872833, + 42.6659, + 61.3123, + 63.2441, + 15.4984, + 34.349167, + 51.4801, + 61.5616, + 34.4365, + 16.1602, + 40.699167, + 60.1354, + 60.1565, + 51.4689, + 1.0533, + 38.817833, + 37.8225, + 51.4147, + 57.4545, + 38.7405, + 36.2305, + 61.542, + 46.8685, + 34.216, + 59.916, + 37.864833, + 37.603833, + 34.059333, + 48.382667, + 19.405333, + 60.3017, + 63.8592, + 62.981, + 34.329167, + 67.8158, + 31.867, + 33.326833, + 62.3275, + 37.605333, + 67.3687, + 38.3688, + 67.3815, + 37.764167, + 63.1022, + 59.0106, + 37.522667, + 40.809333, + 62.1893, + 61.0872, + 34.5615, + 60.0493, + 42.547, + 61.4708, + 1.8973, + 60.0072, + 38.792667, + 61.6465, + 15.3765, + 51.6362, + 38.962833, + 37.688333, + 59.2509, + 61.8814, + 38.788, + 36.2286, + 33.255167, + 33.165167, + 51.2732, + 38.806835, + 39.463167, + 50.7723, + 61.2042, + 37.604167, + 36.564333, + 51.7808, + 60.1564, + 62.4859, + 59.9398, + 51.6622, + 38.821167, + 63.5229, + 34.512167, + 37.590333, + -37.146, + 15.1606, + 32.3196, + 37.407833, + 36.188833, + 47.5955, + 46.8038, + 60.3536, + 52.6671, + -6.071, + 37.603833, + 63.2374, + 42.576, + 52.2402, + 31.4264, + 27.8699, + 59.736, + 37.493667, + 61.9828, + 59.3044, + 57.5293, + -3.3243, + 59.7863, + 34.689, + 36.441167, + 59.7789, + 61.2392, + 51.6603, + 38.6102, + 59.672, + 15.2552, + 34.69, + 37.604833, + 59.8685, + 62.6213, + -17.429, + 37.608667, + 63.7125, + 60.1242, + 33.1715, + 62.8827, + 33.172833, + 51.9212, + 64.4141, + 61.9028, + 13.6996, + 61.5138, + 64.9795, + 37.604667, + 33.499833, + 6.7514, + 37.6045, + 60.3483, + 38.0515, + 14.8225, + -31.7027, + 44.419, + 61.0736, + 44.419667, + 51.6225, + 58.8526, + 34.1175, + 15.2008, + 43.4329, + 36.4662, + 63.5145, + 33.998333, + 37.604667, + 61.6517, + 38.643167, + 49.4225, + 16.1453, + 37.535, + 33.336167, + 14.7629, + 38.777668, + 46.588333, + 51.2251, + 33.223167, + 51.6654, + 51.6073, + 59.8156, + 14.6951, + 53.2159, + 37.5695, + 36.582167, + 61.7159, + 46.492667, + 38.841, + 35.050333, + 38.771, + 37.477, + 40.4991, + 42.627833, + 65.8694, + -29.9428, + 51.924, + 37.608833, + 65.3108, + 60.0338, + 62.2086, + 37.604, + 51.6138, + 62.8722, + 38.815, + 60.0784, + -24.5018, + 60.1469, + 46.8309, + 52.0599, + 37.573667, + 33.161667, + 37.604167, + 20.052667, + 61.9357, + 36.9513, + 36.892667, + 21.3911, + 59.6184, + 60.6887, + 51.6803, + 51.6975, + 51.8006, + 63.4968, + 15.7931, + 36.066, + 37.606167, + 42.0255, + 61.0412, + 37.603833, + 63.4064, + 58.8106, + 58.8134, + 36.3324, + 58.9824, + 42.031167, + 63.5817, + 52.0676, + 37.5625, + 61.729, + 33.67, + 39.8728, + 37.605667, + 37.606167, + 60.1847, + 42.543833, + 46.8625, + 37.605667, + 37.7048, + 52.0495, + 19.1075, + 36.589833, + 42.548333, + 33.924, + 42.651167, + 38.2711, + 47.670333, + 19.839833, + 57.1271, + 15.1312, + 65.8679, + 35.8708, + 37.5745, + 53.4134, + 51.6411, + 34.684167, + 32.295833, + 45.779, + 38.2921, + 51.5953, + 34.686333, + 37.606833, + 42.556667, + 36.556333, + 33.502667, + 41.2685, + 21.3618, + 63.338, + 33.215333, + 38.776001, + 37.489833, + 38.4923, + 58.492, + 60.9057, + 14.9856, + 38.186667, + 51.5518, + 63.2488, + 37.523167, + 66.1069, + 34.163833, + 33.9272, + 38.2758, + 33.994167, + 38.2704, + 38.808833, + 36.427667, + 37.406667, + 47.824, + 28.2886, + 36.012667, + 62.1976, + 37.6535, + 37.506167, + 37.507167, + 61.6303, + 62.2695, + 37.5065, + 35.8653, + 38.52, + 33.1725, + 62.1641, + 37.505167, + 37.5055, + 52.4839, + 37.605667, + 61.1521, + 38.829334, + 36.539667, + -24.0812, + 60.1234, + 41.1085, + 37.647833, + 33.995, + 63.102, + 53.6407, + 14.8894, + 38.814, + 35.8549, + 46.840833, + 34.015, + 64.8546, + 14.9039, + 53.5031, + 37.502333, + 37.201833, + 38.832333, + 38.793499, + 33.995833, + 62.1991, + 51.845, + 19.481, + 34.099, + 35.9821, + 32.454333, + 31.324, + 33.976167, + 35.5727, + 33.494833, + 33.5105, + 51.7396, + 38.775501, + 61.8075, + 41.150667, + 38.921333, + 52.0498, + 52.3421, + 63.4906, + 51.7059, + 37.504, + 31.324667, + 63.0417, + 67.8468, + 38.8405, + 38.816667, + 34.094167, + 33.502667, + 37.470667, + 37.234667, + 62.8222, + 60.0462, + 58.196, + 51.6466, + 61.4006, + 19.052, + 61.8988, + 62.3327, + 36.978, + 37.606667, + 37.608333, + 41.357, + 59.5213, + 51.5228, + 38.3722, + -24.8725, + 1.0849, + 2.9053, + 59.6717, + 68.4586, + 37.500333, + -34.0499, + -6.5326, + 35.6885, + 37.534, + 45.624333, + 46.910833, + 67.5431, + 58.8115, + 59.8707, + 62.56, + 38.743, + 64.8337, + 62.868, + 39.9063, + 63.1677, + 49.1768, + 61.8846, + 61.8689, + 38.4032, + 62.2054, + 33.765333, + 38.2802, + 19.4155, + 61.7831, + 35.6755, + -7.2814, + 63.2958, + 60.9639, + 32.218833, + 63.1036, + 46.870167, + 59.9548, + 59.606, + 36.039167, + 60.9023, + 3.222, + 42.614667, + 52.1592, + 33.2435, + 62.7268, + 35.994, + 60.994, + 62.7886, + 35.347, + 59.752, + 19.331, + 59.9048, + 36.62, + 46.896167, + 61.5482, + 39.427167, + 60.1776, + 33.506833, + 2.1483, + 6.0164, + 61.7278, + 19.3215, + 60.4189, + 61.5228, + 60.8947, + 42.5767, + 36.4415, + 63.589, + 63.0526, + 68.1439, + 57.8245, + 37.506167, + 62.197, + 39.425333, + 58.785, + 61.515, + 37.351, + 62.3692, + 36.3885, + 61.8375, + 38.808834, + 39.428167, + 40.137833, + 51.7632, + 42.593667, + 37.6065, + 42.591167, + 59.282, + 63.4604, + 61.0393, + 61.1056, + 59.8225, + 38.6992, + 62.8911, + 63.0052, + 37.519667, + 48.235833, + 64.7557, + 37.663333, + 61.0462, + 42.584, + 66.821, + 57.9069, + 68.9058, + 61.6728, + 65.8646, + 37.535, + 61.7151, + 38.840167, + 62.1612, + 28.7786, + 63.0271, + 38.5015, + 51.5863, + 61.0931, + 51.6195, + 51.5739, + 36.553167, + 63.1851, + 35.838833, + 37.607, + 61.3755, + 32.734667, + 19.392167, + 38.063167, + -23.7242, + 52.1877, + 33.325167, + 51.6758, + 62.131, + 66.8364, + 38.3801, + 61.9903, + 46.868167, + 37.536333, + -10.7291, + 20.2657, + 61.6101, + 37.610167, + 48.074, + 38.7874, + 58.2365, + 19.430333, + 38.783, + 65.3932, + 61.6155, + 38.7911, + 59.8727, + 46.867333, + 46.878167, + 34.8665, + 60.2053, + 45.241, + 37.4649, + 67.5652, + 61.1485, + 66.0421, + 37.5365, + 61.7515, + 36.025167, + 33.846833, + 41.514167, + 42.5195, + 60.9615, + 60.4702, + 64.4345, + 16.6784, + 61.6771, + 35.9915, + 37.531833, + 68.5953, + 37.454833, + 36.5915, + 51.535, + 61.418, + 37.3741, + 37.3739, + -5.2471, + 37.5315, + 36.174833, + 46.872833, + 36.399167, + 37.535167, + 39.5809, + 33.309667, + 64.3314, + 60.5992, + 47.8948, + 9.972, + 62.3276, + 52.3165, + 33.975833, + 60.5442, + 38.905, + 36.016833, + 33.686667, + 61.4562, + 39.396667, + 61.7015, + 35.6985, + 38.821167, + 37.378, + 46.874833, + 37.1112, + 53.8015, + 38.760166, + 60.0089, + -8.2451, + 38.755333, + 60.8545, + 62.4437, + 61.555, + 37.5385, + 34.878667, + 67.5732, + 33.666667, + 63.0496, + 64.7419, + 51.666, + 41.517833, + 63.2463, + 33.505667, + 24.998, + 51.4823, + 38.788502, + 41.516333, + 28.7476, + 19.411667, + 62.8856, + 60.4052, + 28.769, + -10.8691, + 38.775167, + 46.865333, + 58.8739, + 36.770333, + 35.890833, + 46.818167, + -15.1614, + 61.2784, + 37.520333, + 61.5729, + 60.2787, + 59.8511, + 51.0507, + 61.5488, + 33.471167, + 61.2429, + 34.992, + 46.002167, + 38.569833, + 34.018167, + 33.395, + 46.870667, + 46.873167, + 35.0755, + 55.267, + 57.4219, + 37.1805, + 46.867, + 59.8933, + 37.325167, + 37.3086, + 62.0045, + 62.1421, + 46.553167, + 33.501667, + 52.9317, + 62.1579, + 59.4743, + 59.6598, + 64.1209, + 52.9731, + 44.3257, + 37.569167, + 33.502, + 67.422, + 39.432667, + -7.5373, + -7.2935, + 35.611, + 58.9648, + 46.866, + 37.558167, + 58.8609, + 34.440833, + 37.492667, + 59.8103, + 57.6875, + 47.1825, + 56.7652, + 60.0761, + 19.199167, + 61.9693, + 59.6108, + 61.9643, + 46.870167, + 65.1678, + 40.1708, + 34.4565, + 37.5315, + 39.398333, + 38.784333, + 46.8463, + 51.3519, + 60.4494, + 61.6238, + 61.1389, + 46.869667, + 62.4107, + 65.177, + 58.0206, + 59.1963, + 59.9564, + 33.489167, + 46.881, + 31.1697, + 38.828833, + 36.490333, + 59.7325, + 36.9715, + 60.198, + 37.480333, + 59.9932, + 59.8387, + 61.1428, + 60.4592, + 19.597167, + 38.0846, + 31.1511, + 37.604333, + 46.8705, + 42.665833, + 33.171333, + -29.45, + 59.1851, + 42.664667, + 33.172, + 32.944667, + 28.1091, + 65.2147, + 51.0555, + 38.927167, + -21.2747, + 37.568167, + 59.8103, + 37.332333, + 38.816334, + 58.9707, + 38.4922, + 51.5599, + 38.2811, + 59.5783, + 34.425667, + 66.8722, + 51.5723, + 62.1686, + 37.277667, + 67.4203, + 46.8695, + 62.1792, + 37.201833, + 46.867667, + 38.2859, + 34.4205, + 33.257333, + 37.643167, + 33.1715, + 34.032667, + 59.8749, + 59.8596, + 33.275333, + 33.492, + 34.4215, + 44.765667, + 38.836667, + -3.5926, + 38.788, + 28.7234, + 31.1233, + 37.796167, + 51.7067, + 59.6347, + 44.547167, + 45.372667, + 32.888, + 51.6434, + 38.659333, + 64.9151, + 38.7006, + 37.2184, + 51.4303, + 35.076167, + 61.6649, + 62.8518, + 53.4796, + -21.409, + 63.2266, + 4.6053, + 57.0675, + 33.325667, + 36.4815, + 51.7337, + 58.2594, + 40.39, + 60.1282, + 60.9937, + 14.1324, + 64.8914, + 33.506, + 61.8508, + 37.624833, + 35.033667, + 15.0466, + 65.1477, + 46.8715, + 64.9811, + 63.4886, + 38.832001, + 59.9001, + 38.7877, + -2.0113, + 44.251833, + 33.253667, + 33.010333, + -31.7843, + 38.7826, + 33.516333, + 40.263833, + 59.6612, + 59.8886, + -23.5856, + 38.8215, + 46.8605, + 65.8632, + 43.545833, + 59.8031, + 61.3357, + 38.789833, + 19.227667, + 36.888333, + 40.3206, + 62.1538, + 37.2773, + 59.5574, + 61.2493, + 63.0711, + 35.677333, + 46.900667, + 36.100833, + 46.488167, + 32.7725, + 45.912833, + 33.509, + 38.5144, + 61.6115, + 1.2169, + 38.837833, + 16.5993, + 65.8633, + 46.869333, + 62.9438, + 37.983333, + 62.4498, + 38.812, + 33.5035, + 35.292167, + 19.290833, + 59.4295, + 36.025833, + 36.028167, + 62.9479, + 46.8605, + 61.1514, + 43.419667, + 36.660333, + 55.6327, + 46.872167, + 56.5802, + 60.912, + 62.5503, + 59.6817, + 61.142, + 62.3953, + 63.5317, + 42.558833, + 33.4855, + 37.472833, + 46.901167, + 40.8515, + 42.7365, + 33.302833, + 42.61, + 37.6035, + 19.188499, + 61.4705, + 41.940333, + 61.1528, + 59.6178, + 44.768833, + 50.3055, + 57.0801, + 19.403833, + 36.045, + 53.0759, + -28.3432, + 62.7345, + 32.109167, + 33.9755, + 63.4664, + 36.1555, + 33.196, + 57.5978, + 62.9807, + 57.8313, + 51.4819, + 51.994, + -37.4108, + 57.0274, + 37.594333, + 58.7839, + 19.364833, + 46.871167, + 63.0698, + 60.021, + 38.803333, + -17.1048, + 53.8051, + 59.5065, + 38.756167, + 44.8185, + 61.1571, + 38.401, + 60.0718, + 37.633667, + 63.4737, + 60.3111, + 34.0325, + 37.595833, + 59.9121, + 60.1704, + 57.3937, + 63.2669, + 38.3653, + 37.5205, + -5.8706, + 37.473333, + -8.3437, + 63.3098, + -24.5502, + 61.3722, + 38.399, + 52.6448, + 33.438833, + 61.4913, + 61.6414, + 59.9305, + 58.8354, + 37.573833, + 38.8245, + 66.702, + 59.4363, + 62.2517, + 44.820667, + 59.3036, + 59.5006, + 34.926833, + -5.7378, + -21.3378, + 46.9085, + 15.0621, + 59.9191, + 37.454833, + 38.824833, + 46.880667, + 34.207167, + 34.207333, + 37.0804, + 60.9055, + -23.7135, + 46.8815, + 58.8409, + 58.8355, + 62.7984, + 37.455333, + 38.956, + 39.753833, + 58.5151, + 62.3609, + 47.576333, + 59.8577, + 37.161167, + 37.4545, + 59.8105, + 62.5638, + 61.6959, + 46.755833, + 58.719, + 62.6136, + 61.5055, + -18.0618, + 61.2841, + 62.8641, + -38.2792, + 60.4358, + -12.1347, + 61.6796, + 62.3774, + 38.955667, + 39.3599, + -4.9919, + 79.5651, + 59.8203, + 19.509167, + 38.7455, + 36.013, + 33.508833, + 35.033833, + 37.6445, + 46.872833, + -10.6682, + 33.013167, + 38.832167, + 40.798667, + 60.0163, + 46.865833, + 37.3519, + 64.3489, + 0.8223, + 42.646667, + -19.6395, + 65.756, + 33.492, + 46.851167, + 33.034833, + 37.572333, + 63.8003, + 63.268, + 37.454333, + 61.007, + 33.822333, + 32.220833, + -6.2113, + 19.223333, + 46.868, + 36.4119, + -5.8793, + 46.8795, + 60.0082, + 61.4244, + 61.5145, + 40.3587, + 59.8382, + 38.8375, + 51.4218, + 33.163167, + 19.540833, + 51.697, + 35.5745, + 34.343333, + 41.8725, + 63.1578, + 33.495667, + 40.0864, + 59.5329, + 46.866667, + 36.209, + 60.3302, + 46.8665, + 33.4945, + -5.9298, + 37.324, + 63.9342, + 46.316833, + 59.6819, + 36.215667, + 40.4414, + 33.486667, + 51.9886, + 33.995333, + 59.7613, + 40.288667, + 35.752333, + 38.794833, + 33.8575, + 31.688833, + 46.896, + 46.867, + 62.0271, + 60.1663, + 60.3908, + 58.8255, + 59.636, + -14.8531, + 59.8126, + 46.870833, + 33.526167, + 59.9538, + -12.6224, + 34.8405, + 15.5423, + 38.837334, + 63.3492, + -32.683, + 38.837833, + 33.976667, + -38.3887, + 51.5898, + 61.5212, + 63.1289, + 36.211667, + 53.699, + 57.6776, + 37.613167, + 60.321, + 34.439, + -28.2916, + 36.431, + 35.341833, + 64.8764, + 34.8799, + 36.100167, + -17.8551, + -17.9975, + 51.676, + 19.201667, + 34.247833, + 62.9535, + 37.838667, + 19.815, + 46.869333, + 60.3211, + 33.506667, + 37.476667, + 36.094, + 38.843166, + -3.5898, + 37.551, + 46.872333, + 46.875167, + -5.3939, + 60.337, + 51.7565, + 51.7427, + 37.650667, + 46.879333, + 38.3947, + 33.497667, + 51.6208, + 60.2131, + 68.5865, + 61.1695, + 39.0988, + 64.8595, + 33.9555, + 46.8486, + 35.1735, + 38.3811, + 60.6736, + 59.5881, + 38.993, + 58.3143, + -4.8417, + 42.620667, + 37.281833, + 14.8764, + 37.478667, + 37.479333, + 64.5882, + -30.022, + 15.5215, + 37.478667, + -8.3755, + 37.478167, + 41.6963, + 59.5535, + 33.655, + -59.0289, + 41.7004, + 46.891333, + 59.5158, + 65.7781, + 69.0584, + 37.334167, + 39.697, + 57.5544, + 61.4034, + 37.2234, + -60.0959, + 38.800999, + 38.797667, + 38.050167, + 63.4162, + 15.5489, + 61.3427, + 63.4294, + 61.1303, + 62.8463, + 38.824165, + 63.2243, + 48.589333, + 63.2689, + 34.048833, + 62.9432, + 33.325667, + 59.995, + 59.9936, + 19.765, + 59.4416, + 61.3391, + 60.2569, + 61.3592, + 55.424, + 37.470667, + 32.171167, + 15.9582, + 38.787333, + 37.434167, + 44.797667, + 61.9049, + 57.7026, + 60.0816, + 37.3768, + 31.2471, + 15.6767, + 42.575667, + 60.3588, + 37.544833, + 62.1675, + 60.2626, + 38.044833, + 58.2749, + 44.7975, + 38.824501, + 37.3786, + 62.2207, + 37.474667, + 37.477167, + 58.4123, + 52.8069, + 59.9552, + 38.965833, + 36.277667, + 61.3116, + 33.0106, + 59.8585, + 51.6336, + 19.4085, + 36.601833, + 37.476167, + 19.407, + -3.3959, + 61.1564, + 38.841167, + 38.042667, + 51.6829, + 35.512, + 33.494, + 38.806833, + 62.907, + 37.8015, + 37.474833, + 48.284667, + 33.0905, + 37.475833, + 59.4501, + 19.110833, + 51.7438, + 66.1088, + 47.593, + 38.264833, + 38.3509, + 35.604833, + 53.9184, + 68.4549, + 68.0219, + 51.7225, + 38.836, + 36.4428, + 49.447833, + -22.6476, + 33.096333, + 37.538167, + 36.912, + 48.245, + 33.096, + 62.8907, + 60.9895, + 66.4015, + 38.3427, + 64.2272, + 61.1531, + 38.3125, + 37.604333, + 19.106833, + 37.602333, + 46.8405, + 38.595, + 36.063833, + 46.835833, + 16.5258, + 60.3293, + 41.843167, + 33.074, + 68.8735, + 58.9133, + 38.308167, + 46.836833, + 39.4306, + 63.8369, + 51.4777, + 60.1784, + 59.7654, + -21.4068, + 33.4475, + 19.400499, + 15.0164, + 62.5252, + 16.4456, + -36.2005, + 15.5422, + 38.334333, + 53.1628, + 58.4119, + -22.0133, + 33.198833, + 51.1205, + 33.281167, + 33.2015, + 15.2643, + 38.839333, + 58.556, + 33.1915, + -3.5379, + 65.8304, + 61.0579, + 19.41, + 15.3335, + 60.4252, + 61.3979, + 52.299, + 46.455, + 11.9773, + 61.6735, + 37.529333, + 61.5181, + 16.4152, + 62.8873, + 60.0823, + 61.9971, + 19.416667, + 65.857, + 37.469667, + 36.824833, + 62.9113, + 33.996167, + 42.6043, + 16.4793, + 59.6562, + 57.6124, + 46.868, + 42.1841, + -35.1565, + 62.9467, + 61.3903, + 44.8, + 35.541667, + 38.341333, + 51.4418, + -14.3043, + 41.046333, + 37.471333, + 61.261, + 33.977667, + 50.4387, + 67.8619, + 19.110833, + 37.536833, + 37.536833, + 63.077, + 51.588, + 23.9217, + 61.5229, + 42.6086, + 35.937333, + 37.5355, + 16.526, + 60.3798, + 34.611167, + 57.6827, + 38.6065, + 38.596667, + 38.615, + 32.691333, + 59.9807, + 19.394167, + 19.403999, + -18.0175, + 51.3236, + 59.9979, + 36.477167, + 38.788, + 62.9812, + -27.8834, + 57.8123, + 37.478833, + 52.1986, + 40.3465, + 16.574, + 68.6004, + 37.475, + 36.5355, + 51.4616, + 36.3727, + 36.555, + 34.2865, + -10.6598, + 63.2188, + 33.996, + 63.06, + 63.0643, + 63.0635, + 12.9849, + 37.574667, + 33.195833, + 34.0525, + 61.4518, + 61.5229, + 63.8335, + 61.8507, + 38.772667, + 33.9745, + 33.9845, + 16.6593, + 64.9969, + 44.720667, + 38.787167, + -33.7421, + 33.181333, + 51.8267, + 7.5438, + 7.5946, + 64.7531, + 7.6285, + 52.5903, + 37.604333, + 59.7818, + 48.248, + 51.8485, + 64.7452, + 34.223333, + 40.494333, + 37.572667, + 37.574, + 51.3293, + 59.8983, + 37.6045, + 65.5315, + 67.1099, + 42.5566, + 60.3011, + 37.604, + -11.942, + 33.1465, + 33.217167, + 38.821167, + 64.4224, + 53.4208, + 19.4215, + 7.0739, + 37.484667, + 58.1668, + 60.6215, + -30.7535, + 34.231833, + 36.714, + 38.833832, + 36.183167, + 36.179667, + 38.052667, + 36.4703, + -28.772, + 36.407667, + 33.498333, + 34.006833, + 42.5711, + 16.8156, + 37.170833, + 37.198667, + 57.1033, + 59.0921, + 52.3026, + 26.1798, + 61.0689, + 60.5708, + 37.188167, + 33.030667, + 42.5433, + 16.603, + 46.886, + 40.2311, + 33.495667, + 16.6905, + 16.7939, + 38.818667, + 34.503333, + 16.7434, + 60.3407, + 37.392833, + 58.8539, + 34.867667, + 64.8661, + 13.6704, + 16.7308, + 64.8605, + 64.8563, + -2.9658, + 37.000833, + 16.7732, + 64.9158, + 64.6752, + 64.8585, + 31.1823, + 52.2553, + 51.6605, + 40.274333, + -5.8521, + 62.5649, + 63.2977, + 37.231, + 52.2784, + 32.957167, + 60.1913, + 60.0468, + 51.5307, + 15.6979, + 58.8323, + 59.9894, + 37.610667, + 62.6833, + 57.8298, + 60.342, + 64.8808, + 36.670833, + 9.1385, + 40.348333, + 47.606333, + 36.643167, + 61.5311, + 41.3116, + 44.3731, + 65.4383, + 61.5946, + 38.794, + 33.0265, + 38.4054, + 52.2081, + 51.6761, + 33.310833, + 42.565833, + 15.8203, + 37.524833, + 15.2768, + 33.893167, + 38.2952, + 20.1804, + 33.982167, + 10.6523, + 61.3779, + -3.0863, + 68.6023, + 47.7015, + 36.061833, + -24.2891, + 33.586167, + 66.2475, + 38.2127, + 32.5255, + 38.3346, + 9.7486, + -8.2399, + 40.89, + 38.837166, + 38.839168, + 40.264333, + 59.199, + 60.3298, + 38.4929, + 33.3405, + 60.4409, + 38.3867, + 38.489, + 38.488, + 38.790001, + 40.335333, + 15.6003, + 40.471167, + 58.348, + 61.7127, + 63.0889, + 54.2787, + 59.8339, + 67.7172, + 54.9637, + 38.6945, + 40.470333, + 62.0301, + 42.5563, + 36.006167, + 62.2652, + 36.048667, + -6.5899, + -17.8955, + 62.433, + 59.1725, + 47.767167, + 34.2131, + 62.0263, + 56.3855, + 38.3823, + 31.3473, + 64.9801, + 48.224167, + 66.6906, + 60.2789, + -4.6487, + -7.7533, + 45.695667, + 53.4966, + 40.495333, + 36.5365, + 61.0547, + 7.4851, + 45.463833, + 33.496833, + 37.600667, + -5.8817, + 60.2166, + 34.316333, + 39.795333, + 60.3659, + 36.6425, + 40.3995, + 19.227833, + 61.5094, + 60.0903, + 62.5847, + -17.7862, + 54.0581, + 59.8684, + 38.820167, + 36.3761, + 56.7494, + 60.4549, + 61.5158, + 59.6404, + 19.312167, + 40.4678, + 62.2279, + 58.82, + 36.239, + 40.4144, + 40.677, + 35.58, + 61.522, + 34.987667, + 38.773333, + 59.9075, + 46.006833, + 63.1712, + 35.0535, + 54.9226, + 37.4545, + 41.046833, + 41.047667, + 56.3354, + 42.534833, + 35.899167, + 61.509, + 18.980667, + 53.8611, + 53.8452, + 47.171, + 62.7643, + 42.589833, + 51.3815, + 42.630333, + 59.4158, + 63.2957, + 46.892333, + 34.638, + 42.514, + 62.8041, + 38.808833, + 40.3915, + 69.5097, + 19.653667, + 59.8191, + 33.561167, + 33.502167, + 62.5769, + 35.522667, + 42.546167, + 42.595, + 37.619833, + 40.581333, + 42.59, + 33.495167, + 62.027, + 42.584333, + 38.3654, + 18.952333, + 42.602333, + 36.6952, + 60.6882, + 54.5409, + 67.5064, + 38.2958, + 18.5841, + 57.7311, + 61.3129, + -23.752, + 40.4755, + 45.841833, + 61.227, + 61.5096, + 33.498167, + 38.806833, + 38.836666, + 62.1574, + -22.5585, + 59.963, + 38.2627, + -0.3969, + -19.1856, + 64.7457, + 60.5947, + 38.807167, + 51.5859, + 38.808833, + 61.5102, + 19.190833, + 33.373333, + 61.5125, + 61.5113, + 59.909, + 35.304167, + 59.2751, + 61.6318, + 46.879833, + 38.763668, + 38.8165, + 42.561833, + 58.9992, + 62.788, + 64.7739, + 36.7388, + 46.871, + 38.844167, + 38.8303, + 36.181833, + 61.5539, + 63.1852, + 20.063333, + 61.9919, + 62.4195, + 42.637667, + 3.8293, + 58.832, + 38.286167, + 59.8034, + 35.7905, + 54.8173, + 38.786167, + 49.2735, + 37.524667, + 59.229, + 42.575667, + 63.4232, + 46.125333, + 45.5973, + 38.416, + 55.4155, + 62.6705, + 52.5733, + 19.287167, + 56.5041, + 42.622833, + 38.8296, + 35.934, + 35.360833, + 23.5614, + 54.788, + 46.885167, + 60.0539, + 62.7929, + 37.456333, + 59.782, + -6.3489, + 37.5205, + 39.1304, + 37.538333, + 33.495167, + 37.455, + 35.846, + 63.1414, + 64.8396, + 59.8426, + 32.868, + 60.9709, + 62.5598, + 59.884, + 37.392333, + 36.559833, + 51.8656, + 44.7755, + 46.402, + 37.389167, + 44.292833, + 63.2553, + -15.6295, + 43.8815, + 37.184, + 34.730667, + 19.862667, + 2.1475, + 63.8605, + 46.8969, + 52.3761, + 43.5435, + 33.324167, + 61.5639, + 37.2905, + 46.8705, + 38.0785, + 62.7902, + 61.5906, + 36.2915, + 32.383, + 34.625667, + 64.6747, + 42.525833, + 46.8665, + 53.5528, + -23.7349, + 38.814833, + 60.0344, + 59.8624, + 66.977, + 62.7831, + 36.803333, + 36.809667, + 44.303333, + 45.079167, + 35.935333, + 19.137667, + 33.634167, + 19.099167, + 19.160333, + 40.0739, + 19.1175, + 32.920333, + 32.916667, + 61.2141, + 39.7645, + 38.4602, + 35.054, + 60.0811, + 38.841167, + 58.6739, + 37.204167, + 33.850333, + 15.2536, + 33.977333, + 61.3055, + 42.5686, + 33.846667, + -24.593, + 38.807335, + 53.8887, + 67.929, + 60.6265, + 37.606, + 30.689, + 56.4471, + 62.2263, + 60.2285, + 33.027167, + 37.325333, + 62.0747, + 33.339, + 33.341, + 56.7455, + 36.390833, + -5.2273, + 61.4367, + 36.591, + 38.841833, + 61.182, + 14.9651, + 37.119333, + 37.119333, + 42.5455, + 38.024167, + 59.8876, + 69.5255, + 65.4677, + 24.9992, + 62.6945, + 19.988, + 38.789501, + 34.932167, + 38.2825, + 37.542167, + 56.7802, + 38.404, + 59.9457, + 58.225, + 42.5341, + 61.9718, + 61.1636, + 60.6288, + -5.3996, + 54.658, + 63.0935, + 60.2093, + 37.631, + 65.9329, + 59.8914, + 63.1123, + 53.8648, + 37.6325, + 37.553667, + 37.578833, + 36.304833, + 65.938, + 65.5133, + 37.9145, + 36.289667, + 15.7805, + 40.7726, + 37.5, + 59.2193, + 38.807833, + 60.9457, + 33.8875, + 60.3368, + 58.0197, + 42.5809, + 39.290333, + 63.2246, + 37.605333, + 60.3679, + 39.7496, + 61.0202, + 69.6221, + 58.3406, + 63.2391, + 60.2394, + 60.0395, + 62.0196, + 33.952667, + 38.786167, + 61.1836, + 46.865833, + 19.187167, + 37.455, + 61.302, + 37.976333, + -37.9104, + 38.838165, + 34.473, + 59.5615, + 33.885833, + 60.3904, + 56.6876, + 54.7916, + 60.1347, + 38.797669, + 37.46, + 60.1082, + 59.699, + 60.1615, + 38.2806, + 51.5531, + 38.8065, + 42.584333, + 60.7931, + 38.4144, + 38.3591, + 62.1688, + 67.4818, + 39.7777, + 59.8249, + 34.0695, + 45.623, + 35.02, + 38.821335, + 58.981, + 38.822333, + 62.4966, + 69.101, + 35.984333, + 34.038167, + 51.2677, + 61.7499, + 63.1111, + 33.868667, + 19.405667, + 63.0988, + -18.3191, + 63.1114, + 46.9255, + 34.875667, + 52.2316, + 61.7239, + 37.977333, + -18.3348, + 68.0646, + 60.9563, + -6.141, + 33.929833, + 64.9865, + 38.8385, + -19.9851, + 32.8185, + -5.1396, + 63.1811, + -5.1384, + -5.11, + 63.0772, + 37.532, + 60.286, + 60.1956, + 62.2758, + 38.818165, + 46.855167, + 61.3084, + 59.8496, + 19.176666, + 47.376, + 61.7606, + 62.5852, + 36.021667, + 60.1466, + -18.7978, + 19.2375, + 32.813833, + 53.871, + 36.6187, + 62.1092, + 43.543667, + 37.3666, + 34.839333, + 38.3161, + 39.610333, + 69.0735, + 61.1317, + 32.380167, + 36.582667, + 42.6455, + 40.890167, + 62.6618, + 61.5685, + 40.891333, + 36.829167, + 59.7895, + 37.9814, + 62.1577, + -10.1961, + 33.9578, + 60.1861, + 34.202833, + -14.913, + 37.3255, + 43.6321, + 42.606, + 36.5943, + 5.1272, + 56.3302, + 61.18, + -17.9346, + 33.93, + 40.2545, + 23.2931, + 40.246333, + 42.592833, + 67.4066, + 61.7353, + 46.886167, + 34.324833, + 36.06, + 36.101, + 32.419333, + 64.9958, + 64.0729, + 1.0854, + 44.806167, + 42.6105, + 19.4175, + 61.3624, + 42.6315, + 40.2652, + 33.157167, + 39.9645, + 42.575667, + 19.410833, + 60.366, + 61.9136, + 36.023667, + 51.5611, + 39.404167, + 61.9294, + 36.239333, + 59.8821, + 15.2723, + 35.975167, + 42.560333, + 61.7794, + 61.9475, + 62.9468, + 59.8967, + 38.6914, + 38.818668, + 63.8483, + 19.182333, + 63.1493, + 55.2931, + 48.548667, + 33.929167, + 30.5728, + 59.9819, + 60.4396, + 33.493667, + 62.9389, + 37.569333, + 59.7355, + 42.577333, + 42.597, + 42.5861, + 19.387833, + 42.581333, + 57.6592, + 35.610333, + 62.4591, + 42.595833, + 36.027, + 42.600667, + 19.4305, + 53.0789, + 42.589167, + 59.8279, + 54.4777, + 19.494, + 59.7855, + 63.9434, + 59.5969, + 42.559, + 56.6112, + 62.8332, + 35.56, + 37.3927, + 68.8119, + 65.3778, + 57.7913, + 63.2402, + -16.2747, + 44.304, + 59.167, + 54.6322, + 61.7927, + 38.3821, + 59.9873, + 59.9227, + 62.4633, + 59.7151, + 36.066833, + 42.523667, + 36.063333, + 60.1348, + 59.8732, + 59.985, + 36.0625, + 36.062833, + 60.7066, + 16.1444, + 42.581333, + 51.6886, + 36.776667, + 33.713, + 42.617667, + 33.961833, + -25.3193, + -41.5073, + 14.5711, + 18.9298, + 59.1631, + 35.964833, + 59.7836, + 37.4306, + 36.606333, + -50.7145, + 61.0377, + 60.3456, + 46.8965, + 36.020333, + -3.912, + 42.612833, + 42.508, + 36.457, + 37.291667, + 30.7208, + 56.8763, + 55.8757, + 60.2087, + 36.4519, + 45.589, + 42.5909, + 46.652333, + 6.3611, + 36.9623, + 16.2348, + 46.983167, + 64.9781, + -36.2513, + 62.0713, + 42.608, + 36.4396, + 36.4511, + 33.486667, + 42.524833, + 61.9413, + 38.658, + 53.3989, + 38.66, + 38.6647, + 61.1692, + 42.619, + 68.0241, + 61.5244, + 37.3659, + 15.3218, + 36.1795, + 38.1896, + 61.6291, + 38.778832, + 59.6779, + -20.6057, + 62.3114, + 59.9101, + 55.6543, + 57.8969, + 40.744, + 42.608667, + 60.0259, + 37.2998, + -5.5637, + 64.5345, + 33.866667, + 36.3275, + 58.1622, + 52.1476, + 42.579, + 59.921, + 61.545, + 19.389834, + 36.0195, + 36.0195, + 36.019333, + 19.378334, + 52.0581, + 37.325333, + 36.981335, + 36.019, + 35.430667, + -37.2281, + 18.5539, + 67.0927, + 36.179167, + 36.018667, + 36.5445, + -31.7548, + 37.184833, + 36.753, + -7.5033, + 42.5295, + 36.752, + 36.02, + 42.606, + 63.2912, + 42.607, + 42.6077, + 35.221333, + 58.8832, + 33.1855, + 67.1881, + 42.613833, + 60.121, + 53.9422, + 37.507667, + 42.6149, + 42.616, + 42.6154, + 51.7473, + 61.14, + 60.5626, + 36.2854, + 42.6121, + 51.7084, + 42.6064, + 66.1072, + 42.6135, + 36.4516, + 57.1404, + 36.020667, + 60.6104, + 52.0275, + 58.7008, + 36.018833, + 36.019667, + -31.8109, + 59.8087, + 38.3975, + 63.0946, + 59.7628, + 61.0755, + 38.815333, + 37.587, + 19.2688, + 27.9548, + 38.709667, + 61.8762, + 62.582, + 33.865333, + -2.1725, + 51.2155, + 37.3317, + 59.9737, + 66.1255, + 66.1279, + 64.2153, + 63.3135, + 54.3778, + 38.802, + 38.423833, + 65.4529, + 52.1246, + 38.8115, + 37.3121, + 34.085167, + 52.1917, + -31.7199, + 56.0595, + 51.1124, + 36.5795, + 36.582833, + 44.796, + 57.9599, + 61.5636, + 52.8226, + 19.0933, + 51.8122, + 19.2006, + 35.9883, + 37.3335, + 32.91, + 19.383667, + -10.7783, + 56.8207, + 61.758, + 33.079333, + 61.6352, + 15.201, + 15.1414, + 51.3226, + 38.809666, + 34.086, + 38.6641, + 15.6968, + 38.658333, + -11.0433, + 60.3455, + 63.0934, + 34.086667, + 34.169667, + 51.4427, + 61.7782, + 53.7654, + 46.453167, + 32.916167, + 60.2297, + 62.3117, + 46.13, + 62.2572, + 37.4312, + 38.757333, + 60.1059, + 17.4281, + 54.4321, + 59.7387, + 53.5765, + 38.656833, + 32.9165, + 32.910667, + 32.916333, + 37.569167, + 66.2583, + 59.6211, + 61.448, + 46.8665, + 59.9025, + 62.818, + 15.5332, + 41.274333, + 41.273, + 19.1825, + 41.2735, + 63.2162, + 60.2096, + 38.841667, + 61.2069, + 38.816, + 60.0341, + 61.2326, + 32.905167, + 32.911333, + 61.0148, + 59.8038, + 51.6727, + 59.4167, + 36.109333, + 64.7711, + 36.108833, + 35.0495, + 37.4193, + 64.9878, + 38.803165, + 59.3157, + 46.609, + 46.1638, + -24.1635, + 38.797333, + 54.9516, + 60.1593, + 36.108833, + 15.1768, + 60.1473, + 39.267, + 54.4702, + 39.249833, + 61.3285, + 32.830833, + 32.8245, + 32.822667, + 19.0255, + 60.8929, + 60.3627, + 19.474, + 34.482, + 34.117167, + -30.3511, + 55.9976, + 66.9662, + 34.027833, + 61.5338, + 46.3245, + 37.3834, + 38.3008, + 37.543667, + 15.3134, + 34.371167, + 42.6436, + 35.016333, + 46.875, + 37.801, + 62.7498, + 37.3993, + 34.324333, + 38.818, + 40.6905, + 63.3882, + 31.030666, + 37.4056, + 62.8303, + 59.9261, + 33.146167, + 37.284667, + 60.9138, + 62.0064, + 61.2214, + 19.09, + 15.6332, + 58.3116, + 37.3433, + 15.9949, + 40.700833, + 64.4942, + 36.443167, + 37.204, + 38.816834, + 38.818833, + 40.1065, + 19.426333, + 59.8511, + 51.5536, + 59.7419, + 52.0554, + 39.743833, + 38.8721, + 37.521833, + 40.9769, + 62.9046, + 62.8898, + -31.8057, + 51.7093, + 38.798832, + 19.343833, + 37.421, + 15.1833, + 59.8878, + 57.1996, + 40.217, + 53.6076, + 18.8611, + 61.6841, + 51.552, + -17.3471, + -31.8431, + 37.3693, + 15.2537, + 55.3906, + -31.82, + 46.8389, + 38.2695, + 54.8175, + 58.1121, + 63.2584, + 37.236667, + 60.2252, + 46.902333, + 36.3415, + 60.2089, + -30.4189, + 16.2017, + 38.838333, + 38.813499, + 59.8705, + 61.715, + 63.0532, + 46.853667, + 46.873667, + 38.805833, + 64.3804, + 38.801998, + 52.2855, + 61.2241, + 34.9205, + 35.462, + 41.046833, + 54.9912, + 63.5414, + 19.4375, + 63.2917, + 18.1321, + 34.574333, + 38.806999, + 61.7191, + 36.580167, + 61.0048, + 62.7051, + 59.7002, + 37.3646, + 57.9653, + 39.342333, + 60.4014, + 63.186, + 53.5664, + 62.5617, + 59.9845, + 63.5359, + 36.5615, + 53.884, + 64.8958, + 64.8906, + 59.7861, + 61.9803, + 60.6284, + 33.495, + 19.4285, + 37.221333, + 38.8125, + 64.9935, + 36.585333, + 61.1046, + 53.5595, + 48.519, + 32.833667, + 63.1688, + 60.0063, + 61.3659, + 46.9025, + 61.487, + 53.5803, + -18.5262, + 38.4153, + 51.7384, + 61.8395, + 41.036, + 42.6072, + 44.791, + 53.4469, + 33.496667, + 36.103833, + 36.899833, + 61.0975, + 63.255, + 55.7675, + 33.6865, + 42.593667, + 58.216, + 58.1899, + 46.8725, + 61.6519, + 37.656, + 61.5636, + 33.9785, + 38.8287, + 62.1708, + 15.0304, + 34.033667, + 60.6663, + 47.759167, + 15.3068, + 14.9812, + 62.1736, + 37.912, + 53.381, + 33.986833, + -17.5255, + 62.3401, + 36.996833, + 61.9617, + 60.2484, + 14.824, + 64.6136, + 37.41, + 19.0286, + -8.1346, + 37.0509, + 60.3555, + 59.8626, + 37.621667, + 61.7452, + 46.869667, + 35.042833, + 67.2216, + 53.7854, + -4.6379, + 46.899167, + 60.9727, + 46.9305, + 36.453333, + 36.970833, + 60.4807, + 64.6981, + 60.4706, + 47.439333, + 52.386, + 37.947167, + 60.5724, + 59.7703, + 61.5289, + 37.496, + 51.686, + 37.455833, + 61.7746, + 36.395167, + 38.797667, + 38.799167, + 62.2538, + -18.9829, + 60.1956, + 35.488167, + 62.163, + 51.8825, + 47.603667, + 32.830167, + 12.0757, + -31.7388, + 32.8245, + 42.5958, + 38.2855, + 36.477833, + 35.7788, + 63.5719, + 51.6544, + 46.891833, + 62.857, + 32.775833, + 64.8531, + 38.788167, + 57.21, + 32.781833, + 33.981333, + 0.908, + 19.0821, + 42.5497, + 42.5429, + 46.880167, + 44.790333, + 41.885, + 51.9624, + 44.1688, + 46.881333, + -6.3464, + 63.1318, + -6.4551, + 66.5697, + 46.855, + -16.6386, + 12.809, + 33.2585, + 37.453, + -6.3567, + 39.2721, + 62.6606, + -6.3113, + 64.5019, + 15.2169, + 64.4904, + 59.8804, + 33.357167, + 69.5184, + 38.818167, + 38.8185, + 60.1773, + 59.5728, + 31.6215, + 1.7746, + 36.566167, + -17.3298, + 35.561333, + 33.473833, + 63.9496, + -21.01, + 51.4933, + 62.9044, + 33.9755, + 15.5042, + 61.07, + 37.479333, + 67.9633, + 53.8971, + 36.537, + 62.1126, + 59.2923, + 33.921, + 19.212334, + 65.3345, + 37.339667, + 57.2975, + -11.7459, + 66.3882, + 57.7487, + 66.3682, + 60.5815, + 33.972167, + -21.9058, + 3.6252, + 51.6608, + 53.8702, + 46.879167, + 61.6723, + 34.376833, + 33.415667, + 12.7773, + 61.5891, + 63.1445, + 19.476, + 64.848, + -59.7896, + 60.3761, + 37.3415, + -7.0219, + 51.5611, + -7.0877, + 60.2719, + 60.4788, + 44.786167, + 37.109167, + 60.3231, + 38.786167, + 36.594333, + 7.5057, + 63.2668, + -23.8893, + 32.9405, + 38.3778, + 42.5857, + 59.603, + 37.493833, + 42.6077, + 32.828333, + 37.588167, + -35.7292, + 60.0405, + 38.757, + 53.8081, + 42.5908, + 44.307333, + 64.1727, + 16.0409, + 44.294, + 44.305167, + 16.1058, + 62.1778, + 14.4117, + 36.761167, + 44.302333, + 44.293667, + 33.501167, + 10.7018, + 38.820499, + 35.9015, + 33.187833, + 59.8595, + 37.105, + 54.0118, + 17.7366, + 59.8813, + 63.2696, + 64.3838, + 33.965, + 52.4075, + 61.144, + 60.8625, + 60.7582, + 59.8817, + 38.807999, + 67.6564, + 38.808998, + 34.5405, + 61.4142, + 60.5653, + 64.7331, + 33.653333, + 33.6285, + 33.971833, + 59.8672, + 51.671, + 19.442, + 51.6525, + 33.887, + 59.8663, + 59.8509, + 59.8885, + 59.8989, + 59.9059, + 59.9103, + 59.889, + 45.526833, + 59.9037, + 35.8586, + 51.905, + 46.857333, + -17.7554, + 61.3778, + 15.4761, + 36.971, + 57.9908, + 60.0807, + 62.4045, + 37.493, + 46.067333, + 33.040167, + 35.816, + 35.839, + 40.391, + 57.6803, + 15.1552, + 63.0653, + 38.805332, + 33.192167, + 52.9335, + 37.5715, + 63.4422, + 63.2217, + 36.069667, + 32.373167, + -23.7075, + 39.4039, + 37.923833, + 15.3031, + 59.9293, + 44.802, + 33.989, + 67.8201, + 34.993167, + 15.6575, + 60.1941, + 62.5136, + 33.507667, + 33.992333, + 38.823167, + 57.4983, + 15.6925, + 24.878, + 61.8843, + 35.360667, + -10.1846, + 42.5847, + -37.2167, + 16.1115, + 37.820167, + 56.9377, + 38.750833, + 38.752667, + 37.570667, + 19.430167, + 34.514833, + 62.8102, + 61.8971, + 44.705667, + 36.467, + 37.0358, + 64.4709, + 42.5757, + 37.565, + 42.5771, + 64.7619, + 37.638167, + 59.7545, + 33.193, + 64.7582, + 42.5936, + 59.5744, + 16.226, + 62.5449, + 46.876833, + 62.4985, + 37.587167, + 34.381, + 59.9775, + 38.752667, + 17.5196, + 38.7481, + 33.184833, + 37.344833, + -6.4027, + 37.499667, + 38.837502, + 36.5485, + 36.383333, + 51.2858, + 59.9768, + 63.5373, + 38.1953, + 63.0385, + -17.0456, + 14.9269, + 35.9645, + -7.4355, + 61.5042, + 35.9908, + 37.4595, + 15.1165, + 48.101667, + 38.836333, + 14.9414, + 47.691333, + 42.2053, + 35.962667, + -10.8831, + 38.061667, + 33.169667, + 59.845, + 60.2604, + 63.5231, + 63.0863, + 63.8926, + 37.0689, + 33.145833, + 36.123167, + 33.975167, + 64.7554, + 18.4531, + 40.436, + 62.2903, + 33.978, + 51.3744, + 37.518833, + 21.642167, + 58.4419, + 59.504, + 33.976667, + 61.486, + 13.6017, + 37.540333, + 37.775667, + 62.0856, + 38.706667, + 66.2529, + 57.5066, + 17.4925, + 15.2335, + 33.976667, + 42.5716, + 39.366833, + 36.6783, + 33.9745, + -1.4664, + 39.807833, + 13.2544, + 61.8774, + 38.3939, + 35.141167, + 32.862, + 61.3719, + 37.542, + 35.6915, + 34.034, + 59.405, + 54.2192, + 33.193833, + 33.493667, + 17.2785, + 37.519667, + 63.5861, + 59.0192, + 38.786999, + 34.877167, + 38.807167, + 37.545, + 52.0486, + 63.5749, + 63.6017, + 36.224833, + 57.4142, + 59.7523, + 66.2593, + 63.5631, + -23.9788, + -37.2039, + 42.596, + 61.6212, + 64.7584, + 62.5868, + 2.8319, + 64.7729, + 56.0051, + 64.7851, + 62.7723, + 19.420833, + 67.621, + 51.6929, + -4.6769, + 60.2335, + 12.8959, + 59.5574, + 64.7863, + 59.9258, + 40.281, + 53.6697, + 38.747, + 37.279, + 58.2131, + 51.5577, + -5.9077, + 60.4891, + 34.5022, + 42.6057, + 64.7765, + 61.1116, + 51.7117, + 35.152667, + 38.7781, + 12.6788, + 38.5819, + 34.4865, + 60.2433, + 36.496667, + 42.5599, + 57.0654, + 38.823167, + 33.326167, + 59.7681, + 64.9805, + 59.8732, + 63.4641, + 37.504333, + 19.1915, + 60.3885, + 58.4988, + 63.4918, + 37.450833, + 33.503167, + -55.4644, + 38.757, + 54.0122, + 48.515, + 60.4419, + 42.537167, + 37.447667, + 37.462333, + 37.379333, + 61.0059, + 15.1825, + 60.4845, + 35.602833, + -2.7314, + 33.170333, + 60.0961, + 37.477167, + 53.8618, + 36.012167, + 63.102, + 47.3965, + 38.822667, + 47.395833, + 53.7237, + 18.0013, + 60.3013, + -51.951, + 55.3684, + 42.587833, + 33.8525, + 37.276667, + 63.0908, + 19.450333, + 64.2424, + 60.533, + 59.9528, + 46.898, + -7.0257, + 33.127833, + 33.222833, + 33.223833, + 33.221833, + 39.4025, + 60.477, + 60.4978, + 37.2798, + 51.6899, + 36.923833, + 54.2139, + 61.6789, + 33.1885, + 1.5915, + 51.3691, + 45.973333, + 46.868167, + 54.8499, + 38.833832, + 46.8611, + 57.6534, + 18.0135, + 54.9781, + 54.3697, + 38.750667, + 67.7999, + 63.0999, + 60.4779, + 42.568, + 37.458833, + 35.032833, + 38.6088, + 59.9657, + 46.870333, + 46.874167, + 14.9752, + 57.1664, + 37.328833, + 62.1581, + 42.5991, + 60.6122, + 18.7165, + 36.291833, + 60.2245, + 53.6654, + 18.1111, + 60.3742, + 42.5723, + 35.792, + 19.201, + 17.9996, + 42.5753, + 57.3488, + 37.5652, + 37.416, + 35.933167, + 59.7943, + 60.0925, + 61.7131, + -21.9172, + 60.0014, + 60.1125, + 60.1326, + 37.412167, + 65.3407, + 33.327833, + 61.4994, + 60.1603, + 38.83, + 60.9306, + 33.332667, + 60.0997, + -42.4862, + 57.7349, + 61.1147, + 61.8273, + 37.333333, + 37.415, + 60.4761, + 45.73, + 38.8245, + 60.3155, + -11.9189, + 46.896667, + 59.8152, + 60.022, + 38.793999, + 40.139667, + 38.4011, + 46.879667, + 69.4522, + 60.8639, + 60.8403, + 53.7145, + 15.2748, + 37.553, + 19.197667, + 62.4253, + 34.068167, + -26.6333, + 18.8304, + 37.412167, + 37.414, + 45.950833, + 37.2136, + 15.6978, + 64.3159, + -18.1469, + 33.651667, + 36.589667, + 24.4725, + -31.912, + 60.0357, + 47.835167, + 37.448333, + 54.0704, + 15.2225, + 38.607167, + 37.417833, + 63.0381, + -15.3348, + 38.821, + 59.9169, + 64.993, + 37.203667, + 60.031, + 61.0185, + 15.3544, + 37.434333, + 56.1589, + 61.1472, + -13.8345, + 34.011167, + 38.8648, + -7.2026, + 19.708, + 38.746667, + 59.9712, + 53.6195, + -12.9278, + 18.9605, + 37.3761, + 37.849, + 49.4855, + 64.0866, + 18.7848, + 46.8785, + 33.852667, + 34.075, + 33.981667, + 46.875667, + 33.8295, + 31.1684, + 59.9804, + 48.5185, + 40.126, + 59.9221, + 37.542333, + 59.5576, + 37.479167, + 47.657667, + 37.412167, + 52.3919, + 43.172167, + 36.2853, + 61.6397, + 53.141, + 60.0386, + 60.0012, + 37.328833, + 60.5671, + 60.5666, + 59.9119, + 35.0525, + 45.629833, + 37.5355, + 38.800167, + 61.0558, + 60.9198, + 18.6699, + 37.411667, + 42.5971, + 33.494833, + 42.586, + 47.590667, + 15.7247, + 60.7702, + 32.7967, + 53.4109, + 18.0533, + 57.7254, + 52.5561, + -6.0228, + 41.675, + 36.071833, + 58.804, + 33.9595, + 61.3116, + 53.4862, + 37.473, + 59.9299, + 15.4623, + 37.203167, + 63.8584, + 33.465, + 46.870333, + 59.9879, + 42.6047, + 17.9023, + 53.5505, + 59.8173, + 37.603833, + 38.4065, + 60.0065, + 61.1655, + 61.1407, + 42.5276, + 37.486167, + 58.6121, + 37.47, + 34.269167, + 20.135166, + 53.4145, + 37.5615, + 60.1407, + 61.4964, + 51.6162, + 54.8482, + 61.3489, + 61.7241, + 61.1701, + 36.571833, + 52.3291, + 59.9886, + 66.4782, + 54.0129, + 18.879, + 60.1553, + 61.5265, + 38.778168, + 60.1915, + 53.4455, + 56.2796, + 40.120667, + 31.831667, + 38.774666, + 38.776667, + -11.977, + 37.345667, + 60.3656, + 38.712667, + 32.924167, + 65.436, + -34.2973, + 60.0002, + 36.502833, + 59.8384, + 63.0596, + 32.844, + 60.359, + 15.5507, + 33.668167, + 19.236, + 33.674333, + 14.9559, + 36.5675, + 15.1323, + 15.4856, + 36.7402, + 19.294167, + 51.5999, + 14.4266, + -1.356, + 40.386833, + 14.4637, + 46.8975, + 62.5721, + 33.049333, + 37.54, + 46.866667, + 59.8075, + 33.957167, + 34.336333, + 37.540667, + 62.6309, + 37.3096, + 61.0176, + 18.2223, + 36.2854, + 37.005167, + 32.828, + 34.225833, + 42.5241, + 42.5232, + 42.5096, + 42.522333, + 59.6609, + 60.1683, + 42.5303, + 37.3603, + 62.7371, + 38.785168, + 38.787833, + 59.077, + 37.139, + 60.1933, + 42.6704, + 34.513833, + 42.6014, + 62.6994, + 54.7664, + 59.8124, + 18.0321, + 54.4582, + 65.668, + 35.7719, + 33.3545, + 52.1109, + 51.617, + 33.976667, + 19.238333, + 51.6505, + 19.243, + 37.143167, + 45.814167, + 60.824, + 32.834, + 32.828, + 63.4085, + 48.091333, + 61.9565, + -18.058, + 51.3154, + 64.9963, + 46.8793, + 44.090833, + 32.832833, + 37.277833, + 44.6825, + 33.978, + 55.5692, + 33.073, + 38.5022, + 32.834667, + 32.838667, + 32.8335, + 32.843833, + 19.3035, + 61.6698, + 37.532167, + 57.7401, + 33.976333, + 33.975333, + 53.5386, + 53.9212, + 33.507167, + 46.909667, + 15.1566, + 32.832167, + 32.843, + 44.678167, + 15.7092, + 37.5655, + 33.504167, + 44.674, + 33.8575, + 46.9035, + 38.833168, + 38.815666, + 60.1339, + 38.8085, + 37.481167, + 35.980833, + -6.0986, + 42.6029, + 61.0912, + 61.1384, + 59.6753, + 33.667, + 37.644667, + 34.993167, + 51.3949, + 61.2967, + 38.787834, + 63.5538, + 40.449667, + 35.943167, + 35.482, + 32.840667, + 62.4485, + 37.491667, + 37.472833, + 59.8908, + 59.6095, + 60.1768, + 15.7969, + 51.97, + 40.484, + 51.7491, + 62.8428, + 19.219, + 63.3484, + -4.88, + 19.9115, + -10.7647, + 59.7717, + 36.156667, + 59.8229, + 60.7945, + 36.012167, + 38.3879, + 60.3719, + 66.2048, + 44.257, + 37.593167, + 65.4989, + 38.8311, + 35.139667, + 32.838, + 19.424334, + 32.839333, + 15.8472, + 46.956667, + 36.179667, + 38.804, + 53.9359, + 32.782333, + 2.9917, + 35.707667, + 60.2384, + 51.5758, + 14.855, + 46.9035, + 64.7545, + 59.7836, + 44.770833, + 38.8215, + 57.8805, + 50.1653, + 39.3643, + 63.0467, + 53.5692, + 48.271333, + 60.5002, + 42.567833, + 15.639, + 32.831333, + 15.5449, + 36.2089, + 58.6446, + -23.5684, + 52.7346, + 15.2732, + 19.467167, + 38.822334, + 42.596, + 60.5679, + 37.4198, + 39.366167, + 62.2453, + 62.9227, + 64.7476, + 61.6459, + 62.8983, + 42.6632, + 59.8755, + 60.5579, + 37.467, + 62.2629, + 42.5618, + 53.7072, + -22.1327, + 38.3681, + 60.5189, + 13.4506, + 37.486167, + 33.5045, + 60.9785, + 46.862167, + 60.3009, + 15.3914, + 34.0375, + 60.2062, + 46.864167, + 37.1885, + 39.3655, + 67.102, + 38.834667, + 51.6652, + 38.835667, + 46.87, + 38.836666, + 46.872333, + 19.1065, + 38.836834, + 38.835167, + 38.835, + 9.5711, + 46.864667, + 15.2889, + 34.5065, + 63.5608, + 19.091, + 36.804167, + 61.7575, + 15.1558, + 46.872333, + 46.8885, + 64.8451, + 40.4805, + 19.0955, + 33.774833, + 60.2216, + 32.933167, + 61.3707, + 15.3254, + 60.6712, + 65.2775, + 15.5954, + 19.256333, + 36.148167, + 19.404333, + 36.439667, + 14.9659, + 19.849, + 34.0375, + 53.3828, + 67.0334, + 45.693833, + 58.0975, + 35.043, + 64.994, + 19.851167, + 65.79, + 61.6898, + -20.2485, + 58.0241, + 38.819333, + 34.9985, + 58.0753, + 60.3564, + 58.165, + 37.604167, + 33.691833, + 33.956333, + 33.465333, + -15.0799, + 39.603833, + 64.7032, + 36.7446, + 38.839, + 15.7169, + 37.8095, + 57.2026, + 33.8575, + 32.3285, + 52.3665, + 63.5705, + 40.211833, + 38.839667, + -21.9227, + 60.0018, + 59.7927, + 58.0337, + 15.6677, + 16.3622, + 39.3805, + 15.3334, + 15.2212, + 59.366, + 42.5165, + 60.0754, + 61.5446, + 19.393167, + 55.7766, + -5.2108, + 53.5209, + 60.5717, + 15.2798, + 53.6304, + 60.5946, + 37.384167, + 13.9047, + 63.9919, + 35.857167, + 65.9855, + 52.0051, + 37.596833, + -7.5665, + 33.866, + 37.605, + 52.0274, + 55.1751, + -24.5557, + 15.0356, + 33.505667, + 15.8693, + 57.3614, + -30.4261, + -14.1046, + 61.6356, + 60.4846, + 18.066, + 62.559, + 34.036, + 38.788667, + 60.4951, + 44.621667, + 52.1694, + 42.663667, + 60.1768, + 60.3035, + 53.7799, + 60.3452, + 19.870667, + 60.1844, + 42.595, + 61.3182, + 36.2062, + 62.229, + 46.8852, + 67.3188, + 59.8987, + 37.602667, + 33.71, + 51.6857, + 60.0043, + 62.0418, + 37.602833, + 62.8895, + 60.2201, + 60.6518, + 53.7706, + 27.9618, + 61.2674, + 16.1985, + 38.334333, + 61.2794, + 37.426667, + 44.7855, + 59.8217, + 35.832333, + 46.841667, + 61.0848, + 33.3915, + 61.5592, + -20.0675, + 61.074, + 42.608333, + 60.3172, + 58.4203, + 15.7927, + 62.2754, + 18.1753, + 60.188, + 19.557, + 57.0134, + 52.1101, + 36.472, + -4.9334, + 61.3766, + 54.8119, + 34.347833, + 65.4772, + 52.1151, + 38.3871, + 64.7668, + 15.7276, + 59.9341, + 37.502, + 17.4213, + -40.6778, + 62.8571, + 36.079833, + 55.2018, + 63.3655, + 39.1124, + 37.806, + -26.0946, + 34.124, + 59.3304, + 42.555167, + 15.4552, + 53.2354, + 63.2379, + 46.863, + 38.760833, + 15.0886, + 53.1426, + 15.182, + 46.899833, + 43.2425, + 60.1297, + 37.502667, + 37.455, + 18.5168, + 60.1274, + 56.0678, + 40.568667, + 21.633833, + 18.5325, + 46.8705, + 37.299667, + 40.4865, + 34.079667, + 61.2964, + 60.1725, + 46.863667, + 33.494667, + 19.0945, + 37.6055, + 37.468667, + 40.2965, + 34.0385, + 37.4715, + 62.0502, + 60.1249, + 18.688, + 42.5935, + 59.8319, + 59.4008, + 59.9375, + 63.0936, + 42.53, + 37.475, + 36.311333, + 37.474167, + 15.4421, + 60.0035, + 37.471, + 15.0853, + 42.5422, + 33.491167, + 42.5825, + 37.473, + 19.358667, + 60.155, + 37.4765, + 62.7988, + 42.593667, + 42.6006, + 42.5922, + 52.772, + 51.8595, + 61.9185, + 15.4699, + 37.426833, + 15.6178, + 42.6061, + 51.6497, + 59.9838, + 59.1798, + 32.933, + 15.7603, + 62.4273, + -4.9444, + 37.529, + 51.5235, + 60.2363, + 15.1965, + 42.5306, + 55.1229, + 46.198833, + 35.641167, + 15.4385, + 35.427833, + 14.9074, + 42.5566, + 51.8321, + 32.6095, + 65.4356, + 38.3846, + 52.2896, + 46.1355, + 53.2916, + 65.319, + 62.8899, + 63.145, + 46.904833, + 42.5727, + 46.8675, + 60.4231, + 65.8017, + 66.0161, + 38.8119, + 38.7915, + 42.609, + 62.9071, + 59.849, + 63.4914, + 58.9343, + 42.524333, + 10.9561, + 59.7893, + 37.1247, + 60.2771, + 38.8318, + 37.474, + 23.9529, + 42.5401, + 46.859, + 60.5833, + 33.717167, + -58.1449, + 10.8571, + 11.1912, + 28.9426, + 39.2104, + 42.545833, + 42.5774, + 36.5125, + -18.5966, + 33.538833, + 15.0128, + 57.9354, + 15.1729, + 59.7685, + 42.6086, + 42.578167, + 62.154, + 60.2049, + 54.2242, + -2.821, + 42.5413, + 14.8747, + 15.3524, + -23.8876, + 15.3112, + 46.8915, + 38.845001, + 51.4307, + 45.054, + 15.4024, + 32.865667, + 37.905667, + 18.2745, + 42.6048, + 42.570833, + 42.5293, + 57.3966, + 42.5344, + 42.5317, + 37.4565, + 42.5438, + 42.5288, + 49.241, + 61.4216, + 42.5325, + 17.4028, + 59.1724, + 42.5419, + 42.5456, + 42.5476, + 22.421, + 51.4481, + 42.547, + -19.7635, + 35.087333, + 64.6086, + 60.2846, + 61.5128, + 37.3174, + 37.596667, + 63.3368, + 37.487667, + 68.5279, + 51.3476, + 42.5522, + 42.5545, + 19.417333, + 42.5481, + 42.5648, + 62.6857, + -25.8043, + 38.3603, + 61.7247, + 62.9497, + 42.6131, + 48.595333, + 60.2939, + 33.263, + 42.5733, + 60.1444, + -16.1442, + -37.5234, + 37.459167, + 52.7853, + 64.7051, + 54.7566, + 19.407, + 33.879333, + 59.6229, + 68.5348, + 64.9961, + 65.7316, + 53.8156, + 38.790165, + 34.0295, + 33.964, + 53.5639, + 42.5496, + 60.4132, + 61.5763, + 37.409167, + 59.7877, + 42.5673, + 42.5544, + 42.546167, + 34.059667, + 60.9205, + 68.8276, + 33.463, + 48.421333, + 41.686167, + 19.4726, + 62.2481, + 52.5632, + 15.3004, + 33.327833, + 42.6238, + 42.555167, + -24.246, + 60.1009, + 59.0889, + 46.8645, + 34.906, + 60.3968, + 38.807335, + 42.5774, + 15.3853, + 36.839667, + 56.0816, + 42.6729, + 15.4152, + 53.7182, + 46.874833, + 41.351667, + 61.0452, + 59.1308, + 14.9912, + 42.553333, + 36.111167, + 39.7665, + 15.2785, + -4.2452, + 15.5681, + 58.2872, + 46.873833, + 46.872667, + 59.7864, + 59.9173, + -10.314, + 36.111833, + 35.5637, + 57.1877, + 60.4559, + 46.868167, + 59.9636, + 63.2571, + 60.3801, + 60.3735, + -4.1892, + 61.6922, + 42.672, + 42.6306, + 24.7471, + 15.6517, + 61.531, + 62.549, + 37.590833, + 15.8113, + 62.0888, + 35.679, + 37.632333, + 34.488, + 12.9836, + 59.7401, + 33.493667, + 37.3487, + 53.8607, + 17.3198, + 19.339667, + -6.9548, + 60.4497, + 63.2902, + 42.578333, + 42.5904, + 58.5704, + 37.542333, + 36.0335, + 51.5916, + 37.541833, + 15.3932, + 42.563, + 14.0924, + 62.1328, + 35.044, + 42.584, + 60.1398, + 42.6018, + 42.5935, + 60.1912, + 19.5025, + 34.038833, + 34.037667, + 34.039167, + 37.229167, + 35.090833, + 42.5855, + 62.1899, + 68.2355, + 42.5959, + 37.452833, + 57.044, + 57.1272, + 37.601667, + 37.5175, + 42.5792, + 46.792, + 42.554167, + 58.0932, + 37.642833, + 37.638667, + 36.9325, + 18.0166, + 37.512333, + 58.8361, + 15.0768, + 40.8314, + 63.4845, + 42.5436, + 36.8036, + 60.0074, + 63.2783, + 42.5711, + 19.413166, + 42.5453, + 63.3651, + -23.6018, + 42.1689, + 34.035333, + 36.1361, + 46.862667, + 42.5488, + 42.5451, + 38.824667, + 37.129167, + 37.544167, + 54.6854, + 42.5563, + 37.1305, + 42.5449, + 19.2021, + 19.329333, + 42.5555, + 58.5519, + 37.0464, + 36.955833, + 35.6565, + 42.6003, + 34.037167, + 34.028, + 52.3355, + 59.2097, + 38.833, + 38.833667, + 62.1772, + 34.044667, + 34.041167, + 58.6862, + 34.040667, + 60.5262, + 42.5639, + 34.474333, + 63.1472, + 34.034333, + 35.088667, + 65.0868, + 41.9157, + 42.6058, + 42.567, + 34.041667, + 37.135667, + 35.547833, + 34.467833, + 42.5627, + 38.789333, + 42.594667, + 42.5965, + 34.038667, + 34.039333, + 34.037667, + 34.038667, + 60.3803, + 35.343333, + 60.0161, + 34.040167, + 52.5377, + 35.3405, + 51.6859, + 63.4871, + 52.3983, + 37.596167, + 35.7377, + 38.9295, + 35.9926, + 57.4691, + 34.014333, + 37.8866, + 58.208, + 15.2976, + 42.5593, + 51.7014, + 14.9344, + 37.3283, + 57.3821, + 42.5804, + 60.9584, + 42.5738, + 14.1109, + 34.0425, + 42.5625, + 61.4915, + 42.55, + 60.2731, + 37.695667, + 18.1121, + 46.8743, + 38.060667, + 61.5617, + 44.4485, + 59.8179, + 13.069, + 52.4771, + 59.5546, + 15.6631, + 15.2922, + -7.5542, + 15.7653, + 33.504667, + 42.5578, + 59.8194, + 42.5509, + 53.3278, + 42.6115, + 46.8615, + 46.853, + 62.187, + 12.4905, + 42.5536, + 42.6011, + 42.6033, + 52.4554, + 42.6011, + 59.8907, + 42.5736, + 42.6284, + 42.59, + 69.231, + 14.0483, + 15.8549, + 59.8093, + 42.6019, + 12.9144, + 51.6272, + 42.6201, + 52.6471, + 42.565, + 38.3052, + 42.5577, + 69.235, + 42.5604, + 19.916833, + 69.2374, + 42.6074, + 42.6057, + 39.0228, + 18.603, + 42.601, + 42.5705, + 33.778, + 46.875333, + 51.946, + 42.6126, + 37.226333, + 42.5965, + 34.7275, + 33.030167, + 15.8657, + 42.5713, + 42.5698, + 42.5966, + 36.934833, + 36.5378, + 42.6147, + 19.404333, + 42.5629, + 38.3864, + 50.427, + 37.642333, + 44.4006, + 15.7031, + 62.993, + 53.169, + 60.3931, + 60.3066, + 38.801998, + 42.6096, + 54.0093, + 33.154333, + 53.453, + 41.7813, + 15.7644, + 53.5788, + 46.889167, + 37.0369, + -18.159, + 38.0722, + 34.0365, + 53.8251, + 51.6871, + -25.0133, + 19.109, + 33.143833, + 35.652333, + 34.347667, + 61.2792, + 62.6834, + 62.9587, + 60.2265, + 33.508, + 52.0013, + -24.5931, + 15.1076, + 35.9918, + 42.5611, + 51.2072, + 59.5892, + 62.0857, + 33.501167, + 47.328333, + 62.4037, + 60.5943, + 36.150833, + 15.0816, + 51.77, + 60.2926, + 36.511333, + 37.3848, + 37.576333, + 15.0962, + 59.5419, + 61.916, + 61.2662, + 37.0254, + 61.3941, + 18.2211, + 34.037667, + 36.6964, + 34.037667, + 38.750333, + 46.874333, + 67.5564, + 15.7467, + 15.4311, + 34.0395, + 60.3044, + 15.3927, + 34.039333, + 63.2644, + 34.268333, + 59.1941, + 34.037833, + 62.1404, + 59.8641, + 37.347167, + 61.11, + 38.0198, + 59.5199, + 38.755501, + 15.2659, + 61.3045, + 60.9757, + 67.6427, + 43.836167, + 46.896167, + 15.3896, + 66.769, + 60.9238, + 51.817, + 15.1883, + 18.2203, + 14.9239, + 42.6058, + 61.4008, + 42.6737, + 15.7739, + 14.9456, + 63.1544, + 59.1241, + 38.3937, + 33.193, + 59.9356, + 16.7045, + 15.408, + 15.5308, + 15.3526, + 44.2464, + 58.2485, + 51.6935, + 44.4745, + 59.4036, + 51.7361, + 62.0025, + 46.879833, + -16.7183, + 51.6811, + 42.5803, + 19.948333, + 56.1065, + 44.3952, + 38.768333, + 38.768, + 59.5958, + 60.7112, + 57.7499, + 19.4025, + 63.1024, + 66.9866, + 64.9906, + 54.9813, + 55.435, + 42.6646, + 60.1674, + 36.95, + 39.862333, + -36.1497, + 35.897667, + 60.0021, + 38.774666, + 45.618, + 39.501833, + 15.7772, + 44.781833, + 38.768167, + 39.861333, + 38.913333, + -27.7277, + 35.9883, + 35.9914, + 15.537, + 60.3983, + 37.802667, + 59.9912, + 36.2908, + 19.391001, + 15.0779, + 15.5513, + 55.6085, + 60.1774, + 15.4862, + 60.153, + 20.027167, + 39.282333, + 19.411833, + 60.0877, + 38.753833, + 55.2452, + 50.8322, + 42.6494, + 38.06, + 51.7278, + 38.833667, + 42.555833, + 15.787, + 18.915833, + 53.2518, + 38.3558, + 38.843833, + 49.4785, + 67.7643, + 51.6082, + 34.0925, + 60.3576, + 15.3004, + 58.3062, + 15.1363, + 39.523333, + 51.5729, + 49.325, + 39.4189, + 38.3555, + 51.6531, + 44.717, + 51.6239, + 51.695, + 15.4199, + 42.5514, + 33.977333, + 59.5746, + 62.1419, + 19.393333, + 32.741, + 51.6859, + 15.8296, + 37.598167, + 15.0866, + 15.3251, + 37.658833, + 51.4897, + 61.0444, + 15.2562, + 63.1355, + 60.6453, + 33.978333, + 54.8237, + 16.3217, + 59.9753, + 56.8018, + 51.2597, + 37.593667, + 40.6574, + 33.320333, + 42.5704, + 43.612, + 54.015, + 60.762, + 59.5701, + 15.2555, + 15.3921, + 58.9325, + 37.210833, + 15.2159, + 36.143, + 59.755, + 15.5969, + 55.4677, + 42.5392, + 16.1573, + 59.7863, + 61.013, + -22.4546, + 36.511, + 37.597, + 61.7723, + 42.5793, + 15.7338, + 37.604833, + 42.5732, + 36.641, + 53.9738, + 15.854, + 42.579, + 3.6504, + 37.5415, + 51.5792, + -15.3425, + 44.792, + 18.0591, + 35.903, + 15.7495, + 46.021167, + 37.554833, + 36.408833, + 44.5128, + 37.2486, + 34.0345, + 67.3419, + -4.9459, + -24.161, + 62.5675, + 60.0265, + 53.9395, + 38.4305, + 14.9116, + 39.729667, + 59.0211, + 61.4535, + -19.5742, + 61.6767, + 55.6967, + 42.6157, + 37.917667, + 51.7726, + 59.4202, + 15.3559, + 32.718333, + 42.5665, + 42.5806, + 42.5744, + 42.6108, + 42.5592, + 42.5631, + 51.8445, + 34.3615, + 42.5799, + 18.7533, + 42.5619, + -6.9776, + 42.5842, + 15.2713, + -59.2757, + 19.386833, + 42.5789, + 38.8091, + 42.5792, + 42.5726, + 13.8193, + 68.4897, + 68.4109, + 15.6436, + 61.8175, + 34.440333, + 48.458667, + 38.3812, + 15.1947, + 59.963, + 68.5268, + 32.7105, + 15.0415, + 15.1747, + 15.8771, + 36.388167, + 32.708, + 32.557, + 15.7206, + 15.6186, + 15.4532, + 46.891167, + -59.8211, + 15.8428, + 63.1602, + 65.5175, + 40.9452, + 52.2353, + 59.8068, + 15.6728, + 15.2159, + 15.3776, + 15.1325, + 15.6769, + 68.5196, + 58.1118, + 51.342, + 15.0808, + -8.6068, + 65.7544, + 36.471667, + 58.6028, + 15.175, + 36.2919, + 46.862667, + 33.653, + 60.0722, + 15.3365, + 34.238, + 68.5258, + 61.7136, + 15.1257, + 68.5284, + 61.6985, + 38.425, + 46.891833, + 15.3169, + 15.8989, + 68.5273, + 68.5069, + 15.079, + 51.9836, + 61.3017, + 16.0961, + 18.7428, + 15.1531, + 60.1916, + 68.5221, + 68.5555, + 15.9092, + 15.4947, + 63.1355, + 15.4622, + 15.195, + 54.0919, + -24.2322, + 15.6429, + 68.5087, + 15.0759, + 68.536, + 59.9206, + 33.036667, + 60.0725, + 63.4575, + 35.773167, + 46.341167, + 35.896833, + 58.7828, + 68.5298, + 15.7086, + 15.7942, + 67.3421, + 58.7481, + 7.7941, + 15.37, + 38.8195, + 19.404333, + 15.6773, + 15.2969, + 40.262167, + 15.6439, + 64.8033, + 53.4202, + 42.574167, + 59.1673, + 16.0661, + 42.5718, + 42.5822, + 59.285, + 67.2634, + 53.9765, + 33.978, + 16.8287, + 59.8055, + 61.3236, + 33.300667, + 32.322667, + 60.1661, + 18.895833, + 37.588667, + 62.3109, + 58.2348, + 60.5722, + 58.7696, + 15.0785, + 42.557333, + 44.316, + 64.9856, + 61.2722, + 60.1552, + 62.6908, + 58.2214, + 37.486333, + 36.2848, + 15.3302, + 62.4824, + 36.2872, + 46.870333, + 37.6285, + 15.4861, + 60.6448, + 33.035167, + 37.624833, + 15.5735, + 37.63, + 15.7473, + 15.2209, + 15.4318, + 37.990333, + 15.5886, + 62.4883, + 52.748, + 39.273333, + 59.9024, + 15.6987, + 65.5089, + 61.2391, + 44.442833, + 39.279333, + 60.1717, + 60.1979, + 15.528, + 53.1595, + 44.423667, + 34.049667, + -18.9749, + 14.947, + 46.863333, + 18.4195, + 61.5519, + 60.316, + 42.5694, + 37.593167, + 42.571, + 42.5733, + 60.3533, + 59.2544, + 31.0585, + 61.6699, + 34.008167, + 34.995167, + 15.0427, + 15.5292, + 42.5723, + 51.6006, + 16.231, + -12.2109, + 15.0921, + 62.887, + 15.6158, + 37.616167, + 35.0645, + 37.177, + 37.9215, + 15.3801, + 56.9755, + 15.6809, + 33.504167, + 60.0235, + 14.7125, + 59.0829, + 39.5547, + 33.233167, + 46.8995, + 15.1404, + 60.9139, + -6.8416, + 15.3343, + 14.6837, + 61.7092, + 37.325167, + 34.355833, + 15.6184, + 15.1628, + -6.0426, + 15.7603, + 42.6127, + 35.8975, + 15.3478, + 51.3347, + 15.2659, + 0.5634, + 15.3325, + 15.3669, + 61.8643, + 15.0663, + 61.2338, + 25.2517, + 13.7011, + 36.514, + 37.64, + 15.2537, + 40.656167, + 36.036167, + 36.033, + 29.0196, + -15.2805, + 34.149, + 39.1465, + 15.5213, + 62.8988, + 33.723667, + 15.544, + 15.406, + 15.9178, + 53.1531, + 15.4789, + 37.519, + 15.2436, + 37.5155, + 15.5119, + 15.3318, + 61.7913, + 38.884833, + 15.3155, + 15.3594, + 62.9279, + 15.5765, + 39.5355, + 38.505333, + 61.9648, + 52.3567, + 38.505667, + 38.504167, + 62.2347, + 15.348, + 36.3422, + 66.2606, + 51.2619, + 37.8092, + 40.482667, + 33.649333, + 33.822667, + 15.4936, + 39.7864, + 15.6687, + 15.2604, + 33.500333, + 16.0581, + 39.504833, + 15.7988, + 38.504833, + 42.6225, + 15.1089, + 15.8932, + 62.1823, + 38.5055, + 38.504333, + 38.504667, + 38.504333, + 55.6664, + 60.0832, + 5.4358, + 61.5525, + 39.7853, + 38.507167, + 19.2065, + 37.3255, + 61.3969, + 61.4081, + 48.9275, + 51.7374, + 58.7206, + 15.3946, + 37.512833, + 15.3898, + 15.609, + 33.107167, + 66.997, + 39.646667, + 15.3716, + 37.831333, + 15.3232, + 15.785, + 15.2837, + 15.2148, + 54.9712, + 37.3947, + 63.0882, + 15.121, + 37.2978, + 15.833, + 42.664333, + 52.5352, + 44.396167, + 14.8297, + 15.7457, + 14.8524, + 15.5339, + 37.3074, + 58.6313, + 38.6696, + 15.5537, + 42.5653, + 36.031333, + 15.4661, + 63.3273, + 15.5777, + 42.6598, + 15.6082, + 15.1108, + 53.8832, + 66.2631, + 15.126, + 41.068, + 45.881, + 57.7458, + 37.522833, + 19.4775, + 14.6019, + 14.8705, + 15.4459, + 36.9956, + 63.717, + 37.5425, + 63.9895, + 15.5108, + 33.501333, + 15.2654, + 38.759167, + 14.8479, + 36.4921, + 72.6309, + 38.792167, + 15.4476, + 60.165, + 15.3461, + 60.1163, + 15.437, + 15.1749, + 67.0569, + 15.0884, + 15.4362, + 38.820667, + 15.2941, + 15.304, + 15.4284, + 38.847667, + 15.668, + 38.846333, + 38.847332, + 15.5333, + 15.4454, + 38.832501, + 37.2854, + 15.1471, + 15.6629, + 14.9089, + 36.5024, + 15.2843, + 15.1504, + 38.847832, + 15.2029, + 38.848167, + 37.2911, + 15.9617, + 15.5726, + 39.287167, + 38.848667, + 38.829666, + 19.3283, + 15.4565, + 2.4289, + 38.815333, + 38.8255, + 38.775667, + 38.817333, + 38.819333, + 38.807, + 38.822, + 38.774, + 38.815167, + 38.83, + 15.1746, + 61.4229, + 46.857167, + 15.0356, + 53.7845, + 37.463833, + 51.2706, + 34.321833, + 51.3724, + 52.2197, + 61.7731, + 61.4081, + 51.8664, + 58.7435, + 60.5323, + 33.496333, + 52.1619, + 64.7157, + 52.1837, + 52.3318, + 19.772, + 37.203, + 34.213667, + 36.6996, + 63.5777, + 48.699167, + 42.6238, + 37.835167, + 67.5597, + 19.399333 + ], + "marker": { + "color": [ + 2.3, + 1.7, + 1.6, + 1.42, + 4.2, + 1.6, + 4.6, + 2.4, + 1.39, + 1.11, + 1.5, + 2, + 1.5, + 1.4, + 1.3, + 1.8, + 1.9, + 1.2, + 2, + 4.1, + 1.38, + 1.4, + 1.34, + 1, + 1.4, + 2.55, + 1.4, + 1.7, + 1.04, + 1.3, + 1.3, + 4.6, + 1.6, + 2.64, + 1.4, + 1.2, + 4.3, + 1.91, + 1.7, + 2.5, + 1.6, + 1.5, + 1.6, + 1.3, + 2.3, + 4.2, + 4.3, + 1.21, + 1.95, + 1.02, + 1.9, + 4.9, + 2.1, + 3.09, + 1.07, + 1.17, + 1.9, + 1.6, + 1.98, + 1.5, + 1.39, + 2.66, + 1.9, + 2.1, + 4.1, + 1.3, + 1.5, + 1.4, + 1.22, + 5.1, + 2.1, + 1.8, + 4.9, + 2.2, + 1, + 1.72, + 1.8, + 1, + 1.03, + 1.19, + 1, + 1.89, + 4.5, + 2.4, + 1.77, + 1.4, + 1.8, + 1.77, + 1.46, + 4.7, + 1.48, + 1.08, + 1.46, + 2.12, + 2.3, + 1.1, + 1.27, + 4.9, + 1.94, + 5, + 1.46, + 1.7, + 1.6, + 1.7, + 2.1, + 1.56, + 1.22, + 1.81, + 1.76, + 5.3, + 1.16, + 1.1, + 1.4, + 4.4, + 4.2, + 2, + 4.3, + 1.3, + 1.45, + 1.37, + 1, + 1.47, + 1.23, + 4.5, + 2.6, + 1.41, + 1.19, + 2.4, + 1, + 1, + 1.8, + 1.24, + 1.5, + 1.8, + 2.4, + 2.6, + 1.03, + 1.08, + 1.19, + 1.65, + 1.66, + 1.22, + 2, + 4.7, + 2.18, + 1.24, + 4.4, + 1.28, + 5.5, + 1.8, + 1.9, + 4.6, + 1.25, + 2.1, + 2.33, + 1.61, + 1.04, + 1.6, + 1.17, + 0.95, + 1.2, + 2.8, + 5.4, + 1.7, + 2.6, + 1.6, + 1.18, + 1.1, + 1.4, + 2, + 5.1, + 2, + 2.4, + 1.69, + 0.98, + 1.14, + 1.27, + 1.6, + 1.31, + 1.29, + 1.25, + 2, + 1.05, + 5.2, + 1.22, + 1.4, + 1.6, + 1.18, + 3, + 3.2, + 1.78, + 1.67, + 1.9, + 4.4, + 1.6, + 2.94, + 1.6, + 0.99, + 6, + 1.43, + 3.1, + 1.86, + 4.7, + 1.3, + 3.3, + 1.9, + 1.08, + 2.7, + 1.79, + 1.13, + 4.3, + 1.47, + 1.1, + 1.75, + 1.08, + 1.03, + 4.6, + 1.06, + 1.56, + 1.62, + 1.33, + 1.61, + 1.32, + 1.06, + 1.41, + 4.8, + 1.5, + 1.26, + 2.1, + 1, + 2.97, + 1.6, + 1.89, + 1.53, + 4.8, + 4.6, + 1.12, + 0.98, + 1.5, + 1.16, + 1.6, + 1.38, + 1, + 1.92, + 4, + 1.12, + 2.81, + 1.36, + 0.99, + 1.4, + 1.8, + 1.65, + 2.14, + 1.5, + 4.6, + 2.5, + 1.8, + 1.66, + 2.6, + 1.17, + 2.3, + 1.4, + 1.9, + 2.27, + 0.97, + 1.7, + 1, + 1.45, + 1.6, + 2.5, + 1.8, + 1.7, + 1.63, + 3.14, + 1.02, + 1.7, + 1.9, + 1.29, + 1.31, + 1.41, + 1.5, + 2.03, + 1.6, + 1.48, + 1.44, + 2.4, + 1, + 1.87, + 1.58, + 2.5, + 1.5, + 1.3, + 2.09, + 1.71, + 0.99, + 1.2, + 4.3, + 1.8, + 1.28, + 1.8, + 1.18, + 1.25, + 1.17, + 1.26, + 2.22, + 1.11, + 2.55, + 1.23, + 1.3, + 1.15, + 1.9, + 1.66, + 1.4, + 1.16, + 2.6, + 2.64, + 5, + 1.25, + 1, + 4.7, + 1.3, + 2.63, + 2, + 4.5, + 1.27, + 1.58, + 1.9, + 1.73, + 2.2, + 5.4, + 2.52, + 1.8, + 1.38, + 1.21, + 1.23, + 1.99, + 1.34, + 1.28, + 2.09, + 0.96, + 1.35, + 2.06, + 1.49, + 1.16, + 1.81, + 0.95, + 1.25, + 1.9, + 1, + 1.99, + 1.69, + 1.22, + 1.33, + 2.2, + 2, + 2.37, + 2.61, + 1.8, + 1.1, + 1.6, + 2.38, + 1.08, + 1.65, + 1.51, + 1.12, + 1.34, + 1.2, + 1.16, + 1.21, + 1.35, + 4.3, + 2.12, + 1.7, + 1.2, + 2.6, + 2.3, + 1.21, + 1.37, + 2.6, + 3.4, + 1.34, + 1.81, + 2, + 1.11, + 1.2, + 1.13, + 1.06, + 0.95, + 2.4, + 1.2, + 2.1, + 4.5, + 1.02, + 1.8, + 2.1, + 3.5, + 1.6, + 0.95, + 2.43, + 1.11, + 2.17, + 2.03, + 1.23, + 1.23, + 1.02, + 1.39, + 4.2, + 1.09, + 1.4, + 2.13, + 3.2, + 1.42, + 2.34, + 1.43, + 1.23, + 2.3, + 1.9, + 1.4, + 1.34, + 4.1, + 2.31, + 2, + 1.44, + 0.97, + 0.98, + 1.42, + 2.01, + 1.54, + 1.5, + 2.19, + 1.5, + 1.6, + 4.8, + 4.3, + 2, + 1.17, + 1.13, + 1.26, + 1.44, + 0.95, + 1.6, + 1.1, + 2.02, + 1.7, + 1.83, + 0.95, + 1, + 1.5, + 1.57, + 2.1, + 1.38, + 2.71, + 1.4, + 4.4, + 2, + 1.7, + 2.9, + 1.1, + 4.3, + 1.04, + 1.21, + 1.4, + 1.7, + 1.2, + 1.97, + 1.3, + 2.6, + 1.42, + 2, + 1.7, + 1.09, + 1.17, + 1.12, + 2.09, + 0.97, + 2.46, + 1.17, + 1.65, + 1.6, + 1.04, + 1.11, + 1.5, + 1, + 4.8, + 1.15, + 0.99, + 1.13, + 2.1, + 1.93, + 2.1, + 1.1, + 2.54, + 1.48, + 2, + 1.12, + 4.7, + 1.47, + 1.84, + 1.4, + 2, + 2.06, + 1.7, + 1.6, + 0.97, + 1.15, + 5, + 1.89, + 1.09, + 5.2, + 1.8, + 1.7, + 1.42, + 1.9, + 1.01, + 1.6, + 1.65, + 2.3, + 1.7, + 1.6, + 1.47, + 0.98, + 0.96, + 4.2, + 1.57, + 2, + 1.3, + 1.86, + 1.89, + 1, + 1.12, + 1.06, + 1.2, + 1.5, + 1.23, + 1, + 2, + 1.6, + 4.2, + 1.69, + 1.07, + 1.7, + 1.7, + 1.71, + 1.76, + 2.6, + 1.6, + 1.2, + 2.3, + 1.11, + 2.05, + 1.59, + 1.19, + 5.7, + 2.49, + 1.3, + 2.2, + 4.5, + 1.07, + 1.3, + 1.5, + 1.18, + 1.69, + 1.6, + 1.4, + 1.1, + 1.43, + 1.19, + 1.26, + 5.2, + 1.71, + 1.8, + 1.14, + 1.4, + 2.65, + 1.04, + 1.12, + 2.16, + 1.12, + 1.6, + 1.9, + 2.07, + 2, + 4.6, + 1.9, + 1.2, + 1.41, + 1.1, + 1.8, + 0.98, + 1.69, + 1.3, + 1.05, + 2.58, + 1.4, + 1.6, + 1.7, + 2.7, + 1.33, + 1.6, + 2.7, + 1.7, + 1.3, + 1.6, + 2.1, + 1.4, + 1.7, + 2.87, + 4.6, + 1.04, + 1.8, + 2.6, + 4.5, + 1.3, + 1.9, + 1.3, + 0.99, + 2.4, + 2.5, + 1.8, + 1.25, + 1.5, + 1.19, + 1.6, + 1.07, + 1.7, + 2.51, + 1.59, + 1.23, + 1.47, + 1.09, + 2.7, + 1.14, + 1.4, + 1.6, + 1.2, + 2.1, + 1.3, + 2.6, + 1.2, + 1.3, + 1.4, + 1.28, + 2, + 1.18, + 4.2, + 1.8, + 1.69, + 1.8, + 1.22, + 1.46, + 1.4, + 1.2, + 1.41, + 4.1, + 1.7, + 1.07, + 1.1, + 1.4, + 2.1, + 1, + 1.24, + 1.25, + 1.9, + 2.3, + 1.5, + 1.2, + 1.4, + 1.19, + 4.9, + 1.01, + 1.31, + 2.4, + 1.4, + 1.1, + 1.5, + 1.2, + 2.7, + 1.2, + 1.6, + 1.7, + 1.1, + 2.7, + 1.2, + 1, + 2.2, + 1.03, + 1.23, + 1.05, + 1.4, + 1.6, + 1.6, + 1.2, + 2.1, + 1.1, + 1.16, + 1.36, + 1.47, + 2.8, + 1.99, + 4.7, + 1.72, + 2.4, + 1.11, + 1, + 1.77, + 1.36, + 4.4, + 1.27, + 5.3, + 1.65, + 1.09, + 1.08, + 1.46, + 2.36, + 0.97, + 0.96, + 2.8, + 2.25, + 1.4, + 1.85, + 1.08, + 1.49, + 0.99, + 1.78, + 1.41, + 1.21, + 1.66, + 4.6, + 1.46, + 1.26, + 0.96, + 4.6, + 1.14, + 2.2, + 1, + 0.98, + 1.57, + 1.25, + 1.36, + 1.03, + 1.21, + 1.88, + 1.69, + 3.02, + 1.17, + 1.08, + 1.4, + 1.7, + 2.05, + 1.41, + 2.19, + 2.7, + 1.19, + 4.7, + 1.04, + 1.1, + 1.18, + 4.7, + 1.08, + 1.16, + 1.34, + 1.19, + 2.4, + 2.6, + 1.69, + 1.5, + 1.5, + 4.3, + 4.3, + 2.2, + 1.6, + 1.3, + 1.4, + 1.44, + 2.13, + 1.48, + 4.9, + 1.12, + 1.75, + 1.87, + 1.7, + 1.08, + 1.1, + 1.71, + 1.5, + 2.37, + 3.08, + 1.01, + 4.3, + 0.97, + 1.45, + 1.4, + 1.44, + 1.13, + 1.28, + 2.3, + 1.7, + 1.94, + 1.1, + 1.98, + 1.9, + 1.1, + 1.32, + 0.97, + 1.4, + 1.58, + 3, + 1.58, + 4.2, + 1.49, + 2.39, + 4.7, + 2.46, + 3.25, + 1.51, + 1, + 4.8, + 1.4, + 1.91, + 2.2, + 1.27, + 2.31, + 1.41, + 1, + 1.08, + 1.42, + 1.32, + 2.26, + 2.5, + 3.4, + 2.7, + 1.27, + 1.67, + 1.01, + 1.1, + 1.18, + 1.56, + 1.3, + 1.4, + 2.6, + 1.8, + 1.52, + 1.35, + 1.43, + 1.71, + 1.5, + 1.6, + 1.3, + 2.5, + 2.66, + 2, + 2, + 1.3, + 1.6, + 1.02, + 1.05, + 1.1, + 1.8, + 2, + 1.5, + 1.52, + 2.36, + 1.1, + 1.4, + 1.2, + 1.82, + 1.9, + 1.2, + 1.06, + 2.1, + 1.5, + 2.7, + 2, + 2.5, + 1.2, + 1.3, + 1.6, + 1.08, + 1.72, + 3.3, + 4.4, + 4.7, + 1.6, + 1.1, + 1.16, + 1.2, + 1.4, + 1.01, + 1.1, + 1.1, + 2.13, + 1.4, + 1.3, + 1.4, + 4.9, + 1.08, + 4.8, + 2.39, + 1.2, + 1, + 1.3, + 1.6, + 2, + 4.2, + 1.08, + 0.97, + 1.02, + 4.5, + 1.48, + 4.5, + 1.68, + 1.7, + 5, + 1.2, + 2.06, + 1.07, + 1.73, + 1, + 1, + 1.4, + 1.1, + 4.6, + 1.3, + 1.4, + 1.9, + 0.97, + 1.01, + 2, + 1.1, + 2, + 1.5, + 1.31, + 1.22, + 2, + 1.7, + 1.6, + 1.04, + 1.2, + 1.5, + 1.28, + 2.8, + 2.82, + 1.4, + 1.69, + 1, + 1.1, + 1.06, + 5.1, + 1.27, + 1.3, + 1.3, + 1.37, + 4, + 1.6, + 1.1, + 4.4, + 1.75, + 1.37, + 2.5, + 1.1, + 4.1, + 1.5, + 1.2, + 1.59, + 1.44, + 1.72, + 1.1, + 2.6, + 3.2, + 2.7, + 1.42, + 1.71, + 1.81, + 1.3, + 2.13, + 4.2, + 4.1, + 2, + 1.9, + 1, + 1.04, + 1.1, + 1.59, + 2.95, + 1, + 1.45, + 1.11, + 1.44, + 2, + 1.6, + 1.15, + 2.05, + 1.4, + 1.16, + 1.53, + 1.8, + 2, + 1.3, + 1.22, + 5.1, + 1.75, + 4.9, + 2.5, + 1, + 1.3, + 1, + 1.79, + 1.8, + 1.5, + 2.1, + 1.5, + 2.7, + 4.5, + 1.9, + 1.2, + 4.3, + 2.02, + 2.38, + 3.2, + 2.8, + 2.7, + 1.2, + 1.87, + 5.5, + 1.6, + 1.4, + 1, + 1, + 1, + 1, + 1.1, + 1.1, + 2.43, + 1.2, + 1.4, + 1.1, + 2.3, + 4.2, + 1.1, + 4.7, + 1.82, + 2.5, + 0.96, + 1, + 4.1, + 3.5, + 3.49, + 4.7, + 1.38, + 1.77, + 1.1, + 1.5, + 1.2, + 3, + 1.9, + 1.87, + 2.5, + 1.4, + 1.1, + 4.1, + 1.28, + 2, + 1.1, + 1.52, + 4.8, + 1.25, + 1.1, + 1.1, + 1.6, + 4.9, + 1.84, + 1.19, + 2.9, + 1.1, + 1.16, + 2.6, + 1, + 1.27, + 2.28, + 1.6, + 1.53, + 1.34, + 1.46, + 1.05, + 2.29, + 1.1, + 1.2, + 1.1, + 1.53, + 1.8, + 2, + 1.28, + 1.2, + 1.41, + 2, + 1.2, + 2.8, + 2.59, + 1.6, + 1.6, + 1.55, + 0.98, + 1.2, + 1.4, + 1.58, + 1.5, + 1.97, + 1.5, + 5.2, + 1.1, + 1.22, + 1.6, + 4.4, + 3.1, + 1.1, + 2.24, + 2, + 1.1, + 1.37, + 2.5, + 1.48, + 1.54, + 2.5, + 1.08, + 1.52, + 2.3, + 1.2, + 1.43, + 1.08, + 1.7, + 1.5, + 1.2, + 1.2, + 1.4, + 1.49, + 1.8, + 1.45, + 1.71, + 5, + 4, + 5.5, + 1.62, + 1.67, + 1.02, + 2.7, + 1.8, + 2.3, + 4.5, + 1.59, + 1.2, + 1.55, + 2.1, + 2, + 4.2, + 1.9, + 1.11, + 1.2, + 2.6, + 1.9, + 4.5, + 1.2, + 1.78, + 1.6, + 1, + 1, + 2.7, + 1.3, + 1.8, + 4.2, + 1.59, + 1.53, + 1.5, + 1.2, + 4.4, + 1.18, + 1.2, + 1.7, + 1.92, + 2.7, + 2.71, + 1.6, + 1.3, + 1.6, + 4.7, + 2, + 1.2, + 1.7, + 1.14, + 4.3, + 1.27, + 1.4, + 1.68, + 4.2, + 4.2, + 1.71, + 1, + 0.97, + 2.2, + 1.8, + 2.26, + 4.9, + 3, + 2.5, + 1.1, + 1.38, + 1.79, + 2.1, + 2.87, + 2.5, + 4.4, + 1.92, + 1.05, + 4.7, + 1.02, + 1.68, + 1.6, + 1.05, + 1.3, + 1.8, + 1.8, + 4.7, + 5.3, + 1.13, + 1.22, + 1.1, + 1.21, + 1.03, + 1.27, + 1.25, + 1.14, + 2.6, + 1.43, + 2.2, + 4.4, + 1.2, + 0.97, + 1.3, + 1.4, + 1.8, + 1.19, + 2.7, + 1.6, + 1.37, + 1.3, + 4.2, + 1.4, + 2.8, + 2.9, + 1.08, + 1.38, + 2.1, + 2.18, + 1.2, + 4.6, + 1.66, + 5, + 1.9, + 1.5, + 2.3, + 3, + 1.4, + 1.6, + 4.4, + 1.45, + 1.16, + 1.31, + 1.5, + 1.58, + 1.3, + 1.7, + 1.7, + 2.5, + 2.5, + 1.65, + 1.3, + 2, + 2.08, + 1.3, + 2.51, + 5, + 1.74, + 2.76, + 1.5, + 1.79, + 1.06, + 1.82, + 1.8, + 2.8, + 1.62, + 1.71, + 1.68, + 1.51, + 1.2, + 1.5, + 1.01, + 2.78, + 1.9, + 4.5, + 1.4, + 3.2, + 1.81, + 2.8, + 2.8, + 1.09, + 1.41, + 1.31, + 1.3, + 4, + 2.27, + 1.72, + 1.5, + 1.23, + 1.52, + 1.18, + 4.7, + 1.2, + 1.53, + 1.15, + 1.25, + 1.9, + 1.8, + 1.3, + 4.4, + 1.77, + 1.8, + 1.1, + 1.25, + 1, + 1.18, + 4.2, + 1.4, + 2.46, + 1.8, + 1.15, + 1.25, + 1.07, + 1.94, + 4.2, + 0.96, + 1.2, + 1.14, + 1.25, + 2.27, + 1.4, + 1, + 1.28, + 2.6, + 1, + 1.28, + 1.1, + 2.23, + 3.34, + 1.9, + 1.16, + 1.1, + 1.19, + 1.74, + 4.5, + 1.7, + 1.14, + 1.46, + 2, + 1.2, + 2.3, + 5, + 1.62, + 3, + 2.26, + 1.03, + 1.1, + 5.6, + 2, + 1.05, + 1.64, + 1.98, + 1.12, + 1.6, + 1.8, + 1.9, + 0.95, + 1, + 4.4, + 2.07, + 2.39, + 1.12, + 1, + 0.97, + 1.05, + 2.4, + 1.16, + 2.6, + 1.32, + 2.53, + 4.5, + 4.9, + 1, + 1.6, + 1.15, + 2.61, + 1, + 1.9, + 1.03, + 1.63, + 2.24, + 1.51, + 1.03, + 1.62, + 1.3, + 1.7, + 1.1, + 1.6, + 1.4, + 4.9, + 1.5, + 1.2, + 1.9, + 1.93, + 1.13, + 0.96, + 1.6, + 4.4, + 1.1, + 5.4, + 4.8, + 4.7, + 1.7, + 2.5, + 1.1, + 5.1, + 4.3, + 2.32, + 1.35, + 1.84, + 1.37, + 1.9, + 2, + 2, + 1.1, + 1.35, + 1.1, + 1.2, + 3.3, + 1.3, + 4, + 2.6, + 2.8, + 2, + 1.7, + 1.79, + 1, + 1.37, + 2.3, + 2.4, + 4.7, + 1.3, + 1.8, + 1.94, + 1.2, + 1.36, + 1.6, + 1.5, + 1.19, + 1.4, + 4.9, + 1.41, + 2.9, + 1.11, + 1.3, + 1.2, + 2.1, + 1.9, + 1.24, + 1.6, + 2.4, + 1.6, + 1.21, + 1.95, + 1.2, + 1.44, + 1.5, + 1.17, + 4.6, + 4.9, + 1.2, + 1.37, + 1.6, + 1.4, + 1.3, + 2.7, + 1.38, + 1.3, + 1.2, + 2, + 2, + 1.97, + 1.5, + 1.53, + 1.6, + 1.3, + 2.4, + 1.6, + 2.3, + 1.4, + 1.03, + 1.68, + 3.21, + 2.9, + 1.1, + 1.09, + 1.52, + 2.1, + 1.2, + 1.6, + 1.4, + 2.4, + 1.4, + 1, + 1.5, + 1.45, + 1.41, + 1.1, + 1.23, + 1.3, + 2.05, + 1, + 1.3, + 1.2, + 1.4, + 1.1, + 1.36, + 1.2, + 2.75, + 2.2, + 5.3, + 1.2, + 1.92, + 1.5, + 1.4, + 3.1, + 1.5, + 1.17, + 1.2, + 1.12, + 1.49, + 1.1, + 1.31, + 1.45, + 1.63, + 4.4, + 2.7, + 1.18, + 1.5, + 2.3, + 2.6, + 1.4, + 2, + 1.62, + 1.19, + 4.7, + 5.3, + 2.3, + 1.18, + 2.19, + 1.8, + 1.6, + 1.7, + 1.41, + 2.4, + 1.6, + 1.4, + 1.5, + 1.59, + 1.16, + 1.17, + 1.8, + 1.5, + 4.8, + 1.8, + 2, + 1.1, + 1.14, + 1.6, + 0.96, + 1, + 1.26, + 1.56, + 1.2, + 2.5, + 1.1, + 4.2, + 1.4, + 3, + 1.08, + 1, + 2.37, + 1.11, + 2.2, + 1.3, + 2.8, + 3.2, + 4.9, + 1.12, + 1.78, + 0.96, + 1.94, + 1.95, + 1, + 1.54, + 1.4, + 1.6, + 3.5, + 3.4, + 1.5, + 2.4, + 1.44, + 1.2, + 2.9, + 1, + 1.66, + 1.3, + 1.32, + 1, + 1.47, + 1.15, + 1.3, + 1.57, + 1.6, + 1.3, + 1.12, + 1.9, + 4.2, + 1.16, + 1.1, + 1, + 1.3, + 1.22, + 1.27, + 1.6, + 1.61, + 1.6, + 1, + 1.7, + 1.14, + 1, + 1.36, + 4.5, + 1.9, + 1.15, + 1.22, + 4.7, + 1.68, + 1.1, + 1.3, + 4.8, + 4.4, + 1.24, + 1.99, + 1.9, + 1.73, + 1.02, + 1.62, + 4.5, + 1.3, + 1.46, + 1.4, + 1.2, + 1.5, + 3, + 1.3, + 0.98, + 1.1, + 1.3, + 1.59, + 1.55, + 1.32, + 1.78, + 1.34, + 1.67, + 1.26, + 2.5, + 1.8, + 1.04, + 1.14, + 1.8, + 1.43, + 1.3, + 1.3, + 1.8, + 1.36, + 1.4, + 3.9, + 1.3, + 2.2, + 1.9, + 1.1, + 2.4, + 2.6, + 1.08, + 1.03, + 1.6, + 1.85, + 4.1, + 4.1, + 1.23, + 1.6, + 1.8, + 1.11, + 1.2, + 1.73, + 0.95, + 1.8, + 1.5, + 1.06, + 2.4, + 1.4, + 1.78, + 2, + 2, + 2.9, + 1.28, + 1, + 1.5, + 1.13, + 1.01, + 1.77, + 1.35, + 2.7, + 2.5, + 1.2, + 2.6, + 1.2, + 1.95, + 1.4, + 2.1, + 1.4, + 1.9, + 1.3, + 1.07, + 1.33, + 2.7, + 1.29, + 1.52, + 1.5, + 1.33, + 1.5, + 1.1, + 1.7, + 1.4, + 1.7, + 1.3, + 1.49, + 1.3, + 3, + 1.06, + 1.06, + 1.65, + 1.21, + 4.2, + 2, + 1.72, + 1.37, + 1.16, + 4.6, + 1, + 2, + 1.29, + 4.3, + 1.1, + 1.9, + 1.79, + 1.07, + 1.7, + 1.4, + 2.4, + 1.3, + 1.4, + 2.15, + 1, + 2, + 1, + 1.72, + 2.2, + 1.15, + 2.4, + 2.14, + 1.58, + 1.5, + 2.36, + 1.19, + 1.3, + 1.48, + 1.09, + 1.2, + 1.7, + 1.35, + 1.28, + 2.62, + 1.11, + 2.03, + 5.3, + 1.2, + 5, + 2.7, + 1.02, + 1.8, + 1.9, + 2.23, + 1.11, + 1.57, + 2, + 1.76, + 1.4, + 1.2, + 2.7, + 1.6, + 1.8, + 2, + 1.2, + 1.8, + 4.7, + 1.3, + 4.7, + 2.4, + 2.25, + 1.82, + 1.9, + 1.6, + 4.3, + 1.6, + 1.9, + 4.8, + 1, + 1.21, + 1, + 0.98, + 1.67, + 4.2, + 1.9, + 1.23, + 1, + 1, + 1.12, + 1.7, + 1.1, + 4.8, + 2.77, + 1.75, + 1.59, + 4.2, + 2.8, + 1.81, + 2.97, + 1.6, + 1.6, + 5.4, + 1.3, + 0.95, + 1.1, + 1.08, + 1.8, + 1.9, + 1.35, + 1.7, + 1.89, + 5.8, + 1.3, + 2.6, + 2.1, + 1.6, + 1.4, + 1.19, + 1.78, + 1.14, + 1.51, + 1.37, + 1.46, + 1.05, + 1, + 1.2, + 5.4, + 0.98, + 4.3, + 1.1, + 1.17, + 1.7, + 1.39, + 1.2, + 1.66, + 1.82, + 1.66, + 3.25, + 1.4, + 1.2, + 0.98, + 2.2, + 1.11, + 1.5, + 1.41, + 1.2, + 2, + 1.6, + 1.8, + 2.2, + 1.2, + 1.4, + 1.6, + 1.1, + 2, + 1.38, + 1.03, + 1.49, + 1.46, + 1.48, + 1.82, + 2.13, + 2.6, + 2.73, + 1.89, + 1.3, + 1.01, + 1.8, + 1.5, + 1.15, + 2.7, + 1.5, + 1.6, + 1.32, + 2.3, + 4.2, + 1, + 2.34, + 1.64, + 2.4, + 2.34, + 1.31, + 1.3, + 1.5, + 1.4, + 1.9, + 2.3, + 4.8, + 1.7, + 1.37, + 1.6, + 1.75, + 1.22, + 2.6, + 1.4, + 1.33, + 4.6, + 1.2, + 1.9, + 1.69, + 1.11, + 1.6, + 1, + 1.6, + 1.49, + 1.4, + 1.7, + 1.35, + 1.28, + 1.7, + 1.7, + 1.7, + 1.2, + 3.4, + 1.38, + 4.4, + 1.35, + 4, + 2.5, + 4.9, + 1.7, + 1.1, + 3, + 1.11, + 1.3, + 1.7, + 1.5, + 1.3, + 1.03, + 1.42, + 2, + 1.6, + 1.1, + 2.87, + 2.2, + 1.7, + 1.17, + 4.9, + 5, + 1.03, + 4.6, + 1.5, + 0.97, + 0.96, + 1.14, + 1.46, + 1.16, + 1.5, + 2.7, + 6.4, + 1.75, + 1.4, + 1.3, + 2.3, + 1.73, + 1.13, + 1.7, + 1.5, + 1.3, + 1.38, + 2.1, + 1.67, + 1.36, + 1.8, + 1.2, + 1.2, + 1.1, + 1.8, + 1.1, + 2, + 5.1, + 1, + 1.1, + 4.1, + 1, + 3.9, + 1.5, + 1.7, + 1.94, + 1.1, + 4.4, + 4.5, + 2, + 2.37, + 1.13, + 1.63, + 1, + 1.86, + 1.13, + 1.58, + 4.3, + 1.42, + 1.13, + 1.71, + 1.6, + 1.5, + 2.5, + 1, + 5, + 1.72, + 4.3, + 1.3, + 1.52, + 1.11, + 1.15, + 1.32, + 1.2, + 1.1, + 1.01, + 1.5, + 1.25, + 3.1, + 5.9, + 1.72, + 1.07, + 2.6, + 4.2, + 1.44, + 1.4, + 1.1, + 1.1, + 4.3, + 1.2, + 1.41, + 2.2, + 1.04, + 2.06, + 2, + 1.27, + 1.17, + 1.29, + 2.1, + 1.04, + 1.1, + 2.5, + 1.4, + 1.62, + 1.5, + 1.05, + 1.42, + 5.1, + 1.32, + 1, + 1.36, + 2, + 1.99, + 3, + 2.11, + 1.5, + 1.51, + 1.6, + 1.48, + 1.55, + 1.12, + 1.04, + 2.41, + 1.3, + 1.12, + 1.7, + 1.1, + 1.4, + 1.3, + 2, + 4.6, + 1.8, + 0.98, + 1.21, + 1.1, + 4.6, + 1.19, + 4.4, + 1.03, + 2.7, + 4.3, + 1.78, + 0.96, + 4.7, + 1.9, + 2.2, + 1.6, + 1.5, + 1.8, + 1.5, + 1.04, + 2, + 1.32, + 4.6, + 1.86, + 1.46, + 1, + 4.2, + 1.46, + 4.2, + 4.6, + 1.8, + 2.06, + 0.99, + 1, + 2.36, + 1.81, + 1.42, + 1.8, + 1.06, + 0.95, + 1.23, + 1.04, + 4.9, + 1.4, + 1.3, + 0.99, + 5, + 1.2, + 2.7, + 2.7, + 1.34, + 2.91, + 1.5, + 1.11, + 1.9, + 1.4, + 1.1, + 1, + 2.5, + 1.3, + 1.15, + 3.5, + 1.01, + 1.2, + 1.4, + 1.6, + 2.17, + 1.1, + 4.7, + 1.79, + 2.04, + 4.4, + 0.95, + 1.27, + 2.1, + 4.4, + 4.5, + 1.64, + 4.6, + 1.01, + 1.6, + 1.6, + 1.23, + 5, + 1.7, + 1.02, + 1.7, + 1, + 1.8, + 2.32, + 1.9, + 1.4, + 1.2, + 1.4, + 4.2, + 0.97, + 2.07, + 1.3, + 1.1, + 4.3, + 1.5, + 1.1, + 1.2, + 1.1, + 1.09, + 1.1, + 1.41, + 2.4, + 1.71, + 1, + 1.15, + 1.3, + 1.3, + 2.11, + 1.7, + 1.5, + 1.3, + 1.8, + 2.2, + 0.97, + 1.77, + 4.2, + 1.53, + 1.17, + 1.05, + 1.8, + 1.9, + 1.6, + 1.4, + 4.6, + 4.7, + 2.04, + 1.4, + 1.5, + 1.1, + 1.7, + 1.51, + 2.2, + 2.2, + 1.06, + 1.6, + 1.1, + 1.11, + 1.11, + 1.6, + 2.5, + 2.4, + 1.82, + 1.93, + 2.3, + 4.1, + 1.4, + 3.5, + 1.61, + 1.46, + 1.94, + 2.03, + 5, + 1.6, + 1.02, + 1.57, + 2.3, + 1.24, + 0.95, + 1.08, + 1.6, + 1.6, + 2.26, + 1.11, + 1.3, + 2.1, + 1.6, + 1.9, + 1.7, + 2.1, + 1.51, + 1.13, + 1.5, + 1.23, + 2.3, + 1.1, + 1.5, + 1.8, + 1.54, + 1.3, + 2.14, + 4.3, + 2.39, + 1.18, + 4.9, + 0.97, + 1.59, + 1.3, + 1.5, + 1, + 1.3, + 2.1, + 1.2, + 1.72, + 2.26, + 2.2, + 1.35, + 0.99, + 1.55, + 1.31, + 1.02, + 4.2, + 1.1, + 2.23, + 2.47, + 1.6, + 1.9, + 1.98, + 1.01, + 1, + 1.6, + 1.9, + 1.4, + 1.5, + 4.5, + 1.01, + 2.71, + 4, + 1.3, + 4.5, + 4.3, + 4.3, + 1.94, + 1.9, + 2.2, + 4.4, + 1.4, + 1.7, + 1.39, + 1.47, + 4, + 1, + 3.1, + 1.29, + 4.5, + 1.1, + 1.4, + 2.09, + 5.8, + 1.8, + 1.2, + 2.2, + 1.32, + 4.3, + 1.5, + 1.12, + 1.4, + 4, + 1.5, + 1.7, + 1.2, + 2.47, + 1.5, + 1.06, + 2.08, + 1.4, + 1.11, + 2.6, + 4, + 1.7, + 1.8, + 1.2, + 1.5, + 4.3, + 1.9, + 1, + 1.26, + 1.79, + 2.12, + 1.6, + 4.6, + 1.02, + 1.71, + 1.3, + 0.99, + 3.3, + 1.1, + 1.76, + 1.19, + 1.19, + 1.1, + 1.9, + 4.6, + 1.8, + 3.2, + 1.1, + 1.86, + 4.4, + 2.2, + 2.54, + 2.5, + 1.45, + 2.65, + 3.34, + 1.66, + 1.4, + 1.76, + 1.99, + 4.1, + 2.3, + 1.2, + 1.17, + 1.28, + 1.1, + 4.6, + 1.8, + 1.07, + 2.4, + 2.48, + 4.2, + 1, + 1.48, + 1.19, + 2.1, + 3.8, + 2.17, + 1.32, + 5, + 2, + 1, + 1.4, + 2, + 1.9, + 4.4, + 1.44, + 1.02, + 1.07, + 1.8, + 1.5, + 1.3, + 1.6, + 1.03, + 1.4, + 1.35, + 4.5, + 1, + 2.12, + 1.23, + 4.6, + 1.58, + 3.1, + 4.9, + 4.9, + 1, + 5.7, + 2.8, + 1.26, + 1.2, + 1.38, + 2.2, + 1, + 1.2, + 2.51, + 2.07, + 1.83, + 2.8, + 1, + 1.74, + 1.2, + 1.2, + 2.6, + 1.1, + 2.28, + 4.5, + 1.23, + 1.14, + 1.68, + 1.4, + 2.7, + 2.94, + 4.4, + 1.1, + 2.9, + 1.7, + 5, + 1.14, + 2.49, + 1.19, + 1.09, + 1.35, + 1.85, + 4.4, + 4.5, + 1.44, + 2.68, + 1.11, + 2.7, + 4.4, + 1.31, + 1.56, + 2.6, + 2, + 3.1, + 4.3, + 1.9, + 1.1, + 1.24, + 1.58, + 3.8, + 4.2, + 1.15, + 1, + 1.59, + 4.9, + 4.2, + 1.06, + 2.34, + 4.4, + 1.1, + 0.96, + 2.5, + 1.78, + 1.1, + 5.1, + 4.8, + 1.2, + 1.6, + 4.3, + 1.35, + 6.1, + 1.4, + 1.7, + 1.5, + 4.6, + 2.6, + 2.3, + 1.05, + 4.6, + 1.2, + 1.3, + 1.79, + 3.4, + 1.41, + 1.3, + 1.7, + 1.5, + 5.8, + 2, + 1.5, + 1.09, + 1.6, + 2.2, + 1.9, + 1.5, + 1.12, + 4.5, + 3.32, + 1.35, + 1.14, + 1.1, + 3.5, + 4.7, + 1, + 2, + 1.31, + 1.63, + 1.2, + 3.6, + 1.9, + 1.48, + 2.41, + 4.1, + 1.32, + 4.1, + 1.27, + 1.5, + 4.4, + 1.19, + 4.2, + 2, + 4.7, + 1.1, + 1.77, + 2.11, + 4.5, + 1.25, + 1.8, + 1.3, + 1.58, + 1.5, + 4.5, + 4.4, + 1.88, + 1.17, + 0.95, + 1.9, + 2.3, + 1.3, + 1, + 0.95, + 1.4, + 1.2, + 1.1, + 1.78, + 1.19, + 2.9, + 4.2, + 3.28, + 2.4, + 1.3, + 1, + 2.5, + 2.6, + 2.2, + 2.6, + 1.3, + 2.05, + 1.4, + 2.6, + 1.16, + 1.2, + 2.19, + 4.3, + 4.4, + 1.3, + 1.8, + 1.37, + 4.6, + 1, + 2.1, + 1.1, + 5.3, + 1.1, + 1.03, + 1.4, + 1.4, + 4.2, + 4.9, + 1.22, + 1.8, + 3.91, + 2.5, + 1.8, + 4.8, + 0.96, + 1.88, + 1.12, + 4, + 2.1, + 1.02, + 1.46, + 1.8, + 1.12, + 2.87, + 1.89, + 1.1, + 1.9, + 1.1, + 4.3, + 2.3, + 1.7, + 0.96, + 2.4, + 2.5, + 1.9, + 1.4, + 2, + 1.43, + 3, + 1.1, + 1.8, + 0.97, + 5.7, + 1.7, + 1.34, + 1.1, + 1.35, + 1.91, + 1.9, + 1.62, + 1.6, + 1.22, + 4.5, + 1.19, + 1.64, + 1.88, + 2.2, + 1.68, + 1.55, + 1.2, + 1.63, + 1.7, + 1.6, + 1.6, + 1.9, + 1.26, + 2.3, + 2.15, + 1.9, + 1.1, + 1.48, + 1.7, + 1.13, + 3.4, + 1.1, + 3.01, + 1.4, + 2.14, + 1.7, + 1.03, + 1.01, + 1.6, + 0.95, + 1.11, + 1.32, + 1.04, + 3.06, + 1.72, + 1.36, + 1.5, + 1.93, + 1.6, + 1.65, + 2.05, + 2.6, + 1.7, + 2.1, + 1.4, + 1.3, + 4.3, + 1.3, + 1.7, + 4.5, + 1.3, + 2.05, + 1.6, + 1.3, + 1.07, + 1.6, + 1.03, + 1.7, + 4.3, + 1.9, + 1.4, + 4.4, + 4.5, + 1, + 2.3, + 1.59, + 2.4, + 1.74, + 1.4, + 1.74, + 1.33, + 1.5, + 1.8, + 2.2, + 1.19, + 1.9, + 1.2, + 1.05, + 1.05, + 1.1, + 1.45, + 1.9, + 1.1, + 1.4, + 2.6, + 1.43, + 1.39, + 1.1, + 1.52, + 1.6, + 1.6, + 2.09, + 1.4, + 1.3, + 1.3, + 4.5, + 1.6, + 2.03, + 1.9, + 2.21, + 3.5, + 1.45, + 1.49, + 1.2, + 1.9, + 1.79, + 1, + 1.71, + 4.4, + 1, + 2.9, + 1.5, + 2.5, + 1.88, + 2.4, + 1.34, + 1.2, + 1.17, + 1.8, + 5.5, + 4.5, + 1.12, + 1.3, + 1.1, + 2, + 2, + 4.7, + 0.97, + 4.2, + 1.98, + 1.64, + 1.12, + 2.9, + 1.2, + 1, + 2.8, + 1.04, + 1.6, + 1.7, + 2.1, + 1.78, + 1.29, + 2.5, + 1.34, + 1.73, + 1.92, + 2.09, + 1.1, + 4.2, + 4.6, + 1.82, + 2.86, + 1.7, + 4.6, + 1.4, + 2.6, + 2.8, + 1.07, + 1.19, + 1.4, + 1.31, + 1.13, + 4.4, + 2.4, + 1.7, + 2.7, + 3, + 1.61, + 1.6, + 2.1, + 1.72, + 1.5, + 4.3, + 1.29, + 1.5, + 1.2, + 1.4, + 4.2, + 1.85, + 1.45, + 2.12, + 1.26, + 1.87, + 2.02, + 1.21, + 1.88, + 1.76, + 1.1, + 1.85, + 1.81, + 1.83, + 1.4, + 2.6, + 1.1, + 1.75, + 1.7, + 1.53, + 1.9, + 2.5, + 1.24, + 4.8, + 1.18, + 1.7, + 2.8, + 1.54, + 4.5, + 0.97, + 2, + 2.1, + 1.6, + 1.59, + 4.5, + 2.8, + 2.8, + 2, + 0.97, + 1.32, + 3.4, + 1.52, + 1.22, + 2.2, + 1.56, + 5.2, + 1, + 1.29, + 1.65, + 1.7, + 4.1, + 1.65, + 2.74, + 1.24, + 1.42, + 1.5, + 1.5, + 1.4, + 4.4, + 2, + 1.65, + 1.08, + 1.64, + 1.93, + 1.05, + 2.6, + 1.4, + 1.8, + 1, + 3.1, + 1.2, + 2.2, + 1.5, + 4.5, + 2, + 1.3, + 1.3, + 1.58, + 1.5, + 1.2, + 1, + 1, + 1.49, + 1.09, + 1.43, + 1.81, + 1.2, + 1.2, + 1.47, + 1.64, + 4.8, + 1.4, + 1.76, + 1.8, + 1.87, + 1.4, + 1.16, + 2.4, + 3.9, + 3.2, + 1.31, + 1.2, + 1.81, + 1.2, + 3.2, + 1.1, + 1.8, + 1.4, + 1.6, + 3, + 1.8, + 1.6, + 1.01, + 1.8, + 1.2, + 1.19, + 2.23, + 1.82, + 2.5, + 1.44, + 4.8, + 1.08, + 1.44, + 1.8, + 1.35, + 1.4, + 1.9, + 2.4, + 1.6, + 0.98, + 2.49, + 1.3, + 1.4, + 1.2, + 1.3, + 1.8, + 1, + 1.16, + 1, + 1.1, + 1.2, + 2.2, + 1.5, + 1.1, + 1.4, + 1.33, + 1.41, + 2.3, + 1, + 1.6, + 2.63, + 1.4, + 1.2, + 2.06, + 1.05, + 3.1, + 1.1, + 1.1, + 1.4, + 1.72, + 2, + 4.5, + 1, + 1.22, + 2.27, + 3.1, + 1.9, + 2.7, + 5, + 1.3, + 1.3, + 5.7, + 1, + 1.5, + 2.34, + 4.4, + 2.26, + 4.7, + 1.8, + 5.2, + 5.9, + 1.3, + 1.33, + 1.5, + 1.6, + 1.5, + 1.05, + 1.19, + 1, + 1.3, + 2, + 2.31, + 1.4, + 1.1, + 1.45, + 1.4, + 6.4, + 2.51, + 1, + 2, + 2.5, + 1.2, + 1.79, + 1.5, + 1.15, + 1.3, + 1.27, + 2.2, + 1.7, + 2.71, + 1.69, + 1.44, + 2.1, + 1.2, + 1.5, + 3.65, + 3.18, + 1.4, + 6.1, + 1, + 5.3, + 4.4, + 1.2, + 0.95, + 4.9, + 2.4, + 4.6, + 1.14, + 4.4, + 4.1, + 2.1, + 1.5, + 5, + 1.44, + 2.2, + 5.3, + 2.76, + 2.13, + 2, + 1.8, + 1.37, + 1.47, + 2.38, + 1.06, + 2.21, + 1, + 1.1, + 5, + 1.05, + 2.7, + 1.25, + 1.3, + 1.62, + 1.9, + 1.08, + 1.65, + 1.97, + 2.38, + 1.3, + 1.1, + 1.89, + 2.7, + 1.58, + 1.1, + 1.74, + 1.6, + 4.7, + 1.07, + 1.89, + 2, + 1.5, + 1.3, + 1.2, + 1, + 1.05, + 1, + 1.76, + 1.1, + 3.7, + 1.1, + 2.13, + 4.9, + 1.6, + 1.1, + 1.46, + 2.2, + 1.43, + 1.6, + 1.21, + 1.04, + 2.8, + 2.56, + 2.6, + 1.4, + 1.53, + 1.5, + 1.81, + 1.12, + 1.76, + 1.67, + 3, + 1.36, + 1.6, + 2.2, + 1.93, + 1.1, + 1.7, + 1.5, + 1.25, + 1.6, + 1.1, + 2.7, + 1.5, + 2.3, + 1, + 2, + 1, + 5.3, + 4.8, + 1.7, + 2.1, + 1.4, + 1.2, + 1.9, + 1.4, + 1.9, + 1.6, + 1.15, + 1.22, + 1.09, + 2.4, + 1.7, + 1.2, + 1.86, + 1.61, + 1.3, + 4.6, + 2.35, + 2.5, + 1.94, + 1.07, + 1.47, + 1.07, + 4, + 4.9, + 4.9, + 2.75, + 1.9, + 1.58, + 2.7, + 2.8, + 1.14, + 6.1, + 2, + 1.1, + 1.31, + 1.47, + 4.5, + 2.04, + 1.14, + 2.5, + 1.52, + 5, + 1.9, + 1.8, + 1.8, + 2.5, + 1.38, + 3, + 1.93, + 4.6, + 2.6, + 4.6, + 1.43, + 1, + 4.7, + 1.3, + 2.4, + 3.2, + 2.6, + 0.96, + 1.65, + 1.1, + 1.5, + 1.7, + 1.4, + 1.4, + 1.4, + 1.74, + 1.7, + 1.3, + 1.2, + 4.9, + 1.62, + 1.4, + 2.3, + 1.19, + 1.9, + 4, + 2.3, + 2.2, + 3, + 3.6, + 2.22, + 1.28, + 1.1, + 5.2, + 5.2, + 1.1, + 1.38, + 1.43, + 1.3, + 2.9, + 1.44, + 1.3, + 1.2, + 1.85, + 1.05, + 1.61, + 3.65, + 1.84, + 2.8, + 1.32, + 2.76, + 3.19, + 1.33, + 4.6, + 7.1, + 1.6, + 1.54, + 1.44, + 1.72, + 4.5, + 1.89, + 1.15, + 4.6, + 1.62, + 1.32, + 2.45, + 2.11, + 2.1, + 1.62, + 2.7, + 1.35, + 1.9, + 1.22, + 1.6, + 2.07, + 1.1, + 1.9, + 2.9, + 2.9, + 2.11, + 3.1, + 2.2, + 1.1, + 1.5, + 2.6, + 2.5, + 2.6, + 3, + 1.3, + 3.5, + 2.5, + 1.6, + 1.14, + 1.5, + 4.8, + 1.4, + 1.96, + 1.15, + 4.5, + 1.3, + 1.3, + 1.9, + 1.7, + 1.6, + 1.4, + 1.21, + 3.12, + 5.1, + 2.1, + 1.5, + 1.6, + 0.96, + 4.4, + 3, + 1, + 1.3, + 1.7, + 2.2, + 1.1, + 1.2, + 2.3, + 1.33, + 3.8, + 1.6, + 2.4, + 1.5, + 1, + 1.51, + 2.8, + 4.4, + 3.4, + 2.9, + 1.78, + 2.12, + 1.36, + 1.6, + 1.3, + 2.3, + 3.05, + 2.3, + 3.03, + 3.1, + 2, + 1.76, + 1.46, + 4.7, + 3, + 1.1, + 2.63, + 1.3, + 4.8, + 5.5, + 2.1, + 1.17, + 1.92, + 1, + 4.9, + 2.38, + 4.9, + 1.9, + 1.5, + 3.61, + 1.21, + 1.8, + 1.1, + 1.4, + 2.06, + 1.67, + 1.9, + 1.1, + 1.13, + 1.3, + 1.1, + 1.31, + 1.1, + 3.54, + 2.4, + 1.7, + 1.6, + 1.57, + 1.69, + 1.34, + 1.85, + 1.72, + 1, + 1.7, + 1.1, + 1.39, + 1.1, + 1.1, + 4.1, + 1.04, + 1.47, + 1.76, + 2.67, + 2.3, + 2.5, + 0.99, + 1.1, + 1.36, + 1.6, + 1.5, + 1.9, + 1.73, + 1.7, + 1.4, + 1.8, + 2, + 1.34, + 1, + 0.98, + 1.52, + 1, + 1.3, + 1.11, + 2.2, + 1.73, + 4.3, + 3.9, + 1.66, + 3.7, + 1.1, + 2.36, + 4.3, + 1.9, + 1.27, + 2.2, + 2, + 1.4, + 1.45, + 1.71, + 2.17, + 2.77, + 1.8, + 1.8, + 2.13, + 1.2, + 1.05, + 4, + 3.1, + 1.1, + 0.99, + 1.2, + 1.54, + 1.4, + 1.1, + 1.86, + 4.9, + 0.97, + 2.7, + 1.36, + 1.49, + 1.3, + 1.9, + 1.3, + 1.17, + 1.25, + 1.19, + 2.1, + 3.51, + 1.7, + 1.4, + 1.1, + 1.12, + 0.98, + 1.4, + 1, + 1.2, + 2.83, + 4.3, + 1.4, + 2.1, + 4.1, + 3.28, + 1, + 1.54, + 2.16, + 1.11, + 2.71, + 4.3, + 1.88, + 1.9, + 2.1, + 1.4, + 3, + 1.56, + 1, + 1.22, + 4.5, + 1, + 1.3, + 4.3, + 3.5, + 1.04, + 1.1, + 1, + 4.7, + 1.3, + 2.1, + 2.19, + 2.3, + 2.61, + 2.1, + 4.1, + 4.9, + 4.3, + 1.4, + 5.6, + 2.5, + 5.8, + 2.7, + 1.7, + 4.6, + 1.6, + 1.1, + 2.07, + 1.1, + 2.14, + 2.01, + 1.3, + 5, + 4.9, + 1.07, + 0.97, + 2.1, + 1, + 1.3, + 1.05, + 1.81, + 1.16, + 1.5, + 1.04, + 3.1, + 1.4, + 1.95, + 1.35, + 1.64, + 2, + 3.6, + 1.91, + 1.2, + 2.03, + 1.15, + 1.16, + 1.3, + 1.99, + 1.4, + 1.3, + 1.2, + 1.9, + 1.4, + 1.37, + 1.3, + 1.2, + 2.8, + 1.3, + 1.9, + 1.3, + 1.22, + 1.8, + 1.3, + 1.3, + 1.4, + 1.2, + 1.3, + 0.96, + 1.73, + 1.05, + 1.53, + 1.3, + 1.22, + 1.1, + 2.8, + 2.84, + 1.11, + 1.2, + 1.2, + 1.6, + 1.81, + 1.9, + 3.2, + 5.7, + 1, + 2.7, + 1.4, + 2.68, + 3.6, + 1.94, + 1.6, + 1.11, + 2.5, + 1.78, + 1.6, + 1.7, + 3, + 1.44, + 2.42, + 2.4, + 1.1, + 1.01, + 1, + 1.84, + 1.6, + 1.59, + 1.4, + 1.3, + 4.1, + 1.43, + 1.2, + 1.49, + 4.2, + 4.2, + 1, + 2.03, + 4.5, + 1.01, + 4.2, + 1, + 1.87, + 1.4, + 1.5, + 4, + 1.3, + 1.21, + 4.1, + 4.4, + 1.2, + 2, + 1.8, + 1.42, + 1.3, + 1.41, + 1.3, + 1.1, + 1.9, + 4.9, + 2.34, + 1.5, + 1.49, + 0.95, + 1.46, + 1.3, + 1.7, + 2.1, + 2.46, + 2.2, + 1.14, + 1.3, + 1.6, + 1.6, + 1.41, + 2.6, + 0.99, + 1.2, + 1.35, + 1.91, + 1.47, + 1.4, + 4.9, + 1.3, + 1.42, + 1.3, + 1.8, + 1, + 1.12, + 4.1, + 3.9, + 1.54, + 2.5, + 1.3, + 1.21, + 3.1, + 1.4, + 2.7, + 1.09, + 1.2, + 1.4, + 1.1, + 1.3, + 1.6, + 1.52, + 0.98, + 4.3, + 2.31, + 2.6, + 2.7, + 1.11, + 1.06, + 1.3, + 1.9, + 4.5, + 2.04, + 4.5, + 1.4, + 4.3, + 1.1, + 1.49, + 5.4, + 5, + 1.03, + 1.19, + 4.9, + 4.5, + 1.3, + 5.7, + 4.3, + 4.2, + 4.6, + 1.4, + 1.11, + 1.4, + 1.51, + 1.02, + 1.7, + 1.9, + 2.88, + 4.1, + 0.98, + 4.4, + 2.03, + 1.07, + 1.9, + 4.9, + 2.6, + 2.3, + 0.97, + 4, + 1, + 0.99, + 1.4, + 1.5, + 1, + 1.8, + 2.2, + 1.39, + 1.91, + 2.1, + 1.23, + 3.2, + 4.3, + 2.6, + 2, + 2.8, + 2.1, + 1.03, + 4.2, + 4.7, + 2.2, + 1.2, + 1.94, + 1.5, + 1.02, + 1.28, + 4.5, + 1.4, + 1.9, + 2.48, + 1.1, + 4.7, + 2.8, + 4.9, + 4.6, + 2.7, + 4.8, + 2.1, + 2.8, + 1.01, + 1.48, + 1.9, + 1.14, + 2.61, + 4.6, + 1.1, + 4.1, + 2.2, + 1.8, + 2.4, + 1.9, + 1.84, + 2.6, + 0.98, + 1.35, + 4.3, + 2, + 1.36, + 2.9, + 2.9, + 1.05, + 1.1, + 4.9, + 1.16, + 1.13, + 4.5, + 1.6, + 4.3, + 1.19, + 3.15, + 2.04, + 1.52, + 4.4, + 1.12, + 1.62, + 1.96, + 1.4, + 1.37, + 3.2, + 4.3, + 1.8, + 1.2, + 1.7, + 0.95, + 2.7, + 1, + 1.9, + 2.5, + 2.8, + 1.03, + 2.2, + 1.07, + 1.12, + 1.6, + 1.2, + 1, + 1.1, + 1.21, + 1.47, + 1.8, + 1.7, + 2.42, + 2.6, + 0.95, + 2.3, + 2.4, + 1.8, + 1.4, + 1.6, + 1.9, + 2.3, + 2.57, + 5.1, + 3.9, + 2.9, + 1.23, + 4.7, + 1.6, + 4.5, + 2.29, + 1.5, + 1.6, + 1.7, + 1.34, + 1.03, + 1.29, + 1.75, + 3.8, + 2.39, + 2.6, + 4.1, + 1.5, + 1.07, + 1.25, + 5.2, + 1.68, + 1.2, + 1.3, + 1.01, + 1.86, + 4.2, + 1, + 1.01, + 5.1, + 2.1, + 1.36, + 1, + 2.1, + 1.11, + 4.3, + 2.1, + 1.2, + 1.09, + 1.32, + 1.14, + 2.1, + 4, + 4.7, + 1.4, + 1.28, + 4.9, + 3, + 4.6, + 4.5, + 1.49, + 2.1, + 1.43, + 1.6, + 1.39, + 1.68, + 1.5, + 1.6, + 2.6, + 1.22, + 1.35, + 1, + 2.4, + 2.5, + 1.04, + 2.6, + 1.1, + 1.41, + 2, + 1.64, + 1.4, + 2.7, + 2.5, + 5.4, + 1.3, + 1.85, + 1.9, + 1.29, + 2.74, + 1.8, + 1.67, + 2.53, + 1.9, + 1.73, + 2.43, + 5.1, + 1.22, + 1.02, + 1.16, + 1.98, + 2.3, + 1.8, + 1, + 2.6, + 1.4, + 4.9, + 4.9, + 1.71, + 4.2, + 1.4, + 2.4, + 1.21, + 4.2, + 1.86, + 1.55, + 4.5, + 1.52, + 5.4, + 1.84, + 4, + 2.2, + 3.37, + 1.5, + 1.9, + 1.1, + 2, + 1.1, + 4, + 1.53, + 1.72, + 1, + 1.9, + 3.64, + 1.3, + 1.3, + 0.95, + 3.1, + 1, + 3.66, + 2.6, + 1.9, + 0.97, + 1.7, + 4.4, + 0.96, + 1.36, + 1.2, + 1.57, + 1, + 1.8, + 4.4, + 4.1, + 1.57, + 3.7, + 1.74, + 1.2, + 3.03, + 4.6, + 1.09, + 4.3, + 1, + 1.1, + 1.68, + 1.75, + 1.3, + 0.98, + 1.9, + 1.33, + 1.7, + 2.6, + 1.37, + 1.44, + 4.3, + 1.06, + 1.1, + 1.8, + 1.02, + 1.17, + 1.34, + 1.51, + 4.6, + 1.8, + 1.1, + 1.16, + 2, + 1.8, + 1, + 1.4, + 4.6, + 4.3, + 1.18, + 1.2, + 1, + 1.6, + 4.6, + 2.5, + 3.4, + 2.2, + 1.5, + 1.46, + 4.9, + 2.3, + 4.2, + 2.1, + 4.2, + 1.7, + 1.5, + 1.7, + 1.71, + 3.2, + 1.42, + 2.8, + 1.3, + 2.6, + 4.6, + 1.7, + 4.3, + 3.1, + 3, + 1.5, + 2, + 1.56, + 1.3, + 4.4, + 1, + 1.45, + 2.1, + 2.43, + 2.3, + 2.6, + 1.21, + 1.6, + 2, + 1.3, + 3.2, + 1.1, + 1.26, + 3.43, + 1.5, + 2.1, + 1.1, + 1.03, + 1.72, + 5.5, + 1.05, + 4.5, + 0.97, + 1.6, + 1.51, + 2.33, + 1, + 1.02, + 1.1, + 4.2, + 1.9, + 1.44, + 5, + 1.02, + 1.8, + 1.22, + 4.6, + 1.04, + 1.4, + 1.41, + 1.1, + 1.17, + 2.9, + 1.98, + 1.6, + 4.7, + 3.2, + 1.78, + 1.3, + 2.08, + 1.4, + 2.13, + 2.3, + 1.5, + 1.6, + 1.54, + 4, + 1.43, + 1.14, + 1.65, + 2.98, + 1.4, + 1.1, + 1.1, + 3, + 4, + 1.2, + 2.2, + 1.3, + 1.43, + 5, + 2.1, + 0.95, + 1.19, + 2.1, + 1.01, + 2.7, + 1.4, + 2.18, + 2, + 3.8, + 2, + 1.6, + 1.8, + 1.4, + 2.7, + 1.04, + 3.23, + 1.1, + 1.7, + 1.91, + 2.04, + 4.6, + 2.3, + 1.73, + 1.2, + 3, + 1.6, + 3.3, + 2.13, + 1.9, + 2.7, + 3.31, + 1.9, + 2.1, + 1.32, + 1.86, + 2.64, + 3.6, + 1.3, + 1.7, + 2.34, + 1.69, + 1.4, + 1.3, + 1.4, + 4.4, + 1.4, + 2.8, + 2.5, + 2.6, + 1.1, + 1.07, + 1.4, + 1.9, + 1.03, + 1.6, + 1.21, + 1.7, + 4.6, + 1.1, + 1.4, + 1.6, + 1.62, + 2.78, + 1.1, + 2, + 1.26, + 1.4, + 4.3, + 1.23, + 2, + 1.7, + 1.1, + 2.38, + 1, + 1.87, + 1.7, + 1.6, + 1.7, + 1.6, + 4.4, + 1.02, + 3.04, + 1.5, + 1.55, + 5.2, + 4.8, + 1.99, + 3.28, + 1.35, + 2.7, + 4.3, + 1.3, + 4.1, + 1.36, + 1.05, + 4.4, + 4.1, + 1.1, + 1.13, + 1.21, + 2.4, + 4.1, + 1.5, + 1.83, + 2.1, + 4.7, + 1.34, + 1.7, + 1.4, + 1.58, + 1.9, + 1.2, + 4, + 2.04, + 1.9, + 2, + 5.2, + 1.49, + 2.2, + 4.1, + 2.43, + 1.37, + 1.7, + 2.3, + 4.4, + 3.03, + 2.8, + 1.71, + 1.91, + 2.6, + 3.1, + 2.41, + 1.09, + 2.06, + 1.19, + 2.03, + 1.01, + 3.2, + 1.7, + 3.06, + 2.41, + 1.6, + 1.03, + 1.9, + 1.93, + 1.61, + 2.58, + 3.3, + 1.13, + 3, + 1.5, + 3, + 2.1, + 1.4, + 1.22, + 1.5, + 2.1, + 1.2, + 1.39, + 1.1, + 0.96, + 1.1, + 1.2, + 1.6, + 5.8, + 3.28, + 2.9, + 1.37, + 3.2, + 2.03, + 4.1, + 2.2, + 2.5, + 3.4, + 1.93, + 3, + 2.2, + 4.5, + 1.46, + 1.53, + 1.9, + 1.08, + 1.4, + 2.2, + 2.8, + 2.5, + 4.3, + 2.12, + 1, + 1.82, + 1.87, + 1.8, + 2.4, + 3.32, + 2, + 1.1, + 0.97, + 1.1, + 1.8, + 1.1, + 1.3, + 2.8, + 1.12, + 2.8, + 1.95, + 2.48, + 1.74, + 1.8, + 1.86, + 1.4, + 1, + 1.9, + 2.1, + 1.5, + 1.2, + 1.2, + 1.22, + 2.5, + 1.6, + 1.2, + 1.9, + 1.61, + 1.4, + 2, + 0.97, + 2, + 2.6, + 2.6, + 2.53, + 2.96, + 1.02, + 1.11, + 4.6, + 1.81, + 1.6, + 1.19, + 1.04, + 1.6, + 4.4, + 1.8, + 1.14, + 1, + 1.3, + 1.64, + 1.3, + 4, + 1.32, + 1.75, + 0.96, + 4, + 1.08, + 4.5, + 4.4, + 3, + 2.26, + 3.2, + 4.2, + 4.7, + 1, + 4.7, + 0.98, + 1.2, + 0.95, + 1.38, + 1.78, + 1.9, + 1.23, + 2.12, + 1.83, + 1, + 3.2, + 2, + 4.32, + 3.3, + 1.43, + 1.39, + 1.41, + 3.2, + 3.1, + 4, + 3.43, + 1.6, + 1.2, + 2.4, + 1, + 1.2, + 0.98, + 1.09, + 1.7, + 1.67, + 1.2, + 3.2, + 1.21, + 2.6, + 1, + 2.1, + 1.1, + 1.33, + 2.7, + 1.1, + 4.6, + 1, + 2.8, + 2.3, + 1.28, + 1.75, + 1.7, + 2.19, + 1.15, + 1.18, + 1.7, + 2.21, + 1.23, + 1.4, + 0.99, + 1.4, + 4.2, + 2.8, + 1.3, + 3.2, + 1.57, + 2.63, + 1.72, + 1.4, + 1.11, + 2.2, + 1.75, + 1.1, + 1.66, + 1.75, + 1.83, + 3.47, + 1.67, + 2.5, + 1.45, + 1.5, + 1.73, + 3.26, + 1.6, + 1.1, + 1.12, + 1.13, + 4.7, + 1.17, + 1.59, + 1.54, + 5, + 1.29, + 1.69, + 1.82, + 1.49, + 2.29, + 1.11, + 1.01, + 1.7, + 1.64, + 1.52, + 1.56, + 4.6, + 3, + 1.8, + 1.3, + 1.9, + 1.01, + 1.2, + 1.15, + 2, + 1.3, + 1.1, + 1.3, + 2.5, + 1.77, + 1.4, + 1.47, + 1.2, + 1.07, + 3.2, + 1.1, + 1.8, + 2, + 4.4, + 1.8, + 2.56, + 1.8, + 1.1, + 2.1, + 1.3, + 4.3, + 1.87, + 5, + 2.1, + 1.77, + 1.8, + 1.5, + 1.34, + 1.1, + 1.1, + 1.1, + 1.92, + 1.02, + 1.4, + 2.3, + 2.3, + 1.26, + 1.95, + 1.11, + 4.5, + 1.19, + 0.99, + 1.15, + 2.5, + 1.4, + 4.1, + 0.99, + 1.1, + 2.3, + 3.9, + 1.07, + 1.5, + 3.3, + 2.35, + 1.53, + 1.9, + 3, + 1.7, + 1.2, + 2.4, + 1.34, + 1.2, + 2.44, + 4.3, + 1.02, + 4.5, + 2.4, + 2.5, + 4.3, + 2.1, + 3.9, + 2.11, + 1.09, + 2.6, + 1.5, + 1.6, + 1.57, + 1.4, + 1.5, + 1.1, + 3.4, + 4.2, + 2.3, + 1.8, + 1.3, + 1.39, + 1.6, + 2.6, + 1.7, + 4.5, + 1.1, + 1.2, + 4.7, + 2.62, + 1.06, + 1.4, + 1.01, + 1.5, + 4.5, + 0.97, + 1.1, + 0.95, + 1.1, + 1.74, + 1.6, + 1.07, + 3.5, + 2.64, + 0.96, + 0.95, + 1.36, + 2.65, + 0.95, + 1.43, + 2.57, + 4.7, + 1.06, + 4.4, + 1.4, + 1, + 3.12, + 1.06, + 1.7, + 5, + 1.38, + 0.99, + 1.1, + 1.94, + 3.05, + 2.16, + 1, + 1.35, + 1.3, + 4.1, + 2.1, + 1.7, + 4.1, + 1.46, + 1.92, + 2.02, + 1.7, + 3.9, + 1.94, + 1.56, + 2.2, + 1, + 1.1, + 4.9, + 1.49, + 1.3, + 1.81, + 2.7, + 1.5, + 4, + 4.8, + 1.22, + 1.17, + 4.6, + 1.5, + 4.9, + 1.1, + 1.74, + 1.49, + 1.03, + 4.8, + 2.07, + 1.5, + 2.7, + 1.59, + 4.3, + 1.98, + 1.8, + 0.96, + 2.18, + 3, + 1.3, + 2.16, + 1.1, + 4.4, + 1.4, + 1.6, + 4.7, + 4.3, + 4.4, + 1.19, + 4.4, + 4.6, + 1.7, + 2.8, + 1.1, + 1, + 2.1, + 2.8, + 4.3, + 2.3, + 2.4, + 4.5, + 3.1, + 1, + 1.63, + 4.6, + 1.9, + 1.12, + 1, + 2.3, + 1.17, + 4.5, + 1.38, + 1.13, + 3.4, + 4.1, + 4.2, + 5, + 0.99, + 4.4, + 2, + 4.5, + 4.7, + 1.4, + 1.8, + 3.11, + 1.3, + 1.33, + 1.34, + 1.5, + 1.65, + 3.1, + 1.34, + 1.2, + 1.2, + 1, + 1.4, + 1.72, + 1.4, + 2.41, + 1, + 2.9, + 2, + 2.5, + 1.1, + 1, + 1.16, + 1.06, + 2.4, + 1, + 1.3, + 0.96, + 1.3, + 1.1, + 1.7, + 1.5, + 4.7, + 1.1, + 4.2, + 1.7, + 1.9, + 1.31, + 1.02, + 1.4, + 1.86, + 1.64, + 1.9, + 0.97, + 1, + 4.7, + 1.6, + 2.1, + 1.6, + 1.7, + 4.4, + 1.4, + 3.01, + 2.4, + 2.02, + 2.1, + 3, + 1.12, + 4.1, + 1.4, + 2.8, + 1.29, + 1.1, + 3.4, + 1.5, + 1.4, + 4, + 1.1, + 1.14, + 3.62, + 4.5, + 1, + 1.85, + 4.5, + 1.3, + 1.4, + 2.8, + 4.9, + 1.35, + 1.4, + 1.22, + 4.4, + 1.9, + 1.2, + 1.15, + 1.09, + 4.6, + 2.5, + 5.3, + 1.28, + 1.54, + 1.1, + 1.14, + 1.45, + 1.94, + 1.4, + 1.8, + 1.29, + 2.8, + 2.63, + 2.17, + 2.06, + 2.21, + 1.81, + 1.3, + 1.4, + 1.19, + 1.89, + 2.13, + 2.85, + 1.11, + 2.54, + 0.96, + 1.03, + 1.6, + 1.5, + 3.99, + 2.5, + 1.4, + 1.9, + 1.9, + 1.6, + 1.28, + 0.96, + 1.18, + 1.11, + 5.1, + 1.9, + 2.1, + 4.8, + 2.4, + 1.78, + 2.8, + 2.34, + 1.99, + 1.3, + 1.42, + 2.9, + 1.28, + 2.7, + 3.1, + 3.4, + 3.3, + 1.1, + 4.4, + 1.3, + 4.2, + 2.8, + 2, + 1, + 1.5, + 1.26, + 5, + 1.5, + 4.4, + 1.11, + 5.1, + 1.4, + 4.3, + 2.6, + 2.3, + 1.21, + 2.23, + 4.1, + 2.29, + 5.5, + 2.4, + 1.9, + 1.47, + 1, + 1.3, + 4.1, + 1.54, + 2.4, + 2.2, + 2, + 3.2, + 1.38, + 2.5, + 1.16, + 1.2, + 2.9, + 3, + 1.3, + 1.74, + 3, + 1.1, + 1.6, + 1, + 1.6, + 2.04, + 4.8, + 1.4, + 3.5, + 2, + 1.1, + 1.57, + 5.7, + 2.5, + 1, + 1.4, + 1.15, + 4.5, + 4.7, + 4.4, + 4.3, + 5, + 2.37, + 3.2, + 1.27, + 4.2, + 1.04, + 4.4, + 1.8, + 4.3, + 1.9, + 3.1, + 1.47, + 1.9, + 1.9, + 4.8, + 4.3, + 3, + 4.4, + 5, + 4.9, + 4.2, + 1.16, + 0.96, + 2, + 1.82, + 4.2, + 1.15, + 1.47, + 1.99, + 2.7, + 2.26, + 2.8, + 4.4, + 2.8, + 2.8, + 1.18, + 3.4, + 2.7, + 4.2, + 2, + 2.7, + 4.6, + 1.9, + 2.6, + 2.9, + 3, + 4.6, + 2.1, + 4.7, + 4.3, + 1.09, + 2.6, + 1.1, + 1.3, + 1.4, + 1.53, + 1.2, + 2.28, + 1, + 2, + 2.5, + 1.53, + 1.21, + 4.1, + 2.7, + 1, + 4.2, + 1.2, + 1.1, + 1.5, + 2.5, + 2.11, + 1.3, + 1.58, + 3, + 3.1, + 4, + 4.5, + 2.17, + 2.3, + 1.3, + 1.3, + 2.16, + 2.03, + 1.5, + 1.3, + 1.5, + 1.6, + 1.6, + 1.01, + 1.32, + 1.79, + 1.6, + 3, + 1.5, + 1, + 0.98, + 1.6, + 2.9, + 4.3, + 2.2, + 1.63, + 2.6, + 1.2, + 1.22, + 1.48, + 2.59, + 3.41, + 1, + 3.4, + 4.4, + 1.14, + 2.7, + 1.42, + 4.3, + 1.5, + 1.9, + 1.5, + 2.02, + 2.3, + 1.12, + 2.9, + 4.3, + 1.68, + 2.3, + 2.5, + 4.3, + 1.8, + 1.9, + 1.14, + 2.4, + 1.6, + 4, + 2.04, + 1.88, + 1.62, + 4.2, + 4.3, + 4.2, + 1.5, + 2.04, + 2.25, + 1.6, + 1.3, + 4.1, + 1.09, + 3.6, + 4.3, + 1.2, + 1.33, + 1.5, + 1, + 2.2, + 3.1, + 5.1, + 1.1, + 3, + 2.8, + 4.3, + 4.7, + 1.3, + 1.6, + 1.21, + 4.2, + 1.2, + 2.05, + 1.71, + 1.34, + 4.6, + 1.3, + 1.69, + 1.5, + 3.5, + 4.2, + 1.26, + 4.1, + 1.3, + 1.1, + 2.47, + 2.3, + 1.3, + 1.58, + 1.01, + 3, + 0.97, + 4.9, + 3.2, + 4.4, + 1.2, + 1.54, + 2.4, + 1.2, + 2.4, + 3, + 1.3, + 3.55, + 1.47, + 2.37, + 1.26, + 1.57, + 1.03, + 1.52, + 2, + 2.4, + 3.3, + 1.01, + 2.5, + 5.9, + 1.22, + 1.1, + 2.8, + 1.13, + 1.44, + 1, + 1.74, + 1.62, + 0.99, + 2.52, + 0.95, + 1.6, + 4.5, + 1.4, + 1.3, + 3.3, + 1.1, + 1.2, + 1, + 2.5, + 1.86, + 3.2, + 1.2, + 4.3, + 4.6, + 1.13, + 2.7, + 1.15, + 3.1, + 2.7, + 1.7, + 1.54, + 1.28, + 2.5, + 4.1, + 1.58, + 2.4, + 3.24, + 1.57, + 2.9, + 1.6, + 2.5, + 1.12, + 2.3, + 2.4, + 1.53, + 0.99, + 2.7, + 1.3, + 1, + 1.06, + 1.3, + 1.48, + 1.53, + 1, + 1.34, + 1.1, + 2.5, + 1.32, + 1.3, + 1.1, + 1.69, + 1.5, + 4.4, + 2.7, + 1.36, + 1.1, + 1.62, + 1.01, + 2.15, + 2.5, + 2.49, + 1.65, + 2.02, + 1.59, + 1.92, + 1.57, + 1.42, + 1.1, + 1.49, + 1.5, + 1.2, + 3.4, + 1.41, + 1.5, + 1.1, + 2.2, + 1.29, + 4.6, + 1.32, + 2.5, + 1.4, + 1.83, + 4.2, + 1.7, + 4.6, + 2.6, + 1.5, + 4.2, + 2.5, + 1.1, + 2.8, + 1.2, + 2.5, + 4.9, + 1, + 3.4, + 1.1, + 3.1, + 2.5, + 1.38, + 2.17, + 2.9, + 1.38, + 1, + 1.59, + 1.7, + 4.3, + 4, + 1.7, + 4.6, + 4.5, + 4.1, + 4.3, + 1.26, + 2.8, + 1.3, + 3, + 1.6, + 2.6, + 1.41, + 1.23, + 2, + 4.4, + 3.6, + 2.8, + 2.5, + 3.4, + 3.1, + 1.6, + 3.9, + 3.1, + 2.14, + 1.3, + 4.3, + 4.5, + 2.6, + 2.6, + 4.4, + 1.6, + 2.9, + 2.1, + 2.9, + 1.1, + 2.6, + 1.7, + 3.1, + 2.42, + 1.3, + 4.7, + 2.6, + 1, + 2.88, + 3.1, + 2.6, + 1.02, + 2.37, + 2.3, + 2.5, + 1.52, + 2.5, + 1.83, + 1.46, + 4.9, + 2.8, + 2.8, + 2.5, + 2.44, + 2.7, + 3.5, + 2.02, + 5, + 1.3, + 2.3, + 1.55, + 4.7, + 4.1, + 3.3, + 2.4, + 1.4, + 2.3, + 1.08, + 2.4, + 2.8, + 1.28, + 1.8, + 5.5, + 5.2, + 2.8, + 1.76, + 3.8, + 4.4, + 4.2, + 0.97, + 3.8, + 2.6, + 4.5, + 1.9, + 2.32, + 1.68, + 0.99, + 1.6, + 2.8, + 1.1, + 1.4, + 1.03, + 2.2, + 4.2, + 4.5, + 3.3, + 3, + 1.6, + 1.2, + 1.3, + 1.58, + 1.14, + 1, + 1.6, + 1.8, + 4.3, + 1.3, + 1.4, + 1.89, + 1.2, + 0.98, + 4, + 1.4, + 1.7, + 1.2, + 1.4, + 1.7, + 2.14, + 1.41, + 2.8, + 1.58, + 1.12, + 2.05, + 4.1, + 4.1, + 4.2, + 1.24, + 2.1, + 4, + 1.14, + 1.4, + 0.97, + 1.4, + 1.67, + 1.2, + 2.2, + 1.63, + 1.2, + 4.3, + 1.3, + 1.11, + 4.1, + 2.2, + 1.8, + 4.1, + 1.81, + 1.18, + 5.8, + 1.5, + 1.9, + 2.3, + 4, + 2.65, + 4.3, + 2.4, + 1.5, + 3.2, + 3.9, + 4.2, + 1, + 1.8, + 1.1, + 1.22, + 1.2, + 4.1, + 4.3, + 4.3, + 4.4, + 3.3, + 2.3, + 2, + 3.3, + 1.5, + 1.4, + 1.5, + 0.96, + 4.7, + 1.2, + 2.3, + 1.97, + 2.1, + 3.3, + 1.43, + 1.18, + 1, + 1.5, + 1.5, + 1.83, + 1.5, + 1.9, + 1.1, + 2.9, + 3, + 2.6, + 1.1, + 2.6, + 1.53, + 4.3, + 0.97, + 1.9, + 1.01, + 1.35, + 1.15, + 4, + 1.28, + 1.37, + 1.64, + 0.99, + 4.9, + 2.8, + 3.1, + 4.2, + 1.6, + 0.96, + 1.4, + 2.8, + 1.98, + 4.4, + 4.2, + 2.3, + 1.2, + 4.8, + 1.5, + 2.68, + 1.31, + 2.08, + 1.2, + 1.15, + 4.4, + 2.3, + 2.3, + 1.1, + 1.7, + 1.77, + 2.17, + 4.4, + 1.45, + 1.7, + 2.1, + 1.22, + 4.4, + 2.4, + 1.8, + 1.06, + 1.3, + 4.4, + 1.5, + 4.2, + 1.86, + 2.9, + 1.96, + 1, + 1, + 1.7, + 1.09, + 3.1, + 1.9, + 4.4, + 2.7, + 1.49, + 1.4, + 1.4, + 1.3, + 1.6, + 2.4, + 5.3, + 1.07, + 4.8, + 4.6, + 1.09, + 2.1, + 1.2, + 4.1, + 2.5, + 1.9, + 1.41, + 1.9, + 4.2, + 1.4, + 1.7, + 1.6, + 1.03, + 2.3, + 1.15, + 2.6, + 1.01, + 2, + 1.4, + 1.7, + 4.8, + 4.7, + 1.1, + 1.66, + 4.3, + 1.59, + 1.3, + 4.5, + 2.3, + 3.5, + 4.9, + 1.8, + 1.2, + 5.2, + 2.17, + 1.89, + 1.2, + 3.9, + 4.9, + 1.42, + 3.1, + 3, + 2.5, + 4, + 2.4, + 4.5, + 1.04, + 2.3, + 4.2, + 1.27, + 2.09, + 1.45, + 4.1, + 1.52, + 1.03, + 1.12, + 4.3, + 1.1, + 1.08, + 1.1, + 5.4, + 4.6, + 1.5, + 1.4, + 3.8, + 1.8, + 3.9, + 1.84, + 1.6, + 1.5, + 4.1, + 1.4, + 2.2, + 2.3, + 0.98, + 2, + 2.6, + 4.1, + 1.03, + 2.8, + 2.6, + 2.7, + 3.3, + 3.6, + 4, + 1.8, + 1.19, + 3.3, + 4.5, + 4.1, + 4.5, + 3.3, + 4.8, + 4.7, + 1.62, + 2.6, + 4.2, + 2.3, + 2.8, + 4.7, + 2.2, + 2.3, + 4.1, + 1.4, + 1.42, + 1.15, + 1.1, + 4.2, + 1.3, + 2.6, + 1.28, + 4.2, + 4.8, + 5, + 1.74, + 1.69, + 2.17, + 4.2, + 4.1, + 4.5, + 1.16, + 4.9, + 4.1, + 1.2, + 1.2, + 1.2, + 3.4, + 1.4, + 4.7, + 4.3, + 4, + 4.3, + 4.3, + 1.3, + 1.4, + 1.9, + 5.5, + 4.5, + 1.7, + 1.03, + 2.9, + 4.1, + 2.7, + 1.19, + 1.67, + 1.1, + 4.2, + 1.52, + 1.4, + 1, + 4.7, + 1.8, + 2, + 3.06, + 1.63, + 4.1, + 3.7, + 2.5, + 2.4, + 4.2, + 2.7, + 1.5, + 3.8, + 3.08, + 4.1, + 1.8, + 2.3, + 2.1, + 4.9, + 4, + 1.4, + 4, + 4, + 2.7, + 4.5, + 5.1, + 2.6, + 4.9, + 1.6, + 1.6, + 1.09, + 1.2, + 1.3, + 1.64, + 1.22, + 0.96, + 1.1, + 1.5, + 4.2, + 4, + 1.2, + 1.3, + 4.3, + 4.1, + 1.51, + 2.49, + 4.1, + 3.9, + 1.43, + 4.4, + 1.5, + 1.8, + 1.64, + 1.6, + 4.1, + 2.8, + 2.5, + 1.6, + 1.1, + 2.1, + 1.56, + 4.3, + 1.2, + 1.6, + 1.71, + 2.09, + 1.6, + 1.94, + 1, + 1.1, + 1.3, + 1.4, + 1.1, + 4.1, + 1.86, + 4.4, + 1.1, + 1.1, + 1.5, + 1.4, + 1.7, + 1.9, + 2.5, + 4.8, + 1.1, + 3, + 1.02, + 1.37, + 4.4, + 1.3, + 1.18, + 1.42, + 4.7, + 1.8, + 4.6, + 4.5, + 4.8, + 1.19, + 4.3, + 1, + 2.3, + 1.38, + 1.2, + 4.2, + 1.1, + 2.5, + 1.93, + 1.54, + 3, + 2.9, + 4.1, + 2.3, + 1.28, + 1.23, + 4.8, + 4.7, + 1.15, + 4.2, + 1.5, + 1.3, + 2.5, + 1.05, + 2.8, + 2.6, + 1.7, + 3.9, + 2.02, + 1.4, + 1.52, + 1.23, + 4.7, + 4.5, + 2.7, + 4, + 5.3, + 4.4, + 4.2, + 1.1, + 5, + 1.13, + 1.29, + 1.1, + 1.24, + 4.9, + 2, + 4.4, + 1.09, + 2.7, + 5.1, + 1.9, + 1.7, + 1.06, + 0.95, + 4.3, + 1.4, + 4.5, + 4.1, + 4.4, + 1.5, + 1.23, + 2.31, + 4.9, + 4.8, + 4.6, + 4.7, + 3.1, + 1.07, + 5, + 2.6, + 4.8, + 4.4, + 4.9, + 4.1, + 1, + 4.6, + 1.7, + 4.8, + 4.3, + 2.49, + 1.18, + 4.3, + 2.76, + 1.22, + 1.29, + 4.4, + 5, + 1.56, + 1.66, + 4.2, + 1.8, + 0.97, + 5.3, + 5, + 5.1, + 1.9, + 4.6, + 1.64, + 4.3, + 1.11, + 4.4, + 4.5, + 2.1, + 1.4, + 4.5, + 4.3, + 1.1, + 4.3, + 4.9, + 1.84, + 1.4, + 2.2, + 2.07, + 2.29, + 1.2, + 4.7, + 1.6, + 1.1, + 1.7, + 1.1, + 1.21, + 1.39, + 1.17, + 5.2, + 1.1, + 4.5, + 4.7, + 1.13, + 4.8, + 1.42, + 5, + 1.91, + 3.1, + 4.5, + 4.3, + 2.4, + 1.29, + 1.9, + 1.71, + 1.08, + 2.1, + 1.4, + 4.7, + 1, + 1.2, + 1.53, + 1.74, + 2.39, + 2.4, + 2.2, + 2.01, + 1.7, + 1.8, + 4.6, + 1.27, + 4.5, + 4.5, + 1.16, + 1.9, + 2.09, + 4.1, + 2.1, + 4.4, + 4.6, + 4.5, + 5.3, + 2.1, + 1.1, + 1.2, + 4.3, + 1, + 4.3, + 2.45, + 2.9, + 1.54, + 4.2, + 4.3, + 4.3, + 4.5, + 1.2, + 1.2, + 1, + 4.3, + 3.2, + 1.01, + 4.1, + 1.3, + 4.4, + 3.2, + 4.4, + 4.1, + 3, + 3.2, + 4.2, + 1.89, + 1.45, + 2.3, + 1.26, + 1.09, + 4.2, + 4.2, + 4.1, + 3.6, + 1.1, + 0.98, + 1.3, + 4.2, + 0.96, + 4.2, + 1.19, + 4, + 1.2, + 4.7, + 1.8, + 4.3, + 2.1, + 4.3, + 1.5, + 4.6, + 4.3, + 1.3, + 4.2, + 4.2, + 1.87, + 4.6, + 4.3, + 4.2, + 1.15, + 4.4, + 1.56, + 1.02, + 5, + 4.3, + 0.99, + 2.1, + 4.9, + 4.7, + 5.1, + 2.5, + 5.2, + 4.6, + 1.03, + 5.2, + 1.48, + 1.9, + 4.8, + 5.3, + 2.16, + 1.01, + 1.17, + 3.73, + 4.8, + 5, + 1.35, + 1.45, + 2.28, + 1.83, + 1.12, + 1.24, + 1.36, + 1.79, + 2.3, + 2.42, + 5.7, + 1.1, + 1.72, + 8.1, + 2.5, + 1.2, + 2, + 1.24, + 2, + 2.4, + 1.4, + 1.1, + 1.9, + 1.7, + 1.3, + 1.47, + 4.7, + 1, + 2.4, + 2.4, + 2.1, + 1.85, + 1.49, + 4.3, + 1.3, + 1.15, + 3.7, + 2.03, + 1.5, + 2.91 + ], + "coloraxis": "coloraxis" + }, + "hoverinfo": "skip" + } + ], + "layout": { + "map": { + "center": { + "lon": -120, + "lat": 50 + }, + "style": "satellite", + "zoom": 2 + }, + "coloraxis": { + "colorscale": "Viridis", + "colorbar": { + "title": { + "text": "Earthquake Magnitude", + "side": "right" + } + } + }, + "width": 700, + "height": 500, + "margin": { + "t": 20, + "b": 20 + } + } +} diff --git a/test/image/mocks/map_fill.json b/test/image/mocks/map_fill.json new file mode 100644 index 00000000000..57bf249b95a --- /dev/null +++ b/test/image/mocks/map_fill.json @@ -0,0 +1,102 @@ +{ + "data": [ + { + "type": "scattermap", + "mode": "lines", + "fill": "toself", + "lon": [ + -67.13734351262877, + -66.96466, + -68.03252, + -69.06, + -70.11617, + -70.64573401557249, + -70.75102474636725, + -70.79761105007827, + -70.98176001655037, + -70.94416541205806, + -71.08482, + -70.6600225491012, + -70.30495378282376, + -70.00014034695016, + -69.23708614772835, + -68.90478084987546, + -68.23430497910454, + -67.79035274928509, + -67.79141211614706, + -67.13734351262877, + null, + -76, + -76, + -74, + -74, + -76 + ], + "lat": [ + 45.137451890638886, + 44.8097, + 44.3252, + 43.98, + 43.68405, + 43.090083319667144, + 43.08003225358635, + 43.21973948828747, + 43.36789581966826, + 43.46633942318431, + 45.3052400000002, + 45.46022288673396, + 45.914794623389355, + 46.69317088478567, + 47.44777598732787, + 47.184794623394396, + 47.35462921812177, + 47.066248887716995, + 45.702585354182816, + 45.137451890638886, + null, + 44, + 46, + 46, + 44, + 44 + ], + "line": { + "width": 6, + "color": "#756bb1" + }, + "fillcolor": "#d3d3d3" + }, + { + "type": "scattermap", + "fill": "toself", + "lon": [ + -75, + -77, + -77, + -75 + ], + "lat": [ + 47, + 47, + 49, + 49 + ], + "marker": { + "size": 20 + } + } + ], + "layout": { + "map": { + "center": { + "lon": -67, + "lat": 45.5 + }, + "zoom": 4 + }, + "showlegend": false, + "height": 450, + "width": 1100, + "autosize": true + } +} diff --git a/test/image/mocks/map_fonts-supported-metropolis-italic.json b/test/image/mocks/map_fonts-supported-metropolis-italic.json new file mode 100644 index 00000000000..a45de553b0b --- /dev/null +++ b/test/image/mocks/map_fonts-supported-metropolis-italic.json @@ -0,0 +1,404 @@ +{ + "data": [ + { + "subplot": "map", + "textfont": { + "size": 20, + "color": "red", + "family": "Metropolis Regular" + }, + "text": [ + "Metropolis Regular", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map2", + "textfont": { + "size": 20, + "color": "red", + "family": "Metropolis Black" + }, + "text": [ + "Metropolis Black", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map3", + "textfont": { + "size": 20, + "color": "red", + "family": "Metropolis Bold" + }, + "text": [ + "Metropolis Bold", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map4", + "textfont": { + "size": 20, + "color": "red", + "family": "Metropolis Extra Bold" + }, + "text": [ + "Metropolis Extra Bold", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map5", + "textfont": { + "size": 20, + "color": "red", + "family": "Metropolis Thin" + }, + "text": [ + "Metropolis Thin", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map6", + "textfont": { + "size": 20, + "color": "red", + "family": "Metropolis Extra Light" + }, + "text": [ + "Metropolis Extra Light", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map7", + "textfont": { + "size": 20, + "color": "red", + "family": "Metropolis Light" + }, + "text": [ + "Metropolis Light", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map8", + "textfont": { + "size": 20, + "color": "red", + "family": "Metropolis Medium" + }, + "text": [ + "Metropolis Medium", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map9", + "textfont": { + "size": 20, + "color": "red", + "family": "Metropolis Semi Bold" + }, + "text": [ + "Metropolis Semi Bold", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + } + ], + "layout": { + "showlegend": false, + "margin": { + "t": 50, + "b": 10, + "l": 10, + "r": 10 + }, + "title": { + "text": "Supported Metropolis fonts in maps", + "font": { + "weight": 800, + "style": "italic" + } + }, + "map": { + "zoom": 3, + "style": "carto-positron", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.89, 0.99] + } + }, + "map2": { + "zoom": 3, + "style": "carto-positron", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.78, 0.88] + } + }, + "map3": { + "zoom": 3, + "style": "carto-positron", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.67, 0.77] + } + }, + "map4": { + "zoom": 3, + "style": "carto-positron", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.56, 0.66] + } + }, + "map5": { + "zoom": 3, + "style": "carto-positron", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.45, 0.55] + } + }, + "map6": { + "zoom": 3, + "style": "carto-positron", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.34, 0.44] + } + }, + "map7": { + "zoom": 3, + "style": "carto-positron", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.23, 0.33] + } + }, + "map8": { + "zoom": 3, + "style": "carto-positron", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.12, 0.22] + } + }, + "map9": { + "zoom": 3, + "style": "carto-positron", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.01, 0.11] + } + }, + "font": { + "style": "italic" + }, + "height": 2700, + "width": 900 + } +} diff --git a/test/image/mocks/map_fonts-supported-metropolis-weight.json b/test/image/mocks/map_fonts-supported-metropolis-weight.json new file mode 100644 index 00000000000..955822ad0fe --- /dev/null +++ b/test/image/mocks/map_fonts-supported-metropolis-weight.json @@ -0,0 +1,409 @@ +{ + "data": [ + { + "subplot": "map", + "textfont": { + "size": 20, + "color": "red", + "family": "Metropolis Regular" + }, + "text": [ + "Metropolis Regular", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map2", + "textfont": { + "size": 20, + "color": "red", + "weight": 900, + "family": "Metropolis Regular" + }, + "text": [ + "Metropolis Black", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map3", + "textfont": { + "size": 20, + "color": "red", + "weight": 700, + "family": "Metropolis Regular" + }, + "text": [ + "Metropolis Bold", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map4", + "textfont": { + "size": 20, + "color": "red", + "weight": 800, + "family": "Metropolis Regular" + }, + "text": [ + "Metropolis Extra Bold", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map5", + "textfont": { + "size": 20, + "color": "red", + "weight": 100, + "family": "Metropolis Regular" + }, + "text": [ + "Metropolis Thin", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map6", + "textfont": { + "size": 20, + "color": "red", + "weight": 200, + "family": "Metropolis Regular" + }, + "text": [ + "Metropolis Extra Light", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map7", + "textfont": { + "size": 20, + "color": "red", + "weight": 300, + "family": "Metropolis Regular" + }, + "text": [ + "Metropolis Light", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map8", + "textfont": { + "size": 20, + "color": "red", + "weight": 500, + "family": "Metropolis Regular" + }, + "text": [ + "Metropolis Medium", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map9", + "textfont": { + "size": 20, + "color": "red", + "weight": 600, + "family": "Metropolis Regular" + }, + "text": [ + "Metropolis Semi Bold", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + } + ], + "layout": { + "showlegend": false, + "margin": { + "t": 50, + "b": 10, + "l": 10, + "r": 10 + }, + "title": { + "text": "Supported Metropolis fonts in maps", + "font": { + "weight": 800, + "style": "italic" + } + }, + "map": { + "zoom": 3, + "style": "carto-positron", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.89, 0.99] + } + }, + "map2": { + "zoom": 3, + "style": "carto-positron", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.78, 0.88] + } + }, + "map3": { + "zoom": 3, + "style": "carto-positron", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.67, 0.77] + } + }, + "map4": { + "zoom": 3, + "style": "carto-positron", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.56, 0.66] + } + }, + "map5": { + "zoom": 3, + "style": "carto-positron", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.45, 0.55] + } + }, + "map6": { + "zoom": 3, + "style": "carto-positron", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.34, 0.44] + } + }, + "map7": { + "zoom": 3, + "style": "carto-positron", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.23, 0.33] + } + }, + "map8": { + "zoom": 3, + "style": "carto-positron", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.12, 0.22] + } + }, + "map9": { + "zoom": 3, + "style": "carto-positron", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.01, 0.11] + } + }, + "height": 2700, + "width": 900 + } +} diff --git a/test/image/mocks/map_fonts-supported-metropolis.json b/test/image/mocks/map_fonts-supported-metropolis.json new file mode 100644 index 00000000000..5000fb00965 --- /dev/null +++ b/test/image/mocks/map_fonts-supported-metropolis.json @@ -0,0 +1,401 @@ +{ + "data": [ + { + "subplot": "map", + "textfont": { + "size": 20, + "color": "red", + "family": "Metropolis Regular" + }, + "text": [ + "Metropolis Regular", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map2", + "textfont": { + "size": 20, + "color": "red", + "family": "Metropolis Black" + }, + "text": [ + "Metropolis Black", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map3", + "textfont": { + "size": 20, + "color": "red", + "family": "Metropolis Bold" + }, + "text": [ + "Metropolis Bold", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map4", + "textfont": { + "size": 20, + "color": "red", + "family": "Metropolis Extra Bold" + }, + "text": [ + "Metropolis Extra Bold", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map5", + "textfont": { + "size": 20, + "color": "red", + "family": "Metropolis Thin" + }, + "text": [ + "Metropolis Thin", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map6", + "textfont": { + "size": 20, + "color": "red", + "family": "Metropolis Extra Light" + }, + "text": [ + "Metropolis Extra Light", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map7", + "textfont": { + "size": 20, + "color": "red", + "family": "Metropolis Light" + }, + "text": [ + "Metropolis Light", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map8", + "textfont": { + "size": 20, + "color": "red", + "family": "Metropolis Medium" + }, + "text": [ + "Metropolis Medium", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map9", + "textfont": { + "size": 20, + "color": "red", + "family": "Metropolis Semi Bold" + }, + "text": [ + "Metropolis Semi Bold", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + } + ], + "layout": { + "showlegend": false, + "margin": { + "t": 50, + "b": 10, + "l": 10, + "r": 10 + }, + "title": { + "text": "Supported Metropolis fonts in maps", + "font": { + "weight": 800, + "style": "italic" + } + }, + "map": { + "zoom": 3, + "style": "carto-positron", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.89, 0.99] + } + }, + "map2": { + "zoom": 3, + "style": "carto-positron", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.78, 0.88] + } + }, + "map3": { + "zoom": 3, + "style": "carto-positron", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.67, 0.77] + } + }, + "map4": { + "zoom": 3, + "style": "carto-positron", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.56, 0.66] + } + }, + "map5": { + "zoom": 3, + "style": "carto-positron", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.45, 0.55] + } + }, + "map6": { + "zoom": 3, + "style": "carto-positron", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.34, 0.44] + } + }, + "map7": { + "zoom": 3, + "style": "carto-positron", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.23, 0.33] + } + }, + "map8": { + "zoom": 3, + "style": "carto-positron", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.12, 0.22] + } + }, + "map9": { + "zoom": 3, + "style": "carto-positron", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.01, 0.11] + } + }, + "height": 2700, + "width": 900 + } +} diff --git a/test/image/mocks/map_fonts-supported-open-sans-weight.json b/test/image/mocks/map_fonts-supported-open-sans-weight.json new file mode 100644 index 00000000000..4241dbe3ba2 --- /dev/null +++ b/test/image/mocks/map_fonts-supported-open-sans-weight.json @@ -0,0 +1,452 @@ +{ + "data": [ + { + "subplot": "map", + "textfont": { + "size": 20, + "color": "red", + "family": "Open Sans Regular" + }, + "text": [ + "Open Sans Regular", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map2", + "textfont": { + "size": 20, + "color": "red", + "weight": 700, + "family": "Open Sans Italic" + }, + "text": [ + "Open Sans Bold Italic", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map3", + "textfont": { + "size": 20, + "color": "red", + "weight": 700, + "family": "Open Sans Regular" + }, + "text": [ + "Open Sans Bold", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map4", + "textfont": { + "size": 20, + "color": "red", + "weight": 800, + "family": "Open Sans Italic" + }, + "text": [ + "Open Sans Extrabold Italic", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map5", + "textfont": { + "size": 20, + "color": "red", + "weight": 800, + "family": "Open Sans Regular" + }, + "text": [ + "Open Sans Extrabold", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map6", + "textfont": { + "size": 20, + "color": "red", + "style": "italic", + "family": "Open Sans Regular" + }, + "text": [ + "Open Sans Italic", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map7", + "textfont": { + "size": 20, + "color": "red", + "weight": 300, + "family": "Open Sans Regular Italic" + }, + "text": [ + "Open Sans Light Italic", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map8", + "textfont": { + "size": 20, + "color": "red", + "weight": 300, + "family": "Open Sans Regular" + }, + "text": [ + "Open Sans Light", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map9", + "textfont": { + "size": 20, + "color": "red", + "weight": 600, + "family": "Open Sans Regular Italic" + }, + "text": [ + "Open Sans Semibold Italic", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map10", + "textfont": { + "size": 20, + "color": "red", + "weight": 600, + "family": "Open Sans Regular" + }, + "text": [ + "Open Sans Semibold", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + } + ], + "layout": { + "showlegend": false, + "margin": { + "t": 50, + "b": 10, + "l": 10, + "r": 10 + }, + "title": { + "text": "Supported Open Sans fonts in maps", + "font": { + "weight": 800, + "style": "italic" + } + }, + "map": { + "zoom": 3, + "style": "light", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.905, 0.995] + } + }, + "map2": { + "zoom": 3, + "style": "light", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.805, 0.895] + } + }, + "map3": { + "zoom": 3, + "style": "light", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.705, 0.795] + } + }, + "map4": { + "zoom": 3, + "style": "light", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.605, 0.695] + } + }, + "map5": { + "zoom": 3, + "style": "light", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.505, 0.595] + } + }, + "map6": { + "zoom": 3, + "style": "light", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.405, 0.495] + } + }, + "map7": { + "zoom": 3, + "style": "light", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.305, 0.395] + } + }, + "map8": { + "zoom": 3, + "style": "light", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.205, 0.295] + } + }, + "map9": { + "zoom": 3, + "style": "light", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.105, 0.195] + } + }, + "map10": { + "zoom": 3, + "style": "light", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.005, 0.095] + } + }, + "height": 3000, + "width": 900 + } +} diff --git a/test/image/mocks/map_fonts-supported-open-sans.json b/test/image/mocks/map_fonts-supported-open-sans.json new file mode 100644 index 00000000000..016731caec4 --- /dev/null +++ b/test/image/mocks/map_fonts-supported-open-sans.json @@ -0,0 +1,443 @@ +{ + "data": [ + { + "subplot": "map", + "textfont": { + "size": 20, + "color": "red", + "family": "Open Sans Regular" + }, + "text": [ + "Open Sans Regular", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map2", + "textfont": { + "size": 20, + "color": "red", + "family": "Open Sans Bold Italic" + }, + "text": [ + "Open Sans Bold Italic", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map3", + "textfont": { + "size": 20, + "color": "red", + "family": "Open Sans Bold" + }, + "text": [ + "Open Sans Bold", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map4", + "textfont": { + "size": 20, + "color": "red", + "family": "Open Sans Extrabold Italic" + }, + "text": [ + "Open Sans Extrabold Italic", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map5", + "textfont": { + "size": 20, + "color": "red", + "family": "Open Sans Extrabold" + }, + "text": [ + "Open Sans Extrabold", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map6", + "textfont": { + "size": 20, + "color": "red", + "family": "Open Sans Italic" + }, + "text": [ + "Open Sans Italic", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map7", + "textfont": { + "size": 20, + "color": "red", + "family": "Open Sans Light Italic" + }, + "text": [ + "Open Sans Light Italic", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map8", + "textfont": { + "size": 20, + "color": "red", + "family": "Open Sans Light" + }, + "text": [ + "Open Sans Light", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map9", + "textfont": { + "size": 20, + "color": "red", + "family": "Open Sans Semibold Italic" + }, + "text": [ + "Open Sans Semibold Italic", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + }, { + "subplot": "map10", + "textfont": { + "size": 20, + "color": "red", + "family": "Open Sans Semibold" + }, + "text": [ + "Open Sans Semibold", + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ], + "textposition": "top center", + "marker": { + "color": "blue", + "opacity": 0.5, + "size": [0, 20, 30, 20, 20, 10, 10, 10, 10, 10, 10] + }, + "type": "scattermap", + "mode": "markers+text", + "lon": [-90, -73.56, -79.38, -123.12, -114.07, -113.49, -75.69, -63.57, -123.36, -97.13, -104.61], + "lat": [55, 45.5, 43.65, 49.28, 51.04, 53.54, 45.42, 44.64, 48.42, 49.89, 50.44] + } + ], + "layout": { + "showlegend": false, + "margin": { + "t": 50, + "b": 10, + "l": 10, + "r": 10 + }, + "title": { + "text": "Supported Open Sans fonts in maps", + "font": { + "weight": 800, + "style": "italic" + } + }, + "map": { + "zoom": 3, + "style": "light", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.905, 0.995] + } + }, + "map2": { + "zoom": 3, + "style": "light", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.805, 0.895] + } + }, + "map3": { + "zoom": 3, + "style": "light", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.705, 0.795] + } + }, + "map4": { + "zoom": 3, + "style": "light", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.605, 0.695] + } + }, + "map5": { + "zoom": 3, + "style": "light", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.505, 0.595] + } + }, + "map6": { + "zoom": 3, + "style": "light", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.405, 0.495] + } + }, + "map7": { + "zoom": 3, + "style": "light", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.305, 0.395] + } + }, + "map8": { + "zoom": 3, + "style": "light", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.205, 0.295] + } + }, + "map9": { + "zoom": 3, + "style": "light", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.105, 0.195] + } + }, + "map10": { + "zoom": 3, + "style": "light", + "center": { + "lon": -90, + "lat": 50 + }, + "domain": { + "x": [0, 1], + "y": [0.005, 0.095] + } + }, + "height": 3000, + "width": 900 + } +} diff --git a/test/image/mocks/map_geojson-attributes.json b/test/image/mocks/map_geojson-attributes.json new file mode 100644 index 00000000000..43160e5597b --- /dev/null +++ b/test/image/mocks/map_geojson-attributes.json @@ -0,0 +1,76 @@ +{ + "data": [ + { + "type": "scattermap" + } + ], + "layout": { + "map": { + "style": "outdoors", + "layers": [ + { + "sourcetype": "geojson", + "type": "line", + "minzoom": 4, + "maxzoom": 12, + "color": "gray", + "line": { + "dash": [2.5, 1] + }, + "source": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [[0.25, 52], [0.75, 50]] + }, + "properties": { + "title": "Line Text Example" + } + } + ] + } + }, + { + "sourcetype": "geojson", + "type": "symbol", + "symbol": { + "text": "{title}", + "textfont": { + "size": 20, + "color": "red" + }, + "iconsize": 0, + "placement": "line" + }, + "source": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [[0.25, 52], [0.75, 50]] + }, + "properties": { + "title": "Line Text Example" + } + } + ] + } + } + ], + "zoom": 6, + "center": { + "lon": 0.5, + "lat": 51 + } + }, + "showlegend": false, + "height": 450, + "width": 1100, + "autosize": true + } +} diff --git a/test/image/mocks/map_layers.json b/test/image/mocks/map_layers.json new file mode 100644 index 00000000000..d767d0d102d --- /dev/null +++ b/test/image/mocks/map_layers.json @@ -0,0 +1,575 @@ +{ + "data": [ + { + "type": "scattermap", + "mode": "markers", + "lon": [ + -73.6, + -73.62, + -73.58 + ], + "lat": [ + 45.5, + 45.52, + 45.48 + ], + "marker": { + "size": 20, + "color": [ + "#1b9e77", + "#d95f02", + "#7570b3" + ] + } + }, + { + "type": "scattermap", + "subplot": "map2" + } + ], + "layout": { + "map": { + "domain": {"x": [0, 0.48], "y": [0, 1]}, + "style": "light", + "center": { + "lon": -73.59194521800514, + "lat": 45.50110152988742 + }, + "zoom": 11.4, + "layers": [ + { + "source": { + "name": "LIMADMIN", + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + -73.6207755934418, + 45.5236508796029 + ], + [ + -73.6207872028152, + 45.5236377690769 + ], + [ + -73.6208360983675, + 45.5235925888858 + ], + [ + -73.6229064657189, + 45.5212544720817 + ], + [ + -73.6244768311808, + 45.5195510388648 + ], + [ + -73.6267218934442, + 45.5165789048672 + ], + [ + -73.6260049185647, + 45.5162468899168 + ], + [ + -73.6252809111825, + 45.5159299069007 + ], + [ + -73.6247608646889, + 45.5156979294181 + ], + [ + -73.6247258132996, + 45.5156978780009 + ], + [ + -73.6240228217757, + 45.5153728701655 + ], + [ + -73.6238049108022, + 45.5152729444053 + ], + [ + -73.6225748083554, + 45.5147068651661 + ], + [ + -73.6211108895945, + 45.5140419351202 + ], + [ + -73.6181778143121, + 45.512730938516 + ], + [ + -73.6176638457886, + 45.5124989304851 + ], + [ + -73.618879835197, + 45.5111338573937 + ], + [ + -73.6169198104361, + 45.5102758011751 + ], + [ + -73.6178927943616, + 45.509173781791 + ], + [ + -73.6160398238206, + 45.5083287473535 + ], + [ + -73.6162207774673, + 45.5081327369473 + ], + [ + -73.6164537542892, + 45.507876735584 + ], + [ + -73.6179928487264, + 45.5062047819349 + ], + [ + -73.6182368673897, + 45.5059367055579 + ], + [ + -73.6183618439377, + 45.5057827742422 + ], + [ + -73.6185918430223, + 45.5055257789995 + ], + [ + -73.618948838393, + 45.5051247454567 + ], + [ + -73.6182348932225, + 45.5047207201667 + ], + [ + -73.6177618618361, + 45.5052617221482 + ], + [ + -73.6175969109787, + 45.505430723084 + ], + [ + -73.6174598829913, + 45.5055757562669 + ], + [ + -73.616486866179, + 45.506659747411 + ], + [ + -73.6158888397486, + 45.5073138173095 + ], + [ + -73.6156428056742, + 45.50758584957 + ], + [ + -73.6146357847723, + 45.5086858816877 + ], + [ + -73.6139258105029, + 45.5094719273215 + ], + [ + -73.6130488831493, + 45.5104459633429 + ], + [ + -73.6122108318229, + 45.5100839424483 + ], + [ + -73.611243886916, + 45.5096689249774 + ], + [ + -73.6063528884867, + 45.5074899994525 + ], + [ + -73.606133883651, + 45.506876000718 + ], + [ + -73.6059059043036, + 45.5067739808066 + ], + [ + -73.6035339056393, + 45.5056989463303 + ], + [ + -73.6024758700409, + 45.5068569698039 + ], + [ + -73.6000319044616, + 45.5056960036382 + ], + [ + -73.5993799928364, + 45.5053890662042 + ], + [ + -73.5991199024211, + 45.5056320080072 + ], + [ + -73.5988969771019, + 45.5055140396732 + ], + [ + -73.5987838942435, + 45.5056170015326 + ], + [ + -73.5956109141946, + 45.5040629949286 + ], + [ + -73.5934899969367, + 45.5061120484855 + ], + [ + -73.5914649102154, + 45.5080701175066 + ], + [ + -73.5941909351712, + 45.5097861073881 + ], + [ + -73.5935088384283, + 45.5105251548103 + ], + [ + -73.5943628438174, + 45.5109121348475 + ], + [ + -73.5949668679484, + 45.5109061398078 + ], + [ + -73.5956738651781, + 45.5111200884042 + ], + [ + -73.5966758518709, + 45.5115460750828 + ], + [ + -73.5969007789133, + 45.5117780652608 + ], + [ + -73.5968818247043, + 45.5124961373726 + ], + [ + -73.5968167337995, + 45.5125841163881 + ], + [ + -73.596793808861, + 45.5126371410099 + ], + [ + -73.5967787648421, + 45.5127301162159 + ], + [ + -73.5968207695811, + 45.5129110558321 + ], + [ + -73.5969408082518, + 45.51304108236 + ], + [ + -73.5970327502278, + 45.5130991385768 + ], + [ + -73.5971757853588, + 45.5131550812638 + ], + [ + -73.5973337620513, + 45.5131831132336 + ], + [ + -73.5975097723248, + 45.5131990707199 + ], + [ + -73.5977157399835, + 45.5132010527777 + ], + [ + -73.5979057416331, + 45.513189099848 + ], + [ + -73.5980747296379, + 45.513173114616 + ], + [ + -73.5984197121962, + 45.5131030704137 + ], + [ + -73.5986818075475, + 45.513086104328 + ], + [ + -73.5987887625844, + 45.5130941096285 + ], + [ + -73.5988957337211, + 45.5131121048595 + ], + [ + -73.5984157123796, + 45.5136001046227 + ], + [ + -73.5978607488775, + 45.5141631292314 + ], + [ + -73.5977037635577, + 45.5142861043779 + ], + [ + -73.597550728497, + 45.5143730795687 + ], + [ + -73.597366749244, + 45.5144530605157 + ], + [ + -73.5972027743173, + 45.5145020668286 + ], + [ + -73.5970616795637, + 45.5145341354493 + ], + [ + -73.5968587128929, + 45.5145621165344 + ], + [ + -73.5956037122206, + 45.5145810897428 + ], + [ + -73.5921677973593, + 45.5144841395591 + ], + [ + -73.5920288439416, + 45.5144691334948 + ], + [ + -73.5918448417188, + 45.514472163475 + ], + [ + -73.5916048410107, + 45.5145121346391 + ], + [ + -73.591418828585, + 45.5145781592694 + ], + [ + -73.5912887748834, + 45.5146491787759 + ], + [ + -73.5911988215994, + 45.5147101759116 + ], + [ + -73.590205784111, + 45.5157531802494 + ], + [ + -73.5913087273834, + 45.5162461850563 + ], + [ + -73.5913807820754, + 45.5162801450928 + ], + [ + -73.5967786568455, + 45.5186900628813 + ], + [ + -73.6027967704682, + 45.5213480469144 + ], + [ + -73.6122399832393, + 45.5255640375319 + ], + [ + -73.612422919886, + 45.5256420616179 + ], + [ + -73.617229085672, + 45.5277519834938 + ], + [ + -73.6172792346566, + 45.5277741602959 + ], + [ + -73.617304713874, + 45.5277413346227 + ], + [ + -73.6174920524961, + 45.5274983627902 + ], + [ + -73.6175332583267, + 45.5275122538334 + ], + [ + -73.6180741889569, + 45.5267591051693 + ], + [ + -73.6182716512573, + 45.526500673565 + ], + [ + -73.6184463200447, + 45.5262879434732 + ], + [ + -73.6189685079001, + 45.5256985601733 + ], + [ + -73.6193880023274, + 45.5252167500984 + ], + [ + -73.6195329660365, + 45.5250641831466 + ], + [ + -73.6196866624052, + 45.5248892907296 + ], + [ + -73.6197870389348, + 45.5247700866834 + ], + [ + -73.6199257423881, + 45.5245849397865 + ], + [ + -73.6199544860087, + 45.5245576900523 + ], + [ + -73.620122362851, + 45.5243779610402 + ], + [ + -73.6202017130167, + 45.5242989075929 + ], + [ + -73.6207755934418, + 45.5236508796029 + ] + ] + ] + ] + }, + "properties": { + "NOM": "Outremont", + "TYPE": "Arrondissement", + "CODEID": "11", + "ABREV": "OM", + "NUM": 5, + "CODEMAMROT": "REM05", + "AIRE": 3813355.72326504, + "MUNID": 66023, + "PERIM": 10836.6706340882 + } + } + ] + }, + "type": "fill", + "below": "water", + "color": "#ece2f0", + "opacity": 0.8 + } + ] + }, + + "map2": { + "domain": {"x": [0.52, 1], "y": [0, 1]}, + "style": "https://basemaps.cartocdn.com/gl/positron-nolabels-gl-style/style.json", + "zoom": 4.5, + "center": {"lon": -74.5, "lat": 42}, + "layers": [ + { + "sourcetype": "raster", + "source": [ + "https://img.nj.gov/imagerywms/Natural2015?bbox={bbox-epsg-3857}&format=image/png&service=WMS&version=1.1.1&request=GetMap&srs=EPSG:3857&transparent=true&width=256&height=256&layers=Natural2015" + ], + "below": "aeroway-line" + }, + { + "sourcetype": "image", + "coordinates": [ + [-80.425, 46.437], + [-71.516, 46.437], + [-71.516, 37.936], + [-80.425, 37.936] + ], + "source": "https://docs.mapbox.com/mapbox-gl-js/assets/radar.gif", + "opacity": 0.3 + } + ] + }, + "height": 450, + "width": 900 + } +} diff --git a/test/image/mocks/map_osm-style.json b/test/image/mocks/map_osm-style.json new file mode 100644 index 00000000000..dff57f476cd --- /dev/null +++ b/test/image/mocks/map_osm-style.json @@ -0,0 +1,58 @@ +{ + "data": [ + { + "type": "scattermap", + "name": "on custom style pointing to OSM", + "lon": [ 10, 20 ], + "lat": [ 20, 10 ] + }, + { + "type": "scattermap", + "name": "using style:open-street-map", + "lon": [ 10, 20 ], + "lat": [ 20, 10 ], + "subplot": "map2" + } + ], + "layout": { + "grid": {"rows": 2, "columns": 1}, + + "legend": { + "x": 0, + "y": 1, "yanchor": "bottom" + }, + + "map": { + "domain": {"row": 0, "column": 0}, + + "style": { + "id": "osm", + "version": 8, + "sources": { + "simple-tiles": { + "type": "raster", + "tiles": [ + "https://a.tile.openstreetmap.org/{z}/{x}/{y}.png", + "https://b.tile.openstreetmap.org/{z}/{x}/{y}.png" + ], + "tileSize": 256 + } + }, + "layers": [ + { + "id": "simple-tiles", + "type": "raster", + "source": "simple-tiles", + "minzoom": 0, + "maxzoom": 22 + } + ] + } + }, + "map2": { + "domain": {"row": 1, "column": 0}, + + "style": "open-street-map" + } + } +} diff --git a/test/image/mocks/map_scattercluster.json b/test/image/mocks/map_scattercluster.json new file mode 100644 index 00000000000..4d0055f9769 --- /dev/null +++ b/test/image/mocks/map_scattercluster.json @@ -0,0 +1,261 @@ +{ + "data": [ + { + "textfont": { "weight": 200 }, + "type": "scattermap", + "subplot": "map", + "name": "20 (20)", + "mode": "markers", + "marker": { + "size": 20, + "color": "lightgray", + "opacity": 0.5 + }, + "cluster": { + "size": 20, + "color": "yellow" + }, + "lon": [ + -73.56, + -79.38, + -123.12, + -114.07, + -113.49, + -75.69, + -63.57, + -123.36, + -97.13, + -104.61 + ], + "lat": [ + 45.5, + 43.65, + 49.28, + 51.04, + 53.54, + 45.42, + 44.64, + 48.42, + 49.89, + 50.44 + ], + "text": [ + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ] + }, + { + "textfont": { "weight": 400 }, + "type": "scattermap", + "subplot": "map2", + "name": "20 (10)", + "mode": "markers", + "marker": { + "size": 20 + }, + "cluster": { + "size": 10 + }, + "lon": [ + -73.56, + -79.38, + -123.12, + -114.07, + -113.49, + -75.69, + -63.57, + -123.36, + -97.13, + -104.61 + ], + "lat": [ + 45.5, + 43.65, + 49.28, + 51.04, + 53.54, + 45.42, + 44.64, + 48.42, + 49.89, + 50.44 + ], + "text": [ + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ] + }, + { + "textfont": { "weight": 600 }, + "type": "scattermap", + "subplot": "map3", + "name": "10 (20)", + "mode": "markers", + "marker": { + "size": 10 + }, + "cluster": { + "size": 20 + }, + "lon": [ + -73.56, + -79.38, + -123.12, + -114.07, + -113.49, + -75.69, + -63.57, + -123.36, + -97.13, + -104.61 + ], + "lat": [ + 45.5, + 43.65, + 49.28, + 51.04, + 53.54, + 45.42, + 44.64, + 48.42, + 49.89, + 50.44 + ], + "text": [ + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ] + }, + { + "textfont": { "weight": 800 }, + "type": "scattermap", + "subplot": "map4", + "name": "10 (10)", + "mode": "markers", + "marker": { + "size": 10 + }, + "cluster": { + "size": 10 + }, + "lon": [ + -73.56, + -79.38, + -123.12, + -114.07, + -113.49, + -75.69, + -63.57, + -123.36, + -97.13, + -104.61 + ], + "lat": [ + 45.5, + 43.65, + 49.28, + 51.04, + 53.54, + 45.42, + 44.64, + 48.42, + 49.89, + 50.44 + ], + "text": [ + "Montreal", + "Toronto", + "Vancouver", + "Calgary", + "Edmonton", + "Ottawa", + "Halifax", + "Victoria", + "Winnepeg", + "Regina" + ] + } + ], + "layout": { + "font": { + "style": "italic" + }, + "title": { + "text": "Clustering points over Canadian cities" + }, + "map": { + "zoom": 2, + "style": "dark", + "center": { + "lon": -90, + "lat": 45 + }, + "domain": { + "x": [0.55, 1], + "y": [0.55, 1] + } + }, + "map2": { + "zoom": 2, + "style": "light", + "center": { + "lon": -90, + "lat": 45 + }, + "domain": { + "x": [0.55, 1], + "y": [0, 0.45] + } + }, + "map3": { + "zoom": 2, + "style": "light", + "center": { + "lon": -90, + "lat": 45 + }, + "domain": { + "x": [0, 0.45], + "y": [0.55, 1] + } + }, + "map4": { + "zoom": 2, + "style": "dark", + "center": { + "lon": -90, + "lat": 45 + }, + "domain": { + "x": [0, 0.45], + "y": [0, 0.45] + } + }, + "height": 800, + "width": 1200 + } +} diff --git a/test/image/mocks/map_stamen-style.json b/test/image/mocks/map_stamen-style.json new file mode 100644 index 00000000000..4d5714d8136 --- /dev/null +++ b/test/image/mocks/map_stamen-style.json @@ -0,0 +1,44 @@ +{ + "data": [ + { + "type": "scattermap", + "name": "stamen-terrain", + "lon": [ 10, 20 ], + "lat": [ 20, 10 ] + }, + { + "type": "scattermap", + "name": "stamen-toner", + "lon": [ 10, 20 ], + "lat": [ 20, 10 ], + "subplot": "map2" + }, + { + "type": "scattermap", + "name": "stamen-watercolor", + "lon": [ 10, 20 ], + "lat": [ 20, 10 ], + "subplot": "map3" + } + ], + "layout": { + "grid": {"rows": 1, "columns": 3}, + + "legend": { + "x": 0, + "y": 1, "yanchor": "bottom" + }, + "map": { + "domain": {"row": 0, "column": 0}, + "style": "stamen-terrain" + }, + "map2": { + "domain": {"row": 0, "column": 1}, + "style": "stamen-toner" + }, + "map3": { + "domain": {"row": 0, "column": 2}, + "style": "stamen-watercolor" + } + } +} diff --git a/test/image/mocks/map_symbol-text.json b/test/image/mocks/map_symbol-text.json new file mode 100644 index 00000000000..086e9fed94d --- /dev/null +++ b/test/image/mocks/map_symbol-text.json @@ -0,0 +1,70 @@ +{ + "data": [ + { + "type": "scattermap", + "mode": "markers+lines+text", + "lon": [ + -10, + 20, + 30 + ], + "lat": [ + -10, + 20, + 40 + ], + "marker": { + "symbol": "harbor", + "size": 5 + }, + "text": "LOOK", + "textfont": { + "size": 10, + "color": "red" + }, + "textposition": "top center" + }, + { + "type": "scattermap", + "mode": "markers+text", + "lon": [ + -75, + -100, + 120 + ], + "lat": [ + 45, + 20, + -40 + ], + "marker": { + "size": 15, + "symbol": [ + "monument", + "harbor", + "music" + ] + }, + "text": [ + "Monument", + "Harbor", + "Music" + ], + "textposition": "bottom left" + } + ], + "layout": { + "map": { + "style": "outdoors", + "zoom": 0.5, + "center": { + "lon": 0, + "lat": 0 + } + }, + "showlegend": false, + "height": 450, + "width": 1100, + "autosize": true + } +} diff --git a/test/image/mocks/map_texttemplate.json b/test/image/mocks/map_texttemplate.json new file mode 100644 index 00000000000..178f9913678 --- /dev/null +++ b/test/image/mocks/map_texttemplate.json @@ -0,0 +1,38 @@ +{ + "data": [{ + "type": "scattermap", + "mode": "markers+text", + "lon": [ + -73.57, + -79.24, + -123.06 + ], + "lat": [ + 45.5, + 43.4, + 49.13 + ], + "text": [ + "Montreal", + "Toronto", + "Vancouver" + ], + "texttemplate": "%{text} (%{lon}, %{lat}): %{customdata:.2s}", + "textposition": "top center", + "customdata": [1780000, 2930000, 675218] + }], + + "layout": { + "width": 500, + "height": 500, + "title": {"text": "Map with texttemplate"}, + "margin": {"t": 30, "b": 0, "l": 0, "r": 0}, + "map": { + "center": { + "lon": -90, + "lat": 45 + }, + "zoom": 1.5 + } + } +} diff --git a/test/image/mocks/map_white-bg-style.json b/test/image/mocks/map_white-bg-style.json new file mode 100644 index 00000000000..5949817b089 --- /dev/null +++ b/test/image/mocks/map_white-bg-style.json @@ -0,0 +1,18 @@ +{ + "data": [ + { + "type": "scattermap", + "name": "white-bg", + "lon": [ 10, 20 ], + "lat": [ 20, 10 ] + } + ], + "layout": { + "width": 200, + "height": 200, + "margin": {"t": 0, "b": 0, "l": 0, "r": 0}, + "map": { + "style": "white-bg" + } + } +} diff --git a/test/jasmine/assets/mock_lists.js b/test/jasmine/assets/mock_lists.js index 61f6aa43343..27a09b99770 100644 --- a/test/jasmine/assets/mock_lists.js +++ b/test/jasmine/assets/mock_lists.js @@ -77,9 +77,16 @@ var mapboxMockList = [ ['densitymapbox', require('../../image/mocks/mapbox_density0.json')] ]; +var mapMockList = [ + ['scattermap', require('../../image/mocks/map_bubbles-text.json')], + ['choroplethmap', require('../../image/mocks/map_choropleth0.json')], + ['densitymap', require('../../image/mocks/map_density0.json')] +]; + module.exports = { svg: svgMockList, gl: glMockList, mapbox: mapboxMockList, - all: svgMockList.concat(glMockList).concat(mapboxMockList) + map: mapMockList, + all: svgMockList.concat(glMockList).concat(mapboxMockList).concat(mapMockList) }; diff --git a/test/jasmine/bundle_tests/plotschema_test.js b/test/jasmine/bundle_tests/plotschema_test.js index 6d1f4546b3a..82afaf4cd54 100644 --- a/test/jasmine/bundle_tests/plotschema_test.js +++ b/test/jasmine/bundle_tests/plotschema_test.js @@ -134,7 +134,7 @@ describe('plot schema', function() { var cnt = 0; var astrs = [ - 'xaxis', 'yaxis', 'scene', 'geo', 'ternary', 'mapbox', 'polar', 'smith', + 'xaxis', 'yaxis', 'scene', 'geo', 'ternary', 'mapbox', 'map', 'polar', 'smith', // not really a 'subplot' object but supports yaxis, yaxis2, yaxis3, // ... counters, so list it here 'xaxis.rangeslider.yaxis', @@ -171,7 +171,8 @@ describe('plot schema', function() { 'xaxis.rangeselector.buttons', 'updatemenus', 'sliders', - 'mapbox.layers' + 'mapbox.layers', + 'map.layers' ]; astrs.forEach(function(astr) { diff --git a/test/jasmine/tests/choroplethmap_test.js b/test/jasmine/tests/choroplethmap_test.js new file mode 100644 index 00000000000..acb55cb3a22 --- /dev/null +++ b/test/jasmine/tests/choroplethmap_test.js @@ -0,0 +1,769 @@ +var Plotly = require('../../../lib/index'); +var Plots = require('../../../src/plots/plots'); +var Lib = require('../../../src/lib'); +var loggers = require('../../../src/lib/loggers'); + +var convertModule = require('../../../src/traces/choroplethmap/convert'); + +var createGraphDiv = require('../assets/create_graph_div'); +var destroyGraphDiv = require('../assets/destroy_graph_div'); +var failTest = require('../assets/fail_test'); +var mouseEvent = require('../assets/mouse_event'); +var supplyAllDefaults = require('../assets/supply_defaults'); + +var assertHoverLabelContent = require('../assets/custom_assertions').assertHoverLabelContent; + +describe('Test choroplethmap defaults:', function() { + var gd; + var fullData; + + function _supply(opts, layout) { + gd = {}; + opts = Array.isArray(opts) ? opts : [opts]; + + gd.data = opts.map(function(o) { + return Lib.extendFlat({type: 'choroplethmap'}, o || {}); + }); + gd.layout = layout || {}; + + supplyAllDefaults(gd); + fullData = gd._fullData; + } + + function expectVisibleFalse(msg) { + fullData.forEach(function(trace, i) { + expect(trace.visible).toBe(false, 'visible |trace #' + i + '- ' + msg); + expect(trace._length).toBe(undefined, '_length |trace #' + i + '- ' + msg); + }); + } + + it('should set *visible:false* when locations or z or geojson is missing', function() { + _supply([ + {z: [1], geojson: 'url'}, + {locations: ['a'], geojson: 'url'}, + {locations: ['a'], z: [1]} + ]); + expectVisibleFalse(); + }); + + it('should set *visible:false* when locations or z is empty', function() { + _supply([ + {locations: [], z: [1], geojson: 'url'}, + {locations: ['a'], z: [], geojson: 'url'}, + {locations: [], z: [], geojson: 'url'} + ]); + expectVisibleFalse(); + }); + + it('should accept string (URL) and object *geojson*', function() { + _supply([ + {name: 'ok during defaults, will fail later', locations: ['a'], z: [1], geojson: 'url'}, + {name: 'ok during defaults, will fail later', locations: ['a'], z: [1], geojson: {}}, + ]); + fullData.forEach(function(trace, i) { + expect(trace.visible).toBe(true, 'visible |trace #' + i); + expect(trace._length).toBe(1, '_length |trace #' + i); + }); + + _supply([ + {name: 'no', locations: ['a'], z: [1], geojson: ''}, + {name: 'no', locations: ['a'], z: [1], geojson: []}, + {name: 'no', locations: ['a'], z: [1], geojson: true} + ]); + expectVisibleFalse(); + }); + + it('should not coerce *marker.line.color* when *marker.line.width* is *0*', function() { + _supply([{ + locations: ['CAN', 'USA'], + z: [1, 2], + geojson: 'url', + marker: { + line: { + color: 'red', + width: 0 + } + } + }]); + + expect(fullData[0].marker.line.width).toBe(0, 'mlw'); + expect(fullData[0].marker.line.color).toBe(undefined, 'mlc'); + }); +}); + +describe('Test choroplethmap convert:', function() { + var geojson0 = function() { + return { + type: 'FeatureCollection', + features: [ + {type: 'Feature', id: 'a', geometry: {type: 'Polygon', coordinates: []}}, + {type: 'Feature', id: 'b', geometry: {type: 'Polygon', coordinates: []}}, + {type: 'Feature', id: 'c', geometry: {type: 'Polygon', coordinates: []}} + ] + }; + }; + + var base = function() { + return { + locations: ['a', 'b', 'c'], + z: [10, 20, 5], + geojson: geojson0() + }; + }; + + function pre(trace, layout) { + var gd = {data: [Lib.extendFlat({type: 'choroplethmap'}, trace)]}; + if(layout) gd.layout = layout; + + supplyAllDefaults(gd); + Plots.doCalcdata(gd, gd._fullData[0]); + + return gd.calcdata[0]; + } + + function _convert(trace) { + return convertModule.convert(pre(trace)); + } + + function expectBlank(opts, msg) { + expect(opts.fill.layout.visibility).toBe('none', msg); + expect(opts.line.layout.visibility).toBe('none', msg); + expect(opts.geojson).toEqual({type: 'Point', coordinates: []}, msg); + } + + function extract(opts, k) { + return opts.geojson.features.map(function(f) { return f.properties[k]; }); + } + + it('should return early when trace is *visible:false*', function() { + var opts = _convert(Lib.extendFlat(base(), {visible: false})); + expectBlank(opts); + }); + + it('should return early when trace is has no *_length*', function() { + var opts = _convert({ + locations: [], + z: [], + geojson: geojson0 + }); + expectBlank(opts); + }); + + it('should return early if something goes wrong while fetching a GeoJSON', function() { + spyOn(loggers, 'error'); + + var opts = _convert({ + locations: ['a'], z: [1], + geojson: 'url' + }); + + expect(loggers.error).toHaveBeenCalledWith('Oops ... something went wrong when fetching url'); + expectBlank(opts); + }); + + describe('should warn when set GeoJSON is not a *FeatureCollection* or a *Feature* type and return early', function() { + beforeEach(function() { spyOn(loggers, 'warn'); }); + + it('- case missing *type* key', function() { + var opts = _convert({ + locations: ['a'], z: [1], + geojson: { + missingType: '' + } + }); + expectBlank(opts); + expect(loggers.warn).toHaveBeenCalledWith([ + 'Invalid GeoJSON type none.', + 'Traces with locationmode *geojson-id* only support *FeatureCollection* and *Feature* types.' + ].join(' ')); + }); + + it('- case invalid *type*', function() { + var opts = _convert({ + locations: ['a'], z: [1], + geojson: { + type: 'nop!' + } + }); + expectBlank(opts); + expect(loggers.warn).toHaveBeenCalledWith([ + 'Invalid GeoJSON type nop!.', + 'Traces with locationmode *geojson-id* only support *FeatureCollection* and *Feature* types.' + ].join(' ')); + }); + }); + + describe('should log when crossing a GeoJSON geometry that is not a *Polygon* or a *MultiPolygon* type', function() { + beforeEach(function() { spyOn(loggers, 'log'); }); + + it('- case missing geometry *type*', function() { + var trace = base(); + delete trace.geojson.features[1].geometry.type; + + var opts = _convert(trace); + expect(opts.geojson.features.length).toBe(2, '# of feature to be rendered'); + expect(loggers.log).toHaveBeenCalledWith([ + 'Location b does not have a valid GeoJSON geometry.', + 'Traces with locationmode *geojson-id* only support *Polygon* and *MultiPolygon* geometries.' + ].join(' ')); + }); + + it('- case invalid geometry *type*', function() { + var trace = base(); + trace.geojson.features[2].geometry.type = 'not-gonna-work'; + + var opts = _convert(trace); + expect(opts.geojson.features.length).toBe(2, '# of feature to be rendered'); + expect(loggers.log).toHaveBeenCalledWith([ + 'Location c does not have a valid GeoJSON geometry.', + 'Traces with locationmode *geojson-id* only support *Polygon* and *MultiPolygon* geometries.' + ].join(' ')); + }); + }); + + it('should log when an entry set in *locations* does not a matching feature in the GeoJSON', function() { + spyOn(loggers, 'log'); + + var trace = base(); + trace.locations = ['a', 'b', 'c', 'd']; + trace.z = [1, 2, 3, 1]; + + var opts = _convert(trace); + expect(opts.geojson.features.length).toBe(3, '# of features to be rendered'); + expect(loggers.log).toHaveBeenCalledWith('Location *d* does not have a matching feature with id-key *id*.'); + }); + + describe('should accept numbers as *locations* items', function() { + function _assert(act) { + expect(act.fill.layout.visibility).toBe('visible', 'fill layer visibility'); + expect(act.line.layout.visibility).toBe('visible', 'line layer visibility'); + expect(act.geojson.features.length).toBe(3, '# of visible features'); + expect(extract(act, 'fc')) + .toEqual(['rgb(178, 10, 28)', 'rgb(220, 220, 220)', 'rgb(240, 149, 99)']); + } + + it('- regular array case', function() { + var trace = { + locations: [1, 2, 3], + z: [20, 10, 2], + geojson: { + type: 'FeatureCollection', + features: [ + {type: 'Feature', id: '1', geometry: {type: 'Polygon', coordinates: []}}, + {type: 'Feature', id: '3', geometry: {type: 'Polygon', coordinates: []}}, + {type: 'Feature', id: '2', geometry: {type: 'Polygon', coordinates: []}} + ] + } + }; + _assert(_convert(trace)); + }); + + it('- typed array case', function() { + var trace = { + locations: new Float32Array([1, 2, 3]), + z: new Float32Array([20, 10, 2]), + geojson: { + type: 'FeatureCollection', + features: [ + {type: 'Feature', id: 1, geometry: {type: 'Polygon', coordinates: []}}, + {type: 'Feature', id: 3, geometry: {type: 'Polygon', coordinates: []}}, + {type: 'Feature', id: 2, geometry: {type: 'Polygon', coordinates: []}} + ] + } + }; + _assert(_convert(trace)); + }); + }); + + it('should handle *Feature* on 1-item *FeatureCollection* the same way', function() { + var locations = ['a']; + var z = [1]; + + var feature = { + type: 'Feature', + id: 'a', + geometry: {type: 'Polygon', coordinates: []} + }; + + var opts = _convert({ + locations: locations, + z: z, + geojson: feature + }); + + var opts2 = _convert({ + locations: locations, + z: z, + geojson: { + type: 'FeatureCollection', + features: [feature] + } + }); + + expect(opts).toEqual(opts2); + }); + + it('should fill stuff in corresponding calcdata items', function() { + var calcTrace = pre(base()); + var opts = convertModule.convert(calcTrace); + + var fullTrace = calcTrace[0].trace; + expect(fullTrace._opts).toBe(opts, 'opts ref'); + + for(var i = 0; i < calcTrace.length; i++) { + var cdi = calcTrace[i]; + expect(typeof cdi._polygons).toBe('object', '_polygons |' + i); + expect(Array.isArray(cdi.ct)).toBe(true, 'ct|' + i); + expect(typeof cdi.fIn).toBe('object', 'fIn |' + i); + expect(typeof cdi.fOut).toBe('object', 'fOut |' + i); + } + }); + + describe('should fill *fill-color* correctly', function() { + function _assert(act, exp) { + expect(act.fill.paint['fill-color']) + .toEqual({type: 'identity', property: 'fc'}); + expect(extract(act, 'fc')).toEqual(exp); + } + + it('- base case', function() { + _assert(_convert(base()), [ + 'rgb(245, 172, 122)', + 'rgb(178, 10, 28)', + 'rgb(220, 220, 220)' + ]); + }); + + it('- custom colorscale case', function() { + var trace = base(); + trace.colorscale = [[0, 'rgb(0, 255, 0)'], [1, 'rgb(0, 0, 255)']]; + trace.zmid = 10; + + _assert(_convert(trace), [ + 'rgb(0, 128, 128)', + 'rgb(0, 0, 255)', + 'rgb(0, 191, 64)' + ]); + }); + }); + + describe('should fill *fill-opacity* correctly', function() { + function _assertScalar(act, exp) { + expect(act.fill.paint['fill-opacity']).toBe(exp); + expect(act.line.paint['line-opacity']).toBe(exp); + expect(extract(act, 'mo')).toEqual([undefined, undefined, undefined]); + } + + function _assertArray(act, k, exp) { + expect(act.fill.paint['fill-opacity']).toEqual({type: 'identity', property: k}); + expect(act.line.paint['line-opacity']).toEqual({type: 'identity', property: k}); + expect(extract(act, k)).toBeCloseToArray(exp, 2); + } + + function fakeSelect(calcTrace, selectedpoints) { + if(selectedpoints === null) { + delete calcTrace[0].trace.selectedpoints; + } else { + calcTrace[0].trace.selectedpoints = selectedpoints; + } + + for(var i = 0; i < calcTrace.length; i++) { + var cdi = calcTrace[i]; + if(selectedpoints) { + if(selectedpoints.indexOf(i) !== -1) { + cdi.selected = 1; + } else { + cdi.selected = 0; + } + } else { + delete cdi.selected; + } + } + } + + it('- base case', function() { + var trace = base(); + trace.marker = {opacity: 0.4}; + _assertScalar(_convert(trace), 0.4); + }); + + it('- arrayOk case', function() { + var trace = base(); + trace.marker = {opacity: [null, 0.2, -10]}; + _assertArray(_convert(trace), 'mo', [0, 0.2, 0]); + }); + + it('- arrayOk case + bad coordinates', function() { + var trace = base(); + trace.locations = ['a', null, 'c']; + trace.marker = {opacity: [-1, 0.2, 0.9]}; + _assertArray(_convert(trace), 'mo', [0, 0.9]); + }); + + it('- selection (base)', function() { + var trace = base(); + trace.selectedpoints = [1]; + + var calcTrace = pre(trace); + _assertArray(convertModule.convert(calcTrace), 'mo2', [0.2, 1, 0.2]); + + fakeSelect(calcTrace, [1, 2]); + _assertArray(convertModule.convertOnSelect(calcTrace), 'mo2', [0.2, 1, 1]); + + fakeSelect(calcTrace, []); + _assertArray(convertModule.convertOnSelect(calcTrace), 'mo2', [0.2, 0.2, 0.2]); + + calcTrace[0].trace.unselected = {marker: {opacity: 0}}; + _assertArray(convertModule.convertOnSelect(calcTrace), 'mo2', [0, 0, 0]); + + fakeSelect(calcTrace, null); + _assertScalar(convertModule.convertOnSelect(calcTrace), 1); + }); + + it('- selection of arrayOk marker.opacity', function() { + var trace = base(); + trace.marker = {opacity: [0.4, 1, 0.8]}; + trace.selectedpoints = [1]; + + var calcTrace = pre(trace); + _assertArray(convertModule.convert(calcTrace), 'mo2', [0.08, 1, 0.16]); + + fakeSelect(calcTrace, [1, 2]); + _assertArray(convertModule.convertOnSelect(calcTrace), 'mo2', [0.08, 1, 0.8]); + + calcTrace[0].trace.selected = {marker: {opacity: 1}}; + _assertArray(convertModule.convertOnSelect(calcTrace), 'mo2', [0.08, 1, 1]); + + fakeSelect(calcTrace, []); + _assertArray(convertModule.convertOnSelect(calcTrace), 'mo2', [0.08, 0.2, 0.16]); + + calcTrace[0].trace.unselected = {marker: {opacity: 0}}; + _assertArray(convertModule.convertOnSelect(calcTrace), 'mo2', [0, 0, 0]); + + fakeSelect(calcTrace, null); + _assertArray(convertModule.convertOnSelect(calcTrace), 'mo', [0.4, 1, 0.8]); + }); + }); + + describe('should fill *line-color*, *line-width* correctly', function() { + it('- base case', function() { + var trace = base(); + trace.marker = {line: {color: 'blue', width: 3}}; + + var opts = _convert(trace); + expect(opts.line.paint['line-color']).toBe('blue'); + expect(opts.line.paint['line-width']).toBe(3); + expect(extract(opts, 'mlc')).toEqual([undefined, undefined, undefined]); + expect(extract(opts, 'mlw')).toEqual([undefined, undefined, undefined]); + }); + + it('- arrayOk case', function() { + var trace = base(); + trace.marker = { + line: { + color: ['blue', 'red', 'black'], + width: [0.1, 2, 10] + } + }; + + var opts = _convert(trace); + expect(opts.line.paint['line-color']).toEqual({type: 'identity', property: 'mlc'}); + expect(opts.line.paint['line-width']).toEqual({type: 'identity', property: 'mlw'}); + expect(extract(opts, 'mlc')).toEqual(['blue', 'red', 'black']); + expect(extract(opts, 'mlw')).toEqual([0.1, 2, 10]); + }); + }); + + it('should find correct centroid (single polygon case)', function() { + var trace = base(); + + var coordsIn = [ + [ + [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], + [100.0, 1.0], [100.0, 0.0] + ] + ]; + + trace.geojson.features[0].geometry.coordinates = coordsIn; + var calcTrace = pre(trace); + var opts = convertModule.convert(calcTrace); + + expect(opts.geojson.features[0].geometry.coordinates).toBe(coordsIn); + expect(calcTrace[0].ct).toEqual([100.4, 0.4]); + }); + + it('should find correct centroid (multi-polygon case)', function() { + var trace = base(); + + var coordsIn = [ + [ + // this one has the bigger area + [[30, 20], [45, 40], [10, 40], [30, 20]] + ], + [ + [[15, 5], [40, 10], [10, 20], [5, 10], [15, 5]] + ] + ]; + + trace.geojson.features[0].geometry.type = 'MultiPolygon'; + trace.geojson.features[0].geometry.coordinates = coordsIn; + var calcTrace = pre(trace); + var opts = convertModule.convert(calcTrace); + + expect(opts.geojson.features[0].geometry.coordinates).toBe(coordsIn); + expect(calcTrace[0].ct).toEqual([28.75, 30]); + }); +}); + +describe('Test choroplethmap hover:', function() { + var gd; + + afterEach(function(done) { + Plotly.purge(gd); + destroyGraphDiv(); + setTimeout(done, 200); + }); + + function transformPlot(gd, transformString) { + gd.style.webkitTransform = transformString; + gd.style.MozTransform = transformString; + gd.style.msTransform = transformString; + gd.style.OTransform = transformString; + gd.style.transform = transformString; + } + + function run(hasCssTransform, s, done) { + gd = createGraphDiv(); + var scale = 1; + if(hasCssTransform) { + scale = 0.5; + } + + var fig = Lib.extendDeep({}, + s.mock || require('../../image/mocks/map_choropleth0.json') + ); + + if(s.patch) { + fig = s.patch(fig); + } + + if(!fig.layout) fig.layout = {}; + if(!fig.layout.map) fig.layout.map = {}; + + + var pos = s.pos || [270, 220]; + + return Plotly.newPlot(gd, fig).then(function() { + if(hasCssTransform) transformPlot(gd, 'translate(-25%, -25%) scale(0.5)'); + + var to = setTimeout(function() { + failTest('no event data received'); + done(); + }, 100); + + gd.on('plotly_hover', function(d) { + clearTimeout(to); + assertHoverLabelContent(s); + + var msg = ' - event data ' + s.desc; + var actual = d.points || []; + var exp = s.evtPts; + expect(actual.length).toBe(exp.length, 'pt length' + msg); + for(var i = 0; i < exp.length; i++) { + for(var k in exp[i]) { + var m = 'key ' + k + ' in pt ' + i + msg; + var matcher = k === 'properties' ? 'toEqual' : 'toBe'; + expect(actual[i][k])[matcher](exp[i][k], m); + } + } + + // w/o this purge gets called before + // hover throttle is complete + setTimeout(done, 0); + }); + + mouseEvent('mousemove', scale * pos[0], scale * pos[1]); + }) + .catch(failTest); + } + + var specs = [{ + desc: 'basic', + nums: '10', + name: 'NY', + evtPts: [{location: 'NY', z: 10, pointNumber: 0, curveNumber: 0, properties: {name: 'New York'}}] + }, { + desc: 'with a hovertemplate using values in *properties*', + patch: function(fig) { + fig.data.forEach(function(t) { + t.hovertemplate = '%{z:.3f}PROP::%{properties.name}'; + }); + return fig; + }, + nums: '10.000', + name: 'PROP::New York', + evtPts: [{location: 'NY', z: 10, pointNumber: 0, curveNumber: 0, properties: {name: 'New York'}}] + }, { + desc: 'with "typeof number" locations[i] and feature id (in *name* label case)', + patch: function() { + var fig = Lib.extendDeep({}, require('../../image/mocks/map_choropleth-raw-geojson.json')); + fig.data = [fig.data[1]]; + fig.data[0].locations = [100]; + fig.data[0].geojson.id = 100; + return fig; + }, + nums: '10', + name: '100', + evtPts: [{location: 100, z: 10, pointNumber: 0, curveNumber: 0}] + }, { + desc: 'with "typeof number" locations[i] and feature id (in *nums* label case)', + patch: function() { + var fig = Lib.extendDeep({}, require('../../image/mocks/map_choropleth-raw-geojson.json')); + fig.data = [fig.data[1]]; + fig.data[0].locations = [100]; + fig.data[0].geojson.id = 100; + fig.data[0].hoverinfo = 'location+name'; + return fig; + }, + nums: '100', + name: 'trace 0', + evtPts: [{location: 100, z: 10, pointNumber: 0, curveNumber: 0}] + }, { + desc: 'with "typeof number" locations[i] and feature id (hovertemplate case)', + patch: function() { + var fig = Lib.extendDeep({}, require('../../image/mocks/map_choropleth-raw-geojson.json')); + fig.data = [fig.data[1]]; + fig.data[0].locations = [100]; + fig.data[0].geojson.id = 100; + fig.data[0].hovertemplate = '### %{location}%{ct[0]:.1f} | %{ct[1]:.1f} ###'; + return fig; + }, + nums: '### 100', + name: '-86.7 | 32.0 ###', + evtPts: [{location: 100, z: 10, pointNumber: 0, curveNumber: 0}] + }]; + + specs.forEach(function(s) { + [false, true].forEach(function(hasCssTransform) { + it('@gl should generate correct hover labels ' + s.desc + ', hasCssTransform: ' + hasCssTransform, function(done) { + run(hasCssTransform, s, done); + }); + }); + }); +}); + +describe('Test choroplethmap interactions:', function() { + var gd; + + var geojson = { + type: 'Feature', + id: 'AL', + geometry: { + type: 'Polygon', + coordinates: [[ + [-87.359296, 35.00118 ], [-85.606675, 34.984749 ], [-85.431413, 34.124869 ], [-85.184951, 32.859696 ], + [-85.069935, 32.580372 ], [-84.960397, 32.421541 ], [-85.004212, 32.322956 ], [-84.889196, 32.262709 ], + [-85.058981, 32.13674 ], [-85.053504, 32.01077 ], [-85.141136, 31.840985 ], [-85.042551, 31.539753 ], + [-85.113751, 31.27686 ], [-85.004212, 31.003013 ], [-85.497137, 30.997536 ], [-87.600282, 30.997536 ], + [-87.633143, 30.86609 ], [-87.408589, 30.674397 ], [-87.446927, 30.510088 ], [-87.37025, 30.427934 ], + [-87.518128, 30.280057 ], [-87.655051, 30.247195 ], [-87.90699, 30.411504 ], [-87.934375, 30.657966 ], + [-88.011052, 30.685351 ], [-88.10416, 30.499135 ], [-88.137022, 30.318396 ], [-88.394438, 30.367688 ], + [-88.471115, 31.895754 ], [-88.241084, 33.796253 ], [-88.098683, 34.891641 ], [-88.202745, 34.995703 ], + [-87.359296, 35.00118 ] + ]] + } + }; + + beforeEach(function() { + gd = createGraphDiv(); + }); + + afterEach(function(done) { + Plotly.purge(gd); + destroyGraphDiv(); + setTimeout(done, 200); + }); + + it('@gl should be able to add and remove traces', function(done) { + function _assert(msg, exp) { + var map = gd._fullLayout.map._subplot.map; + var layers = map.getStyle().layers; + + expect(layers.length).toBe(exp.layerCnt, 'total # of layers |' + msg); + } + + var trace0 = { + type: 'choroplethmap', + locations: ['AL'], + z: [10], + geojson: geojson + }; + + var trace1 = { + type: 'choroplethmap', + locations: ['AL'], + z: [1], + geojson: geojson, + marker: {opacity: 0.3} + }; + + Plotly.newPlot(gd, + [trace0, trace1], + {map: {style: 'carto-positron'}}, + {} + ) + .then(function() { + _assert('base', { layerCnt: 97 }); + }) + .then(function() { return Plotly.deleteTraces(gd, [0]); }) + .then(function() { + _assert('w/o trace0', { layerCnt: 95 }); + }) + .then(function() { return Plotly.addTraces(gd, [trace0]); }) + .then(function() { + _assert('after adding trace0', { layerCnt: 97 }); + }) + .then(done, done.fail); + }); + + it('@gl should be able to restyle *below*', function(done) { + function getLayerIds() { + var subplot = gd._fullLayout.map._subplot; + var layers = subplot.map.getStyle().layers; + var layerIds = layers.map(function(l) { return l.id; }); + return layerIds; + } + + Plotly.newPlot(gd, [{ + type: 'choroplethmap', + locations: ['AL'], + z: [10], + geojson: geojson, + uid: 'a' + }], {}, {}) + .then(function() { + expect(getLayerIds()).withContext('default *below*').toEqual([ + 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_line', 'plotly-trace-layer-a-fill', 'plotly-trace-layer-a-line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber' + ]); + }) + .then(function() { return Plotly.restyle(gd, 'below', ''); }) + .then(function() { + expect(getLayerIds()).withContext('*below* set to \'\'').toEqual([ + 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber', 'plotly-trace-layer-a-fill', 'plotly-trace-layer-a-line' + ]); + }) + .then(function() { return Plotly.restyle(gd, 'below', 'place_label_other'); }) + .then(function() { + expect(getLayerIds()).withContext('*below* set to same base layer').toEqual([ + 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber', 'plotly-trace-layer-a-fill', 'plotly-trace-layer-a-line' + ]); + }) + .then(function() { return Plotly.restyle(gd, 'below', null); }) + .then(function() { + expect(getLayerIds()).withContext('back to default *below*').toEqual([ + 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_line', 'plotly-trace-layer-a-fill', 'plotly-trace-layer-a-line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber' + ]); + }) + .then(done, done.fail); + }, 5 * jasmine.DEFAULT_TIMEOUT_INTERVAL); +}); diff --git a/test/jasmine/tests/config_test.js b/test/jasmine/tests/config_test.js index 4c7b45919f1..1b642a80d43 100644 --- a/test/jasmine/tests/config_test.js +++ b/test/jasmine/tests/config_test.js @@ -854,9 +854,10 @@ describe('config argument', function() { it('should fill in scrollZoom default', function(done) { plot(undefined).then(function() { - expect(gd._context.scrollZoom).toBe('gl3d+geo+mapbox'); - expect(gd._context._scrollZoom).toEqual({gl3d: 1, geo: 1, mapbox: 1}); + expect(gd._context.scrollZoom).toBe('gl3d+geo+map'); + expect(gd._context._scrollZoom).toEqual({gl3d: 1, geo: 1, map: 1}); expect(gd._context._scrollZoom.cartesian).toBe(undefined, 'no cartesian!'); + expect(gd._context._scrollZoom.mapbox).toBe(undefined, 'no mapbox!'); }) .then(done, done.fail); }); @@ -864,7 +865,7 @@ describe('config argument', function() { it('should fill in blank scrollZoom value', function(done) { plot({scrollZoom: null}).then(function() { expect(gd._context.scrollZoom).toBe(null); - expect(gd._context._scrollZoom).toEqual({gl3d: 1, geo: 1, mapbox: 1}); + expect(gd._context._scrollZoom).toEqual({gl3d: 1, geo: 1, mapbox: 1, map: 1}); expect(gd._context._scrollZoom.cartesian).toBe(undefined, 'no cartesian!'); }) .then(done, done.fail); @@ -873,7 +874,7 @@ describe('config argument', function() { it('should honor scrollZoom:true', function(done) { plot({scrollZoom: true}).then(function() { expect(gd._context.scrollZoom).toBe(true); - expect(gd._context._scrollZoom).toEqual({gl3d: 1, geo: 1, cartesian: 1, mapbox: 1}); + expect(gd._context._scrollZoom).toEqual({gl3d: 1, geo: 1, cartesian: 1, mapbox: 1, map: 1}); }) .then(done, done.fail); }); @@ -886,13 +887,21 @@ describe('config argument', function() { .then(done, done.fail); }); - it('should honor scrollZoom flaglist', function(done) { + it('should honor scrollZoom flaglist (mapbox and cartesian)', function(done) { plot({scrollZoom: 'mapbox+cartesian'}).then(function() { expect(gd._context.scrollZoom).toBe('mapbox+cartesian'); expect(gd._context._scrollZoom).toEqual({mapbox: 1, cartesian: 1}); }) .then(done, done.fail); }); + + it('should honor scrollZoom flaglist (map and cartesian)', function(done) { + plot({scrollZoom: 'map+cartesian'}).then(function() { + expect(gd._context.scrollZoom).toBe('map+cartesian'); + expect(gd._context._scrollZoom).toEqual({map: 1, cartesian: 1}); + }) + .then(done, done.fail); + }); }); describe('scrollZoom interactions:', function() { diff --git a/test/jasmine/tests/densitymap_test.js b/test/jasmine/tests/densitymap_test.js new file mode 100644 index 00000000000..77366af55b2 --- /dev/null +++ b/test/jasmine/tests/densitymap_test.js @@ -0,0 +1,497 @@ +var Plotly = require('../../../lib/index'); +var Plots = require('../../../src/plots/plots'); +var Lib = require('../../../src/lib'); + +var convert = require('../../../src/traces/densitymap/convert'); + + +var createGraphDiv = require('../assets/create_graph_div'); +var destroyGraphDiv = require('../assets/destroy_graph_div'); +var failTest = require('../assets/fail_test'); +var mouseEvent = require('../assets/mouse_event'); +var supplyAllDefaults = require('../assets/supply_defaults'); + +var assertHoverLabelContent = require('../assets/custom_assertions').assertHoverLabelContent; + +describe('Test densitymap defaults:', function() { + var gd; + var fullData; + + function _supply(opts, layout) { + gd = {}; + opts = Array.isArray(opts) ? opts : [opts]; + + gd.data = opts.map(function(o) { + return Lib.extendFlat({type: 'densitymap'}, o || {}); + }); + gd.layout = layout || {}; + + supplyAllDefaults(gd); + fullData = gd._fullData; + } + + it('should set *visible:false* when *lon* and/or *lat* is missing or empty', function() { + _supply([ + {}, + {lon: [1]}, + {lat: [1]}, + {lon: [], lat: []}, + {lon: [1], lat: []}, + {lon: [], lat: [1]} + ]); + + fullData.forEach(function(trace, i) { + expect(trace.visible).toBe(false, 'visible |trace #' + i); + expect(trace._length).toBe(undefined, '_length |trace #' + i); + }); + }); +}); + +describe('Test densitymap convert:', function() { + var base = function() { + return { + lon: [10, 20, 30], + lat: [15, 25, 35], + z: [1, 20, 5], + }; + }; + + function pre(trace, layout) { + var gd = {data: [Lib.extendFlat({type: 'densitymap'}, trace)]}; + if(layout) gd.layout = layout; + + supplyAllDefaults(gd); + Plots.doCalcdata(gd, gd._fullData[0]); + + return gd.calcdata[0]; + } + + function _convert(trace) { + return convert(pre(trace)); + } + + function expectBlank(opts, msg) { + expect(opts.heatmap.layout.visibility).toBe('none', msg); + expect(opts.geojson).toEqual({type: 'Point', coordinates: []}, msg); + } + + function extract(opts, k) { + return opts.geojson.features.map(function(f) { return f.properties[k]; }); + } + + it('should return early when trace is *visible:false*', function() { + var opts = _convert(Lib.extendFlat(base(), {visible: false})); + expectBlank(opts); + }); + + it('should return early when trace is has no *_length*', function() { + var opts = _convert({ + lon: [], + lat: [], + z: [], + }); + expectBlank(opts); + }); + + describe('should fill in *z* in GeoJSON properties', function() { + function _assert(act, prop, paint) { + expect(extract(act, 'z')).toEqual(prop); + expect(act.heatmap.paint['heatmap-weight']).toEqual(paint); + } + + it('- base', function() { + var opts = _convert(base()); + _assert(opts, [1, 20, 5], [ + 'interpolate', ['linear'], + ['get', 'z'], + 1, 0, + 20, 1 + ]); + }); + + it('- with BADNUMs', function() { + var opts = _convert({ + lon: [10, null, 30, 40], + lat: [null, 25, 35, 45], + z: [1, 20, null, 10] + }); + _assert(opts, [0, 10], [ + 'interpolate', ['linear'], + ['get', 'z'], + 1, 0, + 20, 1 + ]); + }); + + it('- w/ set zmin/zmax', function() { + var opts = _convert(Lib.extendFlat({}, base(), {zmin: 0, zmax: 100})); + _assert(opts, [1, 20, 5], [ + 'interpolate', ['linear'], + ['get', 'z'], + 0, 0, + 100, 1 + ]); + }); + + it('- w/o z', function() { + var opts = _convert({ + lon: [10, 20, 30, 40], + lat: [15, 25, 35, 45], + }); + _assert(opts, [undefined, undefined, undefined, undefined], 1); + }); + }); + + describe('should fill in *radius* settings', function() { + function _assert(act, prop, paint) { + expect(extract(act, 'r')).toEqual(prop); + expect(act.heatmap.paint['heatmap-radius']).toEqual(paint); + } + + it('- base', function() { + var opts = _convert(base()); + _assert(opts, [undefined, undefined, undefined], 30); + }); + + it('- arrayOk', function() { + var opts = _convert({ + lon: [10, 20, 30, 40], + lat: [15, 25, 35, 45], + z: [1, 20, 5, 10], + radius: [20, '2', -100, 'not-gonna-work'] + }); + _assert(opts, [20, 2, 0, 0], {type: 'identity', property: 'r'}); + }); + }); + + it('should propagate the trace opacity', function() { + var opts = _convert(Lib.extendFlat({}, base(), {opacity: 0.2})); + expect(opts.heatmap.paint['heatmap-opacity']).toBe(0.2); + }); + + describe('should propagate colorscale settings', function() { + function _assert(act, exp) { + expect(act.heatmap.paint['heatmap-color']).toEqual(exp); + } + + it('- base', function() { + var opts = _convert(Lib.extendFlat(base(), { + colorscale: [ + [0, 'rgb(0, 0, 0)'], + [1, 'rgb(255, 255, 255)'] + ] + })); + _assert(opts, [ + 'interpolate', ['linear'], + ['heatmap-density'], + 0, 'rgba(0, 0, 0, 0)', + 1, 'rgb(255, 255, 255)' + ]); + }); + + it('- with rgba in colorscale[0][1]', function() { + var opts = _convert(Lib.extendFlat(base(), { + colorscale: [ + [0, 'rgba(0, 0, 0, 0.2)'], + [1, 'rgb(255, 255, 255)'] + ] + })); + _assert(opts, [ + 'interpolate', ['linear'], + ['heatmap-density'], + 0, 'rgba(0, 0, 0, 0.2)', + 1, 'rgb(255, 255, 255)' + ]); + }); + + it('- w/ reversescale:true', function() { + var opts = _convert(Lib.extendFlat(base(), { + colorscale: [ + [0, 'rgb(0, 0, 0)'], + [1, 'rgb(255, 255, 255)'] + ], + reversescale: true + })); + _assert(opts, [ + 'interpolate', ['linear'], + ['heatmap-density'], + 0, 'rgba(255, 255, 255, 0)', + 1, 'rgb(0, 0, 0)' + ]); + }); + + it('- with rgba in colorscale[0][1] and reversescale:true', function() { + var opts = _convert(Lib.extendFlat(base(), { + colorscale: [ + [0, 'rgba(0, 0, 0, 0.2)'], + [1, 'rgba(255, 255, 255, 0.2)'] + ], + reversescale: true + })); + _assert(opts, [ + 'interpolate', ['linear'], + ['heatmap-density'], + 0, 'rgba(255, 255, 255, 0.2)', + 1, 'rgba(0, 0, 0, 0.2)' + ]); + }); + }); + + it('should work with typed array', function() { + var opts = _convert({ + lon: new Float32Array([10, 20, 30]), + lat: new Float32Array([15, 25, 35]), + z: new Float32Array([1, 20, 5]), + radius: new Float32Array([30, 20, 25]) + }); + + var coords = opts.geojson.features.map(function(f) { return f.geometry.coordinates; }); + expect(coords).toEqual([ [10, 15], [20, 25], [30, 35] ]); + + expect(extract(opts, 'z')).toEqual([1, 20, 5]); + expect(extract(opts, 'r')).toEqual([30, 20, 25]); + + var paint = opts.heatmap.paint; + expect(paint['heatmap-weight']).toEqual([ + 'interpolate', ['linear'], + ['get', 'z'], + 1, 0, + 20, 1 + ]); + expect(paint['heatmap-radius']).toEqual({type: 'identity', property: 'r'}); + expect(paint['heatmap-color']).toEqual([ + 'interpolate', ['linear'], + ['heatmap-density'], + 0, 'rgba(220, 220, 220, 0)', + 0.2, 'rgb(245,195,157)', + 0.4, 'rgb(245,160,105)', + 1, 'rgb(178,10,28)' + ]); + }); +}); + +describe('Test densitymap hover:', function() { + var gd; + + afterEach(function(done) { + Plotly.purge(gd); + destroyGraphDiv(); + setTimeout(done, 200); + }); + + function run(s, done) { + gd = createGraphDiv(); + + var fig = Lib.extendDeep({}, + s.mock || require('../../image/mocks/map_density0.json') + ); + + if(s.patch) { + fig = s.patch(fig); + } + + if(!fig.layout) fig.layout = {}; + if(!fig.layout.map) fig.layout.map = {}; + + + var pos = s.pos || [353, 143]; + + return Plotly.newPlot(gd, fig).then(function() { + var to = setTimeout(function() { + failTest('no event data received'); + done(); + }, 100); + + gd.on('plotly_hover', function(d) { + clearTimeout(to); + assertHoverLabelContent(s); + + var msg = ' - event data ' + s.desc; + var actual = d.points || []; + var exp = s.evtPts; + expect(actual.length).toBe(exp.length, 'pt length' + msg); + for(var i = 0; i < exp.length; i++) { + for(var k in exp[i]) { + var m = 'key ' + k + ' in pt ' + i + msg; + var matcher = k === 'properties' ? 'toEqual' : 'toBe'; + expect(actual[i][k])[matcher](exp[i][k], m); + } + } + + // w/o this purge gets called before + // hover throttle is complete + setTimeout(done, 0); + }); + + mouseEvent('mousemove', pos[0], pos[1]); + }) + .catch(failTest); + } + + var specs = [{ + desc: 'basic', + nums: '3\n(25°, 20°)', + name: '', + evtPts: [{lon: 20, lat: 25, z: 3, pointNumber: 1, curveNumber: 0}] + }, { + desc: 'with a hovertemplate', + patch: function(fig) { + fig.data.forEach(function(t) { + t.hovertemplate = '%{z:.3f}%{lon} || %{lat}'; + }); + return fig; + }, + nums: '3.000', + name: '20 || 25', + evtPts: [{lon: 20, lat: 25, z: 3, pointNumber: 1, curveNumber: 0}] + }, { + desc: 'w/o z flag', + patch: function(fig) { + fig.data.forEach(function(t) { + t.hoverinfo = 'lon+lat+name'; + }); + return fig; + }, + nums: '(25°, 20°)', + name: 'trace 0', + evtPts: [{lon: 20, lat: 25, z: 3, pointNumber: 1, curveNumber: 0}] + }, { + desc: 'w/o z data', + patch: function(fig) { + fig.data.forEach(function(t) { + delete t.z; + }); + return fig; + }, + nums: '(25°, 20°)', + name: '', + evtPts: [{lon: 20, lat: 25, pointNumber: 1, curveNumber: 0}] + }]; + + specs.forEach(function(s) { + it('@gl should generate correct hover labels ' + s.desc, function(done) { + run(s, done); + }); + }); +}); + +describe('Test densitymap interactions:', function() { + var gd; + + beforeEach(function() { + gd = createGraphDiv(); + }); + + afterEach(function(done) { + Plotly.purge(gd); + destroyGraphDiv(); + setTimeout(done, 200); + }); + + it('@gl should be able to add and remove traces', function(done) { + function _assert(msg, exp) { + var map = gd._fullLayout.map._subplot.map; + var layers = map.getStyle().layers; + + expect(layers.length).toBe(exp.layerCnt, 'total # of layers |' + msg); + } + + var trace0 = { + type: 'densitymap', + lon: [10, 20, 30], + lat: [15, 25, 35], + z: [1, 20, 5], + }; + + var trace1 = { + type: 'densitymap', + lon: [-10, -20, -30], + lat: [15, 25, 35], + z: [1, 20, 5], + }; + + Plotly.newPlot(gd, + [trace0, trace1], + {map: {style: 'basic'}}, + {} + ) + .then(function() { + _assert('base', { layerCnt: 95 }); + }) + .then(function() { return Plotly.deleteTraces(gd, [0]); }) + .then(function() { + _assert('w/o trace0', { layerCnt: 94 }); + }) + .then(function() { return Plotly.addTraces(gd, [trace0]); }) + .then(function() { + _assert('after adding trace0', { layerCnt: 95 }); + }) + .then(done, done.fail); + }); + + it('@gl should be able to restyle *below*', function(done) { + function getLayerIds() { + var subplot = gd._fullLayout.map._subplot; + var layers = subplot.map.getStyle().layers; + var layerIds = layers.map(function(l) { return l.id; }); + return layerIds; + } + + Plotly.newPlot(gd, [{ + type: 'densitymap', + lon: [10, 20, 30], + lat: [15, 25, 35], + z: [1, 20, 5], + uid: 'a' + }], {}, {}) + .then(function() { + expect(getLayerIds()).withContext('default *below*').toEqual([ + 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'plotly-trace-layer-a-heatmap', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber' + ]); + }) + .then(function() { return Plotly.restyle(gd, 'below', ''); }) + .then(function() { + expect(getLayerIds()).withContext('default *below*').toEqual([ + 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber', 'plotly-trace-layer-a-heatmap' + ]); + }) + .then(function() { return Plotly.restyle(gd, 'below', 'place_label_other'); }) + .then(function() { + expect(getLayerIds()).withContext('default *below*').toEqual([ + 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber', 'plotly-trace-layer-a-heatmap' + ]); + }) + .then(function() { return Plotly.restyle(gd, 'below', null); }) + .then(function() { + expect(getLayerIds()).withContext('back to default *below*').toEqual([ + 'background', 'landcover', 'park_national_park', 'park_nature_reserve', 'landuse_residential', 'landuse', 'waterway', 'boundary_county', 'boundary_state', 'water', 'water_shadow', 'aeroway-runway', 'aeroway-taxiway', 'plotly-trace-layer-a-heatmap', 'waterway_label', 'tunnel_service_case', 'tunnel_minor_case', 'tunnel_sec_case', 'tunnel_pri_case', 'tunnel_trunk_case', 'tunnel_mot_case', 'tunnel_path', 'tunnel_service_fill', 'tunnel_minor_fill', 'tunnel_sec_fill', 'tunnel_pri_fill', 'tunnel_trunk_fill', 'tunnel_mot_fill', 'tunnel_rail', 'tunnel_rail_dash', 'road_service_case', 'road_minor_case', 'road_pri_case_ramp', 'road_trunk_case_ramp', 'road_mot_case_ramp', 'road_sec_case_noramp', 'road_pri_case_noramp', 'road_trunk_case_noramp', 'road_mot_case_noramp', 'road_path', 'road_service_fill', 'road_minor_fill', 'road_pri_fill_ramp', 'road_trunk_fill_ramp', 'road_mot_fill_ramp', 'road_sec_fill_noramp', 'road_pri_fill_noramp', 'road_trunk_fill_noramp', 'road_mot_fill_noramp', 'rail', 'rail_dash', 'bridge_service_case', 'bridge_minor_case', 'bridge_sec_case', 'bridge_pri_case', 'bridge_trunk_case', 'bridge_mot_case', 'bridge_path', 'bridge_service_fill', 'bridge_minor_fill', 'bridge_sec_fill', 'bridge_pri_fill', 'bridge_trunk_fill', 'bridge_mot_fill', 'building', 'building-top', 'boundary_country_outline', 'boundary_country_inner', 'watername_ocean', 'watername_sea', 'watername_lake', 'watername_lake_line', 'place_hamlet', 'place_suburbs', 'place_villages', 'place_town', 'place_country_2', 'place_country_1', 'place_state', 'place_continent', 'place_city_r6', 'place_city_r5', 'place_city_dot_r7', 'place_city_dot_r4', 'place_city_dot_r2', 'place_city_dot_z7', 'place_capital_dot_z7', 'poi_stadium', 'poi_park', 'roadname_minor', 'roadname_sec', 'roadname_pri', 'roadname_major', 'housenumber' + ]); + }) + .then(done, done.fail); + }, 5 * jasmine.DEFAULT_TIMEOUT_INTERVAL); + + it('@gl should be able to restyle from and to *scattermap*', function(done) { + function _assert(msg, exp) { + var traceHash = gd._fullLayout.map._subplot.traceHash; + expect(Object.keys(traceHash).length).toBe(1, 'one visible trace| ' + msg); + for(var k in traceHash) { + expect(traceHash[k].type).toBe(exp, 'trace type| ' + msg); + } + } + + Plotly.newPlot(gd, [{ + type: 'densitymap', + lon: [10, 20, 30], + lat: [15, 25, 35], + z: [1, 20, 5] + }], {}, { + + }) + .then(function() { _assert('after first', 'densitymap'); }) + .then(function() { return Plotly.restyle(gd, 'type', 'scattermap'); }) + .then(function() { _assert('after restyle to scattermap', 'scattermap'); }) + .then(function() { return Plotly.restyle(gd, 'type', 'densitymap'); }) + .then(function() { _assert('back to densitymap', 'densitymap'); }) + .then(done, done.fail); + }, 5 * jasmine.DEFAULT_TIMEOUT_INTERVAL); +}); diff --git a/test/jasmine/tests/draw_newselection_test.js b/test/jasmine/tests/draw_newselection_test.js index e41bf917af6..4473fe1d19a 100644 --- a/test/jasmine/tests/draw_newselection_test.js +++ b/test/jasmine/tests/draw_newselection_test.js @@ -278,9 +278,7 @@ describe('Draw new selections to layout', function() { Plotly.newPlot(gd, { data: fig.data, layout: fig.layout, - config: { - mapboxAccessToken: require('../../../build/credentials.json').MAPBOX_ACCESS_TOKEN - } + config: {} }) .then(function() { n = gd._fullLayout.selections.length; // initial number of selections on _fullLayout diff --git a/test/jasmine/tests/draw_newshape_test.js b/test/jasmine/tests/draw_newshape_test.js index 62419944a58..f0ea4d2b809 100644 --- a/test/jasmine/tests/draw_newshape_test.js +++ b/test/jasmine/tests/draw_newshape_test.js @@ -742,6 +742,70 @@ describe('Draw new shapes to layout', function() { }); } ] + }, + { + name: 'map', + json: require('../../image/mocks/map_angles'), + testPos: [ + function(pos) { + return assertPos(pos, + 'M0.2076923076923077,0.8725490196078431L0.2846153846153846,0.9705882352941176L0.33076923076923076,0.9705882352941176L0.2076923076923077,0.8725490196078431' + ); + }, + function(pos) { + return assertPos(pos, + 'M0.09230769230769231,0.9215686274509804L0.24615384615384617,0.9215686274509804L0.24615384615384617,0.7254901960784313L0.09230769230769231,0.7254901960784313Z' + ); + }, + function(pos) { + return assertPos(pos, { + x0: 0.2076923076923077, + y0: 0.7745098039215687, + x1: 0.36153846153846153, + y1: 0.5784313725490196 + }); + }, + function(pos) { + return assertPos(pos, { + x0: 0.13076923076923078, + y0: 0.8725490196078431, + x1: 0.05384615384615385, + y1: 0.9705882352941176 + }); + }, + function(pos) { + return assertPos(pos, { + x0: 0.021983572125146553, + y0: 0.6358614154536182, + x1: 0.23955488941331504, + y1: 0.9131581923895189 + }); + }, + function(pos) { + return assertPos(pos, { + x0: 0.2076923076923077, + y0: 0.6764705882352943, + x1: 0.053846153846153794, + y1: 0.872549019607843 + }); + }, + function(pos) { + return assertPos(pos, { + x0: 0.053846153846153835, + y0: 0.872549019607843, + x1: 0.2076923076923078, + y1: 0.6764705882352943 + }); + }, + function(pos) { + return assertPos(pos, { + x0: 0.1851620600912729, + y0: 0.3862943162113073, + x1: 0.07637640144718866, + y1: 1.1627252916318298 + }); + } + ] } ]; diff --git a/test/jasmine/tests/lib_test.js b/test/jasmine/tests/lib_test.js index 5d61e23f737..f24f99ffc4d 100644 --- a/test/jasmine/tests/lib_test.js +++ b/test/jasmine/tests/lib_test.js @@ -2587,7 +2587,7 @@ describe('Test lib.js:', function() { }); it('puts simple subplots in the right order', function() { - ['scene', 'geo', 'ternary', 'mapbox'].forEach(function(v) { + ['scene', 'geo', 'ternary', 'mapbox', 'map'].forEach(function(v) { var a = [v + '100', v + '43', v, v + '10', v + '2']; a.sort(Lib.subplotSort); expect(a).toEqual([v, v + '2', v + '10', v + '43', v + '100']); diff --git a/test/jasmine/tests/map_test.js b/test/jasmine/tests/map_test.js new file mode 100644 index 00000000000..614960c8451 --- /dev/null +++ b/test/jasmine/tests/map_test.js @@ -0,0 +1,1951 @@ +var Plotly = require('../../../lib/index'); +var Lib = require('../../../src/lib'); +var Fx = require('../../../src/components/fx'); + +var supplyLayoutDefaults = require('../../../src/plots/map/layout_defaults'); + +var d3Select = require('../../strict-d3').select; +var d3SelectAll = require('../../strict-d3').selectAll; +var createGraphDiv = require('../assets/create_graph_div'); +var destroyGraphDiv = require('../assets/destroy_graph_div'); +var mouseEvent = require('../assets/mouse_event'); +var click = require('../assets/click'); +var delay = require('../assets/delay'); + +var supplyAllDefaults = require('../assets/supply_defaults'); + +var customAssertions = require('../assets/custom_assertions'); +var assertHoverLabelStyle = customAssertions.assertHoverLabelStyle; +var assertHoverLabelContent = customAssertions.assertHoverLabelContent; + +var SORTED_EVENT_KEYS = [ + 'data', 'fullData', 'curveNumber', 'pointNumber', 'pointIndex', + 'lon', 'lat', + 'bbox' +].sort(); + +var TRANSITION_DELAY = 500; +var MOUSE_DELAY = 100; +var LONG_TIMEOUT_INTERVAL = 5 * jasmine.DEFAULT_TIMEOUT_INTERVAL; + +var noop = function() {}; + +Plotly.setPlotConfig({ + +}); + +describe('map defaults', function() { + var layoutIn, layoutOut, fullData; + + beforeEach(function() { + layoutOut = { font: { color: 'red' }, _subplots: {map: ['map']} }; + + // needs a map-ref in a trace in order to be detected + fullData = [{ type: 'scattermap', subplot: 'map' }]; + }); + + it('should fill empty containers', function() { + layoutIn = {}; + + supplyLayoutDefaults(layoutIn, layoutOut, fullData); + expect(layoutIn).toEqual({ map: {} }); + }); + + it('should copy ref to input container in full (for updating on map move)', function() { + var map = { style: 'light '}; + + layoutIn = { map: map }; + + supplyLayoutDefaults(layoutIn, layoutOut, fullData); + expect(layoutOut.map._input).toBe(map); + }); + + it('should accept both string and object style', function() { + var mapStyleJSON = { + id: 'cdsa213wqdsa', + owner: 'johnny' + }; + + layoutIn = { + map: { style: 'light' }, + map2: { style: mapStyleJSON } + }; + + fullData.push({ type: 'scattermap', subplot: 'map2' }); + layoutOut._subplots.map.push('map2'); + + supplyLayoutDefaults(layoutIn, layoutOut, fullData); + expect(layoutOut.map.style).toEqual('light'); + expect(layoutOut.map2.style).toBe(mapStyleJSON); + }); + + it('should fill layer containers', function() { + layoutIn = { + map: { + layers: [{}, {}] + } + }; + + supplyLayoutDefaults(layoutIn, layoutOut, fullData); + expect(layoutOut.map.layers[0].sourcetype).toEqual('geojson'); + expect(layoutOut.map.layers[1].sourcetype).toEqual('geojson'); + }); + + it('should skip over non-object layer containers', function() { + layoutIn = { + map: { + layers: [{}, null, 'remove', {}] + } + }; + + supplyLayoutDefaults(layoutIn, layoutOut, fullData); + expect(layoutOut.map.layers).toEqual([jasmine.objectContaining({ + sourcetype: 'geojson', + _index: 0 + }), jasmine.objectContaining({ + visible: false + }), jasmine.objectContaining({ + visible: false + }), jasmine.objectContaining({ + sourcetype: 'geojson', + _index: 3 + })]); + }); + + it('should coerce \'sourcelayer\' only for *vector* \'sourcetype\'', function() { + layoutIn = { + map: { + layers: [{ + sourcetype: 'vector', + sourcelayer: 'layer0' + }, { + sourcetype: 'geojson', + sourcelayer: 'layer0' + }] + } + }; + + supplyLayoutDefaults(layoutIn, layoutOut, fullData); + expect(layoutOut.map.layers[0].sourcelayer).toEqual('layer0'); + expect(layoutOut.map.layers[1].sourcelayer).toBeUndefined(); + }); + + it('should only coerce relevant layer style attributes', function() { + var base = { + line: { width: 3 }, + fill: { outlinecolor: '#d3d3d3' }, + circle: { radius: 20 }, + symbol: { icon: 'monument' } + }; + + layoutIn = { + map: { + layers: [ + Lib.extendFlat({}, base, { + type: 'line', + color: 'red' + }), + Lib.extendFlat({}, base, { + type: 'fill', + color: 'blue' + }), + Lib.extendFlat({}, base, { + type: 'circle', + color: 'green' + }), + Lib.extendFlat({}, base, { + type: 'symbol', + color: 'yellow' + }) + ] + } + }; + + supplyLayoutDefaults(layoutIn, layoutOut, fullData); + + expect(layoutOut.map.layers[0].color).toEqual('red'); + expect(layoutOut.map.layers[0].line.width).toEqual(3); + expect(layoutOut.map.layers[0].fill).toBeUndefined(); + expect(layoutOut.map.layers[0].circle).toBeUndefined(); + expect(layoutOut.map.layers[0].symbol).toBeUndefined(); + + expect(layoutOut.map.layers[1].color).toEqual('blue'); + expect(layoutOut.map.layers[1].fill.outlinecolor).toEqual('#d3d3d3'); + expect(layoutOut.map.layers[1].line).toBeUndefined(); + expect(layoutOut.map.layers[1].circle).toBeUndefined(); + expect(layoutOut.map.layers[1].symbol).toBeUndefined(); + + expect(layoutOut.map.layers[2].color).toEqual('green'); + expect(layoutOut.map.layers[2].circle.radius).toEqual(20); + expect(layoutOut.map.layers[2].line).toBeUndefined(); + expect(layoutOut.map.layers[2].fill).toBeUndefined(); + expect(layoutOut.map.layers[2].symbol).toBeUndefined(); + + expect(layoutOut.map.layers[3].color).toEqual('yellow'); + expect(layoutOut.map.layers[3].symbol.icon).toEqual('monument'); + expect(layoutOut.map.layers[3].line).toBeUndefined(); + expect(layoutOut.map.layers[3].fill).toBeUndefined(); + expect(layoutOut.map.layers[3].circle).toBeUndefined(); + }); + + it('should not allow to set layer type other than *raster* for sourcetype value *raster* and *image*', function() { + spyOn(Lib, 'log'); + + layoutIn = { + map: { + layers: [{ + sourcetype: 'raster', + source: 'url', + type: 'circle' + }, { + sourcetype: 'image', + source: 'url', + type: 'fill' + }] + } + }; + supplyLayoutDefaults(layoutIn, layoutOut, fullData); + + expect(Lib.log).toHaveBeenCalledTimes(2); + expect(Lib.log).toHaveBeenCalledWith('Source types *raster* and *image* must drawn *raster* layer type.'); + + expect(layoutOut.map.layers[0].type).toBe('raster'); + expect(layoutOut.map.layers[1].type).toBe('raster'); + }); + + it('should default layer with sourcetype *raster* and *image* to type *raster', function() { + spyOn(Lib, 'log'); + + layoutIn = { + map: { + layers: [{ + sourcetype: 'raster', + source: 'url' + }, { + sourcetype: 'image', + source: 'url' + }] + } + }; + supplyLayoutDefaults(layoutIn, layoutOut, fullData); + + expect(Lib.log).toHaveBeenCalledTimes(0); + expect(layoutOut.map.layers[0].type).toBe('raster'); + expect(layoutOut.map.layers[1].type).toBe('raster'); + }); + + it('should set *layout.dragmode* to pan while zoom is not available', function() { + var gd = { + data: fullData, + layout: {} + }; + + supplyAllDefaults(gd); + expect(gd._fullLayout.dragmode).toBe('pan'); + }); +}); + +describe('map plots', function() { + var mock = require('../../image/mocks/map_0.json'); + var gd; + + var pointPos = [579, 276]; + var blankPos = [650, 120]; + + beforeEach(function(done) { + gd = createGraphDiv(); + + var mockCopy = Lib.extendDeep({}, mock); + + Plotly.newPlot(gd, mockCopy.data, mockCopy.layout).then(done); + }); + + afterEach(function() { + Plotly.purge(gd); + destroyGraphDiv(); + }); + + it('@gl should be able to toggle trace visibility', function(done) { + var modes = ['line', 'circle']; + + expect(countVisibleTraces(gd, modes)).toEqual(2); + + Plotly.restyle(gd, 'visible', false).then(function() { + expect(gd._fullLayout.map === undefined).toBe(false); + + expect(countVisibleTraces(gd, modes)).toEqual(0); + + return Plotly.restyle(gd, 'visible', true); + }) + .then(function() { + expect(countVisibleTraces(gd, modes)).toEqual(2); + + return Plotly.restyle(gd, 'visible', 'legendonly', [1]); + }) + .then(function() { + expect(countVisibleTraces(gd, modes)).toEqual(1); + + return Plotly.restyle(gd, 'visible', true); + }) + .then(function() { + expect(countVisibleTraces(gd, modes)).toEqual(2); + + var mockCopy = Lib.extendDeep({}, mock); + mockCopy.data[0].visible = false; + + return Plotly.newPlot(gd, mockCopy.data, mockCopy.layout); + }) + .then(function() { + expect(countVisibleTraces(gd, modes)).toEqual(1); + }) + .then(done, done.fail); + }, LONG_TIMEOUT_INTERVAL); + + it('@gl should be able to delete and add traces', function(done) { + var modes = ['line', 'circle']; + + expect(countVisibleTraces(gd, modes)).toEqual(2); + + Plotly.deleteTraces(gd, [0]).then(function() { + expect(countVisibleTraces(gd, modes)).toEqual(1); + + var trace = { + type: 'scattermap', + mode: 'markers+lines', + lon: [-10, -20, -10], + lat: [-10, 20, -10] + }; + + return Plotly.addTraces(gd, [trace]); + }) + .then(function() { + expect(countVisibleTraces(gd, modes)).toEqual(2); + + var trace = { + type: 'scattermap', + mode: 'markers+lines', + lon: [10, 20, 10], + lat: [10, -20, 10] + }; + + return Plotly.addTraces(gd, [trace]); + }) + .then(function() { + expect(countVisibleTraces(gd, modes)).toEqual(3); + + return Plotly.deleteTraces(gd, [0, 1, 2]); + }) + .then(function() { + expect(gd._fullLayout.map === undefined).toBe(true); + }) + .then(done, done.fail); + }, LONG_TIMEOUT_INTERVAL); + + it('@gl should not update center while dragging', function(done) { + var map = gd._fullLayout.map._subplot.map; + spyOn(map, 'setCenter').and.callThrough(); + + var p1 = [pointPos[0] + 50, pointPos[1] - 20]; + + _mouseEvent('mousemove', pointPos, noop).then(function() { + return Plotly.relayout(gd, {'map.center': {lon: 13.5, lat: -19.5}}); + }).then(function() { + // First relayout on maplibre.center results in setCenter call + expect(map.setCenter).toHaveBeenCalledWith([13.5, -19.5]); + expect(map.setCenter).toHaveBeenCalledTimes(1); + }).then(function() { + return _mouseEvent('mousedown', pointPos, noop); + }).then(function() { + return _mouseEvent('mousemove', p1, noop); + }).then(function() { + return Plotly.relayout(gd, {'map.center': {lat: 0, lon: 0}}); + }).then(function() { + return _mouseEvent('mouseup', p1, noop); + }).then(function() { + // Second relayout on maplibre.center does not result in a setCenter + // call since map drag is underway + expect(map.setCenter).toHaveBeenCalledTimes(1); + }).then(done, done.fail); + }, LONG_TIMEOUT_INTERVAL); + + it('@gl should not update zoom while scroll wheeling', function(done) { + var map = gd._fullLayout.map._subplot.map; + spyOn(map, 'setZoom').and.callThrough(); + + _mouseEvent('mousemove', pointPos, noop).then(function() { + return Plotly.relayout(gd, {'map.zoom': 5}); + }).then(function() { + // First relayout on map.zoom results in setZoom call + expect(map.setZoom).toHaveBeenCalledWith(5); + expect(map.setZoom).toHaveBeenCalledTimes(1); + }).then(function() { + mouseEvent('scroll', pointPos[0], pointPos[1], {deltaY: -400}); + return Plotly.relayout(gd, {'map.zoom': 2}).then(function() { + // Second relayout on map.zoom does not result in setZoom + // call since a scroll wheel zoom is underway + expect(map.setZoom).toHaveBeenCalledTimes(1); + }); + }).then(done, done.fail); + }, LONG_TIMEOUT_INTERVAL); + + it('@gl should be able to restyle', function(done) { + var restyleCnt = 0; + var relayoutCnt = 0; + + gd.on('plotly_restyle', function() { + restyleCnt++; + }); + + gd.on('plotly_relayout', function() { + relayoutCnt++; + }); + + function assertMarkerColor(expectations) { + return new Promise(function(resolve) { + setTimeout(function() { + var objs = getStyle(gd, 'circle', 'circle-color'); + + expectations.forEach(function(expected, i) { + var obj = objs[i]; + var rgba = [obj.r, obj.g, obj.b, obj.a]; + expect(rgba).toBeCloseToArray(expected); + }); + + resolve(); + }, TRANSITION_DELAY); + }); + } + + assertMarkerColor([ + [0.121, 0.466, 0.705, 1], + [1, 0.498, 0.0549, 1] + ]) + .then(function() { + return Plotly.restyle(gd, 'marker.color', 'green'); + }) + .then(function() { + expect(restyleCnt).toEqual(1); + expect(relayoutCnt).toEqual(0); + + return assertMarkerColor([ + [0, 0.5019, 0, 1], + [0, 0.5019, 0, 1] + ]); + }) + .then(function() { + return Plotly.restyle(gd, 'marker.color', 'red', [1]); + }) + .then(function() { + expect(restyleCnt).toEqual(2); + expect(relayoutCnt).toEqual(0); + + return assertMarkerColor([ + [0, 0.5019, 0, 1], + [1, 0, 0, 1] + ]); + }) + .then(done, done.fail); + }, LONG_TIMEOUT_INTERVAL); + + it('@gl should be able to relayout', function(done) { + var restyleCnt = 0; + var relayoutCnt = 0; + + gd.on('plotly_restyle', function() { + restyleCnt++; + }); + + gd.on('plotly_relayout', function() { + relayoutCnt++; + }); + + function assertLayout(center, zoom, dims) { + var mapInfo = getMapInfo(gd); + + expect([mapInfo.center.lng, mapInfo.center.lat]) + .toBeCloseToArray(center); + expect(mapInfo.zoom).toBeCloseTo(zoom); + + var divStyle = mapInfo.div.style; + ['left', 'top', 'width', 'height'].forEach(function(p, i) { + expect(parseFloat(divStyle[p])).toBeWithin(dims[i], 8); + }); + } + + assertLayout([-4.710, 19.475], 1.234, [80, 100, 908, 270]); + + Plotly.relayout(gd, 'map.center', { lon: 0, lat: 0 }) + .then(function() { + expect(restyleCnt).toEqual(0); + expect(relayoutCnt).toEqual(1); + + assertLayout([0, 0], 1.234, [80, 100, 908, 270]); + + return Plotly.relayout(gd, 'map.zoom', '6'); + }) + .then(function() { + expect(restyleCnt).toEqual(0); + expect(relayoutCnt).toEqual(2); + + assertLayout([0, 0], 6, [80, 100, 908, 270]); + + return Plotly.relayout(gd, 'map.domain.x', [0, 0.5]); + }) + .then(function() { + expect(restyleCnt).toEqual(0); + expect(relayoutCnt).toEqual(3); + + assertLayout([0, 0], 6, [80, 100, 454, 270]); + + return Plotly.relayout(gd, 'map.domain.y[0]', 0.5); + }) + .then(function() { + expect(restyleCnt).toEqual(0); + expect(relayoutCnt).toEqual(4); + + assertLayout([0, 0], 6, [80, 100, 454, 135]); + }) + .then(done, done.fail); + }, LONG_TIMEOUT_INTERVAL); + + it('@gl should be able to relayout the map style', function(done) { + function assertLayout(style) { + var mapInfo = getMapInfo(gd); + expect(mapInfo.style.name).toEqual(style); + } + + assertLayout('Dark Matter'); + + Plotly.relayout(gd, 'map.style', 'carto-positron') + .then(function() { + assertLayout('Positron'); + + return Plotly.relayout(gd, 'map.style', 'carto-darkmatter'); + }) + .then(function() { + assertLayout('Dark Matter'); + }) + .then(done, done.fail); + }, LONG_TIMEOUT_INTERVAL); + + it('@gl should be able to add, update and remove layers', function(done) { + var mockWithLayers = require('../../image/mocks/map_layers'); + + var layer0 = Lib.extendDeep({}, mockWithLayers.layout.map.layers[0]); + var layer1 = Lib.extendDeep({}, mockWithLayers.layout.map.layers[0]); + layer1.type = 'line'; + + var mapUpdate = { + 'map.zoom': mockWithLayers.layout.map.zoom, + 'map.center.lon': mockWithLayers.layout.map.center.lon, + 'map.center.lat': mockWithLayers.layout.map.center.lat + }; + + var styleUpdate0 = { + 'map.layers[0].color': 'red', + 'map.layers[0].fill.outlinecolor': 'blue', + 'map.layers[0].opacity': 0.3 + }; + + var styleUpdate1 = { + 'map.layers[1].color': 'blue', + 'map.layers[1].line.width': 3, + 'map.layers[1].opacity': 0.6 + }; + + function countVisibleLayers(gd) { + var mapInfo = getMapInfo(gd); + + var sourceLen = mapInfo.layoutSources.length; + var layerLen = mapInfo.layoutLayers.length; + + if(sourceLen !== layerLen) return null; + + return layerLen; + } + + function getLayerLength(gd) { + return Lib.filterVisible(gd._fullLayout.map.layers || []).length; + } + + function assertLayerStyle(gd, expectations, index) { + var mapInfo = getMapInfo(gd); + var layers = mapInfo.layers; + var layerNames = mapInfo.layoutLayers; + + var layer = layers[layerNames[index]]; + expect(layer).toBeDefined(layerNames[index]); + + return new Promise(function(resolve) { + setTimeout(function() { + Object.keys(expectations).forEach(function(k) { + try { + var obj = layer.paint._values[k].value.value; + expect(String(obj)).toBe(String(expectations[k]), k); + } catch(e) { + fail('could not find paint values in layer'); + } + }); + resolve(); + }, TRANSITION_DELAY); + }); + } + + expect(countVisibleLayers(gd)).toEqual(0); + + Plotly.relayout(gd, 'map.layers[0]', layer0) + .then(function() { + expect(getLayerLength(gd)).toEqual(1); + expect(countVisibleLayers(gd)).toEqual(1); + + // add a new layer at the beginning + return Plotly.relayout(gd, 'map.layers[1]', layer1); + }) + .then(function() { + expect(getLayerLength(gd)).toEqual(2); + expect(countVisibleLayers(gd)).toEqual(2); + + // hide a layer + return Plotly.relayout(gd, 'map.layers[0].visible', false); + }) + .then(function() { + expect(getLayerLength(gd)).toEqual(1); + expect(countVisibleLayers(gd)).toEqual(1); + + // re-show it + return Plotly.relayout(gd, 'map.layers[0].visible', true); + }) + .then(function() { + expect(getLayerLength(gd)).toEqual(2); + expect(countVisibleLayers(gd)).toEqual(2); + + return Plotly.relayout(gd, mapUpdate); + }) + .then(function() { + expect(getLayerLength(gd)).toEqual(2); + expect(countVisibleLayers(gd)).toEqual(2); + + return Plotly.relayout(gd, styleUpdate0); + }) + .then(function() { + expect(getLayerLength(gd)).toEqual(2); + expect(countVisibleLayers(gd)).toEqual(2); + + return assertLayerStyle(gd, { + 'fill-color': 'rgba(255,0,0,1)', + 'fill-outline-color': 'rgba(0,0,255,1)', + 'fill-opacity': 0.3 + }, 0); + }) + .then(function() { + expect(getLayerLength(gd)).toEqual(2); + expect(countVisibleLayers(gd)).toEqual(2); + + return Plotly.relayout(gd, styleUpdate1); + }) + .then(function() { + expect(getLayerLength(gd)).toEqual(2); + expect(countVisibleLayers(gd)).toEqual(2); + + return assertLayerStyle(gd, { + 'line-width': 3, + 'line-color': 'rgba(0,0,255,1)', + 'line-opacity': 0.6 + }, 1); + }) + .then(function() { + expect(getLayerLength(gd)).toEqual(2); + expect(countVisibleLayers(gd)).toEqual(2); + + // delete the first layer + return Plotly.relayout(gd, 'map.layers[0]', null); + }) + .then(function() { + expect(getLayerLength(gd)).toEqual(1); + expect(countVisibleLayers(gd)).toEqual(1); + + return Plotly.relayout(gd, 'map.layers[0]', null); + }) + .then(function() { + expect(getLayerLength(gd)).toEqual(0); + expect(countVisibleLayers(gd)).toEqual(0); + + return Plotly.relayout(gd, 'map.layers[0]', {}); + }) + .then(function() { + expect(gd.layout.map.layers).toEqual([{}]); + expect(countVisibleLayers(gd)).toEqual(0); + + // layer with no source are not drawn + + return Plotly.relayout(gd, 'map.layers[0].source', layer0.source); + }) + .then(function() { + expect(getLayerLength(gd)).toEqual(1); + expect(countVisibleLayers(gd)).toEqual(1); + }) + .then(done, done.fail); + }, LONG_TIMEOUT_INTERVAL); + + it('@gl should be able to update layer image', function(done) { + var coords = [ + [-80.425, 46.437], + [-71.516, 46.437], + [-71.516, 37.936], + [-80.425, 37.936] + ]; + function makeFigure(source) { + return { + data: [{type: 'scattermap'}], + layout: { + map: { + layers: [{ + sourcetype: 'raster', + source: ['https://a.tile.openstreetmap.org/{z}/{x}/{y}.png'], + below: 'traces', + }, { + sourcetype: 'image', + coordinates: coords, + source: source, + below: 'traces', + }], + } + } + }; + } + + var map = null; + var layerSource = null; + + // Single pixel PNGs generated with http://png-pixel.com/ + var prefix = 'data:image/png;base64,'; + var redImage = prefix + 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42m' + + 'P8z8DwHwAFBQIAX8jx0gAAAABJRU5ErkJggg=='; + var greenImage = prefix + 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42m' + + 'Nk+M/wHwAEBgIApD5fRAAAAABJRU5ErkJggg=='; + + Plotly.react(gd, makeFigure(redImage)).then(function() { + var _map = gd._fullLayout.map._subplot; + map = _map.map; + layerSource = map.getSource(_map.layerList[1].idSource); + + spyOn(layerSource, 'updateImage').and.callThrough(); + spyOn(map, 'removeSource').and.callThrough(); + return Plotly.react(gd, makeFigure(greenImage)); + }) + .then(function() { + expect(layerSource.updateImage).toHaveBeenCalledWith( + {url: greenImage, coordinates: coords} + ); + expect(map.removeSource).not.toHaveBeenCalled(); + + // Check order of layers + var _map = gd._fullLayout.map._subplot; + var mapLayers = _map.getMapLayers(); + var plotlyjsLayers = _map.layerList; + + var indexLower = mapLayers.findIndex(function(layer) { + return layer.id === 'plotly-layout-layer-' + plotlyjsLayers[0].uid; + }); + + var indexUpper = mapLayers.findIndex(function(layer) { + return layer.id === 'plotly-layout-layer-' + plotlyjsLayers[1].uid; + }); + + expect(indexLower).toBeGreaterThan(-1); + expect(indexUpper).toBeGreaterThan(0); + expect(indexUpper).toBe(indexLower + 1); + }) + .then(done, done.fail); + }, LONG_TIMEOUT_INTERVAL); + + it('@gl should be able to react to layer changes', function(done) { + function makeFigure(color) { + return { + data: [{type: 'scattermap'}], + layout: { + map: { + layers: [{ + color: color, + sourcetype: 'geojson', + type: 'fill', + source: { + type: 'Feature', + properties: {}, + geometry: { + type: 'Polygon', + coordinates: [[ + [174.7447586059570, -36.86533886128865], + [174.7773742675781, -36.86533886128865], + [174.7773742675781, -36.84913134182603], + [174.7447586059570, -36.84913134182603], + [174.7447586059570, -36.86533886128865] + ]] + } + } + }] + } + } + }; + } + + function _assert(color) { + var mapInfo = getMapInfo(gd); + var layer = mapInfo.layers[mapInfo.layoutLayers[0]]; + + expect(mapInfo.layoutLayers.length).toBe(1, 'one layer'); + expect(mapInfo.layoutSources.length).toBe(1, 'one layer source'); + expect(String(layer.paint._values['fill-color'].value.value)).toBe(color, 'layer color'); + } + + // TODO + // this one now logs: + // 'Unable to perform style diff: Unimplemented: setSprite, setLayerProperty.. Rebuilding the style from scratch.' + // github.com/mapbox/mapbox-gl-js/issues/6933/ + + Plotly.react(gd, makeFigure('blue')).then(function() { + _assert('rgba(0,0,255,1)'); + return Plotly.react(gd, makeFigure('red')); + }) + .then(function() { + _assert('rgba(255,0,0,1)'); + }) + .then(done, done.fail); + }, LONG_TIMEOUT_INTERVAL); + + it('@gl should not wedge graph after reacting to invalid layer', function(done) { + Plotly.react(gd, [{type: 'scattermap'}], { + map: { + layers: [{ source: 'invalid' }] + } + }) + .then(function() { + fail('The above Plotly.react promise should be rejected'); + }) + .catch(function() { + expect(gd._promises.length).toBe(1, 'has 1 rejected promise in queue'); + }) + .then(function() { + return Plotly.react(gd, [{type: 'scattermap'}], { + map: { + layers: [{ + source: { + name: 'LIMADMIN', + type: 'FeatureCollection', + features: [] + }, + type: 'fill', + below: 'water', + color: '#ece2f0', + opacity: 0.8 + }] + } + }); + }) + .then(function() { + expect(gd._promises.length).toBe(0, 'rejected promise has been cleared'); + + var mapInfo = getMapInfo(gd); + expect(mapInfo.layoutLayers.length).toBe(1, 'one layer'); + expect(mapInfo.layoutSources.length).toBe(1, 'one layer source'); + }) + .then(done, done.fail); + }, LONG_TIMEOUT_INTERVAL); + + it('@gl should not attempt to remove non-existing layer sources', function(done) { + function _assert(msg, exp) { + return function() { + var layerList = gd._fullLayout.map._subplot.layerList; + expect(layerList.length).toBe(exp, msg); + }; + } + + Plotly.react(gd, [{type: 'scattermap'}], { + map: { layers: [{}] } + }) + .then(_assert('1 visible:false layer', 1)) + .then(function() { + return Plotly.react(gd, [{type: 'scattermap'}], { + map: { layers: [] } + }); + }) + .then(_assert('no layers', 0)) + .then(done, done.fail); + }, LONG_TIMEOUT_INTERVAL); + + it('@gl should validate layout layer input', function(done) { + Plotly.newPlot(gd, [{type: 'scattermap'}], { + map: { + layers: [{ + sourcetype: 'raster', + source: [''] + }] + } + }) + .then(function() { + var mapInfo = getMapInfo(gd); + expect(mapInfo.layoutLayers.length).toBe(0, 'no on-map layer'); + expect(mapInfo.layoutSources.length).toBe(0, 'no map source'); + }) + .then(done, done.fail); + }, LONG_TIMEOUT_INTERVAL); + + + it('@gl should be able to update traces', function(done) { + function assertDataPts(lengths) { + var lines = getGeoJsonData(gd, 'lines'); + var markers = getGeoJsonData(gd, 'markers'); + + lines.forEach(function(obj, i) { + expect(obj.coordinates[0].length).toEqual(lengths[i]); + }); + + markers.forEach(function(obj, i) { + expect(obj.features.length).toEqual(lengths[i]); + }); + } + + assertDataPts([3, 3]); + + var update = { + lon: [[10, 20]], + lat: [[-45, -20]] + }; + + Plotly.restyle(gd, update, [1]).then(function() { + assertDataPts([3, 2]); + + var update = { + lon: [ [10, 20], [30, 40, 20] ], + lat: [ [-10, 20], [10, 20, 30] ] + }; + + return Plotly.extendTraces(gd, update, [0, 1]); + }) + .then(function() { + assertDataPts([5, 5]); + }) + .then(done, done.fail); + }, LONG_TIMEOUT_INTERVAL); + + it('@gl should display to hover labels on mouse over', function(done) { + function assertMouseMove(pos, len) { + return _mouseEvent('mousemove', pos, function() { + var hoverLabels = d3Select('.hoverlayer').selectAll('g'); + + expect(hoverLabels.size()).toEqual(len); + }); + } + + assertMouseMove(blankPos, 0).then(function() { + return assertMouseMove(pointPos, 1); + }) + .then(function() { + return Plotly.restyle(gd, { + 'hoverlabel.bgcolor': 'yellow', + 'hoverlabel.font.size': [[20, 10, 30]] + }); + }) + .then(function() { + return assertMouseMove(pointPos, 1); + }) + .then(function() { + assertHoverLabelStyle(d3Select('g.hovertext'), { + bgcolor: 'rgb(255, 255, 0)', + bordercolor: 'rgb(68, 68, 68)', + fontSize: 20, + fontFamily: 'Arial', + fontColor: 'rgb(68, 68, 68)' + }); + assertHoverLabelContent({ + nums: '(10°, 10°)', + name: 'trace 0' + }); + }) + .then(done, done.fail); + }, LONG_TIMEOUT_INTERVAL); + + it('@gl should respond to hover interactions by', function(done) { + var hoverCnt = 0; + var unhoverCnt = 0; + + var hoverData, unhoverData; + + gd.on('plotly_hover', function(eventData) { + hoverCnt++; + hoverData = eventData.points[0]; + }); + + gd.on('plotly_unhover', function(eventData) { + unhoverCnt++; + unhoverData = eventData.points[0]; + }); + + _mouseEvent('mousemove', blankPos, function() { + expect(hoverData).toBe(undefined, 'not firing on blank points'); + expect(unhoverData).toBe(undefined, 'not firing on blank points'); + }) + .then(function() { + return _mouseEvent('mousemove', pointPos, function() { + expect(hoverData).not.toBe(undefined, 'firing on data points'); + expect(Object.keys(hoverData).sort()).toEqual(SORTED_EVENT_KEYS, 'returning the correct event data keys'); + expect(hoverData.curveNumber).toEqual(0, 'returning the correct curve number'); + expect(hoverData.pointNumber).toEqual(0, 'returning the correct point number'); + }); + }) + .then(function() { + return _mouseEvent('mousemove', blankPos, function() { + expect(unhoverData).not.toBe(undefined, 'firing on data points'); + expect(Object.keys(unhoverData).sort()).toEqual(SORTED_EVENT_KEYS, 'returning the correct event data keys'); + expect(unhoverData.curveNumber).toEqual(0, 'returning the correct curve number'); + expect(unhoverData.pointNumber).toEqual(0, 'returning the correct point number'); + }); + }) + .then(function() { + expect(hoverCnt).toEqual(1); + expect(unhoverCnt).toEqual(1); + }) + .then(done, done.fail); + }, LONG_TIMEOUT_INTERVAL); + + it('@gl should not attempt to rehover over exiting subplots', function(done) { + spyOn(Fx, 'hover').and.callThrough(); + + function countHoverLabels() { + return d3Select('.hoverlayer').selectAll('g').size(); + } + + Promise.resolve() + .then(function() { + return _mouseEvent('mousemove', pointPos, function() { + expect(countHoverLabels()).toEqual(1); + expect(Fx.hover).toHaveBeenCalledTimes(1); + expect(Fx.hover.calls.argsFor(0)[2]).toBe('map'); + Fx.hover.calls.reset(); + }); + }) + .then(function() { return Plotly.deleteTraces(gd, [0, 1]); }) + .then(delay(10)) + .then(function() { + return _mouseEvent('mousemove', pointPos, function() { + expect(countHoverLabels()).toEqual(0); + // N.B. no additional calls from Plots.rehover() + // (as 'map' subplot is gone), + // just one on the fallback xy subplot + expect(Fx.hover).toHaveBeenCalledTimes(1); + expect(Fx.hover.calls.argsFor(0)[2]).toBe('xy'); + }); + }) + .then(done, done.fail); + }, LONG_TIMEOUT_INTERVAL); + + it('@noCI @gl should respond drag / scroll / double-click interactions', function(done) { + var relayoutCnt = 0; + var doubleClickCnt = 0; + var relayoutingCnt = 0; + var evtData; + + gd.on('plotly_relayout', function(d) { + relayoutCnt++; + evtData = d; + }); + + gd.on('plotly_relayouting', function() { + relayoutingCnt++; + }); + + gd.on('plotly_doubleclick', function() { + doubleClickCnt++; + }); + + function _scroll(p) { + return new Promise(function(resolve) { + mouseEvent('mousemove', p[0], p[1]); + mouseEvent('scroll', p[0], p[1], {deltaY: -400}); + setTimeout(resolve, 1000); + }); + } + + function _assertLayout(center, zoom) { + var mapInfo = getMapInfo(gd); + var layout = gd.layout.map; + + expect([mapInfo.center.lng, mapInfo.center.lat]).toBeCloseToArray(center); + expect(mapInfo.zoom).toBeCloseTo(zoom); + + expect([layout.center.lon, layout.center.lat]).toBeCloseToArray(center); + expect(layout.zoom).toBeCloseTo(zoom); + } + + function _assert(center, zoom, lon0, lat0, lon1, lat1) { + _assertLayout(center, zoom); + + expect([evtData['map.center'].lon, evtData['map.center'].lat]).toBeCloseToArray(center); + expect(evtData['map.zoom']).toBeCloseTo(zoom); + expect(Object.keys(evtData['map._derived'])).toEqual(['coordinates']); + expect(evtData['map._derived'].coordinates).toBeCloseTo2DArray([ + [lon0, lat1], + [lon1, lat1], + [lon1, lat0], + [lon0, lat0] + ], -0.1); + } + + _assertLayout([-4.710, 19.475], 1.234); + + var p1 = [pointPos[0] + 50, pointPos[1] - 20]; + + _drag(pointPos, p1, function() { + expect(relayoutCnt).toBe(1, 'relayout cnt'); + expect(relayoutingCnt).toBe(1, 'relayouting cnt'); + expect(doubleClickCnt).toBe(0, 'double click cnt'); + _assert([-19.651, 13.751], 1.234, + -155.15981291032617, -25.560300274373148, + 115.85734493011842, 47.573988219006424); + + return _doubleClick(p1); + }) + .then(function() { + expect(relayoutCnt).toBe(2, 'relayout cnt'); + expect(relayoutingCnt).toBe(1, 'relayouting cnt'); + expect(doubleClickCnt).toBe(1, 'double click cnt'); + _assert([-4.710, 19.475], 1.234, + -140.21950652441467, -20.054298691163496, + 130.79765131602989, 51.4513888208798); + + return _scroll(pointPos); + }) + .then(function() { + expect(relayoutCnt).toBe(3, 'relayout cnt'); + expect(relayoutingCnt).toBeCloseTo(11, -1, 'relayouting cnt'); + expect(doubleClickCnt).toBe(1, 'double click cnt'); + expect(getMapInfo(gd).zoom).toBeGreaterThan(1.234); + }) + .then(done, done.fail); + }, LONG_TIMEOUT_INTERVAL); + + it('@gl should respond to click interactions by', function(done) { + var ptData; + + gd.on('plotly_click', function(eventData) { + ptData = eventData.points[0]; + }); + + Promise.resolve() + .then(function() { return click(blankPos[0], blankPos[1]); }) + .then(delay(100)) + .then(function() { + expect(ptData).toBe(undefined, 'not firing on blank points'); + }) + .then(delay(100)) + .then(function() { return click(pointPos[0], pointPos[1]); }) + .then(function() { + expect(ptData).not.toBe(undefined, 'firing on data points'); + expect(Object.keys(ptData).sort()).toEqual(SORTED_EVENT_KEYS, 'returning the correct event data keys'); + expect(ptData.curveNumber).toEqual(0, 'returning the correct curve number'); + expect(ptData.pointNumber).toEqual(0, 'returning the correct point number'); + }) + .then(done, done.fail); + }, LONG_TIMEOUT_INTERVAL); + + it('@noCI @gl should respect scrollZoom config option', function(done) { + var mockCopy2 = Lib.extendDeep({}, mock); + mockCopy2.config = {scrollZoom: false}; + var relayoutCnt = 0; + var addOnGd = function() { + gd.on('plotly_relayout', function() { relayoutCnt++; }); + }; + + function _scroll() { + relayoutCnt = 0; + return new Promise(function(resolve) { + mouseEvent('mousemove', pointPos[0], pointPos[1]); + mouseEvent('scroll', pointPos[0], pointPos[1], {deltaY: -400}); + setTimeout(resolve, 500); + }); + } + + var zoom = getMapInfo(gd).zoom; + expect(zoom).toBeCloseTo(1.234); + var zoom0 = zoom; + + addOnGd(); + + _scroll().then(function() { + expect(relayoutCnt).toBe(1, 'scroll relayout cnt'); + + var zoomNew = getMapInfo(gd).zoom; + expect(zoomNew).toBeGreaterThan(zoom); + zoom = zoomNew; + }) + .then(function() { return Plotly.newPlot(gd, gd.data, gd.layout, {scrollZoom: false}); }) + .then(addOnGd) + .then(_scroll) + .then(function() { + expect(relayoutCnt).toBe(0, 'no additional relayout call'); + + var zoomNew = getMapInfo(gd).zoom; + expect(zoomNew).toBe(zoom); + zoom = zoomNew; + }) + .then(function() { return Plotly.newPlot(gd, gd.data, gd.layout, {scrollZoom: true}); }) + .then(addOnGd) + .then(_scroll) + .then(function() { + expect(relayoutCnt).toBe(1, 'scroll relayout cnt'); + + var zoomNew = getMapInfo(gd).zoom; + expect(zoomNew).toBeGreaterThan(zoom); + }) + .then(function() { return Plotly.newPlot(gd, mockCopy2); }) + .then(addOnGd) + .then(_scroll) + .then(function() { + // see https://github.com/plotly/plotly.js/issues/3738 + var zoomNew = getMapInfo(gd).zoom; + expect(zoomNew).toBe(zoom0); + }) + .then(done, done.fail); + }, LONG_TIMEOUT_INTERVAL); + + describe('attributions', function() { + function assertLinks(s, exp) { + var elements = s[0][0].getElementsByTagName('a'); + expect(elements.length).toEqual(exp.length); + for(var i = 0; i < elements.length; i++) { + var e = elements[i]; + expect(e.href).toEqual(exp[i]); + expect(e.target).toEqual('_blank'); + } + } + + it('@gl should be displayed for style "Carto"', function(done) { + Plotly.newPlot(gd, [{type: 'scattermap'}], {map: {style: 'carto-darkmatter'}}) + .then(function() { + var s = d3SelectAll('.maplibregl-ctrl-attrib'); + expect(s.size()).toBe(1); + expect(s.text()).toEqual('© CARTO, © OpenStreetMap contributors'); + assertLinks(s, [ + 'https://carto.com/about-carto/', + 'http://www.openstreetmap.org/about/' + ]); + }) + .then(done, done.fail); + }); + + ['stamen-terrain', 'stamen-toner'].forEach(function(style) { + it('@noCI @gl should be displayed for style "' + style + '"', function(done) { + Plotly.newPlot(gd, [{type: 'scattermap'}], {map: {style: style}}) + .then(function() { + var s = d3SelectAll('.maplibregl-ctrl-attrib'); + expect(s.size()).toBe(1); + expect(s.text()).toEqual('Map tiles by Stamen Design under CC BY 3.0 | Data by OpenStreetMap contributors under ODbL'); + assertLinks(s, [ + 'https://stamen.com/', + 'https://creativecommons.org/licenses/by/3.0', + 'https://openstreetmap.org/', + 'https://www.openstreetmap.org/copyright' + ]); + }) + .then(done, done.fail); + }); + }); + + it('@noCI @gl should be displayed for style "stamen-watercolor"', function(done) { + Plotly.newPlot(gd, [{type: 'scattermap'}], {map: {style: 'stamen-watercolor'}}) + .then(function() { + var s = d3SelectAll('.maplibregl-ctrl-attrib'); + expect(s.size()).toBe(1); + expect(s.text()).toEqual('Map tiles by Stamen Design under CC BY 3.0 | Data by OpenStreetMap contributors under CC BY SA'); + assertLinks(s, [ + 'https://stamen.com/', + 'https://creativecommons.org/licenses/by/3.0', + 'https://openstreetmap.org/', + 'https://creativecommons.org/licenses/by-sa/3.0' + ]); + }) + .then(done, done.fail); + }); + + it('@gl should be displayed for style "open-street-map"', function(done) { + Plotly.newPlot(gd, [{type: 'scattermap'}], {map: {style: 'open-street-map'}}) + .then(function() { + var s = d3SelectAll('.maplibregl-ctrl-attrib'); + expect(s.size()).toBe(1); + expect(s.text()).toEqual('© OpenStreetMap contributors'); + assertLinks(s, [ + 'https://www.openstreetmap.org/copyright' + ]); + }) + .then(done, done.fail); + }); + + it('@gl should be displayed for style (basic)', function(done) { + Plotly.newPlot(gd, [{type: 'scattermap'}], {map: {style: 'basic'}}) + .then(function() { + var s = d3SelectAll('.maplibregl-ctrl-attrib'); + expect(s.size()).toBe(1); + expect(s.text()).toEqual('© CARTO, © OpenStreetMap contributors'); + assertLinks(s, [ + 'https://carto.com/about-carto/', + 'http://www.openstreetmap.org/about/', + ]); + }) + .then(done, done.fail); + }); + + function mockLayoutCustomStyle() { + return { + map: { + style: { + id: 'osm', + version: 8, + sources: { + 'simple-tiles': { + type: 'raster', + tiles: [ + 'https://a.tile.openstreetmap.org/{z}/{x}/{y}.png', + 'https://b.tile.openstreetmap.org/{z}/{x}/{y}.png' + ], + tileSize: 256 + } + }, + layers: [ + { + id: 'simple-tiles', + type: 'raster', + source: 'simple-tiles', + minzoom: 0, + maxzoom: 22 + } + ] + } + } + }; + } + + it('@gl should not be displayed for custom style without attribution', function(done) { + Plotly.newPlot(gd, [{type: 'scattermap'}], mockLayoutCustomStyle()) + .then(function() { + var s = d3SelectAll('.maplibregl-ctrl-attrib'); + expect(s.size()).toBe(1); + expect(s.text()).toEqual(''); + }) + .then(done, done.fail); + }); + + it('@gl should be displayed for custom style with attribution', function(done) { + var attr = 'custom attribution'; + var layout = mockLayoutCustomStyle(); + layout.map.style.sources['simple-tiles'].attribution = attr; + Plotly.newPlot(gd, [{type: 'scattermap'}], layout) + .then(function() { + var s = d3SelectAll('.maplibregl-ctrl-attrib'); + expect(s.size()).toBe(1); + expect(s.text()).toEqual(attr); + }) + .then(done, done.fail); + }); + + it('@gl should be displayed for attributions defined in layers\' sourceattribution', function(done) { + var mock = require('../../image/mocks/map_layers.json'); + var customMock = Lib.extendDeep(mock); + + var attr = 'custom attribution'; + var XSS = ''; + customMock.data.pop(); + customMock.layout.map.layers[0].sourceattribution = XSS + attr; + + Plotly.newPlot(gd, customMock) + .then(function() { + var s = d3SelectAll('.maplibregl-ctrl-attrib'); + expect(s.size()).toBe(1); + expect(s.text()).toEqual([XSS + attr, '© CARTO, © OpenStreetMap contributors'].join(' | ')); + expect(s.html().indexOf('')).toBe(-1); + expect(s.html().indexOf('<img src=x onerror="alert(XSS);">')).not.toBe(-1); + }) + .then(done, done.fail); + }); + }); + + function countVisibleTraces(gd, modes) { + var mapInfo = getMapInfo(gd); + var cnts = []; + + // 'modes' are the ScatterMap layers names + // e.g. 'fill', 'line', 'circle', 'symbol' + + modes.forEach(function(mode) { + var cntPerMode = 0; + + mapInfo.traceLayers.forEach(function(l) { + var info = mapInfo.layers[l]; + + if(l.indexOf(mode) === -1) return; + if(info.visibility === 'visible') cntPerMode++; + }); + + cnts.push(cntPerMode); + }); + + var cnt = cnts.reduce(function(a, b) { + return (a === b) ? a : null; + }); + + // returns null if not all counter per mode are the same, + // returns the counter if all are the same. + + return cnt; + } + + function getStyle(gd, mode, prop) { + var mapInfo = getMapInfo(gd); + var values = []; + + mapInfo.traceLayers.forEach(function(l) { + var info = mapInfo.layers[l]; + + if(l.indexOf(mode) === -1) return; + + values.push(info.paint._values[prop].value.value); + }); + + return values; + } + + function getGeoJsonData(gd, mode) { + var mapInfo = getMapInfo(gd); + var out = []; + + mapInfo.traceSources.forEach(function(s) { + var info = mapInfo.sources[s]; + + if(s.indexOf(mode) === -1) return; + + out.push(info._data); + }); + + return out; + } + + function _mouseEvent(type, pos, cb) { + return new Promise(function(resolve) { + mouseEvent(type, pos[0], pos[1], { + buttons: 1 // left button + }); + + setTimeout(function() { + cb(); + resolve(); + }, MOUSE_DELAY); + }); + } + + function _doubleClick(pos) { + return _mouseEvent('dblclick', pos, noop); + } + + function _drag(p0, p1, cb) { + var promise = _mouseEvent('mousemove', p0, noop).then(function() { + return _mouseEvent('mousedown', p0, noop); + }).then(function() { + return _mouseEvent('mousemove', p1, noop); + }).then(function() { + // repeat mousemove to simulate long dragging motion + return _mouseEvent('mousemove', p1, noop); + }).then(function() { + return _mouseEvent('mouseup', p1, noop); + }).then(function() { + return _mouseEvent('mouseup', p1, noop); + }).then(cb); + + return promise; + } +}); + +describe('map react', function() { + var gd; + + beforeEach(function() { + gd = createGraphDiv(); + }); + + afterEach(function() { + Plotly.purge(gd); + destroyGraphDiv(); + }); + + it('@gl should be able to react to new tiles', function(done) { + function assertTile(link) { + var mapInfo = getMapInfo(gd); + expect(mapInfo.style.sources.REF.tiles[0]).toEqual(link); + } + + var firstLink = 'https://a.tile.openstreetmap.org/{z}/{x}/{y}.png'; + var secondLink = 'https://a.tile.stamen.com/watercolor/{z}/{x}/{y}.jpg'; + + var fig = { + data: [ + { + type: 'scattermap', + lon: [10, 20], + lat: [20, 10] + } + ], + layout: { + map: { + style: { + version: 8, + sources: { + REF: { + type: 'raster', + tileSize: 256, + tiles: [firstLink] + } + }, + layers: [{ + id: 'REF', + source: 'REF', + type: 'raster' + }], + } + } + } + }; + + Plotly.newPlot(gd, fig) + .then(function() { + assertTile(firstLink); + + // copy figure + var newFig = JSON.parse(JSON.stringify(fig)); + + // new figure + newFig.layout.map.style.sources = { + REF: { + type: 'raster', + tileSize: 256, + tiles: [secondLink] + } + }; + + // update + Plotly.react(gd, newFig); + }) + .then(function() { + assertTile(secondLink); + }) + .then(done, done.fail); + }, LONG_TIMEOUT_INTERVAL); +}); + +describe('test map trace/layout *below* interactions', function() { + var gd; + + beforeEach(function() { + gd = createGraphDiv(); + }); + + afterEach(function(done) { + Plotly.purge(gd); + destroyGraphDiv(); + setTimeout(done, 200); + }); + + function getLayerIds() { + var subplot = gd._fullLayout.map._subplot; + var layers = subplot.map.getStyle().layers; + var layerIds = layers.map(function(l) { return l.id; }); + return layerIds; + } + + it('@gl should be able to update *below* - scattermap + layout layer case', function(done) { + function _assert(msg, exp) { + var layersIds = getLayerIds(); + var tracePrefix = 'plotly-trace-layer-' + gd._fullData[0].uid; + + expect(layersIds.indexOf(tracePrefix + '-fill')).toBe(exp.trace[0], msg + '| fill'); + expect(layersIds.indexOf(tracePrefix + '-line')).toBe(exp.trace[1], msg + '| line'); + expect(layersIds.indexOf(tracePrefix + '-circle')).toBe(exp.trace[2], msg + '| circle'); + expect(layersIds.indexOf(tracePrefix + '-symbol')).toBe(exp.trace[3], msg + '| symbol'); + + var layoutLayerId = ['plotly-layout-layer', gd._fullLayout._uid, 'map-0'].join('-'); + expect(layersIds.indexOf(layoutLayerId)).toBe(exp.layout, msg + '| layout layer'); + } + + Plotly.newPlot(gd, [{ + type: 'scattermap', + lon: [10, 20, 30], + lat: [15, 25, 35], + uid: 'a' + }], { + map: { + style: 'basic', + layers: [{ + source: { + name: 'LIMADMIN', + type: 'FeatureCollection', + features: [] + }, + type: 'fill', + below: 'water', + color: '#ece2f0', + opacity: 0.8 + }] + } + }) + .then(function() { + _assert('default *below*', { + trace: [94, 95, 96, 97], + layout: 9 + }); + }) + .then(function() { return Plotly.relayout(gd, 'map.layers[0].below', 'traces'); }) + .then(function() { + _assert('with layout layer *below:traces*', { + trace: [94, 95, 96, 97], + layout: 93 + }); + }) + .then(function() { return Plotly.relayout(gd, 'map.layers[0].below', null); }) + .then(function() { + _assert('back to default *below* (1)', { + trace: [93, 94, 95, 96], + layout: 97 + }); + }) + .then(function() { return Plotly.restyle(gd, 'below', ''); }) + .then(function() { + _assert('with trace *below:""*', { + trace: [94, 95, 96, 97], + layout: 93 + }); + }) + .then(function() { return Plotly.restyle(gd, 'below', null); }) + .then(function() { + _assert('back to default *below* (2)', { + trace: [93, 94, 95, 96], + layout: 97 + }); + }) + .then(function() { return Plotly.restyle(gd, 'below', 'water'); }) + .then(function() { + _assert('with trace *below:water*', { + trace: [9, 10, 11, 12], + layout: 97 + }); + }) + .then(function() { return Plotly.relayout(gd, 'map.layers[0].below', 'water'); }) + .then(function() { + _assert('with trace AND layout layer *below:water*', { + trace: [9, 10, 11, 12], + layout: 13 + }); + }) + .then(function() { return Plotly.relayout(gd, 'map.layers[0].below', ''); }) + .then(function() { + _assert('with trace *below:water* and layout layer *below:""*', { + trace: [9, 10, 11, 12], + layout: 97 + }); + }) + .then(function() { return Plotly.restyle(gd, 'below', ''); }) + .then(function() { + _assert('with trace AND layout layer *below:water*', { + trace: [93, 94, 95, 96], + layout: 97 + }); + }) + .then(function() { return Plotly.update(gd, {below: null}, {'map.layers[0].below': null}); }) + .then(function() { + _assert('back to default *below* (3)', { + trace: [93, 94, 95, 96], + layout: 97 + }); + }) + .then(done, done.fail); + }, 8 * jasmine.DEFAULT_TIMEOUT_INTERVAL); + + it('@gl should be able to update *below* - scattermap + choroplethmap + densitymap case', function(done) { + function _assert(msg, exp) { + var layersIds = getLayerIds(); + var tracePrefix = 'plotly-trace-layer-'; + + var scatterPrefix = tracePrefix + 'scatter'; + expect(layersIds.indexOf(scatterPrefix + '-fill')).toBe(exp.scatter[0], msg + '| scatter fill'); + expect(layersIds.indexOf(scatterPrefix + '-line')).toBe(exp.scatter[1], msg + '| scatter line'); + expect(layersIds.indexOf(scatterPrefix + '-circle')).toBe(exp.scatter[2], msg + '| scatter circle'); + expect(layersIds.indexOf(scatterPrefix + '-symbol')).toBe(exp.scatter[3], msg + '| scatter symbol'); + + var densityPrefix = tracePrefix + 'density'; + expect(layersIds.indexOf(densityPrefix + '-heatmap')).toBe(exp.density[0], msg + '| density heatmap'); + + var choroplethPrefix = tracePrefix + 'choropleth'; + expect(layersIds.indexOf(choroplethPrefix + '-fill')).toBe(exp.choropleth[0], msg + '| choropleth fill'); + expect(layersIds.indexOf(choroplethPrefix + '-line')).toBe(exp.choropleth[1], msg + '| choropleth line'); + } + + Plotly.newPlot(gd, [{ + type: 'scattermap', + lon: [10, 20, 30], + lat: [15, 25, 35], + uid: 'scatter' + }, { + type: 'densitymap', + lon: [10, 20, 30], + lat: [15, 25, 35], + z: [1, 20, 5], + uid: 'density' + }, { + type: 'choroplethmap', + geojson: 'https://raw.githubusercontent.com/python-visualization/folium/master/examples/data/us-states.json', + locations: ['AL'], + z: [10], + uid: 'choropleth' + }], { + map: {style: 'basic'} + }) + .then(function() { + _assert('base', { + scatter: [96, 97, 98, 99], + density: [13], + choropleth: [72, 73] + }); + }) + .then(function() { return Plotly.restyle(gd, 'below', ''); }) + .then(function() { + _assert('all traces *below:""', { + scatter: [96, 97, 98, 99], + density: [95], + choropleth: [93, 94] + }); + }) + .then(function() { return Plotly.restyle(gd, 'below', null); }) + .then(function() { + _assert('back to base', { + scatter: [96, 97, 98, 99], + density: [13], + choropleth: [72, 73] + }); + }) + .then(done, done.fail); + }, 8 * jasmine.DEFAULT_TIMEOUT_INTERVAL); + + it('@gl should be warn when *below* value does not correspond to a layer on the map', function(done) { + spyOn(Lib, 'warn'); + + var notGonnaWork = 'not-gonna-work'; + var arg = [ + 'Trying to add layer with *below* value', + notGonnaWork, + 'referencing a layer that does not exist', + 'or that does not yet exist.' + ].join(' '); + + function _assertFallback(msg, exp) { + var allArgs = Lib.warn.calls.allArgs(); + + if(allArgs.length === exp.warnCnt) { + for(var i = 0; i < exp.warnCnt; i++) { + expect(allArgs[i][0]).toBe(arg, 'Lib.warn call #' + i); + } + } else { + fail('Incorrect number of Lib.warn calls'); + } + Lib.warn.calls.reset(); + + getLayerIds().slice(94, -1).forEach(function(id) { + expect(id.indexOf('plotly-')).toBe(0, 'layer ' + id + ' fallback to top of map'); + }); + } + + Plotly.newPlot(gd, [{ + type: 'scattermap', + lon: [10, 20, 30], + lat: [15, 25, 35] + }, { + type: 'densitymap', + lon: [10, 20, 30], + lat: [15, 25, 35], + z: [1, 20, 5] + }, { + type: 'choroplethmap', + geojson: 'https://raw.githubusercontent.com/python-visualization/folium/master/examples/data/us-states.json', + locations: ['AL'], + z: [10] + }], { + map: { + style: 'basic', + layers: [{ + source: { + name: 'LIMADMIN', + type: 'FeatureCollection', + features: [] + }, + type: 'fill', + below: 'water', + color: '#ece2f0', + opacity: 0.8 + }] + } + }) + .then(function() { + expect(Lib.warn).toHaveBeenCalledTimes(0); + }) + .then(function() { return Plotly.restyle(gd, 'below', notGonnaWork); }) + .then(function() { + // 7 for 4 scattermap + 2 choroplethmap + 1 densitymap layer + _assertFallback('not-gonna-work for traces', {warnCnt: 7}); + }) + .then(function() { return Plotly.relayout(gd, 'map.layers[0].below', 'not-gonna-work'); }) + .then(function() { + // same as last but + layout layer + _assertFallback('not-gonna-work for traces', {warnCnt: 8}); + }) + .then(function() { return Plotly.update(gd, {below: null}, {'map.layers[0].below': null}); }) + .then(function() { + expect(Lib.warn).toHaveBeenCalledTimes(0); + }) + .then(done, done.fail); + }, 8 * jasmine.DEFAULT_TIMEOUT_INTERVAL); +}); + +describe('Test map GeoJSON fetching:', function() { + var gd; + + beforeEach(function() { + gd = createGraphDiv(); + }); + + afterEach(function(done) { + Plotly.purge(gd); + destroyGraphDiv(); + setTimeout(done, 200); + }); + + it('@gl should fetch GeoJSON using URLs found in the traces', function(done) { + var url = 'https://raw.githubusercontent.com/plotly/datasets/master/florida-red-data.json'; + var url2 = 'https://raw.githubusercontent.com/plotly/datasets/master/florida-blue-data.json'; + var cnt = 0; + + Plotly.newPlot(gd, [{ + type: 'choroplethmap', + locations: ['a'], + z: [1], + geojson: url + }, { + type: 'choroplethmap', + locations: ['a'], + z: [1], + geojson: url2 + }]) + .catch(function() { + cnt++; + }) + .then(function() { + expect(cnt).toBe(0, 'no failures!'); + expect(Lib.isPlainObject(window.PlotlyGeoAssets[url])).toBe(true, 'is a GeoJSON object'); + expect(Lib.isPlainObject(window.PlotlyGeoAssets[url2])).toBe(true, 'is a GeoJSON object'); + }) + .then(done, done.fail); + }); + + it('@gl should fetch GeoJSON using URLs found in the traces', function(done) { + var actual = ''; + + Plotly.newPlot(gd, [{ + type: 'choroplethmap', + locations: ['a'], + z: [1], + geojson: 'invalidUrl' + }, { + type: 'choroplethmap', + locations: ['a'], + z: [1], + geojson: 'invalidUrl-two' + }]) + .catch(function(reason) { + // bails up after first failure + actual = reason; + }) + .then(function() { + expect(actual).toEqual(new Error('GeoJSON at URL "invalidUrl" does not exist.')); + expect(window.PlotlyGeoAssets.invalidUrl).toBe(undefined); + }) + .then(done, done.fail); + }, LONG_TIMEOUT_INTERVAL); +}); + +describe('map toImage', function() { + // decreased from 1e5 - perhaps chrome got better at encoding these + // because I get 99330 and the image still looks correct + var MINIMUM_LENGTH = 7e4; + + var gd; + + beforeEach(function() { + gd = createGraphDiv(); + }); + + afterEach(function() { + Plotly.purge(gd); + Plotly.setPlotConfig({ }); + destroyGraphDiv(); + }); + + it('@gl should generate image data with global credentials', function(done) { + Plotly.setPlotConfig({}); + + Plotly.newPlot(gd, [{ + type: 'scattermap', + lon: [0, 10, 20], + lat: [-10, 10, -10] + }]) + .then(function() { + return Plotly.toImage(gd); + }) + .then(function(imgData) { + expect(imgData.length).toBeGreaterThan(MINIMUM_LENGTH); + }) + .then(done, done.fail); + }, LONG_TIMEOUT_INTERVAL); +}); + +function getMapInfo(gd) { + var subplot = gd._fullLayout.map._subplot; + var map = subplot.map; + + var sources = map.style.sourceCaches; + var layers = map.style._layers; + var uid = subplot.uid; + + var traceSources = Object.keys(sources).filter(function(k) { + return k.indexOf('source-') === 0; + }); + + var traceLayers = Object.keys(layers).filter(function(k) { + return k.indexOf('plotly-trace-layer-') === 0; + }); + + var layoutSources = Object.keys(sources).filter(function(k) { + return k.indexOf(uid) !== -1; + }); + + var layoutLayers = Object.keys(layers).filter(function(k) { + return k.indexOf(uid) !== -1; + }); + + return { + map: map, + div: subplot.div, + sources: sources, + layers: layers, + traceSources: traceSources, + traceLayers: traceLayers, + layoutSources: layoutSources, + layoutLayers: layoutLayers, + center: map.getCenter(), + zoom: map.getZoom(), + style: map.getStyle() + }; +} diff --git a/test/jasmine/tests/modebar_test.js b/test/jasmine/tests/modebar_test.js index 7e318cd975c..deb96e5ab9d 100644 --- a/test/jasmine/tests/modebar_test.js +++ b/test/jasmine/tests/modebar_test.js @@ -514,6 +514,45 @@ describe('ModeBar', function() { checkButtons(modeBar, buttons, 1); }); + it('creates mode bar (map version)', function() { + var buttons = getButtons([ + ['toImage'], + ['pan2d'], + ['zoomInMap', 'zoomOutMap', 'resetViewMap'] + ]); + + var gd = getMockGraphInfo(); + gd._fullLayout._basePlotModules = [{ name: 'map' }]; + gd._fullData = [{type: 'scattermap'}]; + + manageModeBar(gd); + var modeBar = gd._fullLayout._modeBar; + + checkButtons(modeBar, buttons, 1); + }); + + it('creates mode bar (map + selected version)', function() { + var buttons = getButtons([ + ['toImage'], + ['pan2d', 'select2d', 'lasso2d'], + ['zoomInMap', 'zoomOutMap', 'resetViewMap'] + ]); + + var gd = getMockGraphInfo(); + gd._fullLayout._basePlotModules = [{ name: 'map' }]; + gd._fullData = [{ + type: 'scatter', + visible: true, + mode: 'markers', + _module: {selectPoints: true} + }]; + + manageModeBar(gd); + var modeBar = gd._fullLayout._modeBar; + + checkButtons(modeBar, buttons, 1); + }); + it('creates mode bar (gl2d version)', function() { var buttons = getButtons([ ['toImage'], @@ -1406,6 +1445,50 @@ describe('ModeBar', function() { }); }); + describe('map handlers', function() { + it('@gl button *resetViewMap* should reset the map view attribute to their default', function(done) { + var gd = createGraphDiv(); + + function _assert(centerLon, centerLat, zoom) { + var mapLayout = gd._fullLayout.map; + + expect(mapLayout.center.lon).toBe(centerLon, 'center.lon'); + expect(mapLayout.center.lat).toBe(centerLat, 'center.lat'); + expect(mapLayout.zoom).toBe(zoom, 'zoom'); + } + + Plotly.newPlot(gd, [{ + type: 'scattermap', + lon: [10, 20, 30], + lat: [10, 20, 30] + }], { + map: { + center: {lon: 10, lat: 10}, + zoom: 8 + } + }, {}) + .then(function() { + _assert(10, 10, 8); + + return Plotly.relayout(gd, { + 'map.zoom': 10, + 'map.center.lon': 30 + }); + }) + .then(function() { + _assert(30, 10, 10); + + var button = selectButton(gd._fullLayout._modeBar, 'resetViewMap'); + + button.isActive(false); + button.click(false); + _assert(10, 10, 8); + button.isActive(false); + }) + .then(done, done.fail); + }); + }); + describe('button toggleHover', function() { it('ternary case', function(done) { var gd = createGraphDiv(); @@ -1449,6 +1532,7 @@ describe('ModeBar', function() { // mock for custom geo + ternary bundle delete gd._fullLayout._subplots.gl3d; delete gd._fullLayout._subplots.mapbox; + delete gd._fullLayout._subplots.map; selectButton(gd._fullLayout._modeBar, 'resetViews').click(); }) diff --git a/test/jasmine/tests/plot_api_react_test.js b/test/jasmine/tests/plot_api_react_test.js index 23685e64ff6..5ef740f05e9 100644 --- a/test/jasmine/tests/plot_api_react_test.js +++ b/test/jasmine/tests/plot_api_react_test.js @@ -884,7 +884,7 @@ describe('@noCIdep Plotly.react', function() { }); mockLists.mapbox.forEach(function(mockSpec) { - it('@noCI @gl can redraw "' + mockSpec[0] + '" with no changes as a noop (mapbpox mocks)', function(done) { + it('@noCI @gl can redraw "' + mockSpec[0] + '" with no changes as a noop (mapbox mocks)', function(done) { Plotly.setPlotConfig({ mapboxAccessToken: MAPBOX_ACCESS_TOKEN }); @@ -892,7 +892,14 @@ describe('@noCIdep Plotly.react', function() { }); }); - // since CI breaks up gl/svg types, and drops scattermapbox, this test won't work there + mockLists.map.forEach(function(mockSpec) { + it('@noCI @gl can redraw "' + mockSpec[0] + '" with no changes as a noop (map mocks)', function(done) { + Plotly.setPlotConfig({}); + _runReactMock(mockSpec, done); + }); + }); + + // since CI breaks up gl/svg types, and drops scattermap*, this test won't work there // but I should hope that if someone is doing something as major as adding a new type, // they'll run the full test suite locally! it('@noCI tested every trace & transform type at least once', function() { @@ -1935,6 +1942,39 @@ describe('Plotly.react and uirevision attributes', function() { _run(fig, editMap, checkInitial, checkEdited).then(done); }); + it('@gl preserves map view changes using map.uirevision', function(done) { + function fig(mainRev, mapRev) { + return { + data: [{lat: [1, 2], lon: [1, 2], type: 'scattermap'}], + layout: { + uirevision: mainRev, + map: {uirevision: mapRev} + } + }; + } + + function attrs(original) { + return { + 'map.center.lat': original ? [undefined, 0] : 1, + 'map.center.lon': original ? [undefined, 0] : 2, + 'map.zoom': original ? [undefined, 1] : 3, + 'map.bearing': original ? [undefined, 0] : 4, + 'map.pitch': original ? [undefined, 0] : 5 + }; + } + + function editMap() { + return Registry.call('_guiRelayout', gd, attrs()); + } + + var checkInitial = checkState([], attrs(true)); + var checkEdited = checkState([], attrs()); + + Plotly.setPlotConfig({}); + + _run(fig, editMap, checkInitial, checkEdited).then(done); + }); + it('preserves editable: true shape & annotation edits using editrevision', function(done) { function fig(mainRev, editRev) { return {layout: { @@ -2359,4 +2399,77 @@ describe('Test Plotly.react + interactions under uirevision:', function() { .then(function() { _assertGUI('after'); }) .then(done, done.fail); }); + + it('@gl map subplots should preserve viewport changes after panning', function(done) { + Plotly.setPlotConfig({}); + + function _react() { + return Plotly.react(gd, [{ + type: 'scattermap', + lon: [3, 1, 2], + lat: [2, 3, 1] + }], { + width: 500, + height: 500, + uirevision: true + }); + } + + // see map_test.js for rationale + function _mouseEvent(type, pos) { + return new Promise(function(resolve) { + mouseEvent(type, pos[0], pos[1], { + buttons: 1 // left button + }); + setTimeout(resolve, 100); + }); + } + + // see map_test.js for rationale + function _drag(p0, p1) { + return _mouseEvent('mousemove', p0) + .then(function() { return _mouseEvent('mousedown', p0); }) + .then(function() { return _mouseEvent('mousemove', p1); }) + .then(function() { return _mouseEvent('mousemove', p1); }) + .then(function() { return _mouseEvent('mouseup', p1); }) + .then(function() { return _mouseEvent('mouseup', p1); }); + } + + // should be same before & after 2nd react() + function _assertGUI(msg) { + var TOL = 2; + + var map = gd.layout.map || {}; + expect((map.center || {}).lon).toBeCloseTo(-17.578, TOL, msg); + expect((map.center || {}).lat).toBeCloseTo(17.308, TOL, msg); + expect(map.zoom).toBe(1); + + var fullMap = gd._fullLayout.map || {}; + expect(fullMap.center.lon).toBeCloseTo(-17.578, TOL, msg); + expect(fullMap.center.lat).toBeCloseTo(17.308, TOL, msg); + expect(fullMap.zoom).toBe(1); + + var preGUI = gd._fullLayout._preGUI; + expect(preGUI['map.center.lon']).toBe(null, msg); + expect(preGUI['map.center.lat']).toBe(null, msg); + expect(preGUI['map.zoom']).toBe(null, msg); + } + + _react() + .then(function() { + expect(gd.layout.map).toEqual({}); + + var fullMap = gd._fullLayout.map; + expect(fullMap.center.lon).toBe(0); + expect(fullMap.center.lat).toBe(0); + expect(fullMap.zoom).toBe(1); + + expect(gd._fullLayout._preGUI).toEqual({}); + }) + .then(function() { return _drag([200, 200], [250, 250]); }) + .then(function() { _assertGUI('before'); }) + .then(_react) + .then(function() { _assertGUI('after'); }) + .then(done, done.fail); + }); }); diff --git a/test/jasmine/tests/plots_test.js b/test/jasmine/tests/plots_test.js index 11afee51827..a5cbfaaab47 100644 --- a/test/jasmine/tests/plots_test.js +++ b/test/jasmine/tests/plots_test.js @@ -887,6 +887,7 @@ describe('Test Plots', function() { gl3d: '.gl-container>div[id^="scene"]', geo: '.geolayer>g', mapbox: '.mapboxgl-map', + map: '.maplibregl-map', parcoords: '.parcoords-line-layers', pie: '.pielayer .trace', sankey: '.sankey', @@ -899,7 +900,7 @@ describe('Test Plots', function() { } // opts.cartesian and opts.gl2d should be arrays of subplot ids ('xy', 'x2y2' etc) - // others should be counts: gl3d, geo, mapbox, parcoords, pie, ternary + // others should be counts: gl3d, geo, mapbox, map, parcoords, pie, ternary // if omitted, that subplot type is assumed to not exist function assertSubplots(opts, msg) { msg = msg || ''; @@ -971,7 +972,8 @@ describe('Test Plots', function() { scene: {}, geo: {}, ternary: {}, - mapbox: {} + mapbox: {}, + map: {} }) .then(function() { assertSubplots({pie: 1}, 'just pie'); diff --git a/test/jasmine/tests/scattermap_test.js b/test/jasmine/tests/scattermap_test.js new file mode 100644 index 00000000000..ae8d8b52d27 --- /dev/null +++ b/test/jasmine/tests/scattermap_test.js @@ -0,0 +1,1291 @@ +var Plotly = require('../../../lib/index'); +var Plots = require('../../../src/plots/plots'); +var Lib = require('../../../src/lib'); +var Axes = require('../../../src/plots/cartesian/axes'); + +var ScatterMap = require('../../../src/traces/scattermap'); +var convert = require('../../../src/traces/scattermap/convert'); + +var createGraphDiv = require('../assets/create_graph_div'); +var destroyGraphDiv = require('../assets/destroy_graph_div'); + +var supplyAllDefaults = require('../assets/supply_defaults'); + +var assertHoverLabelContent = require('../assets/custom_assertions').assertHoverLabelContent; +var mouseEvent = require('../assets/mouse_event'); +var click = require('../assets/click'); +var HOVERMINTIME = require('../../../src/components/fx').constants.HOVERMINTIME; + +function move(fromX, fromY, toX, toY, delay) { + return new Promise(function(resolve) { + mouseEvent('mousemove', fromX, fromY); + + setTimeout(function() { + mouseEvent('mousemove', toX, toY); + resolve(); + }, delay || HOVERMINTIME + 10); + }); +} + +describe('scattermap defaults', function() { + 'use strict'; + + function _supply(traceIn) { + var traceOut = { visible: true }; + var defaultColor = '#444'; + var layout = { _dataLength: 1 }; + + ScatterMap.supplyDefaults(traceIn, traceOut, defaultColor, layout); + + return traceOut; + } + + it('should not truncate \'lon\' if longer than \'lat\'', function() { + // this is handled at the calc step now via _length. + var fullTrace = _supply({ + lon: [1, 2, 3], + lat: [2, 3] + }); + + expect(fullTrace.lon).toEqual([1, 2, 3]); + expect(fullTrace.lat).toEqual([2, 3]); + expect(fullTrace._length).toBe(2); + }); + + it('should not truncate \'lat\' if longer than \'lon\'', function() { + // this is handled at the calc step now via _length. + var fullTrace = _supply({ + lon: [1, 2, 3], + lat: [2, 3, 3, 5] + }); + + expect(fullTrace.lon).toEqual([1, 2, 3]); + expect(fullTrace.lat).toEqual([2, 3, 3, 5]); + expect(fullTrace._length).toBe(3); + }); + + it('should set \'visible\' to false if \'lat\' and/or \'lon\' has zero length', function() { + var fullTrace = _supply({ + lon: [1, 2, 3], + lat: [] + }); + + expect(fullTrace.visible).toEqual(false); + + fullTrace = _supply({ + lon: null, + lat: [1, 2, 3] + }); + + expect(fullTrace.visible).toEqual(false); + }); + + it('should set \'marker.color\' and \'marker.size\' to first item if symbol is set to \'circle\'', function() { + var base = { + mode: 'markers', + lon: [1, 2, 3], + lat: [2, 3, 3], + marker: { + color: ['red', 'green', 'blue'], + size: [10, 20, 30] + } + }; + + var fullTrace = _supply(Lib.extendDeep({}, base, { + marker: { symbol: 'monument' } + })); + + expect(fullTrace.marker.color).toEqual('red'); + expect(fullTrace.marker.size).toEqual(10); + + fullTrace = _supply(Lib.extendDeep({}, base, { + marker: { symbol: ['monument', 'music', 'harbor'] } + })); + + expect(fullTrace.marker.color).toEqual('red'); + expect(fullTrace.marker.size).toEqual(10); + + fullTrace = _supply(Lib.extendDeep({}, base, { + marker: { symbol: 'circle' } + })); + + expect(fullTrace.marker.color).toEqual(['red', 'green', 'blue']); + expect(fullTrace.marker.size).toEqual([10, 20, 30]); + }); + + it('should not fill *marker.line* in fullData while is not available', function() { + var fullTrace = _supply({ + mode: 'markers', + lon: [10, 20, 30], + lat: [10, 20, 30] + }); + + expect(fullTrace.marker).toBeDefined(); + expect(fullTrace.marker.line).toBeUndefined(); + }); +}); + +describe('scattermap convert', function() { + var base = { + type: 'scattermap', + lon: [10, '20', 30, 20, null, 20, 10], + lat: [20, 20, '10', null, 10, 10, 20] + }; + + function _convert(trace) { + var gd = { data: [trace] }; + supplyAllDefaults(gd); + + var fullTrace = gd._fullData[0]; + Plots.doCalcdata(gd, fullTrace); + + var calcTrace = gd.calcdata[0]; + + var mockAxis = {type: 'linear'}; + Axes.setConvert(mockAxis, gd._fullLayout); + + gd._fullLayout.map._subplot = { + mockAxis: mockAxis + }; + + return convert(gd, calcTrace); + } + + function assertVisibility(opts, expectations) { + var actual = ['fill', 'line', 'circle', 'symbol'].map(function(l) { + return opts[l].layout.visibility; + }); + + expect(actual).toEqual(expectations, 'layer visibility'); + } + + it('should generate correct output for markers + circle bubbles traces', function() { + var opts = _convert(Lib.extendFlat({}, base, { + mode: 'markers', + marker: { + symbol: 'circle', + size: [10, 20, null, 10, '10'], + color: [10, null, '30', 20, 10] + } + })); + + assertVisibility(opts, ['none', 'none', 'visible', 'none']); + + expect(opts.circle.paint['circle-color']).toEqual({ + property: 'mcc', + type: 'identity' + }, 'circle-color paint'); + + expect(opts.circle.paint['circle-radius']).toEqual({ + property: 'mrc', + type: 'identity' + }, 'circle-radius paint'); + + expect(opts.circle.paint['circle-opacity']).toBe(0.7, 'circle-opacity'); + + var circleProps = opts.circle.geojson.features.map(function(f) { + return f.properties; + }); + + // N.B repeated values have same geojson props + expect(circleProps).toEqual([ + { mcc: 'rgb(220, 220, 220)', mrc: 5 }, + { mcc: '#444', mrc: 10 }, + { mcc: 'rgb(178, 10, 28)', mrc: 0 }, + { mcc: '#444', mrc: 0 }, + { mcc: '#444', mrc: 0 } + ], 'geojson feature properties'); + }); + + it('should fill circle-opacity correctly', function() { + var opts = _convert(Lib.extendFlat({}, base, { + mode: 'markers', + marker: { + symbol: 'circle', + size: 10, + color: 'red', + opacity: [1, null, 0.5, '0.5', '1', 0, 0.8] + }, + opacity: 0.5 + })); + + assertVisibility(opts, ['none', 'none', 'visible', 'none']); + expect(opts.circle.paint['circle-color']).toBe('red', 'circle-color'); + expect(opts.circle.paint['circle-radius']).toBe(5, 'circle-radius'); + + expect(opts.circle.paint['circle-opacity']).toEqual({ + property: 'mo', + type: 'identity' + }, 'circle-opacity paint'); + + var circleProps = opts.circle.geojson.features.map(function(f) { + return f.properties; + }); + + expect(circleProps).toEqual([ + { mo: 0.5 }, + { mo: 0 }, + { mo: 0.25 }, + // lat === null + // lon === null + { mo: 0 }, + { mo: 0.4 }, + ], 'geojson feature properties'); + }); + + it('should fill circle props correctly during selections', function() { + var _base = { + type: 'scattermap', + mode: 'markers', + lon: [-10, 30, 20], + lat: [45, 90, 180], + marker: {symbol: 'circle'} + }; + + var specs = [{ + msg: 'base case', + patch: { + selectedpoints: [1, 2] + }, + expected: { + opacity: [0.2, 1, 1] + } + }, { + msg: 'with set trace opacity', + patch: { + opacity: 0.5, + selectedpoints: [1, 2] + }, + expected: { + opacity: [0.1, 0.5, 0.5] + } + }, { + msg: 'with set scalar marker.opacity', + patch: { + marker: {opacity: 0.6}, + selectedpoints: [1, 2] + }, + expected: { + opacity: [0.12, 0.6, 0.6] + } + }, { + msg: 'width set array marker.opacity', + patch: { + marker: { + opacity: [0.5, 1, 0.6], + }, + selectedpoints: [0, 2] + }, + expected: { + opacity: [0.5, 0.2, 0.6] + } + }, { + msg: 'with set array marker.opacity including invalid items', + patch: { + marker: {opacity: [2, null, -0.6]}, + selectedpoints: [0, 1, 2] + }, + expected: { + opacity: [1, 0, 0] + } + }, { + msg: 'with set selected & unselected styles', + patch: { + selected: { + marker: { + opacity: 1, + color: 'green', + size: 20 + } + }, + unselected: { + marker: { + opacity: 0, + color: 'red', + size: 5 + } + }, + selectedpoints: [0, 2] + }, + expected: { + opacity: [1, 0, 1], + color: ['green', 'red', 'green'], + size: [10, 2.5, 10] + } + }, { + msg: 'with set selected styles only', + patch: { + selected: { + marker: { + opacity: 1, + color: 'green', + size: 20 + } + }, + selectedpoints: [0, 2] + }, + expected: { + opacity: [1, 0.2, 1], + color: ['green', '#1f77b4', 'green'], + size: [10, 3, 10] + } + }, { + msg: 'with set selected styles only + array items', + patch: { + marker: { + opacity: [0.5, 0.6, 0.7], + color: ['blue', 'yellow', 'cyan'], + size: [50, 60, 70] + }, + selected: { + marker: { + opacity: 1, + color: 'green', + size: 20 + } + }, + selectedpoints: [0, 2] + }, + expected: { + opacity: [1, 0.12, 1], + color: ['green', 'yellow', 'green'], + size: [10, 30, 10] + } + }, { + msg: 'with set unselected styles only', + patch: { + unselected: { + marker: { + opacity: 0, + color: 'red', + size: 5 + } + }, + selectedpoints: [0, 2] + }, + expected: { + opacity: [1, 0, 1], + color: ['#1f77b4', 'red', '#1f77b4'], + size: [3, 2.5, 3] + + } + }, { + msg: 'with set unselected styles only + array items', + patch: { + marker: { + opacity: [0.5, 0.6, 0.7], + color: ['blue', 'yellow', 'cyan'], + size: [50, 60, 70] + }, + unselected: { + marker: { + opacity: 0, + color: 'red', + size: 5 + } + }, + selectedpoints: [0, 2] + }, + expected: { + opacity: [0.5, 0, 0.7], + color: ['blue', 'red', 'cyan'], + size: [25, 2.5, 35] + } + }]; + + specs.forEach(function(s, i) { + var msg0 = s.msg + ' - case ' + i + '- '; + var opts = _convert(Lib.extendDeep({}, _base, s.patch)); + var features = opts.circle.geojson.features; + + function _assert(kProp, kExp) { + var actual = features.map(function(f) { return f.properties[kProp]; }); + var expected = s.expected[kExp]; + var msg = msg0 + ' marker.' + kExp; + + if(Array.isArray(expected)) { + expect(actual).toEqual(expected, msg); + } else { + actual.forEach(function(a) { + expect(a).toBe(undefined, msg); + }); + } + } + + _assert('mo', 'opacity'); + _assert('mcc', 'color'); + // N.B. sizes in props should be half of the input values + _assert('mrc', 'size'); + }); + }); + + it('should generate correct output for fill + markers + lines traces', function() { + var opts = _convert(Lib.extendFlat({}, base, { + mode: 'markers+lines', + marker: { symbol: 'circle' }, + fill: 'toself' + })); + + assertVisibility(opts, ['visible', 'visible', 'visible', 'none']); + + var segment1 = [[10, 20], [20, 20], [30, 10]]; + var segment2 = [[20, 10], [10, 20]]; + + var lineCoords = [segment1, segment2]; + var fillCoords = [[segment1], [segment2]]; + + expect(opts.line.geojson.coordinates).toEqual(lineCoords, 'line coords'); + expect(opts.fill.geojson.coordinates).toEqual(fillCoords, 'fill coords'); + + var circleCoords = opts.circle.geojson.features.map(function(f) { + return f.geometry.coordinates; + }); + + expect(circleCoords).toEqual([ + [10, 20], [20, 20], [30, 10], [20, 10], [10, 20] + ], 'circle coords'); + }); + + it('should generate correct output for markers + non-circle traces', function() { + var opts = _convert(Lib.extendFlat({}, base, { + mode: 'markers', + marker: { symbol: 'monument' } + })); + + assertVisibility(opts, ['none', 'none', 'none', 'visible']); + + var symbolProps = opts.symbol.geojson.features.map(function(f) { + return [f.properties.symbol, f.properties.text]; + }); + + var expected = opts.symbol.geojson.features.map(function() { + return ['monument', '']; + }); + + expect(symbolProps).toEqual(expected, 'geojson properties'); + }); + + + it('should allow symbols to be rotated and overlapped', function() { + var opts = _convert(Lib.extendFlat({}, base, { + mode: 'markers', + marker: { + symbol: ['monument', 'music', 'harbor'], + angle: [0, 90, 45], + allowoverlap: true + }, + })); + + var symbolAngle = opts.symbol.geojson.features.map(function(f) { + return f.properties.angle; + }); + + var expected = [0, 90, 45, 0, 0]; + expect(symbolAngle).toEqual(expected, 'geojson properties'); + + + expect(opts.symbol.layout['icon-rotate'].property).toEqual('angle', 'symbol.layout.icon-rotate'); + expect(opts.symbol.layout['icon-allow-overlap']).toEqual(true, 'symbol.layout.icon-allow-overlap'); + }); + + + it('should generate correct output for text + lines traces', function() { + var opts = _convert(Lib.extendFlat({}, base, { + mode: 'lines+text', + connectgaps: true, + text: ['A', 'B', 'C', 'D', 'E', 'F'] + })); + + assertVisibility(opts, ['none', 'visible', 'none', 'visible']); + + var lineCoords = [ + [10, 20], [20, 20], [30, 10], [20, 10], [10, 20] + ]; + + expect(opts.line.geojson.coordinates).toEqual(lineCoords, 'line coords'); + + var actualText = opts.symbol.geojson.features.map(function(f) { + return f.properties.text; + }); + + expect(actualText).toEqual(['A', 'B', 'C', 'F', undefined]); + }); + + it('should generate correct output for texttemplate without text', function() { + var opts = _convert(Lib.extendFlat({}, base, { + mode: 'lines+text', + connectgaps: true, + textposition: 'outside', + texttemplate: ['A', 'B', 'C', 'D', 'E', 'F'] + })); + + var actualText = opts.symbol.geojson.features.map(function(f) { + return f.properties.text; + }); + + expect(actualText).toEqual(['A', 'B', 'C', 'F', '']); + }); + + it('should convert \\n to \'\' and
to \\n', function() { + var opts = _convert(Lib.extendFlat({}, base, { + mode: 'text', + text: ['one\nline', 'two
lines', 'three
lines
yep'] + })); + + var actualText = opts.symbol.geojson.features.map(function(f) { + return f.properties.text; + }); + + expect(actualText).toEqual(['oneline', 'two\nlines', 'three\nlines\nyep', undefined, undefined]); + }); + + it('should convert \\n to \'\' and
to \\n - texttemplate case', function() { + var opts = _convert(Lib.extendFlat({}, base, { + mode: 'text', + texttemplate: ['%{lon}\none\nline', '%{lat}
two
lines', '%{lon}\n%{lat}
more
lines'] + })); + + var actualText = opts.symbol.geojson.features.map(function(f) { + return f.properties.text; + }); + + expect(actualText).toEqual(['10oneline', '20\ntwo\nlines', '3010\nmore\nlines', '', '']); + }); + + it('should generate correct output for texttemplate', function() { + var mock = { + type: 'scattermap', + mode: 'markers+text', + lon: [-73.57, -79.24, -123.06], + lat: [45.5, 43.4, 49.13], + text: ['Montreal', 'Toronto', 'Vancouver'], + texttemplate: '%{text} (%{lon}, %{lat}): %{customdata:.2s}', + textposition: 'top center', + customdata: [1780000, 2930000, 675218] + }; + var opts = _convert(mock); + var actualText = opts.symbol.geojson.features.map(function(f) { + return f.properties.text; + }); + + expect(actualText).toEqual([ + 'Montreal (−73.57, 45.5): 1.8M', + 'Toronto (−79.24, 43.4): 2.9M', + 'Vancouver (−123.06, 49.13): 680k' + ]); + }); + + it('should generate correct output for lines traces with trailing gaps', function() { + var opts = _convert(Lib.extendFlat({}, base, { + mode: 'lines', + lon: [10, '20', 30, 20, null, 20, 10, null, null], + lat: [20, 20, '10', null, 10, 10, 20, null] + })); + + assertVisibility(opts, ['none', 'visible', 'none', 'none']); + + var lineCoords = [ + [[10, 20], [20, 20], [30, 10]], + [[20, 10], [10, 20]] + ]; + + expect(opts.line.geojson.coordinates).toEqual(lineCoords, 'have correct line coords'); + }); + + it('should correctly convert \'textposition\' to \'text-anchor\' and \'text-offset\'', function() { + var specs = { + 'top left': ['top-right', [-0.65, -1.65]], + 'top center': ['top', [0, -1.65]], + 'top right': ['top-left', [0.65, -1.65]], + 'middle left': ['right', [-0.65, 0]], + 'middle center': ['center', [0, 0]], + 'middle right': ['left', [0.65, 0]], + 'bottom left': ['bottom-right', [-0.65, 1.65]], + 'bottom center': ['bottom', [0, 1.65]], + 'bottom right': ['bottom-left', [0.65, 1.65]] + }; + + Object.keys(specs).forEach(function(k) { + var spec = specs[k]; + + var opts = _convert(Lib.extendFlat({}, base, { + textposition: k, + mode: 'text+markers', + marker: { size: 15 }, + text: ['A', 'B', 'C'] + })); + + expect([ + opts.symbol.layout['text-anchor'], + opts.symbol.layout['text-offset'] + ]).toEqual(spec, '(case ' + k + ')'); + }); + }); + + it('should generate correct output for markers + circle bubbles traces with repeated values', function() { + var opts = _convert(Lib.extendFlat({}, base, { + lon: ['-96.796988', '-81.379236', '-85.311819', ''], + lat: ['32.776664', '28.538335', '35.047157', '' ], + marker: { size: ['5', '49', '5', ''] } + })); + + expect(opts.circle.paint['circle-radius']).toEqual({ + property: 'mrc', + type: 'identity' + }, 'circle-radius paint'); + + var radii = opts.circle.geojson.features.map(function(f) { + return f.properties.mrc; + }); + + expect(radii).toBeCloseToArray([2.5, 24.5, 2.5], 'circle radii'); + }); + + it('should generate correct output for traces with only blank points', function() { + var opts = _convert(Lib.extendFlat({}, base, { + mode: 'lines', + lon: ['', null], + lat: [null, ''], + fill: 'toself' + })); + + // not optimal, but doesn't break anything as map-gl accepts empty + // coordinate arrays + assertVisibility(opts, ['visible', 'visible', 'none', 'none']); + + expect(opts.line.geojson.coordinates).toEqual([], 'line coords'); + expect(opts.fill.geojson.coordinates).toEqual([], 'fill coords'); + }); + + it('cluster options', function() { + var opts = _convert(Lib.extendFlat({}, base, { + cluster: { + enabled: true + } + })); + + // Ensure that cluster and clusterCount options is added to options + expect(opts.cluster).toBeInstanceOf(Object); + expect(opts.clusterCount).toBeInstanceOf(Object); + + // Ensure correct type of layers + expect(opts.cluster.type).toEqual('circle'); + expect(opts.clusterCount.type).toEqual('symbol'); + }); + + it('cluster colors, sizes, opacities - array', function() { + var opts = _convert(Lib.extendFlat({}, base, { + cluster: { + enabled: true, + color: 'red', + size: 20, + opacity: 0.25 + } + })); + + expect(opts.cluster.paint['circle-color']).toEqual('red'); + expect(opts.cluster.paint['circle-radius']).toEqual(20); + expect(opts.cluster.paint['circle-opacity']).toEqual(0.25); + }); + + it('cluster colors, sizes, opacities - array', function() { + var opts = _convert(Lib.extendFlat({}, base, { + cluster: { + enabled: true, + step: [10], + color: ['red', 'green'], + size: [20, 40], + opacity: [0.25, 0.75] + } + })); + + expect(opts.cluster.paint['circle-color']).toEqual(['step', ['get', 'point_count'], 'red', 10, 'green']); + expect(opts.cluster.paint['circle-radius']).toEqual(['step', ['get', 'point_count'], 20, 10, 40]); + expect(opts.cluster.paint['circle-opacity']).toEqual(['step', ['get', 'point_count'], 0.25, 10, 0.75]); + }); +}); + +describe('scattermap hover', function() { + var hoverPoints = ScatterMap.hoverPoints; + var gd; + + beforeAll(function(done) { + Plotly.setPlotConfig({}); + + gd = createGraphDiv(); + + var data = [{ + type: 'scattermap', + lon: [10, 20, 30, 300], + lat: [10, 20, 30, 10], + text: ['A', 'B', 'C', 'D'] + }]; + + Plotly.newPlot(gd, data, { autosize: true }).then(done); + }); + + afterAll(function() { + Plotly.purge(gd); + destroyGraphDiv(); + }); + + function getPointData(gd) { + var cd = gd.calcdata; + var subplot = gd._fullLayout.map._subplot; + + return { + index: false, + distance: 20, + cd: cd[0], + trace: cd[0][0].trace, + subplot: subplot, + xa: subplot.xaxis, + ya: subplot.yaxis + }; + } + + function checkHoverLabel(pos, content) { + mouseEvent('mousemove', pos[0], pos[1]); + + assertHoverLabelContent({ + nums: content[0], + name: content[1] + }); + } + + it('@gl should generate hover label info (base case)', function() { + var xval = 11; + var yval = 11; + + var out = hoverPoints(getPointData(gd), xval, yval)[0]; + + expect(out.index).toEqual(0); + expect([out.x0, out.x1, out.y0, out.y1]).toBeCloseToArray([ + 297.444, 299.444, 105.410, 107.410 + ]); + expect(out.extraText).toEqual('(10°, 10°)
A'); + expect(out.color).toEqual('#1f77b4'); + }); + + it('@gl should generate hover label info (lon > 180 case)', function() { + var xval = 301; + var yval = 11; + var out = hoverPoints(getPointData(gd), xval, yval)[0]; + + expect(out.index).toEqual(3); + expect([out.x0, out.x1, out.y0, out.y1]).toBeCloseToArray([ + 1122.33, 1124.33, 105.41, 107.41 + ]); + expect(out.extraText).toEqual('(10°, 300°)
D'); + expect(out.color).toEqual('#1f77b4'); + }); + + it('@gl should skip over blank and non-string text items', function(done) { + var xval = 11; + var yval = 11; + var out; + + Plotly.restyle(gd, 'text', [['', 'B', 'C']]).then(function() { + out = hoverPoints(getPointData(gd), xval, yval)[0]; + expect(out.extraText).toEqual('(10°, 10°)'); + + return Plotly.restyle(gd, 'text', [[null, 'B', 'C']]); + }) + .then(function() { + out = hoverPoints(getPointData(gd), xval, yval)[0]; + expect(out.extraText).toEqual('(10°, 10°)'); + + return Plotly.restyle(gd, 'text', [[false, 'B', 'C']]); + }) + .then(function() { + out = hoverPoints(getPointData(gd), xval, yval)[0]; + expect(out.extraText).toEqual('(10°, 10°)'); + + return Plotly.restyle(gd, 'text', [['A', 'B', 'C']]); + }) + .then(function() { + out = hoverPoints(getPointData(gd), xval, yval)[0]; + expect(out.extraText).toEqual('(10°, 10°)
A'); + }) + .then(done, done.fail); + }); + + it('@gl should generate hover label info (positive winding case)', function() { + var xval = 11 + 720; + var yval = 11; + + var out = hoverPoints(getPointData(gd), xval, yval)[0]; + + expect(out.index).toEqual(0); + expect([out.x0, out.x1, out.y0, out.y1]).toBeCloseToArray([ + 2345.444, 2347.444, 105.410, 107.410 + ]); + expect(out.extraText).toEqual('(10°, 10°)
A'); + expect(out.color).toEqual('#1f77b4'); + }); + + it('@gl should generate hover label info (negative winding case)', function() { + var xval = 11 - 1080; + var yval = 11; + + var out = hoverPoints(getPointData(gd), xval, yval)[0]; + + expect(out.index).toEqual(0); + expect([out.x0, out.x1, out.y0, out.y1]).toBeCloseToArray([ + -2774.555, -2772.555, 105.410, 107.410 + ]); + expect(out.extraText).toEqual('(10°, 10°)
A'); + expect(out.color).toEqual('#1f77b4'); + }); + + it('@gl should generate hover label info (hoverinfo: \'lon\' case)', function(done) { + Plotly.restyle(gd, 'hoverinfo', 'lon').then(function() { + var xval = 11; + var yval = 11; + + var out = hoverPoints(getPointData(gd), xval, yval)[0]; + + expect(out.extraText).toEqual('lon: 10°'); + }) + .then(done, done.fail); + }); + + it('@gl should generate hover label info (hoverinfo: \'lat\' case)', function(done) { + Plotly.restyle(gd, 'hoverinfo', 'lat').then(function() { + var xval = 11; + var yval = 11; + + var out = hoverPoints(getPointData(gd), xval, yval)[0]; + + expect(out.extraText).toEqual('lat: 10°'); + }) + .then(done, done.fail); + }); + + it('@gl should generate hover label info (hoverinfo: \'text\' + \'text\' array case)', function(done) { + Plotly.restyle(gd, 'hoverinfo', 'text').then(function() { + var xval = 11; + var yval = 11; + + var out = hoverPoints(getPointData(gd), xval, yval)[0]; + + expect(out.extraText).toEqual('A'); + }) + .then(done, done.fail); + }); + + it('@gl should generate hover label info (hoverinfo: \'text\' + \'hovertext\' array case)', function(done) { + Plotly.restyle(gd, 'hovertext', ['Apple', 'Banana', 'Orange']).then(function() { + var xval = 11; + var yval = 11; + + var out = hoverPoints(getPointData(gd), xval, yval)[0]; + + expect(out.extraText).toEqual('Apple'); + }) + .then(done, done.fail); + }); + + it('@gl should generate hover label (\'marker.color\' array case)', function(done) { + Plotly.restyle(gd, 'marker.color', [['red', 'blue', 'green']]).then(function() { + var out = hoverPoints(getPointData(gd), 11, 11)[0]; + + expect(out.color).toEqual('red'); + }) + .then(done, done.fail); + }); + + it('@gl should generate hover label (\'marker.color\' w/ colorscale case)', function(done) { + Plotly.restyle(gd, 'marker.color', [[10, 5, 30]]).then(function() { + var out = hoverPoints(getPointData(gd), 11, 11)[0]; + + expect(out.color).toEqual('rgb(245, 195, 157)'); + }) + .then(done, done.fail); + }); + + it('@gl should generate hover label (\'hoverinfo\' array case)', function(done) { + function check(expected) { + var out = hoverPoints(getPointData(gd), 11, 11)[0]; + expect(out.extraText).toEqual(expected); + } + + Plotly.restyle(gd, 'hoverinfo', [['lon', 'lat', 'lon+lat+name']]).then(function() { + check('lon: 10°'); + return Plotly.restyle(gd, 'hoverinfo', [['lat', 'lon', 'name']]); + }) + .then(function() { + check('lat: 10°'); + return Plotly.restyle(gd, 'hoverinfo', [['text', 'lon', 'name']]); + }) + .then(function() { + check('Apple'); + return Plotly.restyle(gd, 'hoverinfo', [[null, 'lon', 'name']]); + }) + .then(function() { + check('(10°, 10°)
Apple'); + }) + .then(done, done.fail); + }); + + it('@gl should pass along hovertemplate', function(done) { + Plotly.restyle(gd, 'hovertemplate', 'tpl').then(function() { + var xval = 11; + var yval = 11; + + var out = hoverPoints(getPointData(gd), xval, yval)[0]; + + expect(out.hovertemplate).toEqual('tpl'); + }) + .then(done, done.fail); + }); + + it('@gl should always display hoverlabel when hovertemplate is defined', function(done) { + Plotly.restyle(gd, { + name: '', + hovertemplate: 'tpl2' + }) + .then(function() { + checkHoverLabel([190, 215], ['tpl2', '']); + }) + .then(done, done.fail); + }); +}); + +describe('Test plotly events on a scattermap plot:', function() { + var mock = require('../../image/mocks/map_0.json'); + var pointPos = [440, 290]; + var nearPos = [460, 290]; + var blankPos = [10, 10]; + var mockCopy; + var gd; + + beforeAll(function() { + Plotly.setPlotConfig({}); + }); + + beforeEach(function(done) { + gd = createGraphDiv(); + mockCopy = Lib.extendDeep({}, mock); + mockCopy.layout.width = 800; + mockCopy.layout.height = 500; + Plotly.newPlot(gd, mockCopy).then(done); + }); + + afterEach(destroyGraphDiv); + + describe('click events', function() { + var futureData; + + beforeEach(function() { + futureData = null; + + gd.on('plotly_click', function(data) { + futureData = data; + }); + }); + + it('@gl should not be trigged when not on data points', function() { + click(blankPos[0], blankPos[1]); + expect(futureData).toBe(null); + }); + + it('@gl should contain the correct fields', function() { + click(pointPos[0], pointPos[1]); + + var pt = futureData.points[0]; + + expect(Object.keys(pt).sort()).toEqual([ + 'data', 'fullData', 'curveNumber', 'pointNumber', 'pointIndex', 'lon', 'lat', 'bbox' + ].sort()); + + expect(pt.curveNumber).toEqual(0, 'points[0].curveNumber'); + expect(typeof pt.data).toEqual(typeof {}, 'points[0].data'); + expect(typeof pt.fullData).toEqual(typeof {}, 'points[0].fullData'); + expect(pt.lat).toEqual(10, 'points[0].lat'); + expect(pt.lon).toEqual(10, 'points[0].lon'); + expect(pt.pointNumber).toEqual(0, 'points[0].pointNumber'); + }); + }); + + describe('modified click events', function() { + var clickOpts = { + altKey: true, + ctrlKey: true, + metaKey: true, + shiftKey: true + }; + + var futureData; + + beforeEach(function() { + futureData = null; + + gd.on('plotly_click', function(data) { + futureData = data; + }); + }); + + it('@gl should not be trigged when not on data points', function() { + click(blankPos[0], blankPos[1], clickOpts); + expect(futureData).toBe(null); + }); + + it('@gl does not register right-clicks', function() { + click(pointPos[0], pointPos[1], clickOpts); + expect(futureData).toBe(null); + + // TODO: 'should contain the correct fields' + // This test passed previously, but only because assets/click + // incorrectly generated a click event for right click. It never + // worked in reality. + // var pt = futureData.points[0], + // evt = futureData.event; + + // expect(Object.keys(pt).sort()).toEqual([ + // 'data', 'fullData', 'curveNumber', 'pointNumber', 'pointIndex', 'lon', 'lat', 'bbox' + // ].sort()); + + // expect(pt.curveNumber).toEqual(0, 'points[0].curveNumber'); + // expect(typeof pt.data).toEqual(typeof {}, 'points[0].data'); + // expect(typeof pt.fullData).toEqual(typeof {}, 'points[0].fullData'); + // expect(pt.lat).toEqual(10, 'points[0].lat'); + // expect(pt.lon).toEqual(10, 'points[0].lon'); + // expect(pt.pointNumber).toEqual(0, 'points[0].pointNumber'); + + // Object.getOwnPropertyNames(clickOpts).forEach(function(opt) { + // expect(evt[opt]).toEqual(clickOpts[opt], 'event.' + opt); + // }); + }); + }); + + describe('hover events', function() { + var futureData; + + beforeEach(function() { + futureData = null; + + gd.on('plotly_hover', function(data) { + futureData = data; + }); + }); + + it('@gl should contain the correct fields', function() { + mouseEvent('mousemove', blankPos[0], blankPos[1]); + mouseEvent('mousemove', pointPos[0], pointPos[1]); + + var pt = futureData.points[0]; + + expect(Object.keys(pt).sort()).toEqual([ + 'data', 'fullData', 'curveNumber', 'pointNumber', 'pointIndex', 'lon', 'lat', 'bbox' + ].sort()); + + expect(pt.curveNumber).toEqual(0, 'points[0].curveNumber'); + expect(typeof pt.data).toEqual(typeof {}, 'points[0].data'); + expect(typeof pt.fullData).toEqual(typeof {}, 'points[0].fullData'); + expect(pt.lat).toEqual(10, 'points[0].lat'); + expect(pt.lon).toEqual(10, 'points[0].lon'); + expect(pt.pointNumber).toEqual(0, 'points[0].pointNumber'); + }); + }); + + describe('unhover events', function() { + var futureData; + + beforeEach(function() { + futureData = null; + + gd.on('plotly_unhover', function(data) { + futureData = data; + }); + }); + + it('@gl should contain the correct fields', function(done) { + move(pointPos[0], pointPos[1], nearPos[0], nearPos[1], HOVERMINTIME + 10).then(function() { + var pt = futureData.points[0]; + + expect(Object.keys(pt).sort()).toEqual([ + 'data', 'fullData', 'curveNumber', 'pointNumber', 'pointIndex', 'lon', 'lat', 'bbox' + ].sort()); + + expect(pt.curveNumber).toEqual(0, 'points[0].curveNumber'); + expect(typeof pt.data).toEqual(typeof {}, 'points[0].data'); + expect(typeof pt.fullData).toEqual(typeof {}, 'points[0].fullData'); + expect(pt.lat).toEqual(10, 'points[0].lat'); + expect(pt.lon).toEqual(10, 'points[0].lon'); + expect(pt.pointNumber).toEqual(0, 'points[0].pointNumber'); + }) + .then(done, done.fail); + }); + }); +}); + +describe('Test plotly events on a scattermap plot when css transform is present:', function() { + var mock = require('../../image/mocks/map_0.json'); + var pointPos = [440 / 2, 290 / 2]; + var nearPos = [460 / 2, 290 / 2]; + var blankPos = [10 / 2, 10 / 2]; + var mockCopy; + var gd; + + function transformPlot(gd, transformString) { + gd.style.webkitTransform = transformString; + gd.style.MozTransform = transformString; + gd.style.msTransform = transformString; + gd.style.OTransform = transformString; + gd.style.transform = transformString; + } + + beforeAll(function() { + Plotly.setPlotConfig({}); + }); + + beforeEach(function(done) { + gd = createGraphDiv(); + mockCopy = Lib.extendDeep({}, mock); + mockCopy.layout.width = 800; + mockCopy.layout.height = 500; + + Plotly.newPlot(gd, mockCopy) + .then(function() { transformPlot(gd, 'translate(-25%, -25%) scale(0.5)'); }) + .then(done); + }); + + afterEach(destroyGraphDiv); + + describe('click events', function() { + var futureData; + + beforeEach(function() { + futureData = null; + + gd.on('plotly_click', function(data) { + futureData = data; + }); + }); + + it('@gl should not be trigged when not on data points', function() { + click(blankPos[0], blankPos[1]); + expect(futureData).toBe(null); + }); + + it('@gl should contain the correct fields', function() { + click(pointPos[0], pointPos[1]); + + var pt = futureData.points[0]; + + expect(Object.keys(pt).sort()).toEqual([ + 'data', 'fullData', 'curveNumber', 'pointNumber', 'pointIndex', 'lon', 'lat', 'bbox' + ].sort()); + + expect(pt.curveNumber).toEqual(0, 'points[0].curveNumber'); + expect(typeof pt.data).toEqual(typeof {}, 'points[0].data'); + expect(typeof pt.fullData).toEqual(typeof {}, 'points[0].fullData'); + expect(pt.lat).toEqual(10, 'points[0].lat'); + expect(pt.lon).toEqual(10, 'points[0].lon'); + expect(pt.pointNumber).toEqual(0, 'points[0].pointNumber'); + }); + }); + + describe('hover events', function() { + var futureData; + + beforeEach(function() { + futureData = null; + + gd.on('plotly_hover', function(data) { + futureData = data; + }); + }); + + it('@gl should contain the correct fields', function() { + mouseEvent('mousemove', blankPos[0], blankPos[1]); + mouseEvent('mousemove', pointPos[0], pointPos[1]); + + var pt = futureData.points[0]; + + expect(Object.keys(pt).sort()).toEqual([ + 'data', 'fullData', 'curveNumber', 'pointNumber', 'pointIndex', 'lon', 'lat', 'bbox' + ].sort()); + + expect(pt.curveNumber).toEqual(0, 'points[0].curveNumber'); + expect(typeof pt.data).toEqual(typeof {}, 'points[0].data'); + expect(typeof pt.fullData).toEqual(typeof {}, 'points[0].fullData'); + expect(pt.lat).toEqual(10, 'points[0].lat'); + expect(pt.lon).toEqual(10, 'points[0].lon'); + expect(pt.pointNumber).toEqual(0, 'points[0].pointNumber'); + }); + }); + + describe('unhover events', function() { + var futureData; + + beforeEach(function() { + futureData = null; + + gd.on('plotly_unhover', function(data) { + futureData = data; + }); + }); + + it('@gl should contain the correct fields', function(done) { + move(pointPos[0], pointPos[1], nearPos[0], nearPos[1], HOVERMINTIME + 10).then(function() { + var pt = futureData.points[0]; + + expect(Object.keys(pt).sort()).toEqual([ + 'data', 'fullData', 'curveNumber', 'pointNumber', 'pointIndex', 'lon', 'lat', 'bbox' + ].sort()); + + expect(pt.curveNumber).toEqual(0, 'points[0].curveNumber'); + expect(typeof pt.data).toEqual(typeof {}, 'points[0].data'); + expect(typeof pt.fullData).toEqual(typeof {}, 'points[0].fullData'); + expect(pt.lat).toEqual(10, 'points[0].lat'); + expect(pt.lon).toEqual(10, 'points[0].lon'); + expect(pt.pointNumber).toEqual(0, 'points[0].pointNumber'); + }) + .then(done, done.fail); + }); + }); +}); + +describe('scattermap restyle', function() { + var gd; + + beforeAll(function() { + Plotly.setPlotConfig({}); + + gd = createGraphDiv(); + }); + + afterAll(function() { + Plotly.purge(gd); + destroyGraphDiv(); + }); + + it('@gl should be able to update legendonly to visible', function(done) { + Plotly.newPlot(gd, { + data: [{ + lat: [0, 2], lon: [0, 2], + type: 'scattermap', + mode: 'lines', + visible: 'legendonly' + }, + { + lat: [0, 2], lon: [2, 0], + type: 'scattermap', + mode: 'lines', + visible: true + } + ], layout: { + map: { + style: 'open-street-map', + zoom: 6, + center: { lat: 1, lon: 1 } + }, + showlegend: true + } + }).then(function() { + return Plotly.restyle(gd, 'visible', true); + }).then(done, done.fail); + }); +}); diff --git a/test/jasmine/tests/select_test.js b/test/jasmine/tests/select_test.js index 18622cbabce..ae70283b283 100644 --- a/test/jasmine/tests/select_test.js +++ b/test/jasmine/tests/select_test.js @@ -696,6 +696,16 @@ describe('Click-to-select', function() { }); }); + [ + testCase('scattermap', require('../../image/mocks/map_0.json'), 650, 195, [[2], []], {}), + testCase('choroplethmap', require('../../image/mocks/map_choropleth0.json'), 270, 220, [[0]], {}) + ] + .forEach(function(testCase) { + it('@gl trace type ' + testCase.label, function(done) { + _run(testCase, done); + }); + }); + function _run(testCase, doneFn) { _newPlot(gd, testCase.mock.data, testCase.mock.layout, testCase.mock.config) .then(function() { @@ -782,6 +792,15 @@ describe('Click-to-select', function() { }); }); + [ + testCase('map', require('../../image/mocks/map_0.json'), 650, 195, [[2], []], {}), + testCase('map', require('../../image/mocks/map_choropleth0.json'), 270, 220, [[0], []], {}) + ].forEach(function(testCase) { + it('@gl for base plot ' + testCase.label, function(done) { + _run(testCase, done); + }); + }); + function _run(testCase, doneFn) { _newPlot(gd, testCase.mock.data, testCase.mock.layout, testCase.mock.config) .then(function() { @@ -2102,6 +2121,130 @@ describe('Test select box and lasso per trace:', function() { }, LONG_TIMEOUT_INTERVAL); }); + [false, true].forEach(function(hasCssTransform) { + it('@gl should work on scattermap traces, hasCssTransform: ' + hasCssTransform, function(done) { + var assertPoints = makeAssertPoints(['lon', 'lat']); + var assertRanges = makeAssertRanges('map'); + var assertLassoPoints = makeAssertLassoPoints('map'); + var assertSelectedPoints = makeAssertSelectedPoints(); + + var fig = Lib.extendDeep({}, require('../../image/mocks/map_bubbles-text')); + + fig.data[0].lon.push(null); + fig.data[0].lat.push(null); + + fig.layout.dragmode = 'select'; + + delete fig.layout.map.bounds; + + fig.config = {}; + addInvisible(fig); + + _newPlot(gd, fig) + .then(function() { + if(hasCssTransform) transformPlot(gd, cssTransform); + + return _run(hasCssTransform, + [[370, 120], [500, 200]], + function() { + assertPoints([[30, 30]]); + assertRanges([[21.99, 34.55], [38.14, 25.98]]); + assertSelectedPoints({0: [2]}); + }, + null, BOXEVENTS, 'scattermap select' + ); + }) + .then(function() { + return Plotly.relayout(gd, 'dragmode', 'lasso'); + }) + .then(function() { + return _run(hasCssTransform, + [[300, 200], [300, 300], [400, 300], [400, 200], [300, 200]], + function() { + assertPoints([[20, 20]]); + assertSelectedPoints({0: [1]}); + assertLassoPoints([ + [13.28, 25.97], [13.28, 14.33], [25.71, 14.33], [25.71, 25.97], [13.28, 25.97] + ]); + }, + null, LASSOEVENTS, 'scattermap lasso' + ); + }) + .then(function() { + // make selection handlers don't get called in 'pan' dragmode + return Plotly.relayout(gd, 'dragmode', 'pan'); + }) + .then(function() { + return _run(hasCssTransform, + [[370, 120], [500, 200]], null, null, NOEVENTS, 'scattermap pan' + ); + }) + .then(done, done.fail); + }, LONG_TIMEOUT_INTERVAL); + }); + + [false, true].forEach(function(hasCssTransform) { + it('@gl should work on scattermap traces, hasCssTransform: ' + hasCssTransform, function(done) { + var assertPoints = makeAssertPoints(['lon', 'lat']); + var assertRanges = makeAssertRanges('map'); + var assertLassoPoints = makeAssertLassoPoints('map'); + var assertSelectedPoints = makeAssertSelectedPoints(); + + var fig = Lib.extendDeep({}, require('../../image/mocks/map_bubbles-text')); + + fig.data[0].lon.push(null); + fig.data[0].lat.push(null); + + fig.layout.dragmode = 'select'; + + delete fig.layout.map.bounds; + + fig.config = {}; + addInvisible(fig); + + _newPlot(gd, fig) + .then(function() { + if(hasCssTransform) transformPlot(gd, cssTransform); + + return _run(hasCssTransform, + [[370, 120], [500, 200]], + function() { + assertPoints([[30, 30]]); + assertRanges([[21.99, 34.55], [38.14, 25.98]]); + assertSelectedPoints({0: [2]}); + }, + null, BOXEVENTS, 'scattermap select' + ); + }) + .then(function() { + return Plotly.relayout(gd, 'dragmode', 'lasso'); + }) + .then(function() { + return _run(hasCssTransform, + [[300, 200], [300, 300], [400, 300], [400, 200], [300, 200]], + function() { + assertPoints([[20, 20]]); + assertSelectedPoints({0: [1]}); + assertLassoPoints([ + [13.28, 25.97], [13.28, 14.33], [25.71, 14.33], [25.71, 25.97], [13.28, 25.97] + ]); + }, + null, LASSOEVENTS, 'scattermap lasso' + ); + }) + .then(function() { + // make selection handlers don't get called in 'pan' dragmode + return Plotly.relayout(gd, 'dragmode', 'pan'); + }) + .then(function() { + return _run(hasCssTransform, + [[370, 120], [500, 200]], null, null, NOEVENTS, 'scattermap pan' + ); + }) + .then(done, done.fail); + }, LONG_TIMEOUT_INTERVAL); + }); + [false, true].forEach(function(hasCssTransform) { it('@gl should work on choroplethmapbox traces, hasCssTransform: ' + hasCssTransform, function(done) { var assertPoints = makeAssertPoints(['location', 'z']); @@ -2154,6 +2297,56 @@ describe('Test select box and lasso per trace:', function() { }, LONG_TIMEOUT_INTERVAL); }); + [false, true].forEach(function(hasCssTransform) { + it('@gl should work on choroplethmap traces, hasCssTransform: ' + hasCssTransform, function(done) { + var assertPoints = makeAssertPoints(['location', 'z']); + var assertRanges = makeAssertRanges('map'); + var assertLassoPoints = makeAssertLassoPoints('map'); + var assertSelectedPoints = makeAssertSelectedPoints(); + + var fig = Lib.extendDeep({}, require('../../image/mocks/map_choropleth0.json')); + + fig.data[0].locations.push(null); + + fig.layout.dragmode = 'select'; + fig.config = {}; + addInvisible(fig); + + _newPlot(gd, fig) + .then(function() { + if(hasCssTransform) transformPlot(gd, cssTransform); + + return _run(hasCssTransform, + [[150, 150], [300, 300]], + function() { + assertPoints([['NY', 10]]); + assertRanges([[-83.38, 46.13], [-74.06, 39.29]]); + assertSelectedPoints({0: [0]}); + }, + null, BOXEVENTS, 'choroplethmap select' + ); + }) + .then(function() { + return Plotly.relayout(gd, 'dragmode', 'lasso'); + }) + .then(function() { + return _run(hasCssTransform, + [[300, 200], [300, 300], [400, 300], [400, 200], [300, 200]], + function() { + assertPoints([['MA', 20]]); + assertSelectedPoints({0: [1]}); + assertLassoPoints([ + [-74.06, 43.936], [-74.06, 39.293], [-67.84, 39.293], + [-67.84, 43.936], [-74.06, 43.936] + ]); + }, + null, LASSOEVENTS, 'choroplethmap lasso' + ); + }) + .then(done, done.fail); + }, LONG_TIMEOUT_INTERVAL); + }); + [false, true].forEach(function(hasCssTransform) { it('should work on scattergeo traces, hasCssTransform: ' + hasCssTransform, function(done) { var assertPoints = makeAssertPoints(['lon', 'lat']); @@ -3280,6 +3473,65 @@ describe('Test select box and lasso per trace:', function() { }) .then(done, done.fail); }, LONG_TIMEOUT_INTERVAL); + + it('@gl should work on choroplethmap traces after adding a new trace on top:', function(done) { + var assertPoints = makeAssertPoints(['location', 'z']); + var assertRanges = makeAssertRanges('map'); + var assertLassoPoints = makeAssertLassoPoints('map'); + var assertSelectedPoints = makeAssertSelectedPoints(); + + var fig = Lib.extendDeep({}, require('../../image/mocks/map_choropleth0.json')); + + fig.data[0].locations.push(null); + + fig.layout.dragmode = 'select'; + fig.config = {}; + addInvisible(fig); + + var hasCssTransform = false; + + _newPlot(gd, fig) + .then(function() { + // add a scatter points on top + fig.data[3] = { + type: 'scattermap', + marker: { size: 40 }, + lon: [-70], + lat: [40] + }; + + return Plotly.react(gd, fig); + }) + .then(function() { + return _run(hasCssTransform, + [[150, 150], [300, 300]], + function() { + assertPoints([['NY', 10]]); + assertRanges([[-83.38, 46.13], [-74.06, 39.29]]); + assertSelectedPoints({0: [0], 3: []}); + }, + null, BOXEVENTS, 'choroplethmap select' + ); + }) + .then(function() { + return Plotly.relayout(gd, 'dragmode', 'lasso'); + }) + .then(function() { + return _run(hasCssTransform, + [[300, 200], [300, 300], [400, 300], [400, 200], [300, 200]], + function() { + assertPoints([['MA', 20], []]); + assertSelectedPoints({0: [1], 3: [0]}); + assertLassoPoints([ + [-74.06, 43.936], [-74.06, 39.293], [-67.84, 39.293], + [-67.84, 43.936], [-74.06, 43.936] + ]); + }, + null, LASSOEVENTS, 'choroplethmap lasso' + ); + }) + .then(done, done.fail); + }, LONG_TIMEOUT_INTERVAL); }); describe('Test that selections persist:', function() { diff --git a/test/jasmine/tests/transform_filter_test.js b/test/jasmine/tests/transform_filter_test.js index 2f47854171a..b2aa6af410f 100644 --- a/test/jasmine/tests/transform_filter_test.js +++ b/test/jasmine/tests/transform_filter_test.js @@ -280,6 +280,40 @@ describe('filter transforms calc:', function() { expect(out[1].lat).toEqual([-50, -40]); }); + it('filters should handle geographical *lon* data', function() { + var trace0 = { + type: 'scattergeo', + lon: [-90, -40, 100, 120, 130], + lat: [-50, -40, 10, 20, 30], + transforms: [{ + type: 'filter', + operation: '>', + value: 0, + target: 'lon' + }] + }; + + var trace1 = { + type: 'scattermap', + lon: [-90, -40, 100, 120, 130], + lat: [-50, -40, 10, 20, 30], + transforms: [{ + type: 'filter', + operation: '<', + value: 0, + target: 'lat' + }] + }; + + var out = _transform([trace0, trace1]); + + expect(out[0].lon).toEqual([100, 120, 130]); + expect(out[0].lat).toEqual([10, 20, 30]); + + expect(out[1].lon).toEqual([-90, -40]); + expect(out[1].lat).toEqual([-50, -40]); + }); + it('filters should handle nested attributes', function() { var out = _transform([Lib.extendDeep({}, base, { transforms: [{ @@ -1376,4 +1410,18 @@ describe('filter resulting in empty coordinate arrays', function() { }); }); }); + + describe('map mocks', function() { + var mockList = require('../assets/mock_lists').map; + + Plotly.setPlotConfig({}); + + mockList.forEach(function(d) { + it('@gl' + d[0], function(done) { + gd = createGraphDiv(); + var fig = filter2empty(d[1]); + Plotly.newPlot(gd, fig).then(done, done.fail); + }); + }); + }); }); diff --git a/test/plot-schema.json b/test/plot-schema.json index 01a86088c8d..987309d374d 100644 --- a/test/plot-schema.json +++ b/test/plot-schema.json @@ -136,7 +136,7 @@ ] }, "doubleClickDelay": { - "description": "Sets the delay for registering a double-click in ms. This is the time interval (in ms) between first mousedown and 2nd mouseup to constitute a double-click. This setting propagates to all on-subplot double clicks (except for geo and mapbox) and on-legend double clicks.", + "description": "Sets the delay for registering a double-click in ms. This is the time interval (in ms) between first mousedown and 2nd mouseup to constitute a double-click. This setting propagates to all on-subplot double clicks (except for geo, mapbox and map) and on-legend double clicks.", "dflt": 300, "min": 0, "valType": "number" @@ -295,8 +295,8 @@ "valType": "boolean" }, "scrollZoom": { - "description": "Determines whether mouse wheel or two-finger scroll zooms is enable. Turned on by default for gl3d, geo and mapbox subplots (as these subplot types do not have zoombox via pan), but turned off by default for cartesian subplots. Set `scrollZoom` to *false* to disable scrolling for all subplots.", - "dflt": "gl3d+geo+mapbox", + "description": "Determines whether mouse wheel or two-finger scroll zooms is enable. Turned on by default for gl3d, geo, mapbox and map subplots (as these subplot types do not have zoombox via pan), but turned off by default for cartesian subplots. Set `scrollZoom` to *false* to disable scrolling for all subplots.", + "dflt": "gl3d+geo+map", "extras": [ true, false @@ -305,7 +305,8 @@ "cartesian", "gl3d", "geo", - "mapbox" + "mapbox", + "map" ], "valType": "flaglist" }, @@ -3871,6 +3872,408 @@ ] } }, + "map": { + "_arrayAttrRegexps": [ + {} + ], + "_isSubplotObj": true, + "bearing": { + "description": "Sets the bearing angle of the map in degrees counter-clockwise from North (map.bearing).", + "dflt": 0, + "editType": "plot", + "valType": "number" + }, + "bounds": { + "east": { + "description": "Sets the maximum longitude of the map (in degrees East) if `west`, `south` and `north` are declared.", + "editType": "plot", + "valType": "number" + }, + "editType": "plot", + "north": { + "description": "Sets the maximum latitude of the map (in degrees North) if `east`, `west` and `south` are declared.", + "editType": "plot", + "valType": "number" + }, + "role": "object", + "south": { + "description": "Sets the minimum latitude of the map (in degrees North) if `east`, `west` and `north` are declared.", + "editType": "plot", + "valType": "number" + }, + "west": { + "description": "Sets the minimum longitude of the map (in degrees East) if `east`, `south` and `north` are declared.", + "editType": "plot", + "valType": "number" + } + }, + "center": { + "editType": "plot", + "lat": { + "description": "Sets the latitude of the center of the map (in degrees North).", + "dflt": 0, + "editType": "plot", + "valType": "number" + }, + "lon": { + "description": "Sets the longitude of the center of the map (in degrees East).", + "dflt": 0, + "editType": "plot", + "valType": "number" + }, + "role": "object" + }, + "domain": { + "column": { + "description": "If there is a layout grid, use the domain for this column in the grid for this map subplot .", + "dflt": 0, + "editType": "plot", + "min": 0, + "valType": "integer" + }, + "editType": "plot", + "role": "object", + "row": { + "description": "If there is a layout grid, use the domain for this row in the grid for this map subplot .", + "dflt": 0, + "editType": "plot", + "min": 0, + "valType": "integer" + }, + "x": { + "description": "Sets the horizontal domain of this map subplot (in plot fraction).", + "dflt": [ + 0, + 1 + ], + "editType": "plot", + "items": [ + { + "editType": "plot", + "max": 1, + "min": 0, + "valType": "number" + }, + { + "editType": "plot", + "max": 1, + "min": 0, + "valType": "number" + } + ], + "valType": "info_array" + }, + "y": { + "description": "Sets the vertical domain of this map subplot (in plot fraction).", + "dflt": [ + 0, + 1 + ], + "editType": "plot", + "items": [ + { + "editType": "plot", + "max": 1, + "min": 0, + "valType": "number" + }, + { + "editType": "plot", + "max": 1, + "min": 0, + "valType": "number" + } + ], + "valType": "info_array" + } + }, + "editType": "plot", + "layers": { + "items": { + "layer": { + "below": { + "description": "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.", + "editType": "plot", + "valType": "string" + }, + "circle": { + "editType": "plot", + "radius": { + "description": "Sets the circle radius (map.layer.paint.circle-radius). Has an effect only when `type` is set to *circle*.", + "dflt": 15, + "editType": "plot", + "valType": "number" + }, + "role": "object" + }, + "color": { + "description": "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)", + "dflt": "#444", + "editType": "plot", + "valType": "color" + }, + "coordinates": { + "description": "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`.", + "editType": "plot", + "valType": "any" + }, + "editType": "plot", + "fill": { + "editType": "plot", + "outlinecolor": { + "description": "Sets the fill outline color (map.layer.paint.fill-outline-color). Has an effect only when `type` is set to *fill*.", + "dflt": "#444", + "editType": "plot", + "valType": "color" + }, + "role": "object" + }, + "line": { + "dash": { + "description": "Sets the length of dashes and gaps (map.layer.paint.line-dasharray). Has an effect only when `type` is set to *line*.", + "editType": "plot", + "valType": "data_array" + }, + "dashsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `dash`.", + "editType": "none", + "valType": "string" + }, + "editType": "plot", + "role": "object", + "width": { + "description": "Sets the line width (map.layer.paint.line-width). Has an effect only when `type` is set to *line*.", + "dflt": 2, + "editType": "plot", + "valType": "number" + } + }, + "maxzoom": { + "description": "Sets the maximum zoom level (map.layer.maxzoom). At zoom levels equal to or greater than the maxzoom, the layer will be hidden.", + "dflt": 24, + "editType": "plot", + "max": 24, + "min": 0, + "valType": "number" + }, + "minzoom": { + "description": "Sets the minimum zoom level (map.layer.minzoom). At zoom levels less than the minzoom, the layer will be hidden.", + "dflt": 0, + "editType": "plot", + "max": 24, + "min": 0, + "valType": "number" + }, + "name": { + "description": "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.", + "editType": "plot", + "valType": "string" + }, + "opacity": { + "description": "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)", + "dflt": 1, + "editType": "plot", + "max": 1, + "min": 0, + "valType": "number" + }, + "role": "object", + "source": { + "description": "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.", + "editType": "plot", + "valType": "any" + }, + "sourceattribution": { + "description": "Sets the attribution for this source.", + "editType": "plot", + "valType": "string" + }, + "sourcelayer": { + "description": "Specifies the layer to use from a vector tile source (map.layer.source-layer). Required for *vector* source type that supports multiple layers.", + "dflt": "", + "editType": "plot", + "valType": "string" + }, + "sourcetype": { + "description": "Sets the source type for this layer, that is the type of the layer data.", + "dflt": "geojson", + "editType": "plot", + "valType": "enumerated", + "values": [ + "geojson", + "vector", + "raster", + "image" + ] + }, + "symbol": { + "editType": "plot", + "icon": { + "description": "Sets the symbol icon image (map.layer.layout.icon-image). Full list: https://www.map.com/maki-icons/", + "dflt": "marker", + "editType": "plot", + "valType": "string" + }, + "iconsize": { + "description": "Sets the symbol icon size (map.layer.layout.icon-size). Has an effect only when `type` is set to *symbol*.", + "dflt": 10, + "editType": "plot", + "valType": "number" + }, + "placement": { + "description": "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", + "dflt": "point", + "editType": "plot", + "valType": "enumerated", + "values": [ + "point", + "line", + "line-center" + ] + }, + "role": "object", + "text": { + "description": "Sets the symbol text (map.layer.layout.text-field).", + "dflt": "", + "editType": "plot", + "valType": "string" + }, + "textfont": { + "color": { + "editType": "plot", + "valType": "color" + }, + "description": "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*.", + "editType": "plot", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "dflt": "Open Sans Regular, Arial Unicode MS Regular", + "editType": "plot", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "role": "object", + "size": { + "editType": "plot", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "plot", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "textposition": { + "arrayOk": false, + "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates.", + "dflt": "middle center", + "editType": "plot", + "valType": "enumerated", + "values": [ + "top left", + "top center", + "top right", + "middle left", + "middle center", + "middle right", + "bottom left", + "bottom center", + "bottom right" + ] + } + }, + "templateitemname": { + "description": "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`.", + "editType": "plot", + "valType": "string" + }, + "type": { + "description": "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.", + "dflt": "circle", + "editType": "plot", + "valType": "enumerated", + "values": [ + "circle", + "line", + "fill", + "symbol", + "raster" + ] + }, + "visible": { + "description": "Determines whether this layer is displayed", + "dflt": true, + "editType": "plot", + "valType": "boolean" + } + } + }, + "role": "object" + }, + "pitch": { + "description": "Sets the pitch angle of the map (in degrees, where *0* means perpendicular to the surface of the map) (map.pitch).", + "dflt": 0, + "editType": "plot", + "valType": "number" + }, + "role": "object", + "style": { + "description": "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, stamen-terrain, stamen-toner, stamen-watercolor, streets, white-bg.", + "dflt": "basic", + "editType": "plot", + "valType": "any", + "values": [ + "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", + "stamen-terrain", + "stamen-toner", + "stamen-watercolor", + "streets", + "white-bg" + ] + }, + "uirevision": { + "description": "Controls persistence of user-driven changes in the view: `center`, `zoom`, `bearing`, `pitch`. Defaults to `layout.uirevision`.", + "editType": "none", + "valType": "any" + }, + "zoom": { + "description": "Sets the zoom level of the map (map.zoom).", + "dflt": 1, + "editType": "plot", + "valType": "number" + } + }, "mapbox": { "_arrayAttrRegexps": [ {} @@ -4387,7 +4790,7 @@ }, "remove": { "arrayOk": true, - "description": "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*, *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*, *zoomInMapbox*, *zoomOut2d*, *zoomOutGeo*, *zoomOutMapbox*, *zoomin*, *zoomout*.", + "description": "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*.", "dflt": "", "editType": "modebar", "valType": "string" @@ -26684,7 +27087,7 @@ }, "type": "choropleth" }, - "choroplethmapbox": { + "choroplethmap": { "animatable": false, "attributes": { "autocolorscale": { @@ -26695,7 +27098,7 @@ "valType": "boolean" }, "below": { - "description": "Determines if the choropleth polygons will be inserted before the layer with the specified ID. By default, choroplethmapbox traces are placed above the water layers. If set to '', the layer will be inserted above every existing layer.", + "description": "Determines if the choropleth polygons will be inserted before the layer with the specified ID. By default, choroplethmap traces are placed above the water layers. If set to '', the layer will be inserted above every existing layer.", "editType": "plot", "valType": "string" }, @@ -27958,8 +28361,8 @@ } }, "subplot": { - "description": "Sets a reference between this trace's data coordinates and a mapbox subplot. If *mapbox* (the default value), the data refer to `layout.mapbox`. If *mapbox2*, the data refer to `layout.mapbox2`, and so on.", - "dflt": "mapbox", + "description": "Sets a reference between this trace's data coordinates and a map subplot. If *map* (the default value), the data refer to `layout.map`. If *map2*, the data refer to `layout.map2`, and so on.", + "dflt": "map", "editType": "calc", "valType": "subplotid" }, @@ -27985,7 +28388,7 @@ }, "role": "object" }, - "type": "choroplethmapbox", + "type": "choroplethmap", "uid": { "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", "editType": "plot", @@ -28066,32 +28469,20 @@ } }, "categories": [ - "mapbox", + "map", "gl", "noOpacity", "showLegend" ], "meta": { "description": "GeoJSON features to be filled are set in `geojson` The data that describes the choropleth value-to-color mapping is set in `locations` and `z`.", - "hr_name": "choropleth_mapbox" + "hr_name": "choropleth_map" }, - "type": "choroplethmapbox" + "type": "choroplethmap" }, - "cone": { + "choroplethmapbox": { "animatable": false, "attributes": { - "anchor": { - "description": "Sets the cones' anchor with respect to their x/y/z positions. Note that *cm* denote the cone's center of mass which corresponds to 1/4 from the tail to tip.", - "dflt": "cm", - "editType": "calc", - "valType": "enumerated", - "values": [ - "tip", - "tail", - "cm", - "center" - ] - }, "autocolorscale": { "description": "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.", "dflt": true, @@ -28099,37 +28490,10 @@ "impliedEdits": {}, "valType": "boolean" }, - "cauto": { - "description": "Determines whether or not the color domain is computed with respect to the input data (here u/v/w norm) or the bounds set in `cmin` and `cmax` Defaults to `false` when `cmin` and `cmax` are set by the user.", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" - }, - "cmax": { - "description": "Sets the upper bound of the color domain. Value should have the same units as u/v/w norm and if set, `cmin` must be set as well.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "valType": "number" - }, - "cmid": { - "description": "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 u/v/w norm. Has no effect when `cauto` is `false`.", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "valType": "number" - }, - "cmin": { - "description": "Sets the lower bound of the color domain. Value should have the same units as u/v/w norm and if set, `cmax` must be set as well.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "valType": "number" + "below": { + "description": "Determines if the choropleth polygons will be inserted before the layer with the specified ID. By default, choroplethmapbox traces are placed above the water layers. If set to '', the layer will be inserted above every existing layer.", + "editType": "plot", + "valType": "string" }, "coloraxis": { "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", @@ -28851,7 +29215,7 @@ } }, "colorscale": { - "description": "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.", + "description": "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 `zmin` and `zmax`. 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.", "dflt": null, "editType": "calc", "impliedEdits": { @@ -28869,10 +29233,21 @@ "editType": "none", "valType": "string" }, + "featureidkey": { + "description": "Sets the key in GeoJSON features which is used as id to match the items included in the `locations` array. Support nested property, for example *properties.name*.", + "dflt": "id", + "editType": "calc", + "valType": "string" + }, + "geojson": { + "description": "Sets the GeoJSON data associated with this trace. It can be set as a valid GeoJSON object or as a URL string. Note that we only accept GeoJSONs of type *FeatureCollection* or *Feature* with geometries of type *Polygon* or *MultiPolygon*.", + "editType": "calc", + "valType": "any" + }, "hoverinfo": { "arrayOk": true, "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", - "dflt": "x+y+z+norm+text+name", + "dflt": "all", "editType": "calc", "extras": [ "all", @@ -28880,13 +29255,8 @@ "skip" ], "flags": [ - "x", - "y", + "location", "z", - "u", - "v", - "w", - "norm", "text", "name" ], @@ -29098,9 +29468,9 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `norm` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `properties` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", "dflt": "", - "editType": "calc", + "editType": "none", "valType": "string" }, "hovertemplatesrc": { @@ -29253,93 +29623,62 @@ "min": 0, "valType": "number" }, - "lighting": { - "ambient": { - "description": "Ambient light increases overall color visibility but can wash out the image.", - "dflt": 0.8, - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - "diffuse": { - "description": "Represents the extent that incident rays are reflected in a range of angles.", - "dflt": 0.8, - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, + "locations": { + "description": "Sets which features found in *geojson* to plot using their feature `id` field.", "editType": "calc", - "facenormalsepsilon": { - "description": "Epsilon for face normals calculation avoids math issues arising from degenerate geometry.", - "dflt": 0.000001, - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - "fresnel": { - "description": "Represents the reflectance as a dependency of the viewing angle; e.g. paper is reflective when viewing it from the edge of the paper (almost 90 degrees), causing shine.", - "dflt": 0.2, - "editType": "calc", - "max": 5, - "min": 0, - "valType": "number" - }, - "role": "object", - "roughness": { - "description": "Alters specular reflection; the rougher the surface, the wider and less contrasty the shine.", - "dflt": 0.5, - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - "specular": { - "description": "Represents the level that incident rays are reflected in a single direction, causing shine.", - "dflt": 0.05, + "valType": "data_array" + }, + "locationssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `locations`.", + "editType": "none", + "valType": "string" + }, + "marker": { + "editType": "calc", + "line": { + "color": { + "arrayOk": true, + "description": "Sets the marker.line color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set.", + "dflt": "#444", + "editType": "plot", + "valType": "color" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, "editType": "calc", - "max": 2, - "min": 0, - "valType": "number" + "role": "object", + "width": { + "arrayOk": true, + "description": "Sets the width (in px) of the lines bounding the marker points.", + "dflt": 1, + "editType": "plot", + "min": 0, + "valType": "number" + }, + "widthsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `width`.", + "editType": "none", + "valType": "string" + } }, - "vertexnormalsepsilon": { - "description": "Epsilon for vertex normals calculation avoids math issues arising from degenerate geometry.", - "dflt": 1e-12, - "editType": "calc", + "opacity": { + "arrayOk": true, + "description": "Sets the opacity of the locations.", + "dflt": 1, + "editType": "plot", "max": 1, "min": 0, "valType": "number" - } - }, - "lightposition": { - "editType": "calc", - "role": "object", - "x": { - "description": "Numeric vector, representing the X coordinate for each vertex.", - "dflt": 100000, - "editType": "calc", - "max": 100000, - "min": -100000, - "valType": "number" }, - "y": { - "description": "Numeric vector, representing the Y coordinate for each vertex.", - "dflt": 100000, - "editType": "calc", - "max": 100000, - "min": -100000, - "valType": "number" + "opacitysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `opacity`.", + "editType": "none", + "valType": "string" }, - "z": { - "description": "Numeric vector, representing the Z coordinate for each vertex.", - "dflt": 0, - "editType": "calc", - "max": 100000, - "min": -100000, - "valType": "number" - } + "role": "object" }, "meta": { "arrayOk": true, @@ -29357,25 +29696,31 @@ "editType": "style", "valType": "string" }, - "opacity": { - "description": "Sets the opacity of the surface. Please note that in the case of using high `opacity` values for example a value greater than or equal to 0.5 on two surfaces (and 0.25 with four surfaces), an overlay of multiple transparent surfaces may not perfectly be sorted in depth by the webgl API. This behavior may be improved in the near future and is subject to change.", - "dflt": 1, - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, "reversescale": { - "description": "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.", + "description": "Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color.", "dflt": false, "editType": "plot", "valType": "boolean" }, - "scene": { - "description": "Sets a reference between this trace's 3D coordinate system and a 3D scene. If *scene* (the default value), the (x,y,z) coordinates refer to `layout.scene`. If *scene2*, the (x,y,z) coordinates refer to `layout.scene2`, and so on.", - "dflt": "scene", - "editType": "calc+clearAxisTypes", - "valType": "subplotid" + "selected": { + "editType": "plot", + "marker": { + "editType": "plot", + "opacity": { + "description": "Sets the marker opacity of selected points.", + "editType": "plot", + "max": 1, + "min": 0, + "valType": "number" + }, + "role": "object" + }, + "role": "object" + }, + "selectedpoints": { + "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect.", + "editType": "calc", + "valType": "any" }, "showlegend": { "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", @@ -29389,23 +29734,6 @@ "editType": "calc", "valType": "boolean" }, - "sizemode": { - "description": "Determines whether `sizeref` is set as a *scaled* (i.e unitless) scalar (normalized by the max u/v/w norm in the vector field) or as *absolute* value (in the same units as the vector field). To display sizes in actual vector length use *raw*.", - "dflt": "scaled", - "editType": "calc", - "valType": "enumerated", - "values": [ - "scaled", - "absolute", - "raw" - ] - }, - "sizeref": { - "description": "Adjusts the cone size scaling. The size of the cones is determined by their u/v/w norm multiplied a factor and `sizeref`. This factor (computed internally) corresponds to the minimum \"time\" to travel across two successive x/y/z positions at the average velocity of those two successive positions. All cones in a given trace use the same factor. With `sizemode` set to *raw*, its default value is *1*. With `sizemode` set to *scaled*, `sizeref` is unitless, its default value is *0.5*. With `sizemode` set to *absolute*, `sizeref` has the same units as the u/v/w vector field, its the default value is half the sample's maximum vector norm.", - "editType": "calc", - "min": 0, - "valType": "number" - }, "stream": { "editType": "calc", "maxpoints": { @@ -29425,9 +29753,15 @@ "valType": "string" } }, + "subplot": { + "description": "Sets a reference between this trace's data coordinates and a mapbox subplot. If *mapbox* (the default value), the data refer to `layout.mapbox`. If *mapbox2*, the data refer to `layout.mapbox2`, and so on.", + "dflt": "mapbox", + "editType": "calc", + "valType": "subplotid" + }, "text": { "arrayOk": true, - "description": "Sets the text elements associated with the cones. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", + "description": "Sets the text elements associated with each location.", "dflt": "", "editType": "calc", "valType": "string" @@ -29437,18 +29771,17 @@ "editType": "none", "valType": "string" }, - "type": "cone", - "u": { - "description": "Sets the x components of the vector field.", - "editType": "calc", - "valType": "data_array" - }, - "uhoverformat": { - "description": "Sets the hover text formatting rulefor `u` 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.By default the values are formatted using generic number format.", - "dflt": "", - "editType": "none", - "valType": "string" + "transforms": { + "items": { + "transform": { + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "editType": "calc", + "role": "object" + } + }, + "role": "object" }, + "type": "choroplethmapbox", "uid": { "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", "editType": "plot", @@ -29459,21 +29792,20 @@ "editType": "none", "valType": "any" }, - "usrc": { - "description": "Sets the source reference on Chart Studio Cloud for `u`.", - "editType": "none", - "valType": "string" - }, - "v": { - "description": "Sets the y components of the vector field.", - "editType": "calc", - "valType": "data_array" - }, - "vhoverformat": { - "description": "Sets the hover text formatting rulefor `v` 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.By default the values are formatted using generic number format.", - "dflt": "", - "editType": "none", - "valType": "string" + "unselected": { + "editType": "plot", + "marker": { + "editType": "plot", + "opacity": { + "description": "Sets the marker opacity of unselected points, applied only when a selection exists.", + "editType": "plot", + "max": 1, + "min": 0, + "valType": "number" + }, + "role": "object" + }, + "role": "object" }, "visible": { "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", @@ -29486,69 +29818,42 @@ "legendonly" ] }, - "vsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `v`.", - "editType": "none", - "valType": "string" - }, - "w": { - "description": "Sets the z components of the vector field.", + "z": { + "description": "Sets the color values.", "editType": "calc", "valType": "data_array" }, - "whoverformat": { - "description": "Sets the hover text formatting rulefor `w` 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.By default the values are formatted using generic number format.", - "dflt": "", - "editType": "none", - "valType": "string" - }, - "wsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `w`.", - "editType": "none", - "valType": "string" - }, - "x": { - "description": "Sets the x coordinates of the vector field and of the displayed cones.", - "editType": "calc+clearAxisTypes", - "valType": "data_array" - }, - "xhoverformat": { - "description": "Sets the hover text formatting rulefor `x` 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*By default the values are formatted using `xaxis.hoverformat`.", - "dflt": "", - "editType": "none", - "valType": "string" - }, - "xsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `x`.", - "editType": "none", - "valType": "string" - }, - "y": { - "description": "Sets the y coordinates of the vector field and of the displayed cones.", - "editType": "calc+clearAxisTypes", - "valType": "data_array" - }, - "yhoverformat": { - "description": "Sets the hover text formatting rulefor `y` 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*By default the values are formatted using `yaxis.hoverformat`.", - "dflt": "", - "editType": "none", - "valType": "string" + "zauto": { + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `z`) or the bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" }, - "ysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `y`.", - "editType": "none", - "valType": "string" + "zmax": { + "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "zauto": false + }, + "valType": "number" }, - "z": { - "description": "Sets the z coordinates of the vector field and of the displayed cones.", - "editType": "calc+clearAxisTypes", - "valType": "data_array" + "zmid": { + "description": "Sets the mid-point of the color domain by scaling `zmin` and/or `zmax` to be equidistant to this point. Value should have the same units as in `z`. Has no effect when `zauto` is `false`.", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "valType": "number" }, - "zhoverformat": { - "description": "Sets the hover text formatting rulefor `z` 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*By default the values are formatted using `zaxis.hoverformat`.", - "dflt": "", - "editType": "none", - "valType": "string" + "zmin": { + "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "zauto": false + }, + "valType": "number" }, "zsrc": { "description": "Sets the source reference on Chart Studio Cloud for `z`.", @@ -29557,31 +29862,71 @@ } }, "categories": [ - "gl3d", + "mapbox", + "gl", + "noOpacity", "showLegend" ], "meta": { - "description": "Use cone traces to visualize vector fields. Specify a vector field using 6 1D arrays, 3 position arrays `x`, `y` and `z` and 3 vector component arrays `u`, `v`, `w`. The cones are drawn exactly at the positions given by `x`, `y` and `z`." + "description": "GeoJSON features to be filled are set in `geojson` The data that describes the choropleth value-to-color mapping is set in `locations` and `z`.", + "hr_name": "choropleth_mapbox" }, - "type": "cone" + "type": "choroplethmapbox" }, - "contour": { + "cone": { "animatable": false, "attributes": { + "anchor": { + "description": "Sets the cones' anchor with respect to their x/y/z positions. Note that *cm* denote the cone's center of mass which corresponds to 1/4 from the tail to tip.", + "dflt": "cm", + "editType": "calc", + "valType": "enumerated", + "values": [ + "tip", + "tail", + "cm", + "center" + ] + }, "autocolorscale": { "description": "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.", - "dflt": false, + "dflt": true, "editType": "calc", "impliedEdits": {}, "valType": "boolean" }, - "autocontour": { - "description": "Determines whether or not the contour level attributes are picked by an algorithm. If *true*, the number of contour levels can be set in `ncontours`. If *false*, set the contour level attributes in `contours`.", + "cauto": { + "description": "Determines whether or not the color domain is computed with respect to the input data (here u/v/w norm) or the bounds set in `cmin` and `cmax` Defaults to `false` when `cmin` and `cmax` are set by the user.", "dflt": true, "editType": "calc", "impliedEdits": {}, "valType": "boolean" }, + "cmax": { + "description": "Sets the upper bound of the color domain. Value should have the same units as u/v/w norm and if set, `cmin` must be set as well.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "valType": "number" + }, + "cmid": { + "description": "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 u/v/w norm. Has no effect when `cauto` is `false`.", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "valType": "number" + }, + "cmin": { + "description": "Sets the lower bound of the color domain. Value should have the same units as u/v/w norm and if set, `cmax` must be set as well.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "valType": "number" + }, "coloraxis": { "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", "dflt": null, @@ -30302,7 +30647,7 @@ } }, "colorscale": { - "description": "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 `zmin` and `zmax`. 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.", + "description": "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.", "dflt": null, "editType": "calc", "impliedEdits": { @@ -30310,203 +30655,6 @@ }, "valType": "colorscale" }, - "connectgaps": { - "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the `z` data are filled in. It is defaulted to true if `z` is a one dimensional array otherwise it is defaulted to false.", - "editType": "calc", - "valType": "boolean" - }, - "contours": { - "coloring": { - "description": "Determines the coloring method showing the contour values. If *fill*, coloring is done evenly between each contour level If *heatmap*, a heatmap gradient coloring is applied between each contour level. If *lines*, coloring is done on the contour lines. If *none*, no coloring is applied on this trace.", - "dflt": "fill", - "editType": "calc", - "valType": "enumerated", - "values": [ - "fill", - "heatmap", - "lines", - "none" - ] - }, - "editType": "calc", - "end": { - "description": "Sets the end contour level value. Must be more than `contours.start`", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "^autocontour": false - }, - "valType": "number" - }, - "impliedEdits": { - "autocontour": false, - "role": "object" - }, - "labelfont": { - "color": { - "editType": "style", - "valType": "color" - }, - "description": "Sets the font used for labeling the contour levels. The default color comes from the lines, if shown. The default family and size come from `layout.font`.", - "editType": "plot", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "plot", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "plot", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "plot", - "valType": "string" - }, - "size": { - "editType": "plot", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "plot", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "labelformat": { - "description": "Sets the contour 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.", - "dflt": "", - "editType": "plot", - "valType": "string" - }, - "operation": { - "description": "Sets the constraint operation. *=* keeps regions equal to `value` *<* and *<=* keep regions less than `value` *>* and *>=* keep regions greater than `value` *[]*, *()*, *[)*, and *(]* keep regions inside `value[0]` to `value[1]` *][*, *)(*, *](*, *)[* keep regions outside `value[0]` to value[1]` Open vs. closed intervals make no difference to constraint display, but all versions are allowed for consistency with filter transforms.", - "dflt": "=", - "editType": "calc", - "valType": "enumerated", - "values": [ - "=", - "<", - ">=", - ">", - "<=", - "[]", - "()", - "[)", - "(]", - "][", - ")(", - "](", - ")[" - ] - }, - "role": "object", - "showlabels": { - "description": "Determines whether to label the contour lines with their values.", - "dflt": false, - "editType": "plot", - "valType": "boolean" - }, - "showlines": { - "description": "Determines whether or not the contour lines are drawn. Has an effect only if `contours.coloring` is set to *fill*.", - "dflt": true, - "editType": "plot", - "valType": "boolean" - }, - "size": { - "description": "Sets the step between each contour level. Must be positive.", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "^autocontour": false - }, - "min": 0, - "valType": "number" - }, - "start": { - "description": "Sets the starting contour level value. Must be less than `contours.end`", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "^autocontour": false - }, - "valType": "number" - }, - "type": { - "description": "If `levels`, the data is represented as a contour plot with multiple levels displayed. If `constraint`, the data is represented as constraints with the invalid region shaded as specified by the `operation` and `value` parameters.", - "dflt": "levels", - "editType": "calc", - "valType": "enumerated", - "values": [ - "levels", - "constraint" - ] - }, - "value": { - "description": "Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values (=,<,>=,>,<=) *value* is expected to be a number. When `operation` is set to one of the interval values ([],(),[),(],][,)(,](,)[) *value* is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound.", - "dflt": 0, - "editType": "calc", - "valType": "any" - } - }, "customdata": { "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", "editType": "calc", @@ -30517,34 +30665,11 @@ "editType": "none", "valType": "string" }, - "dx": { - "description": "Sets the x coordinate step. See `x0` for more info.", - "dflt": 1, - "editType": "calc", - "impliedEdits": { - "xtype": "scaled" - }, - "valType": "number" - }, - "dy": { - "description": "Sets the y coordinate step. See `y0` for more info.", - "dflt": 1, - "editType": "calc", - "impliedEdits": { - "ytype": "scaled" - }, - "valType": "number" - }, - "fillcolor": { - "description": "Sets the fill color if `contours.type` is *constraint*. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available.", - "editType": "calc", - "valType": "color" - }, "hoverinfo": { "arrayOk": true, "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", - "dflt": "all", - "editType": "none", + "dflt": "x+y+z+norm+text+name", + "editType": "calc", "extras": [ "all", "none", @@ -30554,6 +30679,10 @@ "x", "y", "z", + "u", + "v", + "w", + "norm", "text", "name" ], @@ -30763,17 +30892,11 @@ }, "role": "object" }, - "hoverongaps": { - "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the `z` data have hover labels associated with them.", - "dflt": true, - "editType": "none", - "valType": "boolean" - }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `norm` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", "dflt": "", - "editType": "none", + "editType": "calc", "valType": "string" }, "hovertemplatesrc": { @@ -30782,9 +30905,11 @@ "valType": "string" }, "hovertext": { + "arrayOk": true, "description": "Same as `text`.", + "dflt": "", "editType": "calc", - "valType": "data_array" + "valType": "string" }, "hovertextsrc": { "description": "Sets the source reference on Chart Studio Cloud for `hovertext`.", @@ -30924,43 +31049,94 @@ "min": 0, "valType": "number" }, - "line": { - "color": { - "description": "Sets the color of the contour level. Has no effect if `contours.coloring` is set to *lines*.", - "editType": "style+colorbars", - "valType": "color" + "lighting": { + "ambient": { + "description": "Ambient light increases overall color visibility but can wash out the image.", + "dflt": 0.8, + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" }, - "dash": { - "description": "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*).", - "dflt": "solid", - "editType": "style", - "valType": "string", - "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" - ] + "diffuse": { + "description": "Represents the extent that incident rays are reflected in a range of angles.", + "dflt": 0.8, + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + }, + "editType": "calc", + "facenormalsepsilon": { + "description": "Epsilon for face normals calculation avoids math issues arising from degenerate geometry.", + "dflt": 0.000001, + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + }, + "fresnel": { + "description": "Represents the reflectance as a dependency of the viewing angle; e.g. paper is reflective when viewing it from the edge of the paper (almost 90 degrees), causing shine.", + "dflt": 0.2, + "editType": "calc", + "max": 5, + "min": 0, + "valType": "number" }, - "editType": "plot", "role": "object", - "smoothing": { - "description": "Sets the amount of smoothing for the contour lines, where *0* corresponds to no smoothing.", - "dflt": 1, - "editType": "plot", - "max": 1.3, + "roughness": { + "description": "Alters specular reflection; the rougher the surface, the wider and less contrasty the shine.", + "dflt": 0.5, + "editType": "calc", + "max": 1, "min": 0, "valType": "number" }, - "width": { - "description": "Sets the contour line width in (in px) Defaults to *0.5* when `contours.type` is *levels*. Defaults to *2* when `contour.type` is *constraint*.", - "editType": "style+colorbars", + "specular": { + "description": "Represents the level that incident rays are reflected in a single direction, causing shine.", + "dflt": 0.05, + "editType": "calc", + "max": 2, + "min": 0, + "valType": "number" + }, + "vertexnormalsepsilon": { + "description": "Epsilon for vertex normals calculation avoids math issues arising from degenerate geometry.", + "dflt": 1e-12, + "editType": "calc", + "max": 1, "min": 0, "valType": "number" } }, + "lightposition": { + "editType": "calc", + "role": "object", + "x": { + "description": "Numeric vector, representing the X coordinate for each vertex.", + "dflt": 100000, + "editType": "calc", + "max": 100000, + "min": -100000, + "valType": "number" + }, + "y": { + "description": "Numeric vector, representing the Y coordinate for each vertex.", + "dflt": 100000, + "editType": "calc", + "max": 100000, + "min": -100000, + "valType": "number" + }, + "z": { + "description": "Numeric vector, representing the Z coordinate for each vertex.", + "dflt": 0, + "editType": "calc", + "max": 100000, + "min": -100000, + "valType": "number" + } + }, "meta": { "arrayOk": true, "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", @@ -30977,30 +31153,29 @@ "editType": "style", "valType": "string" }, - "ncontours": { - "description": "Sets the maximum number of contour levels. The actual number of contours will be chosen automatically to be less than or equal to the value of `ncontours`. Has an effect only if `autocontour` is *true* or if `contours.size` is missing.", - "dflt": 15, - "editType": "calc", - "min": 1, - "valType": "integer" - }, "opacity": { - "description": "Sets the opacity of the trace.", + "description": "Sets the opacity of the surface. Please note that in the case of using high `opacity` values for example a value greater than or equal to 0.5 on two surfaces (and 0.25 with four surfaces), an overlay of multiple transparent surfaces may not perfectly be sorted in depth by the webgl API. This behavior may be improved in the near future and is subject to change.", "dflt": 1, - "editType": "style", + "editType": "calc", "max": 1, "min": 0, "valType": "number" }, "reversescale": { - "description": "Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color.", + "description": "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.", "dflt": false, "editType": "plot", "valType": "boolean" }, + "scene": { + "description": "Sets a reference between this trace's 3D coordinate system and a 3D scene. If *scene* (the default value), the (x,y,z) coordinates refer to `layout.scene`. If *scene2*, the (x,y,z) coordinates refer to `layout.scene2`, and so on.", + "dflt": "scene", + "editType": "calc+clearAxisTypes", + "valType": "subplotid" + }, "showlegend": { "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", - "dflt": true, + "dflt": false, "editType": "style", "valType": "boolean" }, @@ -31010,6 +31185,23 @@ "editType": "calc", "valType": "boolean" }, + "sizemode": { + "description": "Determines whether `sizeref` is set as a *scaled* (i.e unitless) scalar (normalized by the max u/v/w norm in the vector field) or as *absolute* value (in the same units as the vector field). To display sizes in actual vector length use *raw*.", + "dflt": "scaled", + "editType": "calc", + "valType": "enumerated", + "values": [ + "scaled", + "absolute", + "raw" + ] + }, + "sizeref": { + "description": "Adjusts the cone size scaling. The size of the cones is determined by their u/v/w norm multiplied a factor and `sizeref`. This factor (computed internally) corresponds to the minimum \"time\" to travel across two successive x/y/z positions at the average velocity of those two successive positions. All cones in a given trace use the same factor. With `sizemode` set to *raw*, its default value is *1*. With `sizemode` set to *scaled*, `sizeref` is unitless, its default value is *0.5*. With `sizemode` set to *absolute*, `sizeref` has the same units as the u/v/w vector field, its the default value is half the sample's maximum vector norm.", + "editType": "calc", + "min": 0, + "valType": "number" + }, "stream": { "editType": "calc", "maxpoints": { @@ -31030,138 +31222,54 @@ } }, "text": { - "description": "Sets the text elements associated with each z value.", + "arrayOk": true, + "description": "Sets the text elements associated with the cones. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", + "dflt": "", "editType": "calc", - "valType": "data_array" - }, - "textfont": { - "color": { - "dflt": "auto", - "editType": "style", - "valType": "color" - }, - "description": "For this trace it only has an effect if `coloring` is set to *heatmap*. Sets the text font.", - "editType": "plot", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "plot", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "plot", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "plot", - "valType": "string" - }, - "size": { - "dflt": "auto", - "editType": "plot", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "plot", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } + "valType": "string" }, "textsrc": { "description": "Sets the source reference on Chart Studio Cloud for `text`.", "editType": "none", "valType": "string" }, - "texttemplate": { - "description": "For this trace it only has an effect if `coloring` is set to *heatmap*. Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". 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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `x`, `y`, `z` and `text`.", + "type": "cone", + "u": { + "description": "Sets the x components of the vector field.", + "editType": "calc", + "valType": "data_array" + }, + "uhoverformat": { + "description": "Sets the hover text formatting rulefor `u` 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.By default the values are formatted using generic number format.", "dflt": "", + "editType": "none", + "valType": "string" + }, + "uid": { + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", "editType": "plot", "valType": "string" }, - "transforms": { - "items": { - "transform": { - "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "editType": "calc", - "role": "object" - } - }, - "role": "object" + "uirevision": { + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.", + "editType": "none", + "valType": "any" }, - "transpose": { - "description": "Transposes the z data.", - "dflt": false, - "editType": "calc", - "valType": "boolean" - }, - "type": "contour", - "uid": { - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", - "editType": "plot", + "usrc": { + "description": "Sets the source reference on Chart Studio Cloud for `u`.", + "editType": "none", "valType": "string" }, - "uirevision": { - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.", + "v": { + "description": "Sets the y components of the vector field.", + "editType": "calc", + "valType": "data_array" + }, + "vhoverformat": { + "description": "Sets the hover text formatting rulefor `v` 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.By default the values are formatted using generic number format.", + "dflt": "", "editType": "none", - "valType": "any" + "valType": "string" }, "visible": { "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", @@ -31174,52 +31282,31 @@ "legendonly" ] }, - "x": { - "description": "Sets the x coordinates.", - "editType": "calc+clearAxisTypes", - "impliedEdits": { - "xtype": "array" - }, + "vsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `v`.", + "editType": "none", + "valType": "string" + }, + "w": { + "description": "Sets the z components of the vector field.", + "editType": "calc", "valType": "data_array" }, - "x0": { - "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step.", - "dflt": 0, - "editType": "calc+clearAxisTypes", - "impliedEdits": { - "xtype": "scaled" - }, - "valType": "any" + "whoverformat": { + "description": "Sets the hover text formatting rulefor `w` 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.By default the values are formatted using generic number format.", + "dflt": "", + "editType": "none", + "valType": "string" }, - "xaxis": { - "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on.", - "dflt": "x", - "editType": "calc+clearAxisTypes", - "valType": "subplotid" + "wsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `w`.", + "editType": "none", + "valType": "string" }, - "xcalendar": { - "description": "Sets the calendar system to use with `x` date data.", - "dflt": "gregorian", - "editType": "calc", - "valType": "enumerated", - "values": [ - "chinese", - "coptic", - "discworld", - "ethiopian", - "gregorian", - "hebrew", - "islamic", - "jalali", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "taiwan", - "thai", - "ummalqura" - ] + "x": { + "description": "Sets the x coordinates of the vector field and of the displayed cones.", + "editType": "calc+clearAxisTypes", + "valType": "data_array" }, "xhoverformat": { "description": "Sets the hover text formatting rulefor `x` 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*By default the values are formatted using `xaxis.hoverformat`.", @@ -31227,192 +31314,38 @@ "editType": "none", "valType": "string" }, - "xperiod": { - "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer.", - "dflt": 0, - "editType": "calc", - "impliedEdits": { - "xtype": "scaled" - }, - "valType": "any" - }, - "xperiod0": { - "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01.", - "editType": "calc", - "valType": "any" - }, - "xperiodalignment": { - "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis.", - "dflt": "middle", - "editType": "calc", - "impliedEdits": { - "xtype": "scaled" - }, - "valType": "enumerated", - "values": [ - "start", - "middle", - "end" - ] - }, "xsrc": { "description": "Sets the source reference on Chart Studio Cloud for `x`.", "editType": "none", "valType": "string" }, - "xtype": { - "description": "If *array*, the heatmap's x coordinates are given by *x* (the default behavior when `x` is provided). If *scaled*, the heatmap's x coordinates are given by *x0* and *dx* (the default behavior when `x` is not provided).", - "editType": "calc+clearAxisTypes", - "valType": "enumerated", - "values": [ - "array", - "scaled" - ] - }, "y": { - "description": "Sets the y coordinates.", + "description": "Sets the y coordinates of the vector field and of the displayed cones.", "editType": "calc+clearAxisTypes", - "impliedEdits": { - "ytype": "array" - }, "valType": "data_array" }, - "y0": { - "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step.", - "dflt": 0, - "editType": "calc+clearAxisTypes", - "impliedEdits": { - "ytype": "scaled" - }, - "valType": "any" - }, - "yaxis": { - "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on.", - "dflt": "y", - "editType": "calc+clearAxisTypes", - "valType": "subplotid" - }, - "ycalendar": { - "description": "Sets the calendar system to use with `y` date data.", - "dflt": "gregorian", - "editType": "calc", - "valType": "enumerated", - "values": [ - "chinese", - "coptic", - "discworld", - "ethiopian", - "gregorian", - "hebrew", - "islamic", - "jalali", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "taiwan", - "thai", - "ummalqura" - ] - }, "yhoverformat": { "description": "Sets the hover text formatting rulefor `y` 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*By default the values are formatted using `yaxis.hoverformat`.", "dflt": "", "editType": "none", "valType": "string" }, - "yperiod": { - "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the y axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer.", - "dflt": 0, - "editType": "calc", - "impliedEdits": { - "ytype": "scaled" - }, - "valType": "any" - }, - "yperiod0": { - "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the y0 axis. When `y0period` is round number of weeks, the `y0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01.", - "editType": "calc", - "valType": "any" - }, - "yperiodalignment": { - "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the y axis.", - "dflt": "middle", - "editType": "calc", - "impliedEdits": { - "ytype": "scaled" - }, - "valType": "enumerated", - "values": [ - "start", - "middle", - "end" - ] - }, "ysrc": { "description": "Sets the source reference on Chart Studio Cloud for `y`.", "editType": "none", "valType": "string" }, - "ytype": { - "description": "If *array*, the heatmap's y coordinates are given by *y* (the default behavior when `y` is provided) If *scaled*, the heatmap's y coordinates are given by *y0* and *dy* (the default behavior when `y` is not provided)", - "editType": "calc+clearAxisTypes", - "valType": "enumerated", - "values": [ - "array", - "scaled" - ] - }, "z": { - "description": "Sets the z data.", - "editType": "calc", + "description": "Sets the z coordinates of the vector field and of the displayed cones.", + "editType": "calc+clearAxisTypes", "valType": "data_array" }, - "zauto": { - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `z`) or the bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user.", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" - }, "zhoverformat": { - "description": "Sets the hover text formatting rulefor `z` 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.By default the values are formatted using generic number format.", + "description": "Sets the hover text formatting rulefor `z` 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*By default the values are formatted using `zaxis.hoverformat`.", "dflt": "", "editType": "none", "valType": "string" }, - "zmax": { - "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "zauto": false - }, - "valType": "number" - }, - "zmid": { - "description": "Sets the mid-point of the color domain by scaling `zmin` and/or `zmax` to be equidistant to this point. Value should have the same units as in `z`. Has no effect when `zauto` is `false`.", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "valType": "number" - }, - "zmin": { - "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "zauto": false - }, - "valType": "number" - }, - "zorder": { - "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", - "dflt": 0, - "editType": "plot", - "valType": "integer" - }, "zsrc": { "description": "Sets the source reference on Chart Studio Cloud for `z`.", "editType": "none", @@ -31420,51 +31353,17 @@ } }, "categories": [ - "cartesian", - "svg", - "2dMap", - "contour", + "gl3d", "showLegend" ], "meta": { - "description": "The data from which contour lines are computed is set in `z`. Data in `z` must be a {2D array} of numbers. Say that `z` has N rows and M columns, then by default, these N rows correspond to N y coordinates (set in `y` or auto-generated) and the M columns correspond to M x coordinates (set in `x` or auto-generated). By setting `transpose` to *true*, the above behavior is flipped." + "description": "Use cone traces to visualize vector fields. Specify a vector field using 6 1D arrays, 3 position arrays `x`, `y` and `z` and 3 vector component arrays `u`, `v`, `w`. The cones are drawn exactly at the positions given by `x`, `y` and `z`." }, - "type": "contour" + "type": "cone" }, - "contourcarpet": { + "contour": { "animatable": false, "attributes": { - "a": { - "description": "Sets the x coordinates.", - "editType": "calc+clearAxisTypes", - "impliedEdits": { - "xtype": "array" - }, - "valType": "data_array" - }, - "a0": { - "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step.", - "dflt": 0, - "editType": "calc+clearAxisTypes", - "impliedEdits": { - "xtype": "scaled" - }, - "valType": "any" - }, - "asrc": { - "description": "Sets the source reference on Chart Studio Cloud for `a`.", - "editType": "none", - "valType": "string" - }, - "atype": { - "description": "If *array*, the heatmap's x coordinates are given by *x* (the default behavior when `x` is provided). If *scaled*, the heatmap's x coordinates are given by *x0* and *dx* (the default behavior when `x` is not provided).", - "editType": "calc+clearAxisTypes", - "valType": "enumerated", - "values": [ - "array", - "scaled" - ] - }, "autocolorscale": { "description": "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.", "dflt": false, @@ -31479,42 +31378,6 @@ "impliedEdits": {}, "valType": "boolean" }, - "b": { - "description": "Sets the y coordinates.", - "editType": "calc+clearAxisTypes", - "impliedEdits": { - "ytype": "array" - }, - "valType": "data_array" - }, - "b0": { - "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step.", - "dflt": 0, - "editType": "calc+clearAxisTypes", - "impliedEdits": { - "ytype": "scaled" - }, - "valType": "any" - }, - "bsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `b`.", - "editType": "none", - "valType": "string" - }, - "btype": { - "description": "If *array*, the heatmap's y coordinates are given by *y* (the default behavior when `y` is provided) If *scaled*, the heatmap's y coordinates are given by *y0* and *dy* (the default behavior when `y` is not provided)", - "editType": "calc+clearAxisTypes", - "valType": "enumerated", - "values": [ - "array", - "scaled" - ] - }, - "carpet": { - "description": "The `carpet` of the carpet axes on which this contour trace lies", - "editType": "calc", - "valType": "string" - }, "coloraxis": { "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", "dflt": null, @@ -32243,14 +32106,20 @@ }, "valType": "colorscale" }, + "connectgaps": { + "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the `z` data are filled in. It is defaulted to true if `z` is a one dimensional array otherwise it is defaulted to false.", + "editType": "calc", + "valType": "boolean" + }, "contours": { "coloring": { - "description": "Determines the coloring method showing the contour values. If *fill*, coloring is done evenly between each contour level If *lines*, coloring is done on the contour lines. If *none*, no coloring is applied on this trace.", + "description": "Determines the coloring method showing the contour values. If *fill*, coloring is done evenly between each contour level If *heatmap*, a heatmap gradient coloring is applied between each contour level. If *lines*, coloring is done on the contour lines. If *none*, no coloring is applied on this trace.", "dflt": "fill", "editType": "calc", "valType": "enumerated", "values": [ "fill", + "heatmap", "lines", "none" ] @@ -32444,7 +32313,7 @@ "editType": "none", "valType": "string" }, - "da": { + "dx": { "description": "Sets the x coordinate step. See `x0` for more info.", "dflt": 1, "editType": "calc", @@ -32453,7 +32322,7 @@ }, "valType": "number" }, - "db": { + "dy": { "description": "Sets the y coordinate step. See `y0` for more info.", "dflt": 1, "editType": "calc", @@ -32467,6 +32336,247 @@ "editType": "calc", "valType": "color" }, + "hoverinfo": { + "arrayOk": true, + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", + "dflt": "all", + "editType": "none", + "extras": [ + "all", + "none", + "skip" + ], + "flags": [ + "x", + "y", + "z", + "text", + "name" + ], + "valType": "flaglist" + }, + "hoverinfosrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", + "editType": "none", + "valType": "string" + }, + "hoverlabel": { + "align": { + "arrayOk": true, + "description": "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", + "dflt": "auto", + "editType": "none", + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ] + }, + "alignsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `align`.", + "editType": "none", + "valType": "string" + }, + "bgcolor": { + "arrayOk": true, + "description": "Sets the background color of the hover labels for this trace", + "editType": "none", + "valType": "color" + }, + "bgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", + "editType": "none", + "valType": "string" + }, + "bordercolor": { + "arrayOk": true, + "description": "Sets the border color of the hover labels for this trace.", + "editType": "none", + "valType": "color" + }, + "bordercolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", + "editType": "none", + "valType": "string" + }, + "editType": "none", + "font": { + "color": { + "arrayOk": true, + "editType": "none", + "valType": "color" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "description": "Sets the font used in hover labels.", + "editType": "none", + "family": { + "arrayOk": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "none", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" + }, + "lineposition": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "none", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", + "editType": "none", + "valType": "string" + }, + "role": "object", + "shadow": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "none", + "valType": "string" + }, + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", + "valType": "string" + }, + "size": { + "arrayOk": true, + "editType": "none", + "min": 1, + "valType": "number" + }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, + "style": { + "arrayOk": true, + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "none", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", + "valType": "string" + }, + "textcase": { + "arrayOk": true, + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "none", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", + "valType": "string" + }, + "variant": { + "arrayOk": true, + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "none", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" + }, + "weight": { + "arrayOk": true, + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "none", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + }, + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" + } + }, + "namelength": { + "arrayOk": true, + "description": "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.", + "dflt": 15, + "editType": "none", + "min": -1, + "valType": "integer" + }, + "namelengthsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", + "editType": "none", + "valType": "string" + }, + "role": "object" + }, + "hoverongaps": { + "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the `z` data have hover labels associated with them.", + "dflt": true, + "editType": "none", + "valType": "boolean" + }, + "hovertemplate": { + "arrayOk": true, + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "dflt": "", + "editType": "none", + "valType": "string" + }, + "hovertemplatesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", + "editType": "none", + "valType": "string" + }, "hovertext": { "description": "Same as `text`.", "editType": "calc", @@ -32720,18 +32830,125 @@ "editType": "calc", "valType": "data_array" }, + "textfont": { + "color": { + "dflt": "auto", + "editType": "style", + "valType": "color" + }, + "description": "For this trace it only has an effect if `coloring` is set to *heatmap*. Sets the text font.", + "editType": "plot", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "plot", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "plot", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "plot", + "valType": "string" + }, + "size": { + "dflt": "auto", + "editType": "plot", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "plot", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, "textsrc": { "description": "Sets the source reference on Chart Studio Cloud for `text`.", "editType": "none", "valType": "string" }, + "texttemplate": { + "description": "For this trace it only has an effect if `coloring` is set to *heatmap*. Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". 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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `x`, `y`, `z` and `text`.", + "dflt": "", + "editType": "plot", + "valType": "string" + }, + "transforms": { + "items": { + "transform": { + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "editType": "calc", + "role": "object" + } + }, + "role": "object" + }, "transpose": { "description": "Transposes the z data.", "dflt": false, "editType": "calc", "valType": "boolean" }, - "type": "contourcarpet", + "type": "contour", "uid": { "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", "editType": "plot", @@ -32753,103 +32970,350 @@ "legendonly" ] }, + "x": { + "description": "Sets the x coordinates.", + "editType": "calc+clearAxisTypes", + "impliedEdits": { + "xtype": "array" + }, + "valType": "data_array" + }, + "x0": { + "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step.", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "impliedEdits": { + "xtype": "scaled" + }, + "valType": "any" + }, "xaxis": { "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on.", "dflt": "x", "editType": "calc+clearAxisTypes", "valType": "subplotid" }, - "yaxis": { - "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on.", - "dflt": "y", - "editType": "calc+clearAxisTypes", - "valType": "subplotid" - }, - "z": { - "description": "Sets the z data.", + "xcalendar": { + "description": "Sets the calendar system to use with `x` date data.", + "dflt": "gregorian", "editType": "calc", - "valType": "data_array" + "valType": "enumerated", + "values": [ + "chinese", + "coptic", + "discworld", + "ethiopian", + "gregorian", + "hebrew", + "islamic", + "jalali", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "taiwan", + "thai", + "ummalqura" + ] }, - "zauto": { - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `z`) or the bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user.", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" + "xhoverformat": { + "description": "Sets the hover text formatting rulefor `x` 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*By default the values are formatted using `xaxis.hoverformat`.", + "dflt": "", + "editType": "none", + "valType": "string" }, - "zmax": { - "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well.", - "dflt": null, - "editType": "plot", + "xperiod": { + "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer.", + "dflt": 0, + "editType": "calc", "impliedEdits": { - "zauto": false + "xtype": "scaled" }, - "valType": "number" + "valType": "any" }, - "zmid": { - "description": "Sets the mid-point of the color domain by scaling `zmin` and/or `zmax` to be equidistant to this point. Value should have the same units as in `z`. Has no effect when `zauto` is `false`.", - "dflt": null, + "xperiod0": { + "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01.", "editType": "calc", - "impliedEdits": {}, - "valType": "number" + "valType": "any" }, - "zmin": { - "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well.", - "dflt": null, - "editType": "plot", + "xperiodalignment": { + "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis.", + "dflt": "middle", + "editType": "calc", "impliedEdits": { - "zauto": false + "xtype": "scaled" }, - "valType": "number" - }, - "zorder": { - "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", - "dflt": 0, - "editType": "plot", - "valType": "integer" + "valType": "enumerated", + "values": [ + "start", + "middle", + "end" + ] }, - "zsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `z`.", + "xsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `x`.", "editType": "none", "valType": "string" - } - }, - "categories": [ - "cartesian", - "svg", - "carpet", - "contour", - "symbols", - "showLegend", - "hasLines", - "carpetDependent", - "noHover", - "noSortingByValue" - ], - "meta": { - "description": "Plots contours on either the first carpet axis or the carpet axis with a matching `carpet` attribute. Data `z` is interpreted as matching that of the corresponding carpet axis.", - "hrName": "contour_carpet" - }, - "type": "contourcarpet" - }, - "densitymapbox": { - "animatable": false, - "attributes": { - "autocolorscale": { - "description": "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.", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" }, - "below": { - "description": "Determines if the densitymapbox trace will be inserted before the layer with the specified ID. By default, densitymapbox traces are placed below the first layer of type symbol If set to '', the layer will be inserted above every existing layer.", - "editType": "plot", - "valType": "string" + "xtype": { + "description": "If *array*, the heatmap's x coordinates are given by *x* (the default behavior when `x` is provided). If *scaled*, the heatmap's x coordinates are given by *x0* and *dx* (the default behavior when `x` is not provided).", + "editType": "calc+clearAxisTypes", + "valType": "enumerated", + "values": [ + "array", + "scaled" + ] }, - "coloraxis": { - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", - "dflt": null, + "y": { + "description": "Sets the y coordinates.", + "editType": "calc+clearAxisTypes", + "impliedEdits": { + "ytype": "array" + }, + "valType": "data_array" + }, + "y0": { + "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step.", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "impliedEdits": { + "ytype": "scaled" + }, + "valType": "any" + }, + "yaxis": { + "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on.", + "dflt": "y", + "editType": "calc+clearAxisTypes", + "valType": "subplotid" + }, + "ycalendar": { + "description": "Sets the calendar system to use with `y` date data.", + "dflt": "gregorian", + "editType": "calc", + "valType": "enumerated", + "values": [ + "chinese", + "coptic", + "discworld", + "ethiopian", + "gregorian", + "hebrew", + "islamic", + "jalali", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "taiwan", + "thai", + "ummalqura" + ] + }, + "yhoverformat": { + "description": "Sets the hover text formatting rulefor `y` 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*By default the values are formatted using `yaxis.hoverformat`.", + "dflt": "", + "editType": "none", + "valType": "string" + }, + "yperiod": { + "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the y axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer.", + "dflt": 0, + "editType": "calc", + "impliedEdits": { + "ytype": "scaled" + }, + "valType": "any" + }, + "yperiod0": { + "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the y0 axis. When `y0period` is round number of weeks, the `y0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01.", + "editType": "calc", + "valType": "any" + }, + "yperiodalignment": { + "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the y axis.", + "dflt": "middle", + "editType": "calc", + "impliedEdits": { + "ytype": "scaled" + }, + "valType": "enumerated", + "values": [ + "start", + "middle", + "end" + ] + }, + "ysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `y`.", + "editType": "none", + "valType": "string" + }, + "ytype": { + "description": "If *array*, the heatmap's y coordinates are given by *y* (the default behavior when `y` is provided) If *scaled*, the heatmap's y coordinates are given by *y0* and *dy* (the default behavior when `y` is not provided)", + "editType": "calc+clearAxisTypes", + "valType": "enumerated", + "values": [ + "array", + "scaled" + ] + }, + "z": { + "description": "Sets the z data.", + "editType": "calc", + "valType": "data_array" + }, + "zauto": { + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `z`) or the bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "zhoverformat": { + "description": "Sets the hover text formatting rulefor `z` 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.By default the values are formatted using generic number format.", + "dflt": "", + "editType": "none", + "valType": "string" + }, + "zmax": { + "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "zauto": false + }, + "valType": "number" + }, + "zmid": { + "description": "Sets the mid-point of the color domain by scaling `zmin` and/or `zmax` to be equidistant to this point. Value should have the same units as in `z`. Has no effect when `zauto` is `false`.", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "valType": "number" + }, + "zmin": { + "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "zauto": false + }, + "valType": "number" + }, + "zorder": { + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", + "dflt": 0, + "editType": "plot", + "valType": "integer" + }, + "zsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `z`.", + "editType": "none", + "valType": "string" + } + }, + "categories": [ + "cartesian", + "svg", + "2dMap", + "contour", + "showLegend" + ], + "meta": { + "description": "The data from which contour lines are computed is set in `z`. Data in `z` must be a {2D array} of numbers. Say that `z` has N rows and M columns, then by default, these N rows correspond to N y coordinates (set in `y` or auto-generated) and the M columns correspond to M x coordinates (set in `x` or auto-generated). By setting `transpose` to *true*, the above behavior is flipped." + }, + "type": "contour" + }, + "contourcarpet": { + "animatable": false, + "attributes": { + "a": { + "description": "Sets the x coordinates.", + "editType": "calc+clearAxisTypes", + "impliedEdits": { + "xtype": "array" + }, + "valType": "data_array" + }, + "a0": { + "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step.", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "impliedEdits": { + "xtype": "scaled" + }, + "valType": "any" + }, + "asrc": { + "description": "Sets the source reference on Chart Studio Cloud for `a`.", + "editType": "none", + "valType": "string" + }, + "atype": { + "description": "If *array*, the heatmap's x coordinates are given by *x* (the default behavior when `x` is provided). If *scaled*, the heatmap's x coordinates are given by *x0* and *dx* (the default behavior when `x` is not provided).", + "editType": "calc+clearAxisTypes", + "valType": "enumerated", + "values": [ + "array", + "scaled" + ] + }, + "autocolorscale": { + "description": "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.", + "dflt": false, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "autocontour": { + "description": "Determines whether or not the contour level attributes are picked by an algorithm. If *true*, the number of contour levels can be set in `ncontours`. If *false*, set the contour level attributes in `contours`.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "b": { + "description": "Sets the y coordinates.", + "editType": "calc+clearAxisTypes", + "impliedEdits": { + "ytype": "array" + }, + "valType": "data_array" + }, + "b0": { + "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step.", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "impliedEdits": { + "ytype": "scaled" + }, + "valType": "any" + }, + "bsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `b`.", + "editType": "none", + "valType": "string" + }, + "btype": { + "description": "If *array*, the heatmap's y coordinates are given by *y* (the default behavior when `y` is provided) If *scaled*, the heatmap's y coordinates are given by *y0* and *dy* (the default behavior when `y` is not provided)", + "editType": "calc+clearAxisTypes", + "valType": "enumerated", + "values": [ + "array", + "scaled" + ] + }, + "carpet": { + "description": "The `carpet` of the carpet axes on which this contour trace lies", + "editType": "calc", + "valType": "string" + }, + "coloraxis": { + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", + "dflt": null, "editType": "calc", "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", "valType": "subplotid" @@ -33575,112 +34039,50 @@ }, "valType": "colorscale" }, - "customdata": { - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "editType": "calc", - "valType": "data_array" - }, - "customdatasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", - "editType": "none", - "valType": "string" - }, - "hoverinfo": { - "arrayOk": true, - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", - "dflt": "all", - "editType": "none", - "extras": [ - "all", - "none", - "skip" - ], - "flags": [ - "lon", - "lat", - "z", - "text", - "name" - ], - "valType": "flaglist" - }, - "hoverinfosrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", - "editType": "none", - "valType": "string" - }, - "hoverlabel": { - "align": { - "arrayOk": true, - "description": "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", - "dflt": "auto", - "editType": "none", + "contours": { + "coloring": { + "description": "Determines the coloring method showing the contour values. If *fill*, coloring is done evenly between each contour level If *lines*, coloring is done on the contour lines. If *none*, no coloring is applied on this trace.", + "dflt": "fill", + "editType": "calc", "valType": "enumerated", "values": [ - "left", - "right", - "auto" + "fill", + "lines", + "none" ] }, - "alignsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `align`.", - "editType": "none", - "valType": "string" - }, - "bgcolor": { - "arrayOk": true, - "description": "Sets the background color of the hover labels for this trace", - "editType": "none", - "valType": "color" - }, - "bgcolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", - "editType": "none", - "valType": "string" - }, - "bordercolor": { - "arrayOk": true, - "description": "Sets the border color of the hover labels for this trace.", - "editType": "none", - "valType": "color" + "editType": "calc", + "end": { + "description": "Sets the end contour level value. Must be more than `contours.start`", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "^autocontour": false + }, + "valType": "number" }, - "bordercolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", - "editType": "none", - "valType": "string" + "impliedEdits": { + "autocontour": false, + "role": "object" }, - "editType": "none", - "font": { + "labelfont": { "color": { - "arrayOk": true, - "editType": "none", + "editType": "style", "valType": "color" }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "description": "Sets the font used in hover labels.", - "editType": "none", + "description": "Sets the font used for labeling the contour levels. The default color comes from the lines, if shown. The default family and size come from `layout.font`.", + "editType": "plot", "family": { - "arrayOk": true, "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "none", + "editType": "plot", "noBlank": true, "strict": true, "valType": "string" }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" - }, "lineposition": { - "arrayOk": true, "description": "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.", "dflt": "none", - "editType": "none", + "editType": "plot", "extras": [ "none" ], @@ -33691,56 +34093,32 @@ ], "valType": "flaglist" }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", - "valType": "string" - }, "role": "object", "shadow": { - "arrayOk": true, "description": "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.", "dflt": "none", - "editType": "none", - "valType": "string" - }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", - "editType": "none", + "editType": "plot", "valType": "string" }, "size": { - "arrayOk": true, - "editType": "none", + "editType": "plot", "min": 1, "valType": "number" }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" - }, "style": { - "arrayOk": true, "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "none", + "editType": "plot", "valType": "enumerated", "values": [ "normal", "italic" ] }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" - }, "textcase": { - "arrayOk": true, "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "none", + "editType": "plot", "valType": "enumerated", "values": [ "normal", @@ -33749,16 +34127,10 @@ "lower" ] }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" - }, "variant": { - "arrayOk": true, "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "none", + "editType": "plot", "valType": "enumerated", "values": [ "normal", @@ -33769,16 +34141,10 @@ "unicase" ] }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" - }, "weight": { - "arrayOk": true, "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "none", + "editType": "plot", "extras": [ "normal", "bold" @@ -33786,46 +34152,121 @@ "max": 1000, "min": 1, "valType": "integer" - }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", - "valType": "string" } }, - "namelength": { - "arrayOk": true, - "description": "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.", - "dflt": 15, - "editType": "none", - "min": -1, - "valType": "integer" - }, - "namelengthsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", - "editType": "none", + "labelformat": { + "description": "Sets the contour 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.", + "dflt": "", + "editType": "plot", "valType": "string" }, - "role": "object" + "operation": { + "description": "Sets the constraint operation. *=* keeps regions equal to `value` *<* and *<=* keep regions less than `value` *>* and *>=* keep regions greater than `value` *[]*, *()*, *[)*, and *(]* keep regions inside `value[0]` to `value[1]` *][*, *)(*, *](*, *)[* keep regions outside `value[0]` to value[1]` Open vs. closed intervals make no difference to constraint display, but all versions are allowed for consistency with filter transforms.", + "dflt": "=", + "editType": "calc", + "valType": "enumerated", + "values": [ + "=", + "<", + ">=", + ">", + "<=", + "[]", + "()", + "[)", + "(]", + "][", + ")(", + "](", + ")[" + ] + }, + "role": "object", + "showlabels": { + "description": "Determines whether to label the contour lines with their values.", + "dflt": false, + "editType": "plot", + "valType": "boolean" + }, + "showlines": { + "description": "Determines whether or not the contour lines are drawn. Has an effect only if `contours.coloring` is set to *fill*.", + "dflt": true, + "editType": "plot", + "valType": "boolean" + }, + "size": { + "description": "Sets the step between each contour level. Must be positive.", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "^autocontour": false + }, + "min": 0, + "valType": "number" + }, + "start": { + "description": "Sets the starting contour level value. Must be less than `contours.end`", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "^autocontour": false + }, + "valType": "number" + }, + "type": { + "description": "If `levels`, the data is represented as a contour plot with multiple levels displayed. If `constraint`, the data is represented as constraints with the invalid region shaded as specified by the `operation` and `value` parameters.", + "dflt": "levels", + "editType": "calc", + "valType": "enumerated", + "values": [ + "levels", + "constraint" + ] + }, + "value": { + "description": "Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values (=,<,>=,>,<=) *value* is expected to be a number. When `operation` is set to one of the interval values ([],(),[),(],][,)(,](,)[) *value* is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound.", + "dflt": 0, + "editType": "calc", + "valType": "any" + } }, - "hovertemplate": { - "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "dflt": "", + "customdata": { + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", + "editType": "calc", + "valType": "data_array" + }, + "customdatasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", "editType": "none", "valType": "string" }, - "hovertemplatesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", - "editType": "none", - "valType": "string" + "da": { + "description": "Sets the x coordinate step. See `x0` for more info.", + "dflt": 1, + "editType": "calc", + "impliedEdits": { + "xtype": "scaled" + }, + "valType": "number" + }, + "db": { + "description": "Sets the y coordinate step. See `y0` for more info.", + "dflt": 1, + "editType": "calc", + "impliedEdits": { + "ytype": "scaled" + }, + "valType": "number" + }, + "fillcolor": { + "description": "Sets the fill color if `contours.type` is *constraint*. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available.", + "editType": "calc", + "valType": "color" }, "hovertext": { - "arrayOk": true, - "description": "Sets hover text elements associated with each (lon,lat) pair If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (lon,lat) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag.", - "dflt": "", + "description": "Same as `text`.", "editType": "calc", - "valType": "string" + "valType": "data_array" }, "hovertextsrc": { "description": "Sets the source reference on Chart Studio Cloud for `hovertext`.", @@ -33842,16 +34283,6 @@ "editType": "none", "valType": "string" }, - "lat": { - "description": "Sets the latitude coordinates (in degrees North).", - "editType": "calc", - "valType": "data_array" - }, - "latsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lat`.", - "editType": "none", - "valType": "string" - }, "legend": { "description": "Sets the reference to a legend to show this trace 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.", "dflt": "legend", @@ -33975,15 +34406,42 @@ "min": 0, "valType": "number" }, - "lon": { - "description": "Sets the longitude coordinates (in degrees East).", - "editType": "calc", - "valType": "data_array" - }, - "lonsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lon`.", - "editType": "none", - "valType": "string" + "line": { + "color": { + "description": "Sets the color of the contour level. Has no effect if `contours.coloring` is set to *lines*.", + "editType": "style+colorbars", + "valType": "color" + }, + "dash": { + "description": "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*).", + "dflt": "solid", + "editType": "style", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] + }, + "editType": "plot", + "role": "object", + "smoothing": { + "description": "Sets the amount of smoothing for the contour lines, where *0* corresponds to no smoothing.", + "dflt": 1, + "editType": "plot", + "max": 1.3, + "min": 0, + "valType": "number" + }, + "width": { + "description": "Sets the contour line width in (in px) Defaults to *0.5* when `contours.type` is *levels*. Defaults to *2* when `contour.type` is *constraint*.", + "editType": "style+colorbars", + "min": 0, + "valType": "number" + } }, "meta": { "arrayOk": true, @@ -34001,6 +34459,13 @@ "editType": "style", "valType": "string" }, + "ncontours": { + "description": "Sets the maximum number of contour levels. The actual number of contours will be chosen automatically to be less than or equal to the value of `ncontours`. Has an effect only if `autocontour` is *true* or if `contours.size` is missing.", + "dflt": 15, + "editType": "calc", + "min": 1, + "valType": "integer" + }, "opacity": { "description": "Sets the opacity of the trace.", "dflt": 1, @@ -34009,19 +34474,6 @@ "min": 0, "valType": "number" }, - "radius": { - "arrayOk": true, - "description": "Sets the radius of influence of one `lon` / `lat` point in pixels. Increasing the value makes the densitymapbox trace smoother, but less detailed.", - "dflt": 30, - "editType": "plot", - "min": 1, - "valType": "number" - }, - "radiussrc": { - "description": "Sets the source reference on Chart Studio Cloud for `radius`.", - "editType": "none", - "valType": "string" - }, "reversescale": { "description": "Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color.", "dflt": false, @@ -34030,7 +34482,7 @@ }, "showlegend": { "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", - "dflt": false, + "dflt": true, "editType": "style", "valType": "boolean" }, @@ -34059,35 +34511,23 @@ "valType": "string" } }, - "subplot": { - "description": "Sets a reference between this trace's data coordinates and a mapbox subplot. If *mapbox* (the default value), the data refer to `layout.mapbox`. If *mapbox2*, the data refer to `layout.mapbox2`, and so on.", - "dflt": "mapbox", - "editType": "calc", - "valType": "subplotid" - }, "text": { - "arrayOk": true, - "description": "Sets text elements associated with each (lon,lat) pair If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (lon,lat) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", - "dflt": "", + "description": "Sets the text elements associated with each z value.", "editType": "calc", - "valType": "string" + "valType": "data_array" }, "textsrc": { "description": "Sets the source reference on Chart Studio Cloud for `text`.", "editType": "none", "valType": "string" }, - "transforms": { - "items": { - "transform": { - "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "editType": "calc", - "role": "object" - } - }, - "role": "object" + "transpose": { + "description": "Transposes the z data.", + "dflt": false, + "editType": "calc", + "valType": "boolean" }, - "type": "densitymapbox", + "type": "contourcarpet", "uid": { "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", "editType": "plot", @@ -34109,8 +34549,20 @@ "legendonly" ] }, + "xaxis": { + "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on.", + "dflt": "x", + "editType": "calc+clearAxisTypes", + "valType": "subplotid" + }, + "yaxis": { + "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on.", + "dflt": "y", + "editType": "calc+clearAxisTypes", + "valType": "subplotid" + }, "z": { - "description": "Sets the points' weight. For example, a value of 10 would be equivalent to having 10 points of weight 1 in the same spot", + "description": "Sets the z data.", "editType": "calc", "valType": "data_array" }, @@ -34124,7 +34576,7 @@ "zmax": { "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well.", "dflt": null, - "editType": "calc", + "editType": "plot", "impliedEdits": { "zauto": false }, @@ -34140,12 +34592,18 @@ "zmin": { "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well.", "dflt": null, - "editType": "calc", + "editType": "plot", "impliedEdits": { "zauto": false }, "valType": "number" }, + "zorder": { + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", + "dflt": 0, + "editType": "plot", + "valType": "integer" + }, "zsrc": { "description": "Sets the source reference on Chart Studio Cloud for `z`.", "editType": "none", @@ -34153,548 +34611,350 @@ } }, "categories": [ - "mapbox", - "gl", - "showLegend" + "cartesian", + "svg", + "carpet", + "contour", + "symbols", + "showLegend", + "hasLines", + "carpetDependent", + "noHover", + "noSortingByValue" ], "meta": { - "description": "Draws a bivariate kernel density estimation with a Gaussian kernel from `lon` and `lat` coordinates and optional `z` values using a colorscale.", - "hr_name": "density_mapbox" + "description": "Plots contours on either the first carpet axis or the carpet axis with a matching `carpet` attribute. Data `z` is interpreted as matching that of the corresponding carpet axis.", + "hrName": "contour_carpet" }, - "type": "densitymapbox" + "type": "contourcarpet" }, - "funnel": { + "densitymap": { "animatable": false, "attributes": { - "alignmentgroup": { - "description": "Set several traces linked to the same position axis or matching axes to the same alignmentgroup. This controls whether bars compute their positional range dependently or independently.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "cliponaxis": { - "description": "Determines whether the text nodes are clipped about the subplot axes. To show the text nodes above axis lines and tick labels, make sure to set `xaxis.layer` and `yaxis.layer` to *below traces*.", + "autocolorscale": { + "description": "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.", "dflt": true, - "editType": "plot", + "editType": "calc", + "impliedEdits": {}, "valType": "boolean" }, - "connector": { + "below": { + "description": "Determines if the densitymap trace will be inserted before the layer with the specified ID. By default, densitymap traces are placed below the first layer of type symbol If set to '', the layer will be inserted above every existing layer.", "editType": "plot", - "fillcolor": { - "description": "Sets the fill color.", - "editType": "style", - "valType": "color" - }, - "line": { - "color": { - "description": "Sets the line color.", - "dflt": "#444", - "editType": "style", - "valType": "color" + "valType": "string" + }, + "coloraxis": { + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", + "dflt": null, + "editType": "calc", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "valType": "subplotid" + }, + "colorbar": { + "_deprecated": { + "title": { + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars", + "valType": "string" }, - "dash": { - "description": "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*).", - "dflt": "solid", - "editType": "style", - "valType": "string", + "titlefont": { + "color": { + "editType": "colorbars", + "valType": "color" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "valType": "string" + }, + "size": { + "editType": "colorbars", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "colorbars", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "titleside": { + "description": "Deprecated in favor of color bar's `title.side`.", + "dflt": "top", + "editType": "colorbars", + "valType": "enumerated", "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" + "right", + "top", + "bottom" ] - }, - "editType": "style", - "role": "object", - "width": { - "description": "Sets the line width (in px).", - "dflt": 0, - "editType": "plot", - "min": 0, - "valType": "number" } }, - "role": "object", - "visible": { - "description": "Determines if connector regions and lines are drawn.", - "dflt": true, - "editType": "plot", - "valType": "boolean" - } - }, - "constraintext": { - "description": "Constrain the size of text inside or outside a bar to be no larger than the bar itself.", - "dflt": "both", - "editType": "calc", - "valType": "enumerated", - "values": [ - "inside", - "outside", - "both", - "none" - ] - }, - "customdata": { - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "editType": "calc", - "valType": "data_array" - }, - "customdatasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", - "editType": "none", - "valType": "string" - }, - "dx": { - "description": "Sets the x coordinate step. See `x0` for more info.", - "dflt": 1, - "editType": "calc", - "valType": "number" - }, - "dy": { - "description": "Sets the y coordinate step. See `y0` for more info.", - "dflt": 1, - "editType": "calc", - "valType": "number" - }, - "hoverinfo": { - "arrayOk": true, - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", - "dflt": "all", - "editType": "none", - "extras": [ - "all", - "none", - "skip" - ], - "flags": [ - "name", - "x", - "y", - "text", - "percent initial", - "percent previous", - "percent total" - ], - "valType": "flaglist" - }, - "hoverinfosrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", - "editType": "none", - "valType": "string" - }, - "hoverlabel": { - "align": { - "arrayOk": true, - "description": "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", - "dflt": "auto", - "editType": "none", + "bgcolor": { + "description": "Sets the color of padded area.", + "dflt": "rgba(0,0,0,0)", + "editType": "colorbars", + "valType": "color" + }, + "bordercolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" + }, + "borderwidth": { + "description": "Sets the width (in px) or the border enclosing this color bar.", + "dflt": 0, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "dtick": { + "description": "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*, 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* 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*", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" + }, + "editType": "colorbars", + "exponentformat": { + "description": "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.", + "dflt": "B", + "editType": "colorbars", "valType": "enumerated", "values": [ - "left", - "right", - "auto" + "none", + "e", + "E", + "power", + "SI", + "B" ] }, - "alignsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `align`.", - "editType": "none", - "valType": "string" + "labelalias": { + "description": "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.", + "dflt": false, + "editType": "colorbars", + "valType": "any" }, - "bgcolor": { - "arrayOk": true, - "description": "Sets the background color of the hover labels for this trace", - "editType": "none", - "valType": "color" + "len": { + "description": "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.", + "dflt": 1, + "editType": "colorbars", + "min": 0, + "valType": "number" }, - "bgcolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", - "editType": "none", - "valType": "string" + "lenmode": { + "description": "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.", + "dflt": "fraction", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] }, - "bordercolor": { - "arrayOk": true, - "description": "Sets the border color of the hover labels for this trace.", - "editType": "none", - "valType": "color" + "minexponent": { + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", + "dflt": 3, + "editType": "colorbars", + "min": 0, + "valType": "number" }, - "bordercolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", - "editType": "none", - "valType": "string" + "nticks": { + "description": "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*.", + "dflt": 0, + "editType": "colorbars", + "min": 0, + "valType": "integer" }, - "editType": "none", - "font": { - "color": { - "arrayOk": true, - "editType": "none", - "valType": "color" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "description": "Sets the font used in hover labels.", - "editType": "none", - "family": { - "arrayOk": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "none", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" - }, - "lineposition": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "none", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", - "valType": "string" - }, - "role": "object", - "shadow": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "none", - "valType": "string" - }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", - "editType": "none", - "valType": "string" - }, - "size": { - "arrayOk": true, - "editType": "none", - "min": 1, - "valType": "number" - }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" - }, - "style": { - "arrayOk": true, - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "none", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" - }, - "textcase": { - "arrayOk": true, - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "none", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" - }, - "variant": { - "arrayOk": true, - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "none", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" - }, - "weight": { - "arrayOk": true, - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "none", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", - "valType": "string" - } - }, - "namelength": { - "arrayOk": true, - "description": "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.", - "dflt": 15, - "editType": "none", - "min": -1, - "valType": "integer" - }, - "namelengthsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", - "editType": "none", - "valType": "string" + "orientation": { + "description": "Sets the orientation of the colorbar.", + "dflt": "v", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "h", + "v" + ] }, - "role": "object" - }, - "hovertemplate": { - "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `percentInitial`, `percentPrevious` and `percentTotal`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "dflt": "", - "editType": "none", - "valType": "string" - }, - "hovertemplatesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", - "editType": "none", - "valType": "string" - }, - "hovertext": { - "arrayOk": true, - "description": "Sets hover text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag.", - "dflt": "", - "editType": "style", - "valType": "string" - }, - "hovertextsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hovertext`.", - "editType": "none", - "valType": "string" - }, - "ids": { - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "editType": "calc", - "valType": "data_array" - }, - "idssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ids`.", - "editType": "none", - "valType": "string" - }, - "insidetextanchor": { - "description": "Determines if texts are kept at center or start/end points in `textposition` *inside* mode.", - "dflt": "middle", - "editType": "plot", - "valType": "enumerated", - "values": [ - "end", - "middle", - "start" - ] - }, - "insidetextfont": { - "color": { - "arrayOk": true, - "editType": "style", + "outlinecolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "colorbars", "valType": "color" }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "description": "Sets the font used for `text` lying inside the bar.", - "editType": "calc", - "family": { - "arrayOk": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" - }, - "lineposition": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "calc", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", - "valType": "string" + "outlinewidth": { + "description": "Sets the width (in px) of the axis line.", + "dflt": 1, + "editType": "colorbars", + "min": 0, + "valType": "number" }, "role": "object", - "shadow": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "calc", - "valType": "string" - }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", - "editType": "none", - "valType": "string" + "separatethousands": { + "description": "If \"true\", even 4-digit integers are separated", + "dflt": false, + "editType": "colorbars", + "valType": "boolean" }, - "size": { - "arrayOk": true, - "editType": "calc", - "min": 1, - "valType": "number" + "showexponent": { + "description": "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.", + "dflt": "all", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" + "showticklabels": { + "description": "Determines whether or not the tick labels are drawn.", + "dflt": true, + "editType": "colorbars", + "valType": "boolean" }, - "style": { - "arrayOk": true, - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "calc", + "showtickprefix": { + "description": "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.", + "dflt": "all", + "editType": "colorbars", "valType": "enumerated", "values": [ - "normal", - "italic" + "all", + "first", + "last", + "none" ] }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" - }, - "textcase": { - "arrayOk": true, - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "calc", + "showticksuffix": { + "description": "Same as `showtickprefix` but for tick suffixes.", + "dflt": "all", + "editType": "colorbars", "valType": "enumerated", "values": [ - "normal", - "word caps", - "upper", - "lower" + "all", + "first", + "last", + "none" ] }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" + "thickness": { + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "dflt": 30, + "editType": "colorbars", + "min": 0, + "valType": "number" }, - "variant": { - "arrayOk": true, - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "calc", + "thicknessmode": { + "description": "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.", + "dflt": "pixels", + "editType": "colorbars", "valType": "enumerated", "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" + "fraction", + "pixels" ] }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" + "tick0": { + "description": "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* (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.", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" }, - "weight": { - "arrayOk": true, - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "calc", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" + "tickangle": { + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", + "dflt": "auto", + "editType": "colorbars", + "valType": "angle" }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", - "valType": "string" - } - }, - "legend": { - "description": "Sets the reference to a legend to show this trace 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.", - "dflt": "legend", - "editType": "style", - "valType": "subplotid" - }, - "legendgroup": { - "description": "Sets the legend group for this trace. Traces and shapes part of the same legend group hide/show at the same time when toggling legend items.", - "dflt": "", - "editType": "style", - "valType": "string" - }, - "legendgrouptitle": { - "editType": "style", - "font": { + "tickcolor": { + "description": "Sets the tick color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" + }, + "tickfont": { "color": { - "editType": "style", + "editType": "colorbars", "valType": "color" }, - "description": "Sets this legend group's title font.", - "editType": "style", + "description": "Sets the color bar's tick label font", + "editType": "colorbars", "family": { "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "style", + "editType": "colorbars", "noBlank": true, "strict": true, "valType": "string" @@ -34702,7 +34962,7 @@ "lineposition": { "description": "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.", "dflt": "none", - "editType": "style", + "editType": "colorbars", "extras": [ "none" ], @@ -34717,18 +34977,18 @@ "shadow": { "description": "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.", "dflt": "none", - "editType": "style", + "editType": "colorbars", "valType": "string" }, "size": { - "editType": "style", + "editType": "colorbars", "min": 1, "valType": "number" }, "style": { "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "style", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -34738,7 +34998,7 @@ "textcase": { "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "style", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -34750,7 +35010,7 @@ "variant": { "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "style", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -34764,7 +35024,7 @@ "weight": { "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "style", + "editType": "colorbars", "extras": [ "normal", "bold" @@ -34774,380 +35034,169 @@ "valType": "integer" } }, - "role": "object", - "text": { - "description": "Sets the title of the legend group.", + "tickformat": { + "description": "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*", "dflt": "", - "editType": "style", + "editType": "colorbars", "valType": "string" - } - }, - "legendrank": { - "description": "Sets the legend rank for this trace. 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.", - "dflt": 1000, - "editType": "style", - "valType": "number" - }, - "legendwidth": { - "description": "Sets the width (in px or fraction) of the legend for this trace.", - "editType": "style", - "min": 0, - "valType": "number" - }, - "marker": { - "autocolorscale": { - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color` is set to a numerical array. 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.", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" - }, - "cauto": { - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color` is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user.", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" - }, - "cmax": { - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well.", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "valType": "number" - }, - "cmid": { - "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`.", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "valType": "number" - }, - "cmin": { - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well.", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "valType": "number" - }, - "color": { - "arrayOk": true, - "description": "Sets the marker color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set.", - "editType": "style", - "valType": "color" }, - "coloraxis": { - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", - "dflt": null, - "editType": "calc", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "valType": "subplotid" - }, - "colorbar": { - "_deprecated": { - "title": { - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars", - "valType": "string" - }, - "titlefont": { - "color": { + "tickformatstops": { + "items": { + "tickformatstop": { + "dtickrange": { + "description": "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*", "editType": "colorbars", - "valType": "color" + "items": [ + { + "editType": "colorbars", + "valType": "any" + }, + { + "editType": "colorbars", + "valType": "any" + } + ], + "valType": "info_array" }, - "description": "Deprecated in favor of color bar's `title.font`.", "editType": "colorbars", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", + "enabled": { + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", + "dflt": true, "editType": "colorbars", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" + "valType": "boolean" }, - "shadow": { - "description": "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.", - "dflt": "none", + "name": { + "description": "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.", "editType": "colorbars", "valType": "string" }, - "size": { - "editType": "colorbars", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", + "role": "object", + "templateitemname": { + "description": "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`.", "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] + "valType": "string" }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", + "value": { + "description": "string - dtickformat for described zoom level, the same as *tickformat*", + "dflt": "", "editType": "colorbars", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" + "valType": "string" } - }, - "titleside": { - "description": "Deprecated in favor of color bar's `title.side`.", - "dflt": "top", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ] } }, - "bgcolor": { - "description": "Sets the color of padded area.", - "dflt": "rgba(0,0,0,0)", - "editType": "colorbars", - "valType": "color" - }, - "bordercolor": { - "description": "Sets the axis line color.", - "dflt": "#444", - "editType": "colorbars", - "valType": "color" - }, - "borderwidth": { - "description": "Sets the width (in px) or the border enclosing this color bar.", - "dflt": 0, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "dtick": { - "description": "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*, 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* 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*", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "valType": "any" - }, + "role": "object" + }, + "ticklabeloverflow": { + "description": "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*.", "editType": "colorbars", - "exponentformat": { - "description": "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.", - "dflt": "B", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ] - }, - "labelalias": { - "description": "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.", - "dflt": false, - "editType": "colorbars", - "valType": "any" - }, - "len": { - "description": "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.", - "dflt": 1, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "lenmode": { - "description": "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.", - "dflt": "fraction", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ] - }, - "minexponent": { - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", - "dflt": 3, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "nticks": { - "description": "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*.", - "dflt": 0, - "editType": "colorbars", - "min": 0, - "valType": "integer" - }, - "orientation": { - "description": "Sets the orientation of the colorbar.", - "dflt": "v", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "h", - "v" - ] - }, - "outlinecolor": { - "description": "Sets the axis line color.", - "dflt": "#444", - "editType": "colorbars", - "valType": "color" - }, - "outlinewidth": { - "description": "Sets the width (in px) of the axis line.", - "dflt": 1, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "role": "object", - "separatethousands": { - "description": "If \"true\", even 4-digit integers are separated", - "dflt": false, - "editType": "colorbars", - "valType": "boolean" - }, - "showexponent": { - "description": "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.", - "dflt": "all", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] - }, - "showticklabels": { - "description": "Determines whether or not the tick labels are drawn.", - "dflt": true, - "editType": "colorbars", - "valType": "boolean" - }, - "showtickprefix": { - "description": "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.", - "dflt": "all", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] - }, - "showticksuffix": { - "description": "Same as `showtickprefix` but for tick suffixes.", - "dflt": "all", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] - }, - "thickness": { - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "dflt": 30, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "thicknessmode": { - "description": "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.", - "dflt": "pixels", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ] - }, - "tick0": { - "description": "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* (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.", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "valType": "any" - }, - "tickangle": { - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", - "dflt": "auto", - "editType": "colorbars", - "valType": "angle" - }, - "tickcolor": { - "description": "Sets the tick color.", - "dflt": "#444", - "editType": "colorbars", - "valType": "color" - }, - "tickfont": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ] + }, + "ticklabelposition": { + "description": "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*.", + "dflt": "outside", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside left", + "inside left", + "outside right", + "inside right", + "outside bottom", + "inside bottom" + ] + }, + "ticklabelstep": { + "description": "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*.", + "dflt": 1, + "editType": "colorbars", + "min": 1, + "valType": "integer" + }, + "ticklen": { + "description": "Sets the tick length (in px).", + "dflt": 5, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "tickmode": { + "description": "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).", + "editType": "colorbars", + "impliedEdits": {}, + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ] + }, + "tickprefix": { + "description": "Sets a tick label prefix.", + "dflt": "", + "editType": "colorbars", + "valType": "string" + }, + "ticks": { + "description": "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.", + "dflt": "", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ] + }, + "ticksuffix": { + "description": "Sets a tick label suffix.", + "dflt": "", + "editType": "colorbars", + "valType": "string" + }, + "ticktext": { + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", + "editType": "colorbars", + "valType": "data_array" + }, + "ticktextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", + "editType": "none", + "valType": "string" + }, + "tickvals": { + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", + "editType": "colorbars", + "valType": "data_array" + }, + "tickvalssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", + "editType": "none", + "valType": "string" + }, + "tickwidth": { + "description": "Sets the tick width (in px).", + "dflt": 1, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "title": { + "editType": "colorbars", + "font": { "color": { "editType": "colorbars", "valType": "color" }, - "description": "Sets the color bar's tick label font", + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", "editType": "colorbars", "family": { "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", @@ -35231,466 +35280,507 @@ "valType": "integer" } }, - "tickformat": { - "description": "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*", - "dflt": "", - "editType": "colorbars", - "valType": "string" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "dtickrange": { - "description": "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*", - "editType": "colorbars", - "items": [ - { - "editType": "colorbars", - "valType": "any" - }, - { - "editType": "colorbars", - "valType": "any" - } - ], - "valType": "info_array" - }, - "editType": "colorbars", - "enabled": { - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", - "dflt": true, - "editType": "colorbars", - "valType": "boolean" - }, - "name": { - "description": "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.", - "editType": "colorbars", - "valType": "string" - }, - "role": "object", - "templateitemname": { - "description": "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`.", - "editType": "colorbars", - "valType": "string" - }, - "value": { - "description": "string - dtickformat for described zoom level, the same as *tickformat*", - "dflt": "", - "editType": "colorbars", - "valType": "string" - } - } - }, - "role": "object" - }, - "ticklabeloverflow": { - "description": "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*.", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "allow", - "hide past div", - "hide past domain" - ] - }, - "ticklabelposition": { - "description": "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*.", - "dflt": "outside", + "role": "object", + "side": { + "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", "editType": "colorbars", "valType": "enumerated", "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside left", - "inside left", - "outside right", - "inside right", - "outside bottom", - "inside bottom" + "right", + "top", + "bottom" ] }, - "ticklabelstep": { - "description": "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*.", - "dflt": 1, + "text": { + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", "editType": "colorbars", - "min": 1, - "valType": "integer" - }, - "ticklen": { - "description": "Sets the tick length (in px).", - "dflt": 5, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "tickmode": { - "description": "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).", - "editType": "colorbars", - "impliedEdits": {}, - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ] + "valType": "string" + } + }, + "x": { + "description": "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*.", + "editType": "colorbars", + "valType": "number" + }, + "xanchor": { + "description": "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*.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ] + }, + "xpad": { + "description": "Sets the amount of padding (in px) along the x direction.", + "dflt": 10, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, + "y": { + "description": "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*.", + "editType": "colorbars", + "valType": "number" + }, + "yanchor": { + "description": "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*.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ] + }, + "ypad": { + "description": "Sets the amount of padding (in px) along the y direction.", + "dflt": 10, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + } + }, + "colorscale": { + "description": "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 `zmin` and `zmax`. 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.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "autocolorscale": false + }, + "valType": "colorscale" + }, + "customdata": { + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", + "editType": "calc", + "valType": "data_array" + }, + "customdatasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", + "editType": "none", + "valType": "string" + }, + "hoverinfo": { + "arrayOk": true, + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", + "dflt": "all", + "editType": "none", + "extras": [ + "all", + "none", + "skip" + ], + "flags": [ + "lon", + "lat", + "z", + "text", + "name" + ], + "valType": "flaglist" + }, + "hoverinfosrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", + "editType": "none", + "valType": "string" + }, + "hoverlabel": { + "align": { + "arrayOk": true, + "description": "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", + "dflt": "auto", + "editType": "none", + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ] + }, + "alignsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `align`.", + "editType": "none", + "valType": "string" + }, + "bgcolor": { + "arrayOk": true, + "description": "Sets the background color of the hover labels for this trace", + "editType": "none", + "valType": "color" + }, + "bgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", + "editType": "none", + "valType": "string" + }, + "bordercolor": { + "arrayOk": true, + "description": "Sets the border color of the hover labels for this trace.", + "editType": "none", + "valType": "color" + }, + "bordercolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", + "editType": "none", + "valType": "string" + }, + "editType": "none", + "font": { + "color": { + "arrayOk": true, + "editType": "none", + "valType": "color" }, - "tickprefix": { - "description": "Sets a tick label prefix.", - "dflt": "", - "editType": "colorbars", + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", "valType": "string" }, - "ticks": { - "description": "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.", - "dflt": "", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ] + "description": "Sets the font used in hover labels.", + "editType": "none", + "family": { + "arrayOk": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "none", + "noBlank": true, + "strict": true, + "valType": "string" }, - "ticksuffix": { - "description": "Sets a tick label suffix.", - "dflt": "", - "editType": "colorbars", + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", "valType": "string" }, - "ticktext": { - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "editType": "colorbars", - "valType": "data_array" + "lineposition": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "none", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" }, - "ticktextsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", "editType": "none", "valType": "string" }, - "tickvals": { - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "editType": "colorbars", - "valType": "data_array" + "role": "object", + "shadow": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "none", + "valType": "string" }, - "tickvalssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", "editType": "none", "valType": "string" }, - "tickwidth": { - "description": "Sets the tick width (in px).", - "dflt": 1, - "editType": "colorbars", - "min": 0, + "size": { + "arrayOk": true, + "editType": "none", + "min": 1, "valType": "number" }, - "title": { - "editType": "colorbars", - "font": { - "color": { - "editType": "colorbars", - "valType": "color" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "valType": "string" - }, - "size": { - "editType": "colorbars", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "colorbars", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "role": "object", - "side": { - "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ] - }, - "text": { - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars", - "valType": "string" - } - }, - "x": { - "description": "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*.", - "editType": "colorbars", - "valType": "number" + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" }, - "xanchor": { - "description": "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*.", - "editType": "colorbars", + "style": { + "arrayOk": true, + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "none", "valType": "enumerated", "values": [ - "left", - "center", - "right" + "normal", + "italic" ] }, - "xpad": { - "description": "Sets the amount of padding (in px) along the x direction.", - "dflt": 10, - "editType": "colorbars", - "min": 0, - "valType": "number" + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", + "valType": "string" }, - "xref": { - "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", - "dflt": "paper", - "editType": "colorbars", + "textcase": { + "arrayOk": true, + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "none", "valType": "enumerated", "values": [ - "container", - "paper" + "normal", + "word caps", + "upper", + "lower" ] }, - "y": { - "description": "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*.", - "editType": "colorbars", - "valType": "number" + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", + "valType": "string" }, - "yanchor": { - "description": "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*.", - "editType": "colorbars", + "variant": { + "arrayOk": true, + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "none", "valType": "enumerated", "values": [ - "top", - "middle", - "bottom" + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" ] }, - "ypad": { - "description": "Sets the amount of padding (in px) along the y direction.", - "dflt": 10, - "editType": "colorbars", - "min": 0, - "valType": "number" + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" }, - "yref": { - "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", - "dflt": "paper", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "container", - "paper" - ] + "weight": { + "arrayOk": true, + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "none", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + }, + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" } }, - "colorscale": { - "description": "Sets the colorscale. Has an effect only if in `marker.color` is set to a numerical array. 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 `marker.cmin` and `marker.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.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "autocolorscale": false - }, - "valType": "colorscale" + "namelength": { + "arrayOk": true, + "description": "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.", + "dflt": 15, + "editType": "none", + "min": -1, + "valType": "integer" }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "namelengthsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", "editType": "none", "valType": "string" }, + "role": "object" + }, + "hovertemplate": { + "arrayOk": true, + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "dflt": "", + "editType": "none", + "valType": "string" + }, + "hovertemplatesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", + "editType": "none", + "valType": "string" + }, + "hovertext": { + "arrayOk": true, + "description": "Sets hover text elements associated with each (lon,lat) pair If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (lon,lat) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag.", + "dflt": "", "editType": "calc", - "line": { - "autocolorscale": { - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color` is set to a numerical array. 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.", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" - }, - "cauto": { - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color` is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user.", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" - }, - "cmax": { - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well.", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "valType": "number" - }, - "cmid": { - "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`.", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "valType": "number" - }, - "cmin": { - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well.", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "valType": "number" - }, + "valType": "string" + }, + "hovertextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertext`.", + "editType": "none", + "valType": "string" + }, + "ids": { + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", + "editType": "calc", + "valType": "data_array" + }, + "idssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ids`.", + "editType": "none", + "valType": "string" + }, + "lat": { + "description": "Sets the latitude coordinates (in degrees North).", + "editType": "calc", + "valType": "data_array" + }, + "latsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lat`.", + "editType": "none", + "valType": "string" + }, + "legend": { + "description": "Sets the reference to a legend to show this trace 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.", + "dflt": "legend", + "editType": "style", + "valType": "subplotid" + }, + "legendgroup": { + "description": "Sets the legend group for this trace. Traces and shapes part of the same legend group hide/show at the same time when toggling legend items.", + "dflt": "", + "editType": "style", + "valType": "string" + }, + "legendgrouptitle": { + "editType": "style", + "font": { "color": { - "arrayOk": true, - "description": "Sets the marker.line color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set.", "editType": "style", "valType": "color" }, - "coloraxis": { - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", - "dflt": null, - "editType": "calc", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "valType": "subplotid" - }, - "colorscale": { - "description": "Sets the colorscale. Has an effect only if in `marker.line.color` is set to a numerical array. 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 `marker.line.cmin` and `marker.line.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.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "autocolorscale": false - }, - "valType": "colorscale" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", + "description": "Sets this legend group's title font.", + "editType": "style", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "style", + "noBlank": true, + "strict": true, "valType": "string" }, - "editType": "calc", - "reversescale": { - "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color` is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color.", - "dflt": false, - "editType": "plot", - "valType": "boolean" + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "style", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" }, "role": "object", - "width": { - "arrayOk": true, - "description": "Sets the width (in px) of the lines bounding the marker points.", - "dflt": 0, + "shadow": { + "description": "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.", + "dflt": "none", "editType": "style", - "min": 0, + "valType": "string" + }, + "size": { + "editType": "style", + "min": 1, "valType": "number" }, - "widthsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `width`.", - "editType": "none", - "valType": "string" + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "style", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "style", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "style", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "style", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" } }, - "opacity": { - "arrayOk": true, - "description": "Sets the opacity of the bars.", - "dflt": 1, + "role": "object", + "text": { + "description": "Sets the title of the legend group.", + "dflt": "", "editType": "style", - "max": 1, - "min": 0, - "valType": "number" - }, - "opacitysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `opacity`.", - "editType": "none", "valType": "string" - }, - "reversescale": { - "description": "Reverses the color mapping if true. Has an effect only if in `marker.color` is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color.", - "dflt": false, - "editType": "plot", - "valType": "boolean" - }, - "role": "object", - "showscale": { - "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color` is set to a numerical array.", - "dflt": false, - "editType": "calc", - "valType": "boolean" } }, + "legendrank": { + "description": "Sets the legend rank for this trace. 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.", + "dflt": 1000, + "editType": "style", + "valType": "number" + }, + "legendwidth": { + "description": "Sets the width (in px or fraction) of the legend for this trace.", + "editType": "style", + "min": 0, + "valType": "number" + }, + "lon": { + "description": "Sets the longitude coordinates (in degrees East).", + "editType": "calc", + "valType": "data_array" + }, + "lonsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lon`.", + "editType": "none", + "valType": "string" + }, "meta": { "arrayOk": true, "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", @@ -35707,19 +35797,6 @@ "editType": "style", "valType": "string" }, - "offset": { - "arrayOk": false, - "description": "Shifts the position where the bar is drawn (in position axis units). In *group* barmode, traces that set *offset* will be excluded and drawn in *overlay* mode instead.", - "dflt": null, - "editType": "calc", - "valType": "number" - }, - "offsetgroup": { - "description": "Set several traces linked to the same position axis or matching axes to the same offsetgroup where bars of the same position coordinate will line up.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, "opacity": { "description": "Sets the opacity of the trace.", "dflt": 1, @@ -35728,169 +35805,37 @@ "min": 0, "valType": "number" }, - "orientation": { - "description": "Sets the orientation of the funnels. With *v* (*h*), the value of the each bar spans along the vertical (horizontal). By default funnels are tend to be oriented horizontally; unless only *y* array is presented or orientation is set to *v*. Also regarding graphs including only 'horizontal' funnels, *autorange* on the *y-axis* are set to *reversed*.", - "editType": "calc+clearAxisTypes", - "valType": "enumerated", - "values": [ - "v", - "h" - ] + "radius": { + "arrayOk": true, + "description": "Sets the radius of influence of one `lon` / `lat` point in pixels. Increasing the value makes the densitymap trace smoother, but less detailed.", + "dflt": 30, + "editType": "plot", + "min": 1, + "valType": "number" }, - "outsidetextfont": { - "color": { - "arrayOk": true, - "editType": "style", - "valType": "color" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "description": "Sets the font used for `text` lying outside the bar.", - "editType": "calc", - "family": { - "arrayOk": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" - }, - "lineposition": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "calc", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", - "valType": "string" - }, - "role": "object", - "shadow": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "calc", - "valType": "string" - }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", - "editType": "none", - "valType": "string" - }, - "size": { - "arrayOk": true, - "editType": "calc", - "min": 1, - "valType": "number" - }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" - }, - "style": { - "arrayOk": true, - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" - }, - "textcase": { - "arrayOk": true, - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" - }, - "variant": { - "arrayOk": true, - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" - }, - "weight": { - "arrayOk": true, - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "calc", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", - "valType": "string" - } + "radiussrc": { + "description": "Sets the source reference on Chart Studio Cloud for `radius`.", + "editType": "none", + "valType": "string" }, - "selectedpoints": { - "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect.", - "editType": "calc", - "valType": "any" + "reversescale": { + "description": "Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color.", + "dflt": false, + "editType": "plot", + "valType": "boolean" }, "showlegend": { "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", - "dflt": true, + "dflt": false, "editType": "style", "valType": "boolean" }, + "showscale": { + "description": "Determines whether or not a colorbar is displayed for this trace.", + "dflt": true, + "editType": "calc", + "valType": "boolean" + }, "stream": { "editType": "calc", "maxpoints": { @@ -35910,596 +35855,445 @@ "valType": "string" } }, + "subplot": { + "description": "Sets a reference between this trace's data coordinates and a map subplot. If *map* (the default value), the data refer to `layout.map`. If *map2*, the data refer to `layout.map2`, and so on.", + "dflt": "map", + "editType": "calc", + "valType": "subplotid" + }, "text": { "arrayOk": true, - "description": "Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", + "description": "Sets text elements associated with each (lon,lat) pair If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (lon,lat) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", "dflt": "", "editType": "calc", "valType": "string" }, - "textangle": { - "description": "Sets the angle of the tick labels with respect to the bar. For example, a `tickangle` of -90 draws the tick labels vertically. With *auto* the texts may automatically be rotated to fit with the maximum size in bars.", - "dflt": 0, - "editType": "plot", - "valType": "angle" + "textsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `text`.", + "editType": "none", + "valType": "string" }, - "textfont": { - "color": { - "arrayOk": true, - "editType": "style", - "valType": "color" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" + "transforms": { + "items": { + "transform": { + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "editType": "calc", + "role": "object" + } }, - "description": "Sets the font used for `text`.", + "role": "object" + }, + "type": "densitymap", + "uid": { + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", + "editType": "plot", + "valType": "string" + }, + "uirevision": { + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.", + "editType": "none", + "valType": "any" + }, + "visible": { + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", + "dflt": true, "editType": "calc", - "family": { - "arrayOk": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ] + }, + "z": { + "description": "Sets the points' weight. For example, a value of 10 would be equivalent to having 10 points of weight 1 in the same spot", + "editType": "calc", + "valType": "data_array" + }, + "zauto": { + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `z`) or the bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "zmax": { + "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "zauto": false }, - "lineposition": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "calc", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", - "valType": "string" - }, - "role": "object", - "shadow": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "calc", - "valType": "string" - }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", - "editType": "none", - "valType": "string" - }, - "size": { - "arrayOk": true, - "editType": "calc", - "min": 1, - "valType": "number" - }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" - }, - "style": { - "arrayOk": true, - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" - }, - "textcase": { - "arrayOk": true, - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" - }, - "variant": { - "arrayOk": true, - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" - }, - "weight": { - "arrayOk": true, - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "calc", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", - "valType": "string" - } - }, - "textinfo": { - "arrayOk": false, - "description": "Determines which trace information appear on the graph. In the case of having multiple funnels, percentages & totals are computed separately (per trace).", - "editType": "plot", - "extras": [ - "none" - ], - "flags": [ - "label", - "text", - "percent initial", - "percent previous", - "percent total", - "value" - ], - "valType": "flaglist" - }, - "textposition": { - "arrayOk": true, - "description": "Specifies the location of the `text`. *inside* positions `text` inside, next to the bar end (rotated and scaled if needed). *outside* positions `text` outside, next to the bar end (scaled if needed), unless there is another bar stacked on this one, then the text gets pushed inside. *auto* tries to position `text` inside the bar, but if the bar is too small and no bar is stacked on this one the text is moved outside. If *none*, no text appears.", - "dflt": "auto", - "editType": "calc", - "valType": "enumerated", - "values": [ - "inside", - "outside", - "auto", - "none" - ] - }, - "textpositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textposition`.", - "editType": "none", - "valType": "string" - }, - "textsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `text`.", - "editType": "none", - "valType": "string" - }, - "texttemplate": { - "arrayOk": true, - "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". 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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `percentInitial`, `percentPrevious`, `percentTotal`, `label` and `value`.", - "dflt": "", - "editType": "plot", - "valType": "string" - }, - "texttemplatesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `texttemplate`.", - "editType": "none", - "valType": "string" - }, - "transforms": { - "items": { - "transform": { - "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "editType": "calc", - "role": "object" - } - }, - "role": "object" - }, - "type": "funnel", - "uid": { - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", - "editType": "plot", - "valType": "string" - }, - "uirevision": { - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.", - "editType": "none", - "valType": "any" - }, - "visible": { - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", - "dflt": true, - "editType": "calc", - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ] + "valType": "number" }, - "width": { - "arrayOk": false, - "description": "Sets the bar width (in position axis units).", + "zmid": { + "description": "Sets the mid-point of the color domain by scaling `zmin` and/or `zmax` to be equidistant to this point. Value should have the same units as in `z`. Has no effect when `zauto` is `false`.", "dflt": null, "editType": "calc", - "min": 0, + "impliedEdits": {}, "valType": "number" }, - "x": { - "description": "Sets the x coordinates.", - "editType": "calc+clearAxisTypes", - "valType": "data_array" - }, - "x0": { - "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step.", - "dflt": 0, - "editType": "calc+clearAxisTypes", - "valType": "any" - }, - "xaxis": { - "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on.", - "dflt": "x", - "editType": "calc+clearAxisTypes", - "valType": "subplotid" - }, - "xhoverformat": { - "description": "Sets the hover text formatting rulefor `x` 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*By default the values are formatted using `xaxis.hoverformat`.", - "dflt": "", - "editType": "none", - "valType": "string" - }, - "xperiod": { - "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer.", - "dflt": 0, - "editType": "calc", - "valType": "any" - }, - "xperiod0": { - "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01.", - "editType": "calc", - "valType": "any" - }, - "xperiodalignment": { - "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis.", - "dflt": "middle", - "editType": "calc", - "valType": "enumerated", - "values": [ - "start", - "middle", - "end" - ] - }, - "xsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `x`.", - "editType": "none", - "valType": "string" - }, - "y": { - "description": "Sets the y coordinates.", - "editType": "calc+clearAxisTypes", - "valType": "data_array" - }, - "y0": { - "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step.", - "dflt": 0, - "editType": "calc+clearAxisTypes", - "valType": "any" - }, - "yaxis": { - "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on.", - "dflt": "y", - "editType": "calc+clearAxisTypes", - "valType": "subplotid" - }, - "yhoverformat": { - "description": "Sets the hover text formatting rulefor `y` 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*By default the values are formatted using `yaxis.hoverformat`.", - "dflt": "", - "editType": "none", - "valType": "string" - }, - "yperiod": { - "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the y axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer.", - "dflt": 0, - "editType": "calc", - "valType": "any" - }, - "yperiod0": { - "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the y0 axis. When `y0period` is round number of weeks, the `y0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01.", - "editType": "calc", - "valType": "any" - }, - "yperiodalignment": { - "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the y axis.", - "dflt": "middle", + "zmin": { + "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well.", + "dflt": null, "editType": "calc", - "valType": "enumerated", - "values": [ - "start", - "middle", - "end" - ] + "impliedEdits": { + "zauto": false + }, + "valType": "number" }, - "ysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `y`.", + "zsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `z`.", "editType": "none", "valType": "string" - }, - "zorder": { - "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", - "dflt": 0, - "editType": "plot", - "valType": "integer" } }, "categories": [ - "bar-like", - "cartesian", - "svg", - "oriented", - "showLegend", - "zoomScale" + "map", + "gl", + "showLegend" ], - "layoutAttributes": { - "funnelgap": { - "description": "Sets the gap (in plot fraction) between bars of adjacent location coordinates.", - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - "funnelgroupgap": { - "description": "Sets the gap (in plot fraction) between bars of the same location coordinate.", - "dflt": 0, - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - "funnelmode": { - "description": "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 *group*, the bars are plotted next to one another centered around the shared location. With *overlay*, the bars are plotted over one another, you might need to reduce *opacity* to see multiple bars.", - "dflt": "stack", - "editType": "calc", - "valType": "enumerated", - "values": [ - "stack", - "group", - "overlay" - ] - } - }, "meta": { - "description": "Visualize stages in a process using length-encoded bars. This trace can be used to show data in either a part-to-whole representation wherein each item appears in a single stage, or in a \"drop-off\" representation wherein each item appears in each stage it traversed. See also the \"funnelarea\" trace type for a different approach to visualizing funnel data." + "description": "Draws a bivariate kernel density estimation with a Gaussian kernel from `lon` and `lat` coordinates and optional `z` values using a colorscale.", + "hr_name": "density_map" }, - "type": "funnel" + "type": "densitymap" }, - "funnelarea": { + "densitymapbox": { "animatable": false, "attributes": { - "aspectratio": { - "description": "Sets the ratio between height and width", - "dflt": 1, - "editType": "plot", - "min": 0, - "valType": "number" - }, - "baseratio": { - "description": "Sets the ratio between bottom length and maximum top length.", - "dflt": 0.333, - "editType": "plot", - "max": 1, - "min": 0, - "valType": "number" - }, - "customdata": { - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", + "autocolorscale": { + "description": "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.", + "dflt": true, "editType": "calc", - "valType": "data_array" + "impliedEdits": {}, + "valType": "boolean" }, - "customdatasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", - "editType": "none", + "below": { + "description": "Determines if the densitymapbox trace will be inserted before the layer with the specified ID. By default, densitymapbox traces are placed below the first layer of type symbol If set to '', the layer will be inserted above every existing layer.", + "editType": "plot", "valType": "string" }, - "dlabel": { - "description": "Sets the label step. See `label0` for more info.", - "dflt": 1, + "coloraxis": { + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", + "dflt": null, "editType": "calc", - "valType": "number" + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "valType": "subplotid" }, - "domain": { - "column": { - "description": "If there is a layout grid, use the domain for this column in the grid for this funnelarea trace .", - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "integer" - }, - "editType": "calc", - "role": "object", - "row": { - "description": "If there is a layout grid, use the domain for this row in the grid for this funnelarea trace .", - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "integer" - }, - "x": { - "description": "Sets the horizontal domain of this funnelarea trace (in plot fraction).", - "dflt": [ - 0, - 1 - ], - "editType": "calc", - "items": [ - { - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" + "colorbar": { + "_deprecated": { + "title": { + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars", + "valType": "string" + }, + "titlefont": { + "color": { + "editType": "colorbars", + "valType": "color" }, - { - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - } - ], - "valType": "info_array" - }, - "y": { - "description": "Sets the vertical domain of this funnelarea trace (in plot fraction).", - "dflt": [ - 0, - 1 - ], - "editType": "calc", - "items": [ - { - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars", + "noBlank": true, + "strict": true, + "valType": "string" }, - { - "editType": "calc", - "max": 1, - "min": 0, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "valType": "string" + }, + "size": { + "editType": "colorbars", + "min": 1, "valType": "number" - } - ], - "valType": "info_array" - } - }, - "hoverinfo": { - "arrayOk": true, - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", - "dflt": "all", - "editType": "none", - "extras": [ - "all", - "none", - "skip" - ], - "flags": [ - "label", - "text", - "value", - "percent", - "name" - ], - "valType": "flaglist" - }, - "hoverinfosrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", - "editType": "none", - "valType": "string" - }, - "hoverlabel": { - "align": { - "arrayOk": true, - "description": "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", - "dflt": "auto", - "editType": "none", + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "colorbars", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "titleside": { + "description": "Deprecated in favor of color bar's `title.side`.", + "dflt": "top", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ] + } + }, + "bgcolor": { + "description": "Sets the color of padded area.", + "dflt": "rgba(0,0,0,0)", + "editType": "colorbars", + "valType": "color" + }, + "bordercolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" + }, + "borderwidth": { + "description": "Sets the width (in px) or the border enclosing this color bar.", + "dflt": 0, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "dtick": { + "description": "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*, 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* 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*", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" + }, + "editType": "colorbars", + "exponentformat": { + "description": "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.", + "dflt": "B", + "editType": "colorbars", "valType": "enumerated", "values": [ - "left", - "right", - "auto" + "none", + "e", + "E", + "power", + "SI", + "B" ] }, - "alignsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `align`.", - "editType": "none", - "valType": "string" + "labelalias": { + "description": "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.", + "dflt": false, + "editType": "colorbars", + "valType": "any" }, - "bgcolor": { - "arrayOk": true, - "description": "Sets the background color of the hover labels for this trace", - "editType": "none", - "valType": "color" + "len": { + "description": "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.", + "dflt": 1, + "editType": "colorbars", + "min": 0, + "valType": "number" }, - "bgcolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", - "editType": "none", - "valType": "string" + "lenmode": { + "description": "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.", + "dflt": "fraction", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] }, - "bordercolor": { - "arrayOk": true, - "description": "Sets the border color of the hover labels for this trace.", - "editType": "none", + "minexponent": { + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", + "dflt": 3, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "nticks": { + "description": "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*.", + "dflt": 0, + "editType": "colorbars", + "min": 0, + "valType": "integer" + }, + "orientation": { + "description": "Sets the orientation of the colorbar.", + "dflt": "v", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "h", + "v" + ] + }, + "outlinecolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "colorbars", "valType": "color" }, - "bordercolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", - "editType": "none", - "valType": "string" + "outlinewidth": { + "description": "Sets the width (in px) of the axis line.", + "dflt": 1, + "editType": "colorbars", + "min": 0, + "valType": "number" }, - "editType": "none", - "font": { + "role": "object", + "separatethousands": { + "description": "If \"true\", even 4-digit integers are separated", + "dflt": false, + "editType": "colorbars", + "valType": "boolean" + }, + "showexponent": { + "description": "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.", + "dflt": "all", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] + }, + "showticklabels": { + "description": "Determines whether or not the tick labels are drawn.", + "dflt": true, + "editType": "colorbars", + "valType": "boolean" + }, + "showtickprefix": { + "description": "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.", + "dflt": "all", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] + }, + "showticksuffix": { + "description": "Same as `showtickprefix` but for tick suffixes.", + "dflt": "all", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] + }, + "thickness": { + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "dflt": 30, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "thicknessmode": { + "description": "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.", + "dflt": "pixels", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] + }, + "tick0": { + "description": "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* (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.", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" + }, + "tickangle": { + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", + "dflt": "auto", + "editType": "colorbars", + "valType": "angle" + }, + "tickcolor": { + "description": "Sets the tick color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" + }, + "tickfont": { "color": { - "arrayOk": true, - "editType": "none", + "editType": "colorbars", "valType": "color" }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "description": "Sets the font used in hover labels.", - "editType": "none", + "description": "Sets the color bar's tick label font", + "editType": "colorbars", "family": { - "arrayOk": true, "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "none", + "editType": "colorbars", "noBlank": true, "strict": true, "valType": "string" }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" - }, "lineposition": { - "arrayOk": true, "description": "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.", "dflt": "none", - "editType": "none", + "editType": "colorbars", "extras": [ "none" ], @@ -36510,56 +36304,32 @@ ], "valType": "flaglist" }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", - "valType": "string" - }, "role": "object", "shadow": { - "arrayOk": true, "description": "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.", "dflt": "none", - "editType": "none", - "valType": "string" - }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", - "editType": "none", + "editType": "colorbars", "valType": "string" }, "size": { - "arrayOk": true, - "editType": "none", + "editType": "colorbars", "min": 1, "valType": "number" }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" - }, "style": { - "arrayOk": true, "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "none", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", "italic" ] }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" - }, "textcase": { - "arrayOk": true, "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "none", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -36568,16 +36338,10 @@ "lower" ] }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" - }, "variant": { - "arrayOk": true, "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "none", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -36588,16 +36352,10 @@ "unicase" ] }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" - }, "weight": { - "arrayOk": true, "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "none", + "editType": "colorbars", "extras": [ "normal", "bold" @@ -36605,253 +36363,451 @@ "max": 1000, "min": 1, "valType": "integer" - }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", - "valType": "string" } }, - "namelength": { - "arrayOk": true, - "description": "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.", - "dflt": 15, - "editType": "none", - "min": -1, - "valType": "integer" - }, - "namelengthsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", - "editType": "none", + "tickformat": { + "description": "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*", + "dflt": "", + "editType": "colorbars", "valType": "string" }, - "role": "object" - }, - "hovertemplate": { - "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `label`, `color`, `value`, `text` and `percent`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "dflt": "", - "editType": "none", - "valType": "string" - }, - "hovertemplatesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", - "editType": "none", - "valType": "string" - }, - "hovertext": { - "arrayOk": true, - "description": "Sets hover text elements associated with each sector. If a single string, the same string appears for all data points. If an array of string, the items are mapped in order of this trace's sectors. To be seen, trace `hoverinfo` must contain a *text* flag.", - "dflt": "", - "editType": "style", - "valType": "string" - }, - "hovertextsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hovertext`.", - "editType": "none", - "valType": "string" - }, - "ids": { - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "editType": "calc", - "valType": "data_array" - }, - "idssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ids`.", - "editType": "none", - "valType": "string" - }, - "insidetextfont": { - "color": { - "arrayOk": true, - "editType": "plot", - "valType": "color" + "tickformatstops": { + "items": { + "tickformatstop": { + "dtickrange": { + "description": "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*", + "editType": "colorbars", + "items": [ + { + "editType": "colorbars", + "valType": "any" + }, + { + "editType": "colorbars", + "valType": "any" + } + ], + "valType": "info_array" + }, + "editType": "colorbars", + "enabled": { + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", + "dflt": true, + "editType": "colorbars", + "valType": "boolean" + }, + "name": { + "description": "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.", + "editType": "colorbars", + "valType": "string" + }, + "role": "object", + "templateitemname": { + "description": "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`.", + "editType": "colorbars", + "valType": "string" + }, + "value": { + "description": "string - dtickformat for described zoom level, the same as *tickformat*", + "dflt": "", + "editType": "colorbars", + "valType": "string" + } + } + }, + "role": "object" }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" + "ticklabeloverflow": { + "description": "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*.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ] }, - "description": "Sets the font used for `textinfo` lying inside the sector.", - "editType": "plot", - "family": { - "arrayOk": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "plot", - "noBlank": true, - "strict": true, - "valType": "string" + "ticklabelposition": { + "description": "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*.", + "dflt": "outside", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside left", + "inside left", + "outside right", + "inside right", + "outside bottom", + "inside bottom" + ] }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" + "ticklabelstep": { + "description": "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*.", + "dflt": 1, + "editType": "colorbars", + "min": 1, + "valType": "integer" }, - "lineposition": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "plot", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" + "ticklen": { + "description": "Sets the tick length (in px).", + "dflt": 5, + "editType": "colorbars", + "min": 0, + "valType": "number" }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", + "tickmode": { + "description": "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).", + "editType": "colorbars", + "impliedEdits": {}, + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ] + }, + "tickprefix": { + "description": "Sets a tick label prefix.", + "dflt": "", + "editType": "colorbars", "valType": "string" }, - "role": "object", - "shadow": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "plot", + "ticks": { + "description": "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.", + "dflt": "", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ] + }, + "ticksuffix": { + "description": "Sets a tick label suffix.", + "dflt": "", + "editType": "colorbars", "valType": "string" }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "ticktext": { + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", + "editType": "colorbars", + "valType": "data_array" + }, + "ticktextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", "editType": "none", "valType": "string" }, - "size": { - "arrayOk": true, - "editType": "plot", - "min": 1, - "valType": "number" + "tickvals": { + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", + "editType": "colorbars", + "valType": "data_array" }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "tickvalssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", "editType": "none", "valType": "string" }, - "style": { - "arrayOk": true, - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "plot", + "tickwidth": { + "description": "Sets the tick width (in px).", + "dflt": 1, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "title": { + "editType": "colorbars", + "font": { + "color": { + "editType": "colorbars", + "valType": "color" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "valType": "string" + }, + "size": { + "editType": "colorbars", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "colorbars", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "role": "object", + "side": { + "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ] + }, + "text": { + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars", + "valType": "string" + } + }, + "x": { + "description": "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*.", + "editType": "colorbars", + "valType": "number" + }, + "xanchor": { + "description": "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*.", + "editType": "colorbars", "valType": "enumerated", "values": [ - "normal", - "italic" + "left", + "center", + "right" ] }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" + "xpad": { + "description": "Sets the amount of padding (in px) along the x direction.", + "dflt": 10, + "editType": "colorbars", + "min": 0, + "valType": "number" }, - "textcase": { - "arrayOk": true, - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "plot", + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", "valType": "enumerated", "values": [ - "normal", - "word caps", - "upper", - "lower" + "container", + "paper" ] }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" + "y": { + "description": "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*.", + "editType": "colorbars", + "valType": "number" }, - "variant": { - "arrayOk": true, - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "plot", + "yanchor": { + "description": "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*.", + "editType": "colorbars", "valType": "enumerated", "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" + "top", + "middle", + "bottom" ] }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" - }, - "weight": { - "arrayOk": true, - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "plot", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" + "ypad": { + "description": "Sets the amount of padding (in px) along the y direction.", + "dflt": 10, + "editType": "colorbars", + "min": 0, + "valType": "number" }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", - "valType": "string" + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, - "label0": { - "description": "Alternate to `labels`. Builds a numeric set of labels. Use with `dlabel` where `label0` is the starting label and `dlabel` the step.", - "dflt": 0, + "colorscale": { + "description": "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 `zmin` and `zmax`. 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.", + "dflt": null, "editType": "calc", - "valType": "number" + "impliedEdits": { + "autocolorscale": false + }, + "valType": "colorscale" }, - "labels": { - "description": "Sets the sector labels. If `labels` entries are duplicated, we sum associated `values` or simply count occurrences if `values` is not provided. For other array attributes (including color) we use the first non-empty entry among all occurrences of the label.", + "customdata": { + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", "editType": "calc", "valType": "data_array" }, - "labelssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `labels`.", + "customdatasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", "editType": "none", "valType": "string" }, - "legend": { - "description": "Sets the reference to a legend to show this trace 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.", - "dflt": "legend", - "editType": "style", - "valType": "subplotid" + "hoverinfo": { + "arrayOk": true, + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", + "dflt": "all", + "editType": "none", + "extras": [ + "all", + "none", + "skip" + ], + "flags": [ + "lon", + "lat", + "z", + "text", + "name" + ], + "valType": "flaglist" }, - "legendgroup": { - "description": "Sets the legend group for this trace. Traces and shapes part of the same legend group hide/show at the same time when toggling legend items.", - "dflt": "", - "editType": "style", + "hoverinfosrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", + "editType": "none", "valType": "string" }, - "legendgrouptitle": { - "editType": "style", + "hoverlabel": { + "align": { + "arrayOk": true, + "description": "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", + "dflt": "auto", + "editType": "none", + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ] + }, + "alignsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `align`.", + "editType": "none", + "valType": "string" + }, + "bgcolor": { + "arrayOk": true, + "description": "Sets the background color of the hover labels for this trace", + "editType": "none", + "valType": "color" + }, + "bgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", + "editType": "none", + "valType": "string" + }, + "bordercolor": { + "arrayOk": true, + "description": "Sets the border color of the hover labels for this trace.", + "editType": "none", + "valType": "color" + }, + "bordercolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", + "editType": "none", + "valType": "string" + }, + "editType": "none", "font": { "color": { - "editType": "style", + "arrayOk": true, + "editType": "none", "valType": "color" }, - "description": "Sets this legend group's title font.", - "editType": "style", + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "description": "Sets the font used in hover labels.", + "editType": "none", "family": { + "arrayOk": true, "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "style", + "editType": "none", "noBlank": true, "strict": true, "valType": "string" }, + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" + }, "lineposition": { + "arrayOk": true, "description": "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.", "dflt": "none", - "editType": "style", + "editType": "none", "extras": [ "none" ], @@ -36862,32 +36818,56 @@ ], "valType": "flaglist" }, + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", + "editType": "none", + "valType": "string" + }, "role": "object", "shadow": { + "arrayOk": true, "description": "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.", "dflt": "none", - "editType": "style", + "editType": "none", + "valType": "string" + }, + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", "valType": "string" }, "size": { - "editType": "style", + "arrayOk": true, + "editType": "none", "min": 1, "valType": "number" }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, "style": { + "arrayOk": true, "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "style", + "editType": "none", "valType": "enumerated", "values": [ "normal", "italic" ] }, + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", + "valType": "string" + }, "textcase": { + "arrayOk": true, "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "style", + "editType": "none", "valType": "enumerated", "values": [ "normal", @@ -36896,10 +36876,16 @@ "lower" ] }, + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", + "valType": "string" + }, "variant": { + "arrayOk": true, "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "style", + "editType": "none", "valType": "enumerated", "values": [ "normal", @@ -36910,10 +36896,16 @@ "unicase" ] }, + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" + }, "weight": { + "arrayOk": true, "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "style", + "editType": "none", "extras": [ "normal", "bold" @@ -36921,447 +36913,104 @@ "max": 1000, "min": 1, "valType": "integer" + }, + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" } }, - "role": "object", - "text": { - "description": "Sets the title of the legend group.", - "dflt": "", - "editType": "style", - "valType": "string" - } - }, - "legendrank": { - "description": "Sets the legend rank for this trace. 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.", - "dflt": 1000, - "editType": "style", - "valType": "number" - }, - "legendwidth": { - "description": "Sets the width (in px or fraction) of the legend for this trace.", - "editType": "style", - "min": 0, - "valType": "number" - }, - "marker": { - "colors": { - "description": "Sets the color of each sector. If not specified, the default trace color set is used to pick the sector colors.", - "editType": "calc", - "valType": "data_array" + "namelength": { + "arrayOk": true, + "description": "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.", + "dflt": 15, + "editType": "none", + "min": -1, + "valType": "integer" }, - "colorssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `colors`.", + "namelengthsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", "editType": "none", "valType": "string" }, - "editType": "calc", - "line": { - "color": { - "arrayOk": true, - "description": "Sets the color of the line enclosing each sector. Defaults to the `paper_bgcolor` value.", - "dflt": null, - "editType": "style", - "valType": "color" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "editType": "calc", - "role": "object", - "width": { - "arrayOk": true, - "description": "Sets the width (in px) of the line enclosing each sector.", - "dflt": 1, - "editType": "style", - "min": 0, - "valType": "number" - }, - "widthsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `width`.", - "editType": "none", - "valType": "string" - } - }, - "pattern": { - "bgcolor": { - "arrayOk": true, - "description": "When there is no colorscale sets the color of background pattern fill. Defaults to a `marker.color` background when `fillmode` is *overlay*. Otherwise, defaults to a transparent background.", - "editType": "style", - "valType": "color" - }, - "bgcolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", - "editType": "none", - "valType": "string" - }, - "description": "Sets the pattern within the marker.", - "editType": "style", - "fgcolor": { - "arrayOk": true, - "description": "When there is no colorscale sets the color of foreground pattern fill. Defaults to a `marker.color` background when `fillmode` is *replace*. Otherwise, defaults to dark grey or white to increase contrast with the `bgcolor`.", - "editType": "style", - "valType": "color" - }, - "fgcolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `fgcolor`.", - "editType": "none", - "valType": "string" - }, - "fgopacity": { - "description": "Sets the opacity of the foreground pattern fill. Defaults to a 0.5 when `fillmode` is *overlay*. Otherwise, defaults to 1.", - "editType": "style", - "max": 1, - "min": 0, - "valType": "number" - }, - "fillmode": { - "description": "Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`.", - "dflt": "replace", - "editType": "style", - "valType": "enumerated", - "values": [ - "replace", - "overlay" - ] - }, - "role": "object", - "shape": { - "arrayOk": true, - "description": "Sets the shape of the pattern fill. By default, no pattern is used for filling the area.", - "dflt": "", - "editType": "style", - "valType": "enumerated", - "values": [ - "", - "/", - "\\", - "x", - "-", - "|", - "+", - "." - ] - }, - "shapesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shape`.", - "editType": "none", - "valType": "string" - }, - "size": { - "arrayOk": true, - "description": "Sets the size of unit squares of the pattern fill in pixels, which corresponds to the interval of repetition of the pattern.", - "dflt": 8, - "editType": "style", - "min": 0, - "valType": "number" - }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" - }, - "solidity": { - "arrayOk": true, - "description": "Sets the solidity of the pattern fill. Solidity is roughly the fraction of the area filled by the pattern. Solidity of 0 shows only the background color without pattern and solidty of 1 shows only the foreground color without pattern.", - "dflt": 0.3, - "editType": "style", - "max": 1, - "min": 0, - "valType": "number" - }, - "soliditysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `solidity`.", - "editType": "none", - "valType": "string" - } - }, "role": "object" }, - "meta": { + "hovertemplate": { "arrayOk": true, - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", - "editType": "plot", - "valType": "any" - }, - "metasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `meta`.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "dflt": "", "editType": "none", "valType": "string" }, - "name": { - "description": "Sets the trace name. The trace name appears as the legend item and on hover.", - "editType": "style", + "hovertemplatesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", + "editType": "none", "valType": "string" }, - "opacity": { - "description": "Sets the opacity of the trace.", - "dflt": 1, - "editType": "style", - "max": 1, - "min": 0, - "valType": "number" - }, - "scalegroup": { - "description": "If there are multiple funnelareas that should be sized according to their totals, link them by providing a non-empty group id here shared by every trace in the same group.", + "hovertext": { + "arrayOk": true, + "description": "Sets hover text elements associated with each (lon,lat) pair If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (lon,lat) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag.", "dflt": "", "editType": "calc", "valType": "string" }, - "showlegend": { - "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", - "dflt": true, - "editType": "style", - "valType": "boolean" + "hovertextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertext`.", + "editType": "none", + "valType": "string" }, - "stream": { + "ids": { + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", "editType": "calc", - "maxpoints": { - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot.", - "dflt": 500, - "editType": "calc", - "max": 10000, - "min": 0, - "valType": "number" - }, - "role": "object", - "token": { - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details.", - "editType": "calc", - "noBlank": true, - "strict": true, - "valType": "string" - } - }, - "text": { - "description": "Sets text elements associated with each sector. If trace `textinfo` contains a *text* flag, these elements will be seen on the chart. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", - "editType": "plot", "valType": "data_array" }, - "textfont": { - "color": { - "arrayOk": true, - "editType": "plot", - "valType": "color" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "description": "Sets the font used for `textinfo`.", - "editType": "plot", - "family": { - "arrayOk": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "plot", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" - }, - "lineposition": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "plot", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", - "valType": "string" - }, - "role": "object", - "shadow": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "plot", - "valType": "string" - }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", - "editType": "none", - "valType": "string" - }, - "size": { - "arrayOk": true, - "editType": "plot", - "min": 1, - "valType": "number" - }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" - }, - "style": { - "arrayOk": true, - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" - }, - "textcase": { - "arrayOk": true, - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" - }, - "variant": { - "arrayOk": true, - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" - }, - "weight": { - "arrayOk": true, - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "plot", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", - "valType": "string" - } + "idssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ids`.", + "editType": "none", + "valType": "string" }, - "textinfo": { - "description": "Determines which trace information appear on the graph.", + "lat": { + "description": "Sets the latitude coordinates (in degrees North).", "editType": "calc", - "extras": [ - "none" - ], - "flags": [ - "label", - "text", - "value", - "percent" - ], - "valType": "flaglist" - }, - "textposition": { - "arrayOk": true, - "description": "Specifies the location of the `textinfo`.", - "dflt": "inside", - "editType": "plot", - "valType": "enumerated", - "values": [ - "inside", - "none" - ] + "valType": "data_array" }, - "textpositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textposition`.", + "latsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lat`.", "editType": "none", "valType": "string" }, - "textsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `text`.", - "editType": "none", - "valType": "string" + "legend": { + "description": "Sets the reference to a legend to show this trace 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.", + "dflt": "legend", + "editType": "style", + "valType": "subplotid" }, - "texttemplate": { - "arrayOk": true, - "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". 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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `label`, `color`, `value`, `text` and `percent`.", + "legendgroup": { + "description": "Sets the legend group for this trace. Traces and shapes part of the same legend group hide/show at the same time when toggling legend items.", "dflt": "", - "editType": "plot", - "valType": "string" - }, - "texttemplatesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `texttemplate`.", - "editType": "none", + "editType": "style", "valType": "string" }, - "title": { - "editType": "plot", + "legendgrouptitle": { + "editType": "style", "font": { "color": { - "arrayOk": true, - "editType": "plot", + "editType": "style", "valType": "color" }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "description": "Sets the font used for `title`. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "plot", + "description": "Sets this legend group's title font.", + "editType": "style", "family": { - "arrayOk": true, "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "plot", + "editType": "style", "noBlank": true, "strict": true, "valType": "string" }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" - }, "lineposition": { - "arrayOk": true, "description": "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.", "dflt": "none", - "editType": "plot", + "editType": "style", "extras": [ "none" ], @@ -37372,56 +37021,32 @@ ], "valType": "flaglist" }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", - "valType": "string" - }, "role": "object", "shadow": { - "arrayOk": true, "description": "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.", "dflt": "none", - "editType": "plot", - "valType": "string" - }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", - "editType": "none", + "editType": "style", "valType": "string" }, "size": { - "arrayOk": true, - "editType": "plot", + "editType": "style", "min": 1, "valType": "number" }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" - }, "style": { - "arrayOk": true, "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "plot", + "editType": "style", "valType": "enumerated", "values": [ "normal", "italic" ] }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" - }, "textcase": { - "arrayOk": true, "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "plot", + "editType": "style", "valType": "enumerated", "values": [ "normal", @@ -37430,16 +37055,10 @@ "lower" ] }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" - }, "variant": { - "arrayOk": true, "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "plot", + "editType": "style", "valType": "enumerated", "values": [ "normal", @@ -37450,16 +37069,10 @@ "unicase" ] }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" - }, "weight": { - "arrayOk": true, "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "plot", + "editType": "style", "extras": [ "normal", "bold" @@ -37467,438 +37080,409 @@ "max": 1000, "min": 1, "valType": "integer" - }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", - "valType": "string" } }, - "position": { - "description": "Specifies the location of the `title`. Note that the title's position used to be set by the now deprecated `titleposition` attribute.", - "dflt": "top center", - "editType": "plot", - "valType": "enumerated", - "values": [ - "top left", - "top center", - "top right" - ] - }, "role": "object", "text": { - "description": "Sets the title of the chart. If it is empty, no title is displayed. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "description": "Sets the title of the legend group.", "dflt": "", - "editType": "plot", + "editType": "style", "valType": "string" } }, - "transforms": { - "items": { - "transform": { - "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "editType": "calc", - "role": "object" - } - }, - "role": "object" - }, - "type": "funnelarea", - "uid": { - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", - "editType": "plot", - "valType": "string" + "legendrank": { + "description": "Sets the legend rank for this trace. 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.", + "dflt": 1000, + "editType": "style", + "valType": "number" }, - "uirevision": { - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.", - "editType": "none", - "valType": "any" + "legendwidth": { + "description": "Sets the width (in px or fraction) of the legend for this trace.", + "editType": "style", + "min": 0, + "valType": "number" }, - "values": { - "description": "Sets the values of the sectors. If omitted, we count occurrences of each label.", + "lon": { + "description": "Sets the longitude coordinates (in degrees East).", "editType": "calc", "valType": "data_array" }, - "valuessrc": { - "description": "Sets the source reference on Chart Studio Cloud for `values`.", + "lonsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lon`.", "editType": "none", "valType": "string" }, - "visible": { - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", - "dflt": true, - "editType": "calc", - "valType": "enumerated", - "values": [ - true, - false, + "meta": { + "arrayOk": true, + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", + "editType": "plot", + "valType": "any" + }, + "metasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `meta`.", + "editType": "none", + "valType": "string" + }, + "name": { + "description": "Sets the trace name. The trace name appears as the legend item and on hover.", + "editType": "style", + "valType": "string" + }, + "opacity": { + "description": "Sets the opacity of the trace.", + "dflt": 1, + "editType": "style", + "max": 1, + "min": 0, + "valType": "number" + }, + "radius": { + "arrayOk": true, + "description": "Sets the radius of influence of one `lon` / `lat` point in pixels. Increasing the value makes the densitymapbox trace smoother, but less detailed.", + "dflt": 30, + "editType": "plot", + "min": 1, + "valType": "number" + }, + "radiussrc": { + "description": "Sets the source reference on Chart Studio Cloud for `radius`.", + "editType": "none", + "valType": "string" + }, + "reversescale": { + "description": "Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color.", + "dflt": false, + "editType": "plot", + "valType": "boolean" + }, + "showlegend": { + "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", + "dflt": false, + "editType": "style", + "valType": "boolean" + }, + "showscale": { + "description": "Determines whether or not a colorbar is displayed for this trace.", + "dflt": true, + "editType": "calc", + "valType": "boolean" + }, + "stream": { + "editType": "calc", + "maxpoints": { + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot.", + "dflt": 500, + "editType": "calc", + "max": 10000, + "min": 0, + "valType": "number" + }, + "role": "object", + "token": { + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" + } + }, + "subplot": { + "description": "Sets a reference between this trace's data coordinates and a mapbox subplot. If *mapbox* (the default value), the data refer to `layout.mapbox`. If *mapbox2*, the data refer to `layout.mapbox2`, and so on.", + "dflt": "mapbox", + "editType": "calc", + "valType": "subplotid" + }, + "text": { + "arrayOk": true, + "description": "Sets text elements associated with each (lon,lat) pair If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (lon,lat) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "textsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `text`.", + "editType": "none", + "valType": "string" + }, + "transforms": { + "items": { + "transform": { + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "editType": "calc", + "role": "object" + } + }, + "role": "object" + }, + "type": "densitymapbox", + "uid": { + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", + "editType": "plot", + "valType": "string" + }, + "uirevision": { + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.", + "editType": "none", + "valType": "any" + }, + "visible": { + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", + "dflt": true, + "editType": "calc", + "valType": "enumerated", + "values": [ + true, + false, "legendonly" ] - } - }, - "categories": [ - "pie-like", - "funnelarea", - "showLegend" - ], - "layoutAttributes": { - "extendfunnelareacolors": { - "description": "If `true`, the funnelarea slice colors (whether given by `funnelareacolorway` or inherited from `colorway`) will be extended to three times its original length by first repeating every color 20% lighter then each color 20% darker. This is intended to reduce the likelihood of reusing the same color when you have many slices, but you can set `false` to disable. Colors provided in the trace, using `marker.colors`, are never extended.", + }, + "z": { + "description": "Sets the points' weight. For example, a value of 10 would be equivalent to having 10 points of weight 1 in the same spot", + "editType": "calc", + "valType": "data_array" + }, + "zauto": { + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `z`) or the bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user.", "dflt": true, "editType": "calc", + "impliedEdits": {}, "valType": "boolean" }, - "funnelareacolorway": { - "description": "Sets the default funnelarea slice colors. Defaults to the main `colorway` used for trace colors. If you specify a new list here it can still be extended with lighter and darker colors, see `extendfunnelareacolors`.", + "zmax": { + "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well.", + "dflt": null, "editType": "calc", - "valType": "colorlist" + "impliedEdits": { + "zauto": false + }, + "valType": "number" }, - "hiddenlabels": { - "description": "hiddenlabels is the funnelarea & pie chart analog of visible:'legendonly' but it can contain many labels, and can simultaneously hide slices from several pies/funnelarea charts", + "zmid": { + "description": "Sets the mid-point of the color domain by scaling `zmin` and/or `zmax` to be equidistant to this point. Value should have the same units as in `z`. Has no effect when `zauto` is `false`.", + "dflt": null, "editType": "calc", - "valType": "data_array" + "impliedEdits": {}, + "valType": "number" }, - "hiddenlabelssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hiddenlabels`.", + "zmin": { + "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "zauto": false + }, + "valType": "number" + }, + "zsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `z`.", "editType": "none", "valType": "string" } }, + "categories": [ + "mapbox", + "gl", + "showLegend" + ], "meta": { - "description": "Visualize stages in a process using area-encoded trapezoids. This trace can be used to show data in a part-to-whole representation similar to a \"pie\" trace, wherein each item appears in a single stage. See also the \"funnel\" trace type for a different approach to visualizing funnel data." + "description": "Draws a bivariate kernel density estimation with a Gaussian kernel from `lon` and `lat` coordinates and optional `z` values using a colorscale.", + "hr_name": "density_mapbox" }, - "type": "funnelarea" + "type": "densitymapbox" }, - "heatmap": { + "funnel": { "animatable": false, "attributes": { - "autocolorscale": { - "description": "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.", - "dflt": false, + "alignmentgroup": { + "description": "Set several traces linked to the same position axis or matching axes to the same alignmentgroup. This controls whether bars compute their positional range dependently or independently.", + "dflt": "", "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" + "valType": "string" }, - "coloraxis": { - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", - "dflt": null, - "editType": "calc", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "valType": "subplotid" + "cliponaxis": { + "description": "Determines whether the text nodes are clipped about the subplot axes. To show the text nodes above axis lines and tick labels, make sure to set `xaxis.layer` and `yaxis.layer` to *below traces*.", + "dflt": true, + "editType": "plot", + "valType": "boolean" }, - "colorbar": { - "_deprecated": { - "title": { - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars", - "valType": "string" - }, - "titlefont": { - "color": { - "editType": "colorbars", - "valType": "color" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "valType": "string" - }, - "size": { - "editType": "colorbars", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "colorbars", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } + "connector": { + "editType": "plot", + "fillcolor": { + "description": "Sets the fill color.", + "editType": "style", + "valType": "color" + }, + "line": { + "color": { + "description": "Sets the line color.", + "dflt": "#444", + "editType": "style", + "valType": "color" }, - "titleside": { - "description": "Deprecated in favor of color bar's `title.side`.", - "dflt": "top", - "editType": "colorbars", - "valType": "enumerated", + "dash": { + "description": "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*).", + "dflt": "solid", + "editType": "style", + "valType": "string", "values": [ - "right", - "top", - "bottom" + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" ] - } - }, - "bgcolor": { - "description": "Sets the color of padded area.", - "dflt": "rgba(0,0,0,0)", - "editType": "colorbars", - "valType": "color" - }, - "bordercolor": { - "description": "Sets the axis line color.", - "dflt": "#444", - "editType": "colorbars", - "valType": "color" - }, - "borderwidth": { - "description": "Sets the width (in px) or the border enclosing this color bar.", - "dflt": 0, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "dtick": { - "description": "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*, 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* 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*", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" }, - "valType": "any" + "editType": "style", + "role": "object", + "width": { + "description": "Sets the line width (in px).", + "dflt": 0, + "editType": "plot", + "min": 0, + "valType": "number" + } }, - "editType": "colorbars", - "exponentformat": { - "description": "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.", - "dflt": "B", - "editType": "colorbars", + "role": "object", + "visible": { + "description": "Determines if connector regions and lines are drawn.", + "dflt": true, + "editType": "plot", + "valType": "boolean" + } + }, + "constraintext": { + "description": "Constrain the size of text inside or outside a bar to be no larger than the bar itself.", + "dflt": "both", + "editType": "calc", + "valType": "enumerated", + "values": [ + "inside", + "outside", + "both", + "none" + ] + }, + "customdata": { + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", + "editType": "calc", + "valType": "data_array" + }, + "customdatasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", + "editType": "none", + "valType": "string" + }, + "dx": { + "description": "Sets the x coordinate step. See `x0` for more info.", + "dflt": 1, + "editType": "calc", + "valType": "number" + }, + "dy": { + "description": "Sets the y coordinate step. See `y0` for more info.", + "dflt": 1, + "editType": "calc", + "valType": "number" + }, + "hoverinfo": { + "arrayOk": true, + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", + "dflt": "all", + "editType": "none", + "extras": [ + "all", + "none", + "skip" + ], + "flags": [ + "name", + "x", + "y", + "text", + "percent initial", + "percent previous", + "percent total" + ], + "valType": "flaglist" + }, + "hoverinfosrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", + "editType": "none", + "valType": "string" + }, + "hoverlabel": { + "align": { + "arrayOk": true, + "description": "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", + "dflt": "auto", + "editType": "none", "valType": "enumerated", "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" + "left", + "right", + "auto" ] }, - "labelalias": { - "description": "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.", - "dflt": false, - "editType": "colorbars", - "valType": "any" + "alignsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `align`.", + "editType": "none", + "valType": "string" }, - "len": { - "description": "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.", - "dflt": 1, - "editType": "colorbars", - "min": 0, - "valType": "number" + "bgcolor": { + "arrayOk": true, + "description": "Sets the background color of the hover labels for this trace", + "editType": "none", + "valType": "color" }, - "lenmode": { - "description": "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.", - "dflt": "fraction", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ] + "bgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", + "editType": "none", + "valType": "string" }, - "minexponent": { - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", - "dflt": 3, - "editType": "colorbars", - "min": 0, - "valType": "number" + "bordercolor": { + "arrayOk": true, + "description": "Sets the border color of the hover labels for this trace.", + "editType": "none", + "valType": "color" }, - "nticks": { - "description": "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*.", - "dflt": 0, - "editType": "colorbars", - "min": 0, - "valType": "integer" + "bordercolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", + "editType": "none", + "valType": "string" }, - "orientation": { - "description": "Sets the orientation of the colorbar.", - "dflt": "v", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "h", - "v" - ] - }, - "outlinecolor": { - "description": "Sets the axis line color.", - "dflt": "#444", - "editType": "colorbars", - "valType": "color" - }, - "outlinewidth": { - "description": "Sets the width (in px) of the axis line.", - "dflt": 1, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "role": "object", - "separatethousands": { - "description": "If \"true\", even 4-digit integers are separated", - "dflt": false, - "editType": "colorbars", - "valType": "boolean" - }, - "showexponent": { - "description": "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.", - "dflt": "all", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] - }, - "showticklabels": { - "description": "Determines whether or not the tick labels are drawn.", - "dflt": true, - "editType": "colorbars", - "valType": "boolean" - }, - "showtickprefix": { - "description": "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.", - "dflt": "all", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] - }, - "showticksuffix": { - "description": "Same as `showtickprefix` but for tick suffixes.", - "dflt": "all", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] - }, - "thickness": { - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "dflt": 30, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "thicknessmode": { - "description": "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.", - "dflt": "pixels", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ] - }, - "tick0": { - "description": "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* (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.", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "valType": "any" - }, - "tickangle": { - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", - "dflt": "auto", - "editType": "colorbars", - "valType": "angle" - }, - "tickcolor": { - "description": "Sets the tick color.", - "dflt": "#444", - "editType": "colorbars", - "valType": "color" - }, - "tickfont": { + "editType": "none", + "font": { "color": { - "editType": "colorbars", + "arrayOk": true, + "editType": "none", "valType": "color" }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "description": "Sets the font used in hover labels.", + "editType": "none", "family": { + "arrayOk": true, "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars", + "editType": "none", "noBlank": true, "strict": true, "valType": "string" }, + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" + }, "lineposition": { + "arrayOk": true, "description": "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.", "dflt": "none", - "editType": "colorbars", + "editType": "none", "extras": [ "none" ], @@ -37909,32 +37493,56 @@ ], "valType": "flaglist" }, + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", + "editType": "none", + "valType": "string" + }, "role": "object", "shadow": { + "arrayOk": true, "description": "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.", "dflt": "none", - "editType": "colorbars", + "editType": "none", + "valType": "string" + }, + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", "valType": "string" }, "size": { - "editType": "colorbars", + "arrayOk": true, + "editType": "none", "min": 1, "valType": "number" }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, "style": { + "arrayOk": true, "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "colorbars", + "editType": "none", "valType": "enumerated", "values": [ "normal", "italic" ] }, + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", + "valType": "string" + }, "textcase": { + "arrayOk": true, "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "colorbars", + "editType": "none", "valType": "enumerated", "values": [ "normal", @@ -37943,10 +37551,16 @@ "lower" ] }, + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", + "valType": "string" + }, "variant": { + "arrayOk": true, "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "colorbars", + "editType": "none", "valType": "enumerated", "values": [ "normal", @@ -37957,10 +37571,16 @@ "unicase" ] }, + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" + }, "weight": { + "arrayOk": true, "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "colorbars", + "editType": "none", "extras": [ "normal", "bold" @@ -37968,639 +37588,216 @@ "max": 1000, "min": 1, "valType": "integer" + }, + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" } }, - "tickformat": { - "description": "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*", - "dflt": "", - "editType": "colorbars", + "namelength": { + "arrayOk": true, + "description": "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.", + "dflt": 15, + "editType": "none", + "min": -1, + "valType": "integer" + }, + "namelengthsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", + "editType": "none", "valType": "string" }, - "tickformatstops": { - "items": { - "tickformatstop": { - "dtickrange": { - "description": "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*", - "editType": "colorbars", - "items": [ - { - "editType": "colorbars", - "valType": "any" - }, - { - "editType": "colorbars", - "valType": "any" - } - ], - "valType": "info_array" - }, - "editType": "colorbars", - "enabled": { - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", - "dflt": true, - "editType": "colorbars", - "valType": "boolean" - }, - "name": { - "description": "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.", - "editType": "colorbars", - "valType": "string" - }, - "role": "object", - "templateitemname": { - "description": "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`.", - "editType": "colorbars", - "valType": "string" - }, - "value": { - "description": "string - dtickformat for described zoom level, the same as *tickformat*", - "dflt": "", - "editType": "colorbars", - "valType": "string" - } - } - }, - "role": "object" + "role": "object" + }, + "hovertemplate": { + "arrayOk": true, + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `percentInitial`, `percentPrevious` and `percentTotal`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "dflt": "", + "editType": "none", + "valType": "string" + }, + "hovertemplatesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", + "editType": "none", + "valType": "string" + }, + "hovertext": { + "arrayOk": true, + "description": "Sets hover text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag.", + "dflt": "", + "editType": "style", + "valType": "string" + }, + "hovertextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertext`.", + "editType": "none", + "valType": "string" + }, + "ids": { + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", + "editType": "calc", + "valType": "data_array" + }, + "idssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ids`.", + "editType": "none", + "valType": "string" + }, + "insidetextanchor": { + "description": "Determines if texts are kept at center or start/end points in `textposition` *inside* mode.", + "dflt": "middle", + "editType": "plot", + "valType": "enumerated", + "values": [ + "end", + "middle", + "start" + ] + }, + "insidetextfont": { + "color": { + "arrayOk": true, + "editType": "style", + "valType": "color" }, - "ticklabeloverflow": { - "description": "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*.", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "allow", - "hide past div", - "hide past domain" - ] + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" }, - "ticklabelposition": { - "description": "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*.", - "dflt": "outside", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside left", - "inside left", - "outside right", - "inside right", - "outside bottom", - "inside bottom" - ] + "description": "Sets the font used for `text` lying inside the bar.", + "editType": "calc", + "family": { + "arrayOk": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" }, - "ticklabelstep": { - "description": "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*.", - "dflt": 1, - "editType": "colorbars", - "min": 1, - "valType": "integer" + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" }, - "ticklen": { - "description": "Sets the tick length (in px).", - "dflt": 5, - "editType": "colorbars", - "min": 0, + "lineposition": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", + "editType": "none", + "valType": "string" + }, + "role": "object", + "shadow": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "calc", + "valType": "string" + }, + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", + "valType": "string" + }, + "size": { + "arrayOk": true, + "editType": "calc", + "min": 1, "valType": "number" }, - "tickmode": { - "description": "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).", - "editType": "colorbars", - "impliedEdits": {}, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, + "style": { + "arrayOk": true, + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "calc", "valType": "enumerated", "values": [ - "auto", - "linear", - "array" + "normal", + "italic" ] }, - "tickprefix": { - "description": "Sets a tick label prefix.", - "dflt": "", - "editType": "colorbars", + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", "valType": "string" }, - "ticks": { - "description": "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.", - "dflt": "", - "editType": "colorbars", + "textcase": { + "arrayOk": true, + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "calc", "valType": "enumerated", "values": [ - "outside", - "inside", - "" + "normal", + "word caps", + "upper", + "lower" ] }, - "ticksuffix": { - "description": "Sets a tick label suffix.", - "dflt": "", - "editType": "colorbars", + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", "valType": "string" }, - "ticktext": { - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "editType": "colorbars", - "valType": "data_array" + "variant": { + "arrayOk": true, + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] }, - "ticktextsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", "editType": "none", "valType": "string" }, - "tickvals": { - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "editType": "colorbars", - "valType": "data_array" + "weight": { + "arrayOk": true, + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "calc", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" }, - "tickvalssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", "editType": "none", "valType": "string" - }, - "tickwidth": { - "description": "Sets the tick width (in px).", - "dflt": 1, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "title": { - "editType": "colorbars", - "font": { - "color": { - "editType": "colorbars", - "valType": "color" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "valType": "string" - }, - "size": { - "editType": "colorbars", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "colorbars", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "role": "object", - "side": { - "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ] - }, - "text": { - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars", - "valType": "string" - } - }, - "x": { - "description": "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*.", - "editType": "colorbars", - "valType": "number" - }, - "xanchor": { - "description": "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*.", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ] - }, - "xpad": { - "description": "Sets the amount of padding (in px) along the x direction.", - "dflt": 10, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "xref": { - "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", - "dflt": "paper", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "container", - "paper" - ] - }, - "y": { - "description": "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*.", - "editType": "colorbars", - "valType": "number" - }, - "yanchor": { - "description": "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*.", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ] - }, - "ypad": { - "description": "Sets the amount of padding (in px) along the y direction.", - "dflt": 10, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "yref": { - "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", - "dflt": "paper", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "container", - "paper" - ] } }, - "colorscale": { - "description": "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 `zmin` and `zmax`. 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.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "autocolorscale": false - }, - "valType": "colorscale" - }, - "connectgaps": { - "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the `z` data are filled in. It is defaulted to true if `z` is a one dimensional array and `zsmooth` is not false; otherwise it is defaulted to false.", - "editType": "calc", - "valType": "boolean" - }, - "customdata": { - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "editType": "calc", - "valType": "data_array" - }, - "customdatasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", - "editType": "none", - "valType": "string" - }, - "dx": { - "description": "Sets the x coordinate step. See `x0` for more info.", - "dflt": 1, - "editType": "calc", - "impliedEdits": { - "xtype": "scaled" - }, - "valType": "number" - }, - "dy": { - "description": "Sets the y coordinate step. See `y0` for more info.", - "dflt": 1, - "editType": "calc", - "impliedEdits": { - "ytype": "scaled" - }, - "valType": "number" - }, - "hoverinfo": { - "arrayOk": true, - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", - "dflt": "all", - "editType": "none", - "extras": [ - "all", - "none", - "skip" - ], - "flags": [ - "x", - "y", - "z", - "text", - "name" - ], - "valType": "flaglist" - }, - "hoverinfosrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", - "editType": "none", - "valType": "string" - }, - "hoverlabel": { - "align": { - "arrayOk": true, - "description": "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", - "dflt": "auto", - "editType": "none", - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ] - }, - "alignsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `align`.", - "editType": "none", - "valType": "string" - }, - "bgcolor": { - "arrayOk": true, - "description": "Sets the background color of the hover labels for this trace", - "editType": "none", - "valType": "color" - }, - "bgcolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", - "editType": "none", - "valType": "string" - }, - "bordercolor": { - "arrayOk": true, - "description": "Sets the border color of the hover labels for this trace.", - "editType": "none", - "valType": "color" - }, - "bordercolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", - "editType": "none", - "valType": "string" - }, - "editType": "none", - "font": { - "color": { - "arrayOk": true, - "editType": "none", - "valType": "color" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "description": "Sets the font used in hover labels.", - "editType": "none", - "family": { - "arrayOk": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "none", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" - }, - "lineposition": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "none", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", - "valType": "string" - }, - "role": "object", - "shadow": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "none", - "valType": "string" - }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", - "editType": "none", - "valType": "string" - }, - "size": { - "arrayOk": true, - "editType": "none", - "min": 1, - "valType": "number" - }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" - }, - "style": { - "arrayOk": true, - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "none", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" - }, - "textcase": { - "arrayOk": true, - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "none", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" - }, - "variant": { - "arrayOk": true, - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "none", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" - }, - "weight": { - "arrayOk": true, - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "none", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", - "valType": "string" - } - }, - "namelength": { - "arrayOk": true, - "description": "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.", - "dflt": 15, - "editType": "none", - "min": -1, - "valType": "integer" - }, - "namelengthsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", - "editType": "none", - "valType": "string" - }, - "role": "object" - }, - "hoverongaps": { - "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the `z` data have hover labels associated with them.", - "dflt": true, - "editType": "none", - "valType": "boolean" - }, - "hovertemplate": { - "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "dflt": "", - "editType": "none", - "valType": "string" - }, - "hovertemplatesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", - "editType": "none", - "valType": "string" - }, - "hovertext": { - "description": "Same as `text`.", - "editType": "calc", - "valType": "data_array" - }, - "hovertextsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hovertext`.", - "editType": "none", - "valType": "string" - }, - "ids": { - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "editType": "calc", - "valType": "data_array" - }, - "idssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ids`.", - "editType": "none", - "valType": "string" - }, "legend": { "description": "Sets the reference to a legend to show this trace 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.", "dflt": "legend", @@ -38724,566 +37921,398 @@ "min": 0, "valType": "number" }, - "meta": { - "arrayOk": true, - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", - "editType": "plot", - "valType": "any" - }, - "metasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `meta`.", - "editType": "none", - "valType": "string" - }, - "name": { - "description": "Sets the trace name. The trace name appears as the legend item and on hover.", - "editType": "style", - "valType": "string" - }, - "opacity": { - "description": "Sets the opacity of the trace.", - "dflt": 1, - "editType": "style", - "max": 1, - "min": 0, - "valType": "number" - }, - "reversescale": { - "description": "Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color.", - "dflt": false, - "editType": "plot", - "valType": "boolean" - }, - "showlegend": { - "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", - "dflt": false, - "editType": "style", - "valType": "boolean" - }, - "showscale": { - "description": "Determines whether or not a colorbar is displayed for this trace.", - "dflt": true, - "editType": "calc", - "valType": "boolean" - }, - "stream": { - "editType": "calc", - "maxpoints": { - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot.", - "dflt": 500, + "marker": { + "autocolorscale": { + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color` is set to a numerical array. 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.", + "dflt": true, "editType": "calc", - "max": 10000, - "min": 0, - "valType": "number" + "impliedEdits": {}, + "valType": "boolean" }, - "role": "object", - "token": { - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details.", + "cauto": { + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color` is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user.", + "dflt": true, "editType": "calc", - "noBlank": true, - "strict": true, - "valType": "string" - } - }, - "text": { - "description": "Sets the text elements associated with each z value.", - "editType": "calc", - "valType": "data_array" - }, - "textfont": { - "color": { - "dflt": "auto", - "editType": "style", - "valType": "color" - }, - "description": "Sets the text font.", - "editType": "plot", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "plot", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "plot", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "plot", - "valType": "string" + "impliedEdits": {}, + "valType": "boolean" }, - "size": { - "dflt": "auto", + "cmax": { + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well.", + "dflt": null, "editType": "plot", - "min": 1, + "impliedEdits": { + "cauto": false + }, "valType": "number" }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] + "cmid": { + "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`.", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "valType": "number" }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", + "cmin": { + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well.", + "dflt": null, "editType": "plot", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "textsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `text`.", - "editType": "none", - "valType": "string" - }, - "texttemplate": { - "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". 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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `x`, `y`, `z` and `text`.", - "dflt": "", - "editType": "plot", - "valType": "string" - }, - "transforms": { - "items": { - "transform": { - "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "editType": "calc", - "role": "object" - } - }, - "role": "object" - }, - "transpose": { - "description": "Transposes the z data.", - "dflt": false, - "editType": "calc", - "valType": "boolean" - }, - "type": "heatmap", - "uid": { - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", - "editType": "plot", - "valType": "string" - }, - "uirevision": { - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.", - "editType": "none", - "valType": "any" - }, - "visible": { - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", - "dflt": true, - "editType": "calc", - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ] - }, - "x": { - "description": "Sets the x coordinates.", - "editType": "calc+clearAxisTypes", - "impliedEdits": { - "xtype": "array" - }, - "valType": "data_array" - }, - "x0": { - "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step.", - "dflt": 0, - "editType": "calc+clearAxisTypes", - "impliedEdits": { - "xtype": "scaled" - }, - "valType": "any" - }, - "xaxis": { - "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on.", - "dflt": "x", - "editType": "calc+clearAxisTypes", - "valType": "subplotid" - }, - "xcalendar": { - "description": "Sets the calendar system to use with `x` date data.", - "dflt": "gregorian", - "editType": "calc", - "valType": "enumerated", - "values": [ - "chinese", - "coptic", - "discworld", - "ethiopian", - "gregorian", - "hebrew", - "islamic", - "jalali", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "taiwan", - "thai", - "ummalqura" - ] - }, - "xgap": { - "description": "Sets the horizontal gap (in pixels) between bricks.", - "dflt": 0, - "editType": "plot", - "min": 0, - "valType": "number" - }, - "xhoverformat": { - "description": "Sets the hover text formatting rulefor `x` 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*By default the values are formatted using `xaxis.hoverformat`.", - "dflt": "", - "editType": "none", - "valType": "string" - }, - "xperiod": { - "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer.", - "dflt": 0, - "editType": "calc", - "impliedEdits": { - "xtype": "scaled" - }, - "valType": "any" - }, - "xperiod0": { - "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01.", - "editType": "calc", - "impliedEdits": { - "xtype": "scaled" - }, - "valType": "any" - }, - "xperiodalignment": { - "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis.", - "dflt": "middle", - "editType": "calc", - "impliedEdits": { - "xtype": "scaled" - }, - "valType": "enumerated", - "values": [ - "start", - "middle", - "end" - ] - }, - "xsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `x`.", - "editType": "none", - "valType": "string" - }, - "xtype": { - "description": "If *array*, the heatmap's x coordinates are given by *x* (the default behavior when `x` is provided). If *scaled*, the heatmap's x coordinates are given by *x0* and *dx* (the default behavior when `x` is not provided).", - "editType": "calc+clearAxisTypes", - "valType": "enumerated", - "values": [ - "array", - "scaled" - ] - }, - "y": { - "description": "Sets the y coordinates.", - "editType": "calc+clearAxisTypes", - "impliedEdits": { - "ytype": "array" - }, - "valType": "data_array" - }, - "y0": { - "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step.", - "dflt": 0, - "editType": "calc+clearAxisTypes", - "impliedEdits": { - "ytype": "scaled" - }, - "valType": "any" - }, - "yaxis": { - "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on.", - "dflt": "y", - "editType": "calc+clearAxisTypes", - "valType": "subplotid" - }, - "ycalendar": { - "description": "Sets the calendar system to use with `y` date data.", - "dflt": "gregorian", - "editType": "calc", - "valType": "enumerated", - "values": [ - "chinese", - "coptic", - "discworld", - "ethiopian", - "gregorian", - "hebrew", - "islamic", - "jalali", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "taiwan", - "thai", - "ummalqura" - ] - }, - "ygap": { - "description": "Sets the vertical gap (in pixels) between bricks.", - "dflt": 0, - "editType": "plot", - "min": 0, - "valType": "number" - }, - "yhoverformat": { - "description": "Sets the hover text formatting rulefor `y` 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*By default the values are formatted using `yaxis.hoverformat`.", - "dflt": "", - "editType": "none", - "valType": "string" - }, - "yperiod": { - "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the y axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer.", - "dflt": 0, - "editType": "calc", - "impliedEdits": { - "ytype": "scaled" - }, - "valType": "any" - }, - "yperiod0": { - "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the y0 axis. When `y0period` is round number of weeks, the `y0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01.", - "editType": "calc", - "impliedEdits": { - "ytype": "scaled" - }, - "valType": "any" - }, - "yperiodalignment": { - "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the y axis.", - "dflt": "middle", - "editType": "calc", - "impliedEdits": { - "ytype": "scaled" + "impliedEdits": { + "cauto": false + }, + "valType": "number" }, - "valType": "enumerated", - "values": [ - "start", - "middle", - "end" - ] - }, - "ysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `y`.", - "editType": "none", - "valType": "string" - }, - "ytype": { - "description": "If *array*, the heatmap's y coordinates are given by *y* (the default behavior when `y` is provided) If *scaled*, the heatmap's y coordinates are given by *y0* and *dy* (the default behavior when `y` is not provided)", - "editType": "calc+clearAxisTypes", - "valType": "enumerated", - "values": [ - "array", - "scaled" - ] - }, - "z": { - "description": "Sets the z data.", - "editType": "calc", - "valType": "data_array" - }, - "zauto": { - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `z`) or the bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user.", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" - }, - "zhoverformat": { - "description": "Sets the hover text formatting rulefor `z` 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.By default the values are formatted using generic number format.", - "dflt": "", - "editType": "none", - "valType": "string" - }, - "zmax": { - "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well.", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "zauto": false + "color": { + "arrayOk": true, + "description": "Sets the marker color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set.", + "editType": "style", + "valType": "color" }, - "valType": "number" - }, - "zmid": { - "description": "Sets the mid-point of the color domain by scaling `zmin` and/or `zmax` to be equidistant to this point. Value should have the same units as in `z`. Has no effect when `zauto` is `false`.", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "valType": "number" - }, - "zmin": { - "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well.", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "zauto": false + "coloraxis": { + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", + "dflt": null, + "editType": "calc", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "valType": "subplotid" }, - "valType": "number" - }, - "zorder": { - "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", - "dflt": 0, - "editType": "plot", - "valType": "integer" - }, - "zsmooth": { - "description": "Picks a smoothing algorithm use to smooth `z` data.", - "dflt": false, - "editType": "calc", - "valType": "enumerated", - "values": [ - "fast", - "best", - false - ] - }, - "zsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `z`.", - "editType": "none", - "valType": "string" - } - }, - "categories": [ - "cartesian", - "svg", - "2dMap", - "showLegend" - ], - "meta": { - "description": "The data that describes the heatmap value-to-color mapping is set in `z`. Data in `z` can either be a {2D array} of values (ragged or not) or a 1D array of values. In the case where `z` is a {2D array}, say that `z` has N rows and M columns. Then, by default, the resulting heatmap will have N partitions along the y axis and M partitions along the x axis. In other words, the i-th row/ j-th column cell in `z` is mapped to the i-th partition of the y axis (starting from the bottom of the plot) and the j-th partition of the x-axis (starting from the left of the plot). This behavior can be flipped by using `transpose`. Moreover, `x` (`y`) can be provided with M or M+1 (N or N+1) elements. If M (N), then the coordinates correspond to the center of the heatmap cells and the cells have equal width. If M+1 (N+1), then the coordinates correspond to the edges of the heatmap cells. In the case where `z` is a 1D {array}, the x and y coordinates must be provided in `x` and `y` respectively to form data triplets." - }, - "type": "heatmap" - }, - "heatmapgl": { - "animatable": false, - "attributes": { - "autocolorscale": { - "description": "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.", - "dflt": false, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" - }, - "coloraxis": { - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", - "dflt": null, - "editType": "calc", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "valType": "subplotid" - }, - "colorbar": { - "_deprecated": { - "title": { - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "calc", - "valType": "string" - }, - "titlefont": { - "color": { - "editType": "calc", - "valType": "color" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "calc", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc", - "noBlank": true, - "strict": true, + "colorbar": { + "_deprecated": { + "title": { + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars", "valType": "string" }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "calc", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, + "titlefont": { + "color": { + "editType": "colorbars", + "valType": "color" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "valType": "string" + }, + "size": { + "editType": "colorbars", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "colorbars", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "titleside": { + "description": "Deprecated in favor of color bar's `title.side`.", + "dflt": "top", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ] + } + }, + "bgcolor": { + "description": "Sets the color of padded area.", + "dflt": "rgba(0,0,0,0)", + "editType": "colorbars", + "valType": "color" + }, + "bordercolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" + }, + "borderwidth": { + "description": "Sets the width (in px) or the border enclosing this color bar.", + "dflt": 0, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "dtick": { + "description": "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*, 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* 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*", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" + }, + "editType": "colorbars", + "exponentformat": { + "description": "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.", + "dflt": "B", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ] + }, + "labelalias": { + "description": "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.", + "dflt": false, + "editType": "colorbars", + "valType": "any" + }, + "len": { + "description": "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.", + "dflt": 1, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "lenmode": { + "description": "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.", + "dflt": "fraction", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] + }, + "minexponent": { + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", + "dflt": 3, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "nticks": { + "description": "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*.", + "dflt": 0, + "editType": "colorbars", + "min": 0, + "valType": "integer" + }, + "orientation": { + "description": "Sets the orientation of the colorbar.", + "dflt": "v", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "h", + "v" + ] + }, + "outlinecolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" + }, + "outlinewidth": { + "description": "Sets the width (in px) of the axis line.", + "dflt": 1, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "role": "object", + "separatethousands": { + "description": "If \"true\", even 4-digit integers are separated", + "dflt": false, + "editType": "colorbars", + "valType": "boolean" + }, + "showexponent": { + "description": "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.", + "dflt": "all", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] + }, + "showticklabels": { + "description": "Determines whether or not the tick labels are drawn.", + "dflt": true, + "editType": "colorbars", + "valType": "boolean" + }, + "showtickprefix": { + "description": "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.", + "dflt": "all", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] + }, + "showticksuffix": { + "description": "Same as `showtickprefix` but for tick suffixes.", + "dflt": "all", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] + }, + "thickness": { + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "dflt": 30, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "thicknessmode": { + "description": "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.", + "dflt": "pixels", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] + }, + "tick0": { + "description": "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* (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.", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" + }, + "tickangle": { + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", + "dflt": "auto", + "editType": "colorbars", + "valType": "angle" + }, + "tickcolor": { + "description": "Sets the tick color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" + }, + "tickfont": { + "color": { + "editType": "colorbars", + "valType": "color" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", "shadow": { "description": "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.", "dflt": "none", - "editType": "calc", + "editType": "colorbars", "valType": "string" }, "size": { - "editType": "calc", + "editType": "colorbars", "min": 1, "valType": "number" }, "style": { "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -39293,7 +38322,7 @@ "textcase": { "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -39305,7 +38334,7 @@ "variant": { "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -39319,7 +38348,7 @@ "weight": { "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "calc", + "editType": "colorbars", "extras": [ "normal", "bold" @@ -39329,1044 +38358,664 @@ "valType": "integer" } }, - "titleside": { - "description": "Deprecated in favor of color bar's `title.side`.", - "dflt": "top", - "editType": "calc", + "tickformat": { + "description": "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*", + "dflt": "", + "editType": "colorbars", + "valType": "string" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "dtickrange": { + "description": "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*", + "editType": "colorbars", + "items": [ + { + "editType": "colorbars", + "valType": "any" + }, + { + "editType": "colorbars", + "valType": "any" + } + ], + "valType": "info_array" + }, + "editType": "colorbars", + "enabled": { + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", + "dflt": true, + "editType": "colorbars", + "valType": "boolean" + }, + "name": { + "description": "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.", + "editType": "colorbars", + "valType": "string" + }, + "role": "object", + "templateitemname": { + "description": "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`.", + "editType": "colorbars", + "valType": "string" + }, + "value": { + "description": "string - dtickformat for described zoom level, the same as *tickformat*", + "dflt": "", + "editType": "colorbars", + "valType": "string" + } + } + }, + "role": "object" + }, + "ticklabeloverflow": { + "description": "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*.", + "editType": "colorbars", "valType": "enumerated", "values": [ - "right", - "top", - "bottom" + "allow", + "hide past div", + "hide past domain" ] - } - }, - "bgcolor": { - "description": "Sets the color of padded area.", - "dflt": "rgba(0,0,0,0)", - "editType": "calc", - "valType": "color" - }, - "bordercolor": { - "description": "Sets the axis line color.", - "dflt": "#444", - "editType": "calc", - "valType": "color" - }, - "borderwidth": { - "description": "Sets the width (in px) or the border enclosing this color bar.", - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "dtick": { - "description": "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*, 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* 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*", - "editType": "calc", - "impliedEdits": { - "tickmode": "linear" }, - "valType": "any" - }, - "editType": "calc", - "exponentformat": { - "description": "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.", - "dflt": "B", - "editType": "calc", - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ] - }, - "labelalias": { - "description": "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.", - "dflt": false, - "editType": "calc", - "valType": "any" - }, - "len": { - "description": "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.", - "dflt": 1, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "lenmode": { - "description": "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.", - "dflt": "fraction", - "editType": "calc", - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ] - }, - "minexponent": { - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", - "dflt": 3, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "nticks": { - "description": "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*.", - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "integer" - }, - "orientation": { - "description": "Sets the orientation of the colorbar.", - "dflt": "v", - "editType": "calc", - "valType": "enumerated", - "values": [ - "h", - "v" - ] - }, - "outlinecolor": { - "description": "Sets the axis line color.", - "dflt": "#444", - "editType": "calc", - "valType": "color" - }, - "outlinewidth": { - "description": "Sets the width (in px) of the axis line.", - "dflt": 1, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "role": "object", - "separatethousands": { - "description": "If \"true\", even 4-digit integers are separated", - "dflt": false, - "editType": "calc", - "valType": "boolean" - }, - "showexponent": { - "description": "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.", - "dflt": "all", - "editType": "calc", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] - }, - "showticklabels": { - "description": "Determines whether or not the tick labels are drawn.", - "dflt": true, - "editType": "calc", - "valType": "boolean" - }, - "showtickprefix": { - "description": "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.", - "dflt": "all", - "editType": "calc", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] - }, - "showticksuffix": { - "description": "Same as `showtickprefix` but for tick suffixes.", - "dflt": "all", - "editType": "calc", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] - }, - "thickness": { - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "dflt": 30, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "thicknessmode": { - "description": "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.", - "dflt": "pixels", - "editType": "calc", - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ] - }, - "tick0": { - "description": "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* (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.", - "editType": "calc", - "impliedEdits": { - "tickmode": "linear" + "ticklabelposition": { + "description": "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*.", + "dflt": "outside", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside left", + "inside left", + "outside right", + "inside right", + "outside bottom", + "inside bottom" + ] }, - "valType": "any" - }, - "tickangle": { - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", - "dflt": "auto", - "editType": "calc", - "valType": "angle" - }, - "tickcolor": { - "description": "Sets the tick color.", - "dflt": "#444", - "editType": "calc", - "valType": "color" - }, - "tickfont": { - "color": { - "editType": "calc", - "valType": "color" + "ticklabelstep": { + "description": "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*.", + "dflt": 1, + "editType": "colorbars", + "min": 1, + "valType": "integer" }, - "description": "Sets the color bar's tick label font", - "editType": "calc", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc", - "noBlank": true, - "strict": true, + "ticklen": { + "description": "Sets the tick length (in px).", + "dflt": 5, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "tickmode": { + "description": "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).", + "editType": "colorbars", + "impliedEdits": {}, + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ] + }, + "tickprefix": { + "description": "Sets a tick label prefix.", + "dflt": "", + "editType": "colorbars", "valType": "string" }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "calc", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" + "ticks": { + "description": "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.", + "dflt": "", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ] }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "calc", + "ticksuffix": { + "description": "Sets a tick label suffix.", + "dflt": "", + "editType": "colorbars", "valType": "string" }, - "size": { - "editType": "calc", - "min": 1, + "ticktext": { + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", + "editType": "colorbars", + "valType": "data_array" + }, + "ticktextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", + "editType": "none", + "valType": "string" + }, + "tickvals": { + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", + "editType": "colorbars", + "valType": "data_array" + }, + "tickvalssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", + "editType": "none", + "valType": "string" + }, + "tickwidth": { + "description": "Sets the tick width (in px).", + "dflt": 1, + "editType": "colorbars", + "min": 0, "valType": "number" }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "calc", + "title": { + "editType": "colorbars", + "font": { + "color": { + "editType": "colorbars", + "valType": "color" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "valType": "string" + }, + "size": { + "editType": "colorbars", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "colorbars", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "role": "object", + "side": { + "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ] + }, + "text": { + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars", + "valType": "string" + } + }, + "x": { + "description": "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*.", + "editType": "colorbars", + "valType": "number" + }, + "xanchor": { + "description": "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*.", + "editType": "colorbars", "valType": "enumerated", "values": [ - "normal", - "italic" + "left", + "center", + "right" ] }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "calc", + "xpad": { + "description": "Sets the amount of padding (in px) along the x direction.", + "dflt": 10, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", "valType": "enumerated", "values": [ - "normal", - "word caps", - "upper", - "lower" + "container", + "paper" ] }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "calc", + "y": { + "description": "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*.", + "editType": "colorbars", + "valType": "number" + }, + "yanchor": { + "description": "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*.", + "editType": "colorbars", "valType": "enumerated", "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" + "top", + "middle", + "bottom" ] }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "calc", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" + "ypad": { + "description": "Sets the amount of padding (in px) along the y direction.", + "dflt": 10, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] } }, - "tickformat": { - "description": "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*", - "dflt": "", + "colorscale": { + "description": "Sets the colorscale. Has an effect only if in `marker.color` is set to a numerical array. 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 `marker.cmin` and `marker.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.", + "dflt": null, "editType": "calc", - "valType": "string" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "dtickrange": { - "description": "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*", - "editType": "calc", - "items": [ - { - "editType": "calc", - "valType": "any" - }, - { - "editType": "calc", - "valType": "any" - } - ], - "valType": "info_array" - }, - "editType": "calc", - "enabled": { - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", - "dflt": true, - "editType": "calc", - "valType": "boolean" - }, - "name": { - "description": "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.", - "editType": "calc", - "valType": "string" - }, - "role": "object", - "templateitemname": { - "description": "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`.", - "editType": "calc", - "valType": "string" - }, - "value": { - "description": "string - dtickformat for described zoom level, the same as *tickformat*", - "dflt": "", - "editType": "calc", - "valType": "string" - } - } + "impliedEdits": { + "autocolorscale": false }, - "role": "object" - }, - "ticklabeloverflow": { - "description": "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*.", - "editType": "calc", - "valType": "enumerated", - "values": [ - "allow", - "hide past div", - "hide past domain" - ] - }, - "ticklabelposition": { - "description": "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*.", - "dflt": "outside", - "editType": "calc", - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside left", - "inside left", - "outside right", - "inside right", - "outside bottom", - "inside bottom" - ] - }, - "ticklabelstep": { - "description": "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*.", - "dflt": 1, - "editType": "calc", - "min": 1, - "valType": "integer" - }, - "ticklen": { - "description": "Sets the tick length (in px).", - "dflt": 5, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "tickmode": { - "description": "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).", - "editType": "calc", - "impliedEdits": {}, - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ] - }, - "tickprefix": { - "description": "Sets a tick label prefix.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "ticks": { - "description": "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.", - "dflt": "", - "editType": "calc", - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ] + "valType": "colorscale" }, - "ticksuffix": { - "description": "Sets a tick label suffix.", - "dflt": "", - "editType": "calc", + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", "valType": "string" }, - "ticktext": { - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "editType": "calc", - "valType": "data_array" - }, - "ticktextsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", - "editType": "none", - "valType": "string" - }, - "tickvals": { - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "editType": "calc", - "valType": "data_array" - }, - "tickvalssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", - "editType": "none", - "valType": "string" - }, - "tickwidth": { - "description": "Sets the tick width (in px).", - "dflt": 1, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "title": { - "editType": "calc", - "font": { - "color": { - "editType": "calc", - "valType": "color" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "calc", + "line": { + "autocolorscale": { + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color` is set to a numerical array. 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.", + "dflt": true, "editType": "calc", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "calc", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "calc", - "valType": "string" - }, - "size": { - "editType": "calc", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] + "impliedEdits": {}, + "valType": "boolean" + }, + "cauto": { + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color` is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "cmax": { + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well.", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] + "valType": "number" + }, + "cmid": { + "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`.", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "valType": "number" + }, + "cmin": { + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well.", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "calc", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } + "valType": "number" }, - "role": "object", - "side": { - "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "color": { + "arrayOk": true, + "description": "Sets the marker.line color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set.", + "editType": "style", + "valType": "color" + }, + "coloraxis": { + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", + "dflt": null, "editType": "calc", - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ] + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "valType": "subplotid" }, - "text": { - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "colorscale": { + "description": "Sets the colorscale. Has an effect only if in `marker.line.color` is set to a numerical array. 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 `marker.line.cmin` and `marker.line.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.", + "dflt": null, "editType": "calc", + "impliedEdits": { + "autocolorscale": false + }, + "valType": "colorscale" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", "valType": "string" - } - }, - "x": { - "description": "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*.", - "editType": "calc", - "valType": "number" - }, - "xanchor": { - "description": "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*.", + }, "editType": "calc", - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ] + "reversescale": { + "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color` is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color.", + "dflt": false, + "editType": "plot", + "valType": "boolean" + }, + "role": "object", + "width": { + "arrayOk": true, + "description": "Sets the width (in px) of the lines bounding the marker points.", + "dflt": 0, + "editType": "style", + "min": 0, + "valType": "number" + }, + "widthsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `width`.", + "editType": "none", + "valType": "string" + } }, - "xpad": { - "description": "Sets the amount of padding (in px) along the x direction.", - "dflt": 10, - "editType": "calc", + "opacity": { + "arrayOk": true, + "description": "Sets the opacity of the bars.", + "dflt": 1, + "editType": "style", + "max": 1, "min": 0, "valType": "number" }, - "xref": { - "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", - "dflt": "paper", - "editType": "calc", - "valType": "enumerated", - "values": [ - "container", - "paper" - ] - }, - "y": { - "description": "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*.", - "editType": "calc", - "valType": "number" - }, - "yanchor": { - "description": "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*.", - "editType": "calc", - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ] + "opacitysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `opacity`.", + "editType": "none", + "valType": "string" }, - "ypad": { - "description": "Sets the amount of padding (in px) along the y direction.", - "dflt": 10, - "editType": "calc", - "min": 0, - "valType": "number" + "reversescale": { + "description": "Reverses the color mapping if true. Has an effect only if in `marker.color` is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color.", + "dflt": false, + "editType": "plot", + "valType": "boolean" }, - "yref": { - "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", - "dflt": "paper", + "role": "object", + "showscale": { + "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color` is set to a numerical array.", + "dflt": false, "editType": "calc", - "valType": "enumerated", - "values": [ - "container", - "paper" - ] + "valType": "boolean" } }, - "colorscale": { - "description": "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 `zmin` and `zmax`. 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.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "autocolorscale": false - }, - "valType": "colorscale" - }, - "customdata": { - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "editType": "calc", - "valType": "data_array" + "meta": { + "arrayOk": true, + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", + "editType": "plot", + "valType": "any" }, - "customdatasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", + "metasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `meta`.", "editType": "none", "valType": "string" }, - "dx": { - "description": "Sets the x coordinate step. See `x0` for more info.", - "dflt": 1, + "name": { + "description": "Sets the trace name. The trace name appears as the legend item and on hover.", + "editType": "style", + "valType": "string" + }, + "offset": { + "arrayOk": false, + "description": "Shifts the position where the bar is drawn (in position axis units). In *group* barmode, traces that set *offset* will be excluded and drawn in *overlay* mode instead.", + "dflt": null, "editType": "calc", - "impliedEdits": { - "xtype": "scaled" - }, "valType": "number" }, - "dy": { - "description": "Sets the y coordinate step. See `y0` for more info.", - "dflt": 1, + "offsetgroup": { + "description": "Set several traces linked to the same position axis or matching axes to the same offsetgroup where bars of the same position coordinate will line up.", + "dflt": "", "editType": "calc", - "impliedEdits": { - "ytype": "scaled" - }, - "valType": "number" + "valType": "string" }, - "hoverinfo": { - "arrayOk": true, - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", - "dflt": "all", - "editType": "none", - "extras": [ - "all", - "none", - "skip" - ], - "flags": [ - "x", - "y", - "z", - "text", - "name" - ], - "valType": "flaglist" + "opacity": { + "description": "Sets the opacity of the trace.", + "dflt": 1, + "editType": "style", + "max": 1, + "min": 0, + "valType": "number" }, - "hoverinfosrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", - "editType": "none", - "valType": "string" + "orientation": { + "description": "Sets the orientation of the funnels. With *v* (*h*), the value of the each bar spans along the vertical (horizontal). By default funnels are tend to be oriented horizontally; unless only *y* array is presented or orientation is set to *v*. Also regarding graphs including only 'horizontal' funnels, *autorange* on the *y-axis* are set to *reversed*.", + "editType": "calc+clearAxisTypes", + "valType": "enumerated", + "values": [ + "v", + "h" + ] }, - "hoverlabel": { - "align": { + "outsidetextfont": { + "color": { "arrayOk": true, - "description": "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", - "dflt": "auto", + "editType": "style", + "valType": "color" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", "editType": "none", - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ] + "valType": "string" }, - "alignsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `align`.", + "description": "Sets the font used for `text` lying outside the bar.", + "editType": "calc", + "family": { + "arrayOk": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", "editType": "none", "valType": "string" }, - "bgcolor": { + "lineposition": { "arrayOk": true, - "description": "Sets the background color of the hover labels for this trace", + "description": "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.", + "dflt": "none", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", "editType": "none", - "valType": "color" + "valType": "string" }, - "bgcolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", + "role": "object", + "shadow": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "calc", + "valType": "string" + }, + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", "editType": "none", "valType": "string" }, - "bordercolor": { + "size": { "arrayOk": true, - "description": "Sets the border color of the hover labels for this trace.", + "editType": "calc", + "min": 1, + "valType": "number" + }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", "editType": "none", - "valType": "color" + "valType": "string" }, - "bordercolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", + "style": { + "arrayOk": true, + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", "editType": "none", "valType": "string" }, - "editType": "none", - "font": { - "color": { - "arrayOk": true, - "editType": "none", - "valType": "color" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "description": "Sets the font used in hover labels.", + "textcase": { + "arrayOk": true, + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", "editType": "none", - "family": { - "arrayOk": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "none", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" - }, - "lineposition": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "none", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", - "valType": "string" - }, - "role": "object", - "shadow": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "none", - "valType": "string" - }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", - "editType": "none", - "valType": "string" - }, - "size": { - "arrayOk": true, - "editType": "none", - "min": 1, - "valType": "number" - }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" - }, - "style": { - "arrayOk": true, - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "none", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" - }, - "textcase": { - "arrayOk": true, - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "none", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" - }, - "variant": { - "arrayOk": true, - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "none", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" - }, - "weight": { - "arrayOk": true, - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "none", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", - "valType": "string" - } + "valType": "string" }, - "namelength": { + "variant": { "arrayOk": true, - "description": "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.", - "dflt": 15, - "editType": "none", - "min": -1, - "valType": "integer" + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] }, - "namelengthsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", "editType": "none", "valType": "string" }, - "role": "object" - }, - "ids": { - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "editType": "calc", - "valType": "data_array" - }, - "idssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ids`.", - "editType": "none", - "valType": "string" - }, - "legend": { - "description": "Sets the reference to a legend to show this trace 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.", - "dflt": "legend", - "editType": "style", - "valType": "subplotid" - }, - "legendgrouptitle": { - "editType": "style", - "font": { - "color": { - "editType": "style", - "valType": "color" - }, - "description": "Sets this legend group's title font.", - "editType": "style", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "style", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "style", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "style", - "valType": "string" - }, - "size": { - "editType": "style", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "style", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "style", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "style", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "style", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } + "weight": { + "arrayOk": true, + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "calc", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" }, - "role": "object", - "text": { - "description": "Sets the title of the legend group.", - "dflt": "", - "editType": "style", + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", "valType": "string" } }, - "legendrank": { - "description": "Sets the legend rank for this trace. 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.", - "dflt": 1000, - "editType": "style", - "valType": "number" - }, - "legendwidth": { - "description": "Sets the width (in px or fraction) of the legend for this trace.", - "editType": "style", - "min": 0, - "valType": "number" - }, - "meta": { - "arrayOk": true, - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", - "editType": "plot", - "valType": "any" - }, - "metasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `meta`.", - "editType": "none", - "valType": "string" - }, - "name": { - "description": "Sets the trace name. The trace name appears as the legend item and on hover.", - "editType": "style", - "valType": "string" - }, - "opacity": { - "description": "Sets the opacity of the trace.", - "dflt": 1, - "editType": "style", - "max": 1, - "min": 0, - "valType": "number" - }, - "reversescale": { - "description": "Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color.", - "dflt": false, + "selectedpoints": { + "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect.", "editType": "calc", - "valType": "boolean" + "valType": "any" }, - "showscale": { - "description": "Determines whether or not a colorbar is displayed for this trace.", + "showlegend": { + "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", "dflt": true, - "editType": "calc", + "editType": "style", "valType": "boolean" }, "stream": { @@ -40389,15 +39038,213 @@ } }, "text": { - "description": "Sets the text elements associated with each z value.", + "arrayOk": true, + "description": "Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", + "dflt": "", "editType": "calc", - "valType": "data_array" + "valType": "string" + }, + "textangle": { + "description": "Sets the angle of the tick labels with respect to the bar. For example, a `tickangle` of -90 draws the tick labels vertically. With *auto* the texts may automatically be rotated to fit with the maximum size in bars.", + "dflt": 0, + "editType": "plot", + "valType": "angle" + }, + "textfont": { + "color": { + "arrayOk": true, + "editType": "style", + "valType": "color" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "description": "Sets the font used for `text`.", + "editType": "calc", + "family": { + "arrayOk": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" + }, + "lineposition": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", + "editType": "none", + "valType": "string" + }, + "role": "object", + "shadow": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "calc", + "valType": "string" + }, + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", + "valType": "string" + }, + "size": { + "arrayOk": true, + "editType": "calc", + "min": 1, + "valType": "number" + }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, + "style": { + "arrayOk": true, + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", + "valType": "string" + }, + "textcase": { + "arrayOk": true, + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", + "valType": "string" + }, + "variant": { + "arrayOk": true, + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" + }, + "weight": { + "arrayOk": true, + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "calc", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + }, + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" + } + }, + "textinfo": { + "arrayOk": false, + "description": "Determines which trace information appear on the graph. In the case of having multiple funnels, percentages & totals are computed separately (per trace).", + "editType": "plot", + "extras": [ + "none" + ], + "flags": [ + "label", + "text", + "percent initial", + "percent previous", + "percent total", + "value" + ], + "valType": "flaglist" + }, + "textposition": { + "arrayOk": true, + "description": "Specifies the location of the `text`. *inside* positions `text` inside, next to the bar end (rotated and scaled if needed). *outside* positions `text` outside, next to the bar end (scaled if needed), unless there is another bar stacked on this one, then the text gets pushed inside. *auto* tries to position `text` inside the bar, but if the bar is too small and no bar is stacked on this one the text is moved outside. If *none*, no text appears.", + "dflt": "auto", + "editType": "calc", + "valType": "enumerated", + "values": [ + "inside", + "outside", + "auto", + "none" + ] + }, + "textpositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textposition`.", + "editType": "none", + "valType": "string" }, "textsrc": { "description": "Sets the source reference on Chart Studio Cloud for `text`.", "editType": "none", "valType": "string" }, + "texttemplate": { + "arrayOk": true, + "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". 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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `percentInitial`, `percentPrevious`, `percentTotal`, `label` and `value`.", + "dflt": "", + "editType": "plot", + "valType": "string" + }, + "texttemplatesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `texttemplate`.", + "editType": "none", + "valType": "string" + }, "transforms": { "items": { "transform": { @@ -40408,13 +39255,7 @@ }, "role": "object" }, - "transpose": { - "description": "Transposes the z data.", - "dflt": false, - "editType": "calc", - "valType": "boolean" - }, - "type": "heatmapgl", + "type": "funnel", "uid": { "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", "editType": "plot", @@ -40436,21 +39277,23 @@ "legendonly" ] }, + "width": { + "arrayOk": false, + "description": "Sets the bar width (in position axis units).", + "dflt": null, + "editType": "calc", + "min": 0, + "valType": "number" + }, "x": { "description": "Sets the x coordinates.", - "editType": "calc", - "impliedEdits": { - "xtype": "array" - }, + "editType": "calc+clearAxisTypes", "valType": "data_array" }, "x0": { "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step.", "dflt": 0, - "editType": "calc", - "impliedEdits": { - "xtype": "scaled" - }, + "editType": "calc+clearAxisTypes", "valType": "any" }, "xaxis": { @@ -40459,35 +39302,48 @@ "editType": "calc+clearAxisTypes", "valType": "subplotid" }, - "xsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `x`.", + "xhoverformat": { + "description": "Sets the hover text formatting rulefor `x` 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*By default the values are formatted using `xaxis.hoverformat`.", + "dflt": "", "editType": "none", "valType": "string" }, - "xtype": { - "description": "If *array*, the heatmap's x coordinates are given by *x* (the default behavior when `x` is provided). If *scaled*, the heatmap's x coordinates are given by *x0* and *dx* (the default behavior when `x` is not provided).", + "xperiod": { + "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer.", + "dflt": 0, + "editType": "calc", + "valType": "any" + }, + "xperiod0": { + "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01.", + "editType": "calc", + "valType": "any" + }, + "xperiodalignment": { + "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis.", + "dflt": "middle", "editType": "calc", "valType": "enumerated", "values": [ - "array", - "scaled" + "start", + "middle", + "end" ] }, + "xsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `x`.", + "editType": "none", + "valType": "string" + }, "y": { "description": "Sets the y coordinates.", - "editType": "calc", - "impliedEdits": { - "ytype": "array" - }, + "editType": "calc+clearAxisTypes", "valType": "data_array" }, "y0": { "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step.", "dflt": 0, - "editType": "calc", - "impliedEdits": { - "ytype": "scaled" - }, + "editType": "calc+clearAxisTypes", "valType": "any" }, "yaxis": { @@ -40496,169 +39352,104 @@ "editType": "calc+clearAxisTypes", "valType": "subplotid" }, - "ysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `y`.", + "yhoverformat": { + "description": "Sets the hover text formatting rulefor `y` 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*By default the values are formatted using `yaxis.hoverformat`.", + "dflt": "", "editType": "none", "valType": "string" }, - "ytype": { - "description": "If *array*, the heatmap's y coordinates are given by *y* (the default behavior when `y` is provided) If *scaled*, the heatmap's y coordinates are given by *y0* and *dy* (the default behavior when `y` is not provided)", + "yperiod": { + "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the y axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer.", + "dflt": 0, "editType": "calc", - "valType": "enumerated", - "values": [ - "array", - "scaled" - ] + "valType": "any" }, - "z": { - "description": "Sets the z data.", + "yperiod0": { + "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the y0 axis. When `y0period` is round number of weeks, the `y0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01.", "editType": "calc", - "valType": "data_array" + "valType": "any" }, - "zauto": { - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `z`) or the bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user.", - "dflt": true, + "yperiodalignment": { + "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the y axis.", + "dflt": "middle", "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" + "valType": "enumerated", + "values": [ + "start", + "middle", + "end" + ] }, - "zmax": { - "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "zauto": false - }, - "valType": "number" + "ysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `y`.", + "editType": "none", + "valType": "string" }, - "zmid": { - "description": "Sets the mid-point of the color domain by scaling `zmin` and/or `zmax` to be equidistant to this point. Value should have the same units as in `z`. Has no effect when `zauto` is `false`.", - "dflt": null, + "zorder": { + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", + "dflt": 0, + "editType": "plot", + "valType": "integer" + } + }, + "categories": [ + "bar-like", + "cartesian", + "svg", + "oriented", + "showLegend", + "zoomScale" + ], + "layoutAttributes": { + "funnelgap": { + "description": "Sets the gap (in plot fraction) between bars of adjacent location coordinates.", "editType": "calc", - "impliedEdits": {}, + "max": 1, + "min": 0, "valType": "number" }, - "zmin": { - "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well.", - "dflt": null, + "funnelgroupgap": { + "description": "Sets the gap (in plot fraction) between bars of the same location coordinate.", + "dflt": 0, "editType": "calc", - "impliedEdits": { - "zauto": false - }, + "max": 1, + "min": 0, "valType": "number" }, - "zsmooth": { - "description": "Picks a smoothing algorithm use to smooth `z` data.", - "dflt": "fast", + "funnelmode": { + "description": "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 *group*, the bars are plotted next to one another centered around the shared location. With *overlay*, the bars are plotted over one another, you might need to reduce *opacity* to see multiple bars.", + "dflt": "stack", "editType": "calc", "valType": "enumerated", "values": [ - "fast", - false + "stack", + "group", + "overlay" ] - }, - "zsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `z`.", - "editType": "none", - "valType": "string" } }, - "categories": [ - "gl", - "gl2d", - "2dMap" - ], "meta": { - "description": "*heatmapgl* trace is deprecated! Please consider switching to the *heatmap* or *image* trace types. Alternatively you could contribute/sponsor rewriting this trace type based on cartesian features and using regl framework. WebGL version of the heatmap trace type." + "description": "Visualize stages in a process using length-encoded bars. This trace can be used to show data in either a part-to-whole representation wherein each item appears in a single stage, or in a \"drop-off\" representation wherein each item appears in each stage it traversed. See also the \"funnelarea\" trace type for a different approach to visualizing funnel data." }, - "type": "heatmapgl" + "type": "funnel" }, - "histogram": { + "funnelarea": { "animatable": false, "attributes": { - "_deprecated": { - "bardir": { - "description": "Renamed to `orientation`.", - "editType": "calc", - "valType": "enumerated", - "values": [ - "v", - "h" - ] - } - }, - "alignmentgroup": { - "description": "Set several traces linked to the same position axis or matching axes to the same alignmentgroup. This controls whether bars compute their positional range dependently or independently.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "autobinx": { - "description": "Obsolete: since v1.42 each bin attribute is auto-determined separately and `autobinx` is not needed. However, we accept `autobinx: true` or `false` and will update `xbins` accordingly before deleting `autobinx` from the trace.", - "dflt": null, - "editType": "calc", - "valType": "boolean" - }, - "autobiny": { - "description": "Obsolete: since v1.42 each bin attribute is auto-determined separately and `autobiny` is not needed. However, we accept `autobiny: true` or `false` and will update `ybins` accordingly before deleting `autobiny` from the trace.", - "dflt": null, - "editType": "calc", - "valType": "boolean" - }, - "bingroup": { - "description": "Set a group of histogram traces which will have compatible bin settings. Note that traces on the same subplot and with the same *orientation* under `barmode` *stack*, *relative* and *group* are forced into the same bingroup, Using `bingroup`, traces under `barmode` *overlay* and on different axes (of the same axis type) can have compatible bin settings. Note that histogram and histogram2d* trace can share the same `bingroup`", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "cliponaxis": { - "description": "Determines whether the text nodes are clipped about the subplot axes. To show the text nodes above axis lines and tick labels, make sure to set `xaxis.layer` and `yaxis.layer` to *below traces*.", - "dflt": true, + "aspectratio": { + "description": "Sets the ratio between height and width", + "dflt": 1, "editType": "plot", - "valType": "boolean" - }, - "constraintext": { - "description": "Constrain the size of text inside or outside a bar to be no larger than the bar itself.", - "dflt": "both", - "editType": "calc", - "valType": "enumerated", - "values": [ - "inside", - "outside", - "both", - "none" - ] + "min": 0, + "valType": "number" }, - "cumulative": { - "currentbin": { - "description": "Only applies if cumulative is enabled. Sets whether the current bin is included, excluded, or has half of its value included in the current cumulative value. *include* is the default for compatibility with various other tools, however it introduces a half-bin bias to the results. *exclude* makes the opposite half-bin bias, and *half* removes it.", - "dflt": "include", - "editType": "calc", - "valType": "enumerated", - "values": [ - "include", - "exclude", - "half" - ] - }, - "direction": { - "description": "Only applies if cumulative is enabled. If *increasing* (default) we sum all prior bins, so the result increases from left to right. If *decreasing* we sum later bins so the result decreases from left to right.", - "dflt": "increasing", - "editType": "calc", - "valType": "enumerated", - "values": [ - "increasing", - "decreasing" - ] - }, - "editType": "calc", - "enabled": { - "description": "If true, display the cumulative distribution by summing the binned values. Use the `direction` and `centralbin` attributes to tune the accumulation method. Note: in this mode, the *density* `histnorm` settings behave the same as their equivalents without *density*: ** and *density* both rise to the number of data points, and *probability* and *probability density* both rise to the number of sample points.", - "dflt": false, - "editType": "calc", - "valType": "boolean" - }, - "role": "object" + "baseratio": { + "description": "Sets the ratio between bottom length and maximum top length.", + "dflt": 0.333, + "editType": "plot", + "max": 1, + "min": 0, + "valType": "number" }, "customdata": { "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", @@ -40670,291 +39461,139 @@ "editType": "none", "valType": "string" }, - "error_x": { - "_deprecated": { - "opacity": { - "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity.", - "editType": "style", - "valType": "number" - } - }, - "array": { - "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data.", - "editType": "calc", - "valType": "data_array" - }, - "arrayminus": { - "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data.", - "editType": "calc", - "valType": "data_array" - }, - "arrayminussrc": { - "description": "Sets the source reference on Chart Studio Cloud for `arrayminus`.", - "editType": "none", - "valType": "string" - }, - "arraysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `array`.", - "editType": "none", - "valType": "string" - }, - "color": { - "description": "Sets the stoke color of the error bars.", - "editType": "style", - "valType": "color" - }, - "copy_ystyle": { - "editType": "plot", - "valType": "boolean" - }, + "dlabel": { + "description": "Sets the label step. See `label0` for more info.", + "dflt": 1, "editType": "calc", - "role": "object", - "symmetric": { - "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars.", - "editType": "calc", - "valType": "boolean" - }, - "thickness": { - "description": "Sets the thickness (in px) of the error bars.", - "dflt": 2, - "editType": "style", - "min": 0, - "valType": "number" - }, - "traceref": { + "valType": "number" + }, + "domain": { + "column": { + "description": "If there is a layout grid, use the domain for this column in the grid for this funnelarea trace .", "dflt": 0, - "editType": "style", + "editType": "calc", "min": 0, "valType": "integer" }, - "tracerefminus": { + "editType": "calc", + "role": "object", + "row": { + "description": "If there is a layout grid, use the domain for this row in the grid for this funnelarea trace .", "dflt": 0, - "editType": "style", - "min": 0, - "valType": "integer" - }, - "type": { - "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`.", - "editType": "calc", - "valType": "enumerated", - "values": [ - "percent", - "constant", - "sqrt", - "data" - ] - }, - "value": { - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars.", - "dflt": 10, "editType": "calc", "min": 0, - "valType": "number" + "valType": "integer" }, - "valueminus": { - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars", - "dflt": 10, + "x": { + "description": "Sets the horizontal domain of this funnelarea trace (in plot fraction).", + "dflt": [ + 0, + 1 + ], "editType": "calc", - "min": 0, - "valType": "number" + "items": [ + { + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + }, + { + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + } + ], + "valType": "info_array" }, - "visible": { - "description": "Determines whether or not this set of error bars is visible.", + "y": { + "description": "Sets the vertical domain of this funnelarea trace (in plot fraction).", + "dflt": [ + 0, + 1 + ], "editType": "calc", - "valType": "boolean" - }, - "width": { - "description": "Sets the width (in px) of the cross-bar at both ends of the error bars.", - "editType": "plot", - "min": 0, - "valType": "number" + "items": [ + { + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + }, + { + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + } + ], + "valType": "info_array" } }, - "error_y": { - "_deprecated": { - "opacity": { - "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity.", - "editType": "style", - "valType": "number" - } - }, - "array": { - "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data.", - "editType": "calc", - "valType": "data_array" - }, - "arrayminus": { - "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data.", - "editType": "calc", - "valType": "data_array" - }, - "arrayminussrc": { - "description": "Sets the source reference on Chart Studio Cloud for `arrayminus`.", + "hoverinfo": { + "arrayOk": true, + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", + "dflt": "all", + "editType": "none", + "extras": [ + "all", + "none", + "skip" + ], + "flags": [ + "label", + "text", + "value", + "percent", + "name" + ], + "valType": "flaglist" + }, + "hoverinfosrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", + "editType": "none", + "valType": "string" + }, + "hoverlabel": { + "align": { + "arrayOk": true, + "description": "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", + "dflt": "auto", "editType": "none", - "valType": "string" + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ] }, - "arraysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `array`.", + "alignsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `align`.", "editType": "none", "valType": "string" }, - "color": { - "description": "Sets the stoke color of the error bars.", - "editType": "style", + "bgcolor": { + "arrayOk": true, + "description": "Sets the background color of the hover labels for this trace", + "editType": "none", "valType": "color" }, - "editType": "calc", - "role": "object", - "symmetric": { - "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars.", - "editType": "calc", - "valType": "boolean" - }, - "thickness": { - "description": "Sets the thickness (in px) of the error bars.", - "dflt": 2, - "editType": "style", - "min": 0, - "valType": "number" + "bgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", + "editType": "none", + "valType": "string" }, - "traceref": { - "dflt": 0, - "editType": "style", - "min": 0, - "valType": "integer" + "bordercolor": { + "arrayOk": true, + "description": "Sets the border color of the hover labels for this trace.", + "editType": "none", + "valType": "color" }, - "tracerefminus": { - "dflt": 0, - "editType": "style", - "min": 0, - "valType": "integer" - }, - "type": { - "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`.", - "editType": "calc", - "valType": "enumerated", - "values": [ - "percent", - "constant", - "sqrt", - "data" - ] - }, - "value": { - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars.", - "dflt": 10, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "valueminus": { - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars", - "dflt": 10, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "visible": { - "description": "Determines whether or not this set of error bars is visible.", - "editType": "calc", - "valType": "boolean" - }, - "width": { - "description": "Sets the width (in px) of the cross-bar at both ends of the error bars.", - "editType": "plot", - "min": 0, - "valType": "number" - } - }, - "histfunc": { - "description": "Specifies the binning function used for this histogram trace. If *count*, the histogram values are computed by counting the number of values lying inside each bin. If *sum*, *avg*, *min*, *max*, the histogram values are computed using the sum, the average, the minimum or the maximum of the values lying inside each bin respectively.", - "dflt": "count", - "editType": "calc", - "valType": "enumerated", - "values": [ - "count", - "sum", - "avg", - "min", - "max" - ] - }, - "histnorm": { - "description": "Specifies the type of normalization used for this histogram trace. If **, the span of each bar corresponds to the number of occurrences (i.e. the number of data points lying inside the bins). If *percent* / *probability*, the span of each bar corresponds to the percentage / fraction of occurrences with respect to the total number of sample points (here, the sum of all bin HEIGHTS equals 100% / 1). If *density*, the span of each bar corresponds to the number of occurrences in a bin divided by the size of the bin interval (here, the sum of all bin AREAS equals the total number of sample points). If *probability density*, the area of each bar corresponds to the probability that an event will fall into the corresponding bin (here, the sum of all bin AREAS equals 1).", - "dflt": "", - "editType": "calc", - "valType": "enumerated", - "values": [ - "", - "percent", - "probability", - "density", - "probability density" - ] - }, - "hoverinfo": { - "arrayOk": true, - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", - "dflt": "all", - "editType": "none", - "extras": [ - "all", - "none", - "skip" - ], - "flags": [ - "x", - "y", - "z", - "text", - "name" - ], - "valType": "flaglist" - }, - "hoverinfosrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", - "editType": "none", - "valType": "string" - }, - "hoverlabel": { - "align": { - "arrayOk": true, - "description": "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", - "dflt": "auto", - "editType": "none", - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ] - }, - "alignsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `align`.", - "editType": "none", - "valType": "string" - }, - "bgcolor": { - "arrayOk": true, - "description": "Sets the background color of the hover labels for this trace", - "editType": "none", - "valType": "color" - }, - "bgcolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", - "editType": "none", - "valType": "string" - }, - "bordercolor": { - "arrayOk": true, - "description": "Sets the border color of the hover labels for this trace.", - "editType": "none", - "valType": "color" - }, - "bordercolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", - "editType": "none", - "valType": "string" + "bordercolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", + "editType": "none", + "valType": "string" }, "editType": "none", "font": { @@ -41117,7 +39756,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `binNumber` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `label`, `color`, `value`, `text` and `percent`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -41129,7 +39768,7 @@ }, "hovertext": { "arrayOk": true, - "description": "Same as `text`.", + "description": "Sets hover text elements associated with each sector. If a single string, the same string appears for all data points. If an array of string, the items are mapped in order of this trace's sectors. To be seen, trace `hoverinfo` must contain a *text* flag.", "dflt": "", "editType": "style", "valType": "string" @@ -41149,32 +39788,34 @@ "editType": "none", "valType": "string" }, - "insidetextanchor": { - "description": "Determines if texts are kept at center or start/end points in `textposition` *inside* mode.", - "dflt": "end", - "editType": "plot", - "valType": "enumerated", - "values": [ - "end", - "middle", - "start" - ] - }, "insidetextfont": { "color": { - "editType": "style", + "arrayOk": true, + "editType": "plot", "valType": "color" }, - "description": "Sets the font used for `text` lying inside the bar.", + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "description": "Sets the font used for `textinfo` lying inside the sector.", "editType": "plot", "family": { + "arrayOk": true, "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", "editType": "plot", "noBlank": true, "strict": true, "valType": "string" }, + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" + }, "lineposition": { + "arrayOk": true, "description": "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.", "dflt": "none", "editType": "plot", @@ -41188,19 +39829,37 @@ ], "valType": "flaglist" }, + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", + "editType": "none", + "valType": "string" + }, "role": "object", "shadow": { + "arrayOk": true, "description": "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.", "dflt": "none", "editType": "plot", "valType": "string" }, + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", + "valType": "string" + }, "size": { + "arrayOk": true, "editType": "plot", "min": 1, "valType": "number" }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, "style": { + "arrayOk": true, "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", "editType": "plot", @@ -41210,7 +39869,13 @@ "italic" ] }, + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", + "valType": "string" + }, "textcase": { + "arrayOk": true, "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", "editType": "plot", @@ -41222,7 +39887,13 @@ "lower" ] }, + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", + "valType": "string" + }, "variant": { + "arrayOk": true, "description": "Sets the variant of the font.", "dflt": "normal", "editType": "plot", @@ -41236,7 +39907,13 @@ "unicase" ] }, + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" + }, "weight": { + "arrayOk": true, "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", "editType": "plot", @@ -41247,8 +39924,29 @@ "max": 1000, "min": 1, "valType": "integer" + }, + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" } }, + "label0": { + "description": "Alternate to `labels`. Builds a numeric set of labels. Use with `dlabel` where `label0` is the starting label and `dlabel` the step.", + "dflt": 0, + "editType": "calc", + "valType": "number" + }, + "labels": { + "description": "Sets the sector labels. If `labels` entries are duplicated, we sum associated `values` or simply count occurrences if `values` is not provided. For other array attributes (including color) we use the first non-empty entry among all occurrences of the label.", + "editType": "calc", + "valType": "data_array" + }, + "labelssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `labels`.", + "editType": "none", + "valType": "string" + }, "legend": { "description": "Sets the reference to a legend to show this trace 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.", "dflt": "legend", @@ -41373,392 +40071,693 @@ "valType": "number" }, "marker": { - "autocolorscale": { - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color` is set to a numerical array. 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.", - "dflt": true, + "colors": { + "description": "Sets the color of each sector. If not specified, the default trace color set is used to pick the sector colors.", "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" + "valType": "data_array" }, - "cauto": { - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color` is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user.", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" + "colorssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `colors`.", + "editType": "none", + "valType": "string" }, - "cmax": { - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well.", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false + "editType": "calc", + "line": { + "color": { + "arrayOk": true, + "description": "Sets the color of the line enclosing each sector. Defaults to the `paper_bgcolor` value.", + "dflt": null, + "editType": "style", + "valType": "color" }, - "valType": "number" - }, - "cmid": { - "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`.", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "valType": "number" - }, - "cmin": { - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well.", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" }, - "valType": "number" - }, - "color": { - "arrayOk": true, - "description": "Sets the marker color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set.", - "editType": "style", - "valType": "color" - }, - "coloraxis": { - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", - "dflt": null, "editType": "calc", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "valType": "subplotid" - }, - "colorbar": { - "_deprecated": { - "title": { - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars", - "valType": "string" - }, - "titlefont": { - "color": { - "editType": "colorbars", - "valType": "color" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "valType": "string" - }, - "size": { - "editType": "colorbars", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "colorbars", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "titleside": { - "description": "Deprecated in favor of color bar's `title.side`.", - "dflt": "top", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ] - } + "role": "object", + "width": { + "arrayOk": true, + "description": "Sets the width (in px) of the line enclosing each sector.", + "dflt": 1, + "editType": "style", + "min": 0, + "valType": "number" }, + "widthsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `width`.", + "editType": "none", + "valType": "string" + } + }, + "pattern": { "bgcolor": { - "description": "Sets the color of padded area.", - "dflt": "rgba(0,0,0,0)", - "editType": "colorbars", + "arrayOk": true, + "description": "When there is no colorscale sets the color of background pattern fill. Defaults to a `marker.color` background when `fillmode` is *overlay*. Otherwise, defaults to a transparent background.", + "editType": "style", "valType": "color" }, - "bordercolor": { - "description": "Sets the axis line color.", - "dflt": "#444", - "editType": "colorbars", + "bgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", + "editType": "none", + "valType": "string" + }, + "description": "Sets the pattern within the marker.", + "editType": "style", + "fgcolor": { + "arrayOk": true, + "description": "When there is no colorscale sets the color of foreground pattern fill. Defaults to a `marker.color` background when `fillmode` is *replace*. Otherwise, defaults to dark grey or white to increase contrast with the `bgcolor`.", + "editType": "style", "valType": "color" }, - "borderwidth": { - "description": "Sets the width (in px) or the border enclosing this color bar.", - "dflt": 0, - "editType": "colorbars", + "fgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `fgcolor`.", + "editType": "none", + "valType": "string" + }, + "fgopacity": { + "description": "Sets the opacity of the foreground pattern fill. Defaults to a 0.5 when `fillmode` is *overlay*. Otherwise, defaults to 1.", + "editType": "style", + "max": 1, "min": 0, "valType": "number" }, - "dtick": { - "description": "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*, 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* 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*", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "valType": "any" - }, - "editType": "colorbars", - "exponentformat": { - "description": "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.", - "dflt": "B", - "editType": "colorbars", + "fillmode": { + "description": "Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`.", + "dflt": "replace", + "editType": "style", "valType": "enumerated", "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" + "replace", + "overlay" ] }, - "labelalias": { - "description": "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.", - "dflt": false, - "editType": "colorbars", - "valType": "any" - }, - "len": { - "description": "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.", - "dflt": 1, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "lenmode": { - "description": "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.", - "dflt": "fraction", - "editType": "colorbars", + "role": "object", + "shape": { + "arrayOk": true, + "description": "Sets the shape of the pattern fill. By default, no pattern is used for filling the area.", + "dflt": "", + "editType": "style", "valType": "enumerated", "values": [ - "fraction", - "pixels" + "", + "/", + "\\", + "x", + "-", + "|", + "+", + "." ] }, - "minexponent": { - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", - "dflt": 3, - "editType": "colorbars", - "min": 0, - "valType": "number" + "shapesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shape`.", + "editType": "none", + "valType": "string" }, - "nticks": { - "description": "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*.", - "dflt": 0, - "editType": "colorbars", + "size": { + "arrayOk": true, + "description": "Sets the size of unit squares of the pattern fill in pixels, which corresponds to the interval of repetition of the pattern.", + "dflt": 8, + "editType": "style", "min": 0, - "valType": "integer" + "valType": "number" }, - "orientation": { - "description": "Sets the orientation of the colorbar.", - "dflt": "v", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "h", - "v" - ] - }, - "outlinecolor": { - "description": "Sets the axis line color.", - "dflt": "#444", - "editType": "colorbars", - "valType": "color" + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" }, - "outlinewidth": { - "description": "Sets the width (in px) of the axis line.", - "dflt": 1, - "editType": "colorbars", + "solidity": { + "arrayOk": true, + "description": "Sets the solidity of the pattern fill. Solidity is roughly the fraction of the area filled by the pattern. Solidity of 0 shows only the background color without pattern and solidty of 1 shows only the foreground color without pattern.", + "dflt": 0.3, + "editType": "style", + "max": 1, "min": 0, "valType": "number" }, - "role": "object", - "separatethousands": { - "description": "If \"true\", even 4-digit integers are separated", - "dflt": false, - "editType": "colorbars", - "valType": "boolean" + "soliditysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `solidity`.", + "editType": "none", + "valType": "string" + } + }, + "role": "object" + }, + "meta": { + "arrayOk": true, + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", + "editType": "plot", + "valType": "any" + }, + "metasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `meta`.", + "editType": "none", + "valType": "string" + }, + "name": { + "description": "Sets the trace name. The trace name appears as the legend item and on hover.", + "editType": "style", + "valType": "string" + }, + "opacity": { + "description": "Sets the opacity of the trace.", + "dflt": 1, + "editType": "style", + "max": 1, + "min": 0, + "valType": "number" + }, + "scalegroup": { + "description": "If there are multiple funnelareas that should be sized according to their totals, link them by providing a non-empty group id here shared by every trace in the same group.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "showlegend": { + "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", + "dflt": true, + "editType": "style", + "valType": "boolean" + }, + "stream": { + "editType": "calc", + "maxpoints": { + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot.", + "dflt": 500, + "editType": "calc", + "max": 10000, + "min": 0, + "valType": "number" + }, + "role": "object", + "token": { + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" + } + }, + "text": { + "description": "Sets text elements associated with each sector. If trace `textinfo` contains a *text* flag, these elements will be seen on the chart. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", + "editType": "plot", + "valType": "data_array" + }, + "textfont": { + "color": { + "arrayOk": true, + "editType": "plot", + "valType": "color" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "description": "Sets the font used for `textinfo`.", + "editType": "plot", + "family": { + "arrayOk": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "plot", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" + }, + "lineposition": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "plot", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", + "editType": "none", + "valType": "string" + }, + "role": "object", + "shadow": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "plot", + "valType": "string" + }, + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", + "valType": "string" + }, + "size": { + "arrayOk": true, + "editType": "plot", + "min": 1, + "valType": "number" + }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, + "style": { + "arrayOk": true, + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", + "valType": "string" + }, + "textcase": { + "arrayOk": true, + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", + "valType": "string" + }, + "variant": { + "arrayOk": true, + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" + }, + "weight": { + "arrayOk": true, + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "plot", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + }, + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" + } + }, + "textinfo": { + "description": "Determines which trace information appear on the graph.", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "label", + "text", + "value", + "percent" + ], + "valType": "flaglist" + }, + "textposition": { + "arrayOk": true, + "description": "Specifies the location of the `textinfo`.", + "dflt": "inside", + "editType": "plot", + "valType": "enumerated", + "values": [ + "inside", + "none" + ] + }, + "textpositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textposition`.", + "editType": "none", + "valType": "string" + }, + "textsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `text`.", + "editType": "none", + "valType": "string" + }, + "texttemplate": { + "arrayOk": true, + "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". 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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `label`, `color`, `value`, `text` and `percent`.", + "dflt": "", + "editType": "plot", + "valType": "string" + }, + "texttemplatesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `texttemplate`.", + "editType": "none", + "valType": "string" + }, + "title": { + "editType": "plot", + "font": { + "color": { + "arrayOk": true, + "editType": "plot", + "valType": "color" }, - "showexponent": { - "description": "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.", - "dflt": "all", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "description": "Sets the font used for `title`. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "plot", + "family": { + "arrayOk": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "plot", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" + }, + "lineposition": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "plot", + "extras": [ "none" - ] + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" }, - "showticklabels": { - "description": "Determines whether or not the tick labels are drawn.", - "dflt": true, - "editType": "colorbars", - "valType": "boolean" + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", + "editType": "none", + "valType": "string" }, - "showtickprefix": { - "description": "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.", - "dflt": "all", - "editType": "colorbars", + "role": "object", + "shadow": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "plot", + "valType": "string" + }, + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", + "valType": "string" + }, + "size": { + "arrayOk": true, + "editType": "plot", + "min": 1, + "valType": "number" + }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, + "style": { + "arrayOk": true, + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "plot", "valType": "enumerated", "values": [ - "all", - "first", - "last", - "none" + "normal", + "italic" ] }, - "showticksuffix": { - "description": "Same as `showtickprefix` but for tick suffixes.", - "dflt": "all", - "editType": "colorbars", + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", + "valType": "string" + }, + "textcase": { + "arrayOk": true, + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "plot", "valType": "enumerated", "values": [ - "all", - "first", - "last", - "none" + "normal", + "word caps", + "upper", + "lower" ] }, - "thickness": { - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "dflt": 30, - "editType": "colorbars", - "min": 0, - "valType": "number" + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", + "valType": "string" }, - "thicknessmode": { - "description": "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.", - "dflt": "pixels", - "editType": "colorbars", + "variant": { + "arrayOk": true, + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "plot", "valType": "enumerated", "values": [ - "fraction", - "pixels" + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" ] }, - "tick0": { - "description": "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* (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.", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "valType": "any" - }, - "tickangle": { - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", - "dflt": "auto", - "editType": "colorbars", - "valType": "angle" + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" }, - "tickcolor": { - "description": "Sets the tick color.", - "dflt": "#444", - "editType": "colorbars", - "valType": "color" + "weight": { + "arrayOk": true, + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "plot", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" }, - "tickfont": { - "color": { - "editType": "colorbars", - "valType": "color" - }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "valType": "string" - }, - "size": { - "editType": "colorbars", - "min": 1, - "valType": "number" + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" + } + }, + "position": { + "description": "Specifies the location of the `title`. Note that the title's position used to be set by the now deprecated `titleposition` attribute.", + "dflt": "top center", + "editType": "plot", + "valType": "enumerated", + "values": [ + "top left", + "top center", + "top right" + ] + }, + "role": "object", + "text": { + "description": "Sets the title of the chart. If it is empty, no title is displayed. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "dflt": "", + "editType": "plot", + "valType": "string" + } + }, + "transforms": { + "items": { + "transform": { + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "editType": "calc", + "role": "object" + } + }, + "role": "object" + }, + "type": "funnelarea", + "uid": { + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", + "editType": "plot", + "valType": "string" + }, + "uirevision": { + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.", + "editType": "none", + "valType": "any" + }, + "values": { + "description": "Sets the values of the sectors. If omitted, we count occurrences of each label.", + "editType": "calc", + "valType": "data_array" + }, + "valuessrc": { + "description": "Sets the source reference on Chart Studio Cloud for `values`.", + "editType": "none", + "valType": "string" + }, + "visible": { + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", + "dflt": true, + "editType": "calc", + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ] + } + }, + "categories": [ + "pie-like", + "funnelarea", + "showLegend" + ], + "layoutAttributes": { + "extendfunnelareacolors": { + "description": "If `true`, the funnelarea slice colors (whether given by `funnelareacolorway` or inherited from `colorway`) will be extended to three times its original length by first repeating every color 20% lighter then each color 20% darker. This is intended to reduce the likelihood of reusing the same color when you have many slices, but you can set `false` to disable. Colors provided in the trace, using `marker.colors`, are never extended.", + "dflt": true, + "editType": "calc", + "valType": "boolean" + }, + "funnelareacolorway": { + "description": "Sets the default funnelarea slice colors. Defaults to the main `colorway` used for trace colors. If you specify a new list here it can still be extended with lighter and darker colors, see `extendfunnelareacolors`.", + "editType": "calc", + "valType": "colorlist" + }, + "hiddenlabels": { + "description": "hiddenlabels is the funnelarea & pie chart analog of visible:'legendonly' but it can contain many labels, and can simultaneously hide slices from several pies/funnelarea charts", + "editType": "calc", + "valType": "data_array" + }, + "hiddenlabelssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hiddenlabels`.", + "editType": "none", + "valType": "string" + } + }, + "meta": { + "description": "Visualize stages in a process using area-encoded trapezoids. This trace can be used to show data in a part-to-whole representation similar to a \"pie\" trace, wherein each item appears in a single stage. See also the \"funnel\" trace type for a different approach to visualizing funnel data." + }, + "type": "funnelarea" + }, + "heatmap": { + "animatable": false, + "attributes": { + "autocolorscale": { + "description": "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.", + "dflt": false, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "coloraxis": { + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", + "dflt": null, + "editType": "calc", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "valType": "subplotid" + }, + "colorbar": { + "_deprecated": { + "title": { + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars", + "valType": "string" + }, + "titlefont": { + "color": { + "editType": "colorbars", + "valType": "color" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "valType": "string" + }, + "size": { + "editType": "colorbars", + "min": 1, + "valType": "number" }, "style": { "description": "Sets whether a font should be styled with a normal or italic face from its family.", @@ -41809,564 +40808,1049 @@ "valType": "integer" } }, - "tickformat": { - "description": "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*", - "dflt": "", - "editType": "colorbars", - "valType": "string" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "dtickrange": { - "description": "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*", - "editType": "colorbars", - "items": [ - { - "editType": "colorbars", - "valType": "any" - }, - { - "editType": "colorbars", - "valType": "any" - } - ], - "valType": "info_array" - }, - "editType": "colorbars", - "enabled": { - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", - "dflt": true, - "editType": "colorbars", - "valType": "boolean" - }, - "name": { - "description": "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.", - "editType": "colorbars", - "valType": "string" - }, - "role": "object", - "templateitemname": { - "description": "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`.", - "editType": "colorbars", - "valType": "string" - }, - "value": { - "description": "string - dtickformat for described zoom level, the same as *tickformat*", - "dflt": "", - "editType": "colorbars", - "valType": "string" - } - } - }, - "role": "object" - }, - "ticklabeloverflow": { - "description": "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*.", + "titleside": { + "description": "Deprecated in favor of color bar's `title.side`.", + "dflt": "top", "editType": "colorbars", "valType": "enumerated", "values": [ - "allow", - "hide past div", - "hide past domain" + "right", + "top", + "bottom" ] + } + }, + "bgcolor": { + "description": "Sets the color of padded area.", + "dflt": "rgba(0,0,0,0)", + "editType": "colorbars", + "valType": "color" + }, + "bordercolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" + }, + "borderwidth": { + "description": "Sets the width (in px) or the border enclosing this color bar.", + "dflt": 0, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "dtick": { + "description": "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*, 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* 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*", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" }, - "ticklabelposition": { - "description": "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*.", - "dflt": "outside", + "valType": "any" + }, + "editType": "colorbars", + "exponentformat": { + "description": "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.", + "dflt": "B", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ] + }, + "labelalias": { + "description": "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.", + "dflt": false, + "editType": "colorbars", + "valType": "any" + }, + "len": { + "description": "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.", + "dflt": 1, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "lenmode": { + "description": "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.", + "dflt": "fraction", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] + }, + "minexponent": { + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", + "dflt": 3, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "nticks": { + "description": "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*.", + "dflt": 0, + "editType": "colorbars", + "min": 0, + "valType": "integer" + }, + "orientation": { + "description": "Sets the orientation of the colorbar.", + "dflt": "v", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "h", + "v" + ] + }, + "outlinecolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" + }, + "outlinewidth": { + "description": "Sets the width (in px) of the axis line.", + "dflt": 1, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "role": "object", + "separatethousands": { + "description": "If \"true\", even 4-digit integers are separated", + "dflt": false, + "editType": "colorbars", + "valType": "boolean" + }, + "showexponent": { + "description": "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.", + "dflt": "all", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] + }, + "showticklabels": { + "description": "Determines whether or not the tick labels are drawn.", + "dflt": true, + "editType": "colorbars", + "valType": "boolean" + }, + "showtickprefix": { + "description": "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.", + "dflt": "all", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] + }, + "showticksuffix": { + "description": "Same as `showtickprefix` but for tick suffixes.", + "dflt": "all", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] + }, + "thickness": { + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "dflt": 30, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "thicknessmode": { + "description": "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.", + "dflt": "pixels", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] + }, + "tick0": { + "description": "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* (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.", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" + }, + "tickangle": { + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", + "dflt": "auto", + "editType": "colorbars", + "valType": "angle" + }, + "tickcolor": { + "description": "Sets the tick color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" + }, + "tickfont": { + "color": { "editType": "colorbars", - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside left", - "inside left", - "outside right", - "inside right", - "outside bottom", - "inside bottom" - ] + "valType": "color" }, - "ticklabelstep": { - "description": "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*.", - "dflt": 1, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", "editType": "colorbars", - "min": 1, - "valType": "integer" + "noBlank": true, + "strict": true, + "valType": "string" }, - "ticklen": { - "description": "Sets the tick length (in px).", - "dflt": 5, + "lineposition": { + "description": "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.", + "dflt": "none", "editType": "colorbars", - "min": 0, + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "valType": "string" + }, + "size": { + "editType": "colorbars", + "min": 1, "valType": "number" }, - "tickmode": { - "description": "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).", + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", "editType": "colorbars", - "impliedEdits": {}, "valType": "enumerated", "values": [ - "auto", - "linear", - "array" + "normal", + "italic" ] }, - "tickprefix": { - "description": "Sets a tick label prefix.", - "dflt": "", - "editType": "colorbars", - "valType": "string" - }, - "ticks": { - "description": "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.", - "dflt": "", + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", "editType": "colorbars", "valType": "enumerated", "values": [ - "outside", - "inside", - "" + "normal", + "word caps", + "upper", + "lower" ] }, - "ticksuffix": { - "description": "Sets a tick label suffix.", - "dflt": "", + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", "editType": "colorbars", - "valType": "string" - }, - "ticktext": { - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "editType": "colorbars", - "valType": "data_array" - }, - "ticktextsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", - "editType": "none", - "valType": "string" - }, - "tickvals": { - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "editType": "colorbars", - "valType": "data_array" - }, - "tickvalssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", - "editType": "none", - "valType": "string" - }, - "tickwidth": { - "description": "Sets the tick width (in px).", - "dflt": 1, - "editType": "colorbars", - "min": 0, - "valType": "number" + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] }, - "title": { + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", "editType": "colorbars", - "font": { - "color": { + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "tickformat": { + "description": "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*", + "dflt": "", + "editType": "colorbars", + "valType": "string" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "dtickrange": { + "description": "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*", "editType": "colorbars", - "valType": "color" + "items": [ + { + "editType": "colorbars", + "valType": "any" + }, + { + "editType": "colorbars", + "valType": "any" + } + ], + "valType": "info_array" }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", "editType": "colorbars", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "enabled": { + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", + "dflt": true, "editType": "colorbars", - "noBlank": true, - "strict": true, - "valType": "string" + "valType": "boolean" }, - "lineposition": { - "description": "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.", - "dflt": "none", + "name": { + "description": "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.", "editType": "colorbars", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" + "valType": "string" }, "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", + "templateitemname": { + "description": "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`.", "editType": "colorbars", "valType": "string" }, - "size": { - "editType": "colorbars", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", + "value": { + "description": "string - dtickformat for described zoom level, the same as *tickformat*", + "dflt": "", "editType": "colorbars", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" + "valType": "string" } + } + }, + "role": "object" + }, + "ticklabeloverflow": { + "description": "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*.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ] + }, + "ticklabelposition": { + "description": "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*.", + "dflt": "outside", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside left", + "inside left", + "outside right", + "inside right", + "outside bottom", + "inside bottom" + ] + }, + "ticklabelstep": { + "description": "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*.", + "dflt": 1, + "editType": "colorbars", + "min": 1, + "valType": "integer" + }, + "ticklen": { + "description": "Sets the tick length (in px).", + "dflt": 5, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "tickmode": { + "description": "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).", + "editType": "colorbars", + "impliedEdits": {}, + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ] + }, + "tickprefix": { + "description": "Sets a tick label prefix.", + "dflt": "", + "editType": "colorbars", + "valType": "string" + }, + "ticks": { + "description": "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.", + "dflt": "", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ] + }, + "ticksuffix": { + "description": "Sets a tick label suffix.", + "dflt": "", + "editType": "colorbars", + "valType": "string" + }, + "ticktext": { + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", + "editType": "colorbars", + "valType": "data_array" + }, + "ticktextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", + "editType": "none", + "valType": "string" + }, + "tickvals": { + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", + "editType": "colorbars", + "valType": "data_array" + }, + "tickvalssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", + "editType": "none", + "valType": "string" + }, + "tickwidth": { + "description": "Sets the tick width (in px).", + "dflt": 1, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "title": { + "editType": "colorbars", + "font": { + "color": { + "editType": "colorbars", + "valType": "color" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" }, "role": "object", - "side": { - "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "valType": "string" + }, + "size": { + "editType": "colorbars", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", "editType": "colorbars", "valType": "enumerated", "values": [ - "right", - "top", - "bottom" + "normal", + "italic" ] }, - "text": { - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", "editType": "colorbars", - "valType": "string" + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "colorbars", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" } }, - "x": { - "description": "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*.", - "editType": "colorbars", - "valType": "number" - }, - "xanchor": { - "description": "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*.", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ] - }, - "xpad": { - "description": "Sets the amount of padding (in px) along the x direction.", - "dflt": 10, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "xref": { - "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", - "dflt": "paper", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "container", - "paper" - ] - }, - "y": { - "description": "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*.", - "editType": "colorbars", - "valType": "number" - }, - "yanchor": { - "description": "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*.", + "role": "object", + "side": { + "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", "editType": "colorbars", "valType": "enumerated", "values": [ + "right", "top", - "middle", "bottom" ] }, - "ypad": { - "description": "Sets the amount of padding (in px) along the y direction.", - "dflt": 10, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "yref": { - "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", - "dflt": "paper", + "text": { + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", "editType": "colorbars", - "valType": "enumerated", - "values": [ - "container", - "paper" - ] + "valType": "string" } }, - "colorscale": { - "description": "Sets the colorscale. Has an effect only if in `marker.color` is set to a numerical array. 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 `marker.cmin` and `marker.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.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "autocolorscale": false - }, - "valType": "colorscale" + "x": { + "description": "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*.", + "editType": "colorbars", + "valType": "number" }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" + "xanchor": { + "description": "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*.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ] }, - "cornerradius": { - "description": "Sets the rounding of corners. May be an integer number of pixels, or a percentage of bar width (as a string ending in %). Defaults to `layout.barcornerradius`. In stack or relative barmode, the first trace to set cornerradius is used for the whole stack.", - "editType": "calc", - "valType": "any" + "xpad": { + "description": "Sets the amount of padding (in px) along the x direction.", + "dflt": 10, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, + "y": { + "description": "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*.", + "editType": "colorbars", + "valType": "number" + }, + "yanchor": { + "description": "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*.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ] + }, + "ypad": { + "description": "Sets the amount of padding (in px) along the y direction.", + "dflt": 10, + "editType": "colorbars", + "min": 0, + "valType": "number" }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + } + }, + "colorscale": { + "description": "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 `zmin` and `zmax`. 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.", + "dflt": null, "editType": "calc", - "line": { - "autocolorscale": { - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color` is set to a numerical array. 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.", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" - }, - "cauto": { - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color` is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user.", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" - }, - "cmax": { - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well.", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "valType": "number" - }, - "cmid": { - "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`.", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "valType": "number" - }, - "cmin": { - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well.", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "valType": "number" - }, + "impliedEdits": { + "autocolorscale": false + }, + "valType": "colorscale" + }, + "connectgaps": { + "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the `z` data are filled in. It is defaulted to true if `z` is a one dimensional array and `zsmooth` is not false; otherwise it is defaulted to false.", + "editType": "calc", + "valType": "boolean" + }, + "customdata": { + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", + "editType": "calc", + "valType": "data_array" + }, + "customdatasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", + "editType": "none", + "valType": "string" + }, + "dx": { + "description": "Sets the x coordinate step. See `x0` for more info.", + "dflt": 1, + "editType": "calc", + "impliedEdits": { + "xtype": "scaled" + }, + "valType": "number" + }, + "dy": { + "description": "Sets the y coordinate step. See `y0` for more info.", + "dflt": 1, + "editType": "calc", + "impliedEdits": { + "ytype": "scaled" + }, + "valType": "number" + }, + "hoverinfo": { + "arrayOk": true, + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", + "dflt": "all", + "editType": "none", + "extras": [ + "all", + "none", + "skip" + ], + "flags": [ + "x", + "y", + "z", + "text", + "name" + ], + "valType": "flaglist" + }, + "hoverinfosrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", + "editType": "none", + "valType": "string" + }, + "hoverlabel": { + "align": { + "arrayOk": true, + "description": "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", + "dflt": "auto", + "editType": "none", + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ] + }, + "alignsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `align`.", + "editType": "none", + "valType": "string" + }, + "bgcolor": { + "arrayOk": true, + "description": "Sets the background color of the hover labels for this trace", + "editType": "none", + "valType": "color" + }, + "bgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", + "editType": "none", + "valType": "string" + }, + "bordercolor": { + "arrayOk": true, + "description": "Sets the border color of the hover labels for this trace.", + "editType": "none", + "valType": "color" + }, + "bordercolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", + "editType": "none", + "valType": "string" + }, + "editType": "none", + "font": { "color": { "arrayOk": true, - "description": "Sets the marker.line color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set.", - "editType": "style", + "editType": "none", "valType": "color" }, - "coloraxis": { - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", - "dflt": null, - "editType": "calc", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "valType": "subplotid" - }, - "colorscale": { - "description": "Sets the colorscale. Has an effect only if in `marker.line.color` is set to a numerical array. 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 `marker.line.cmin` and `marker.line.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.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "autocolorscale": false - }, - "valType": "colorscale" - }, "colorsrc": { "description": "Sets the source reference on Chart Studio Cloud for `color`.", "editType": "none", "valType": "string" }, - "editType": "calc", - "reversescale": { - "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color` is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color.", - "dflt": false, - "editType": "plot", - "valType": "boolean" + "description": "Sets the font used in hover labels.", + "editType": "none", + "family": { + "arrayOk": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "none", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" + }, + "lineposition": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "none", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", + "editType": "none", + "valType": "string" }, "role": "object", - "width": { + "shadow": { "arrayOk": true, - "description": "Sets the width (in px) of the lines bounding the marker points.", - "dflt": 0, - "editType": "style", - "min": 0, + "description": "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.", + "dflt": "none", + "editType": "none", + "valType": "string" + }, + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", + "valType": "string" + }, + "size": { + "arrayOk": true, + "editType": "none", + "min": 1, "valType": "number" }, - "widthsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `width`.", + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, + "style": { + "arrayOk": true, + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "none", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", + "valType": "string" + }, + "textcase": { + "arrayOk": true, + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "none", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", + "valType": "string" + }, + "variant": { + "arrayOk": true, + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "none", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" + }, + "weight": { + "arrayOk": true, + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "none", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + }, + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", "editType": "none", "valType": "string" } }, - "opacity": { + "namelength": { "arrayOk": true, - "description": "Sets the opacity of the bars.", - "dflt": 1, - "editType": "style", - "max": 1, - "min": 0, - "valType": "number" + "description": "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.", + "dflt": 15, + "editType": "none", + "min": -1, + "valType": "integer" }, - "opacitysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `opacity`.", + "namelengthsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", "editType": "none", "valType": "string" }, - "pattern": { - "bgcolor": { - "arrayOk": true, - "description": "When there is no colorscale sets the color of background pattern fill. Defaults to a `marker.color` background when `fillmode` is *overlay*. Otherwise, defaults to a transparent background.", + "role": "object" + }, + "hoverongaps": { + "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the `z` data have hover labels associated with them.", + "dflt": true, + "editType": "none", + "valType": "boolean" + }, + "hovertemplate": { + "arrayOk": true, + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "dflt": "", + "editType": "none", + "valType": "string" + }, + "hovertemplatesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", + "editType": "none", + "valType": "string" + }, + "hovertext": { + "description": "Same as `text`.", + "editType": "calc", + "valType": "data_array" + }, + "hovertextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertext`.", + "editType": "none", + "valType": "string" + }, + "ids": { + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", + "editType": "calc", + "valType": "data_array" + }, + "idssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ids`.", + "editType": "none", + "valType": "string" + }, + "legend": { + "description": "Sets the reference to a legend to show this trace 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.", + "dflt": "legend", + "editType": "style", + "valType": "subplotid" + }, + "legendgroup": { + "description": "Sets the legend group for this trace. Traces and shapes part of the same legend group hide/show at the same time when toggling legend items.", + "dflt": "", + "editType": "style", + "valType": "string" + }, + "legendgrouptitle": { + "editType": "style", + "font": { + "color": { "editType": "style", "valType": "color" }, - "bgcolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", - "editType": "none", + "description": "Sets this legend group's title font.", + "editType": "style", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "style", + "noBlank": true, + "strict": true, "valType": "string" }, - "description": "Sets the pattern within the marker.", - "editType": "style", - "fgcolor": { - "arrayOk": true, - "description": "When there is no colorscale sets the color of foreground pattern fill. Defaults to a `marker.color` background when `fillmode` is *replace*. Otherwise, defaults to dark grey or white to increase contrast with the `bgcolor`.", + "lineposition": { + "description": "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.", + "dflt": "none", "editType": "style", - "valType": "color" + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" }, - "fgcolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `fgcolor`.", - "editType": "none", + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "style", "valType": "string" }, - "fgopacity": { - "description": "Sets the opacity of the foreground pattern fill. Defaults to a 0.5 when `fillmode` is *overlay*. Otherwise, defaults to 1.", + "size": { "editType": "style", - "max": 1, - "min": 0, + "min": 1, "valType": "number" }, - "fillmode": { - "description": "Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`.", - "dflt": "replace", + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", "editType": "style", "valType": "enumerated", "values": [ - "replace", - "overlay" + "normal", + "italic" ] }, - "role": "object", - "shape": { - "arrayOk": true, - "description": "Sets the shape of the pattern fill. By default, no pattern is used for filling the area.", - "dflt": "", + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", "editType": "style", "valType": "enumerated", "values": [ - "", - "/", - "\\", - "x", - "-", - "|", - "+", - "." + "normal", + "word caps", + "upper", + "lower" ] }, - "shapesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shape`.", - "editType": "none", - "valType": "string" - }, - "size": { - "arrayOk": true, - "description": "Sets the size of unit squares of the pattern fill in pixels, which corresponds to the interval of repetition of the pattern.", - "dflt": 8, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", "editType": "style", - "min": 0, - "valType": "number" - }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] }, - "solidity": { - "arrayOk": true, - "description": "Sets the solidity of the pattern fill. Solidity is roughly the fraction of the area filled by the pattern. Solidity of 0 shows only the background color without pattern and solidty of 1 shows only the foreground color without pattern.", - "dflt": 0.3, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", "editType": "style", - "max": 1, - "min": 0, - "valType": "number" - }, - "soliditysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `solidity`.", - "editType": "none", - "valType": "string" + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" } }, - "reversescale": { - "description": "Reverses the color mapping if true. Has an effect only if in `marker.color` is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color.", - "dflt": false, - "editType": "plot", - "valType": "boolean" - }, "role": "object", - "showscale": { - "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color` is set to a numerical array.", - "dflt": false, - "editType": "calc", - "valType": "boolean" + "text": { + "description": "Sets the title of the legend group.", + "dflt": "", + "editType": "style", + "valType": "string" } }, + "legendrank": { + "description": "Sets the legend rank for this trace. 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.", + "dflt": 1000, + "editType": "style", + "valType": "number" + }, + "legendwidth": { + "description": "Sets the width (in px or fraction) of the legend for this trace.", + "editType": "style", + "min": 0, + "valType": "number" + }, "meta": { "arrayOk": true, "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", @@ -42383,26 +41867,6 @@ "editType": "style", "valType": "string" }, - "nbinsx": { - "description": "Specifies the maximum number of desired bins. This value will be used in an algorithm that will decide the optimal bin size such that the histogram best visualizes the distribution of the data. Ignored if `xbins.size` is provided.", - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "integer" - }, - "nbinsy": { - "description": "Specifies the maximum number of desired bins. This value will be used in an algorithm that will decide the optimal bin size such that the histogram best visualizes the distribution of the data. Ignored if `ybins.size` is provided.", - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "integer" - }, - "offsetgroup": { - "description": "Set several traces linked to the same position axis or matching axes to the same offsetgroup where bars of the same position coordinate will line up.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, "opacity": { "description": "Sets the opacity of the trace.", "dflt": 1, @@ -42411,144 +41875,24 @@ "min": 0, "valType": "number" }, - "orientation": { - "description": "Sets the orientation of the bars. With *v* (*h*), the value of the each bar spans along the vertical (horizontal).", - "editType": "calc+clearAxisTypes", - "valType": "enumerated", - "values": [ - "v", - "h" - ] - }, - "outsidetextfont": { - "color": { - "editType": "style", - "valType": "color" - }, - "description": "Sets the font used for `text` lying outside the bar.", + "reversescale": { + "description": "Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color.", + "dflt": false, "editType": "plot", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "plot", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "plot", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "plot", - "valType": "string" - }, - "size": { - "editType": "plot", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "plot", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "selected": { - "editType": "style", - "marker": { - "color": { - "description": "Sets the marker color of selected points.", - "editType": "style", - "valType": "color" - }, - "editType": "style", - "opacity": { - "description": "Sets the marker opacity of selected points.", - "editType": "style", - "max": 1, - "min": 0, - "valType": "number" - }, - "role": "object" - }, - "role": "object", - "textfont": { - "color": { - "description": "Sets the text font color of selected points.", - "editType": "style", - "valType": "color" - }, - "editType": "style", - "role": "object" - } - }, - "selectedpoints": { - "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect.", - "editType": "calc", - "valType": "any" + "valType": "boolean" }, "showlegend": { "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", - "dflt": true, + "dflt": false, "editType": "style", "valType": "boolean" }, + "showscale": { + "description": "Determines whether or not a colorbar is displayed for this trace.", + "dflt": true, + "editType": "calc", + "valType": "boolean" + }, "stream": { "editType": "calc", "maxpoints": { @@ -42569,20 +41913,13 @@ } }, "text": { - "arrayOk": true, - "description": "Sets hover text elements associated with each bar. If a single string, the same string appears over all bars. If an array of string, the items are mapped in order to the this trace's coordinates.", - "dflt": "", + "description": "Sets the text elements associated with each z value.", "editType": "calc", - "valType": "string" - }, - "textangle": { - "description": "Sets the angle of the tick labels with respect to the bar. For example, a `tickangle` of -90 draws the tick labels vertically. With *auto* the texts may automatically be rotated to fit with the maximum size in bars.", - "dflt": "auto", - "editType": "plot", - "valType": "angle" + "valType": "data_array" }, "textfont": { "color": { + "dflt": "auto", "editType": "style", "valType": "color" }, @@ -42617,6 +41954,7 @@ "valType": "string" }, "size": { + "dflt": "auto", "editType": "plot", "min": 1, "valType": "number" @@ -42670,26 +42008,13 @@ "valType": "integer" } }, - "textposition": { - "arrayOk": false, - "description": "Specifies the location of the `text`. *inside* positions `text` inside, next to the bar end (rotated and scaled if needed). *outside* positions `text` outside, next to the bar end (scaled if needed), unless there is another bar stacked on this one, then the text gets pushed inside. *auto* tries to position `text` inside the bar, but if the bar is too small and no bar is stacked on this one the text is moved outside. If *none*, no text appears.", - "dflt": "auto", - "editType": "calc", - "valType": "enumerated", - "values": [ - "inside", - "outside", - "auto", - "none" - ] - }, "textsrc": { "description": "Sets the source reference on Chart Studio Cloud for `text`.", "editType": "none", "valType": "string" }, "texttemplate": { - "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". 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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `label` and `value`.", + "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". 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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `x`, `y`, `z` and `text`.", "dflt": "", "editType": "plot", "valType": "string" @@ -42704,7 +42029,13 @@ }, "role": "object" }, - "type": "histogram", + "transpose": { + "description": "Transposes the z data.", + "dflt": false, + "editType": "calc", + "valType": "boolean" + }, + "type": "heatmap", "uid": { "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", "editType": "plot", @@ -42715,35 +42046,6 @@ "editType": "none", "valType": "any" }, - "unselected": { - "editType": "style", - "marker": { - "color": { - "description": "Sets the marker color of unselected points, applied only when a selection exists.", - "editType": "style", - "valType": "color" - }, - "editType": "style", - "opacity": { - "description": "Sets the marker opacity of unselected points, applied only when a selection exists.", - "editType": "style", - "max": 1, - "min": 0, - "valType": "number" - }, - "role": "object" - }, - "role": "object", - "textfont": { - "color": { - "description": "Sets the text font color of unselected points, applied only when a selection exists.", - "editType": "style", - "valType": "color" - }, - "editType": "style", - "role": "object" - } - }, "visible": { "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", "dflt": true, @@ -42756,35 +42058,28 @@ ] }, "x": { - "description": "Sets the sample data to be binned on the x axis.", + "description": "Sets the x coordinates.", "editType": "calc+clearAxisTypes", + "impliedEdits": { + "xtype": "array" + }, "valType": "data_array" }, + "x0": { + "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step.", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "impliedEdits": { + "xtype": "scaled" + }, + "valType": "any" + }, "xaxis": { "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on.", "dflt": "x", "editType": "calc+clearAxisTypes", "valType": "subplotid" }, - "xbins": { - "editType": "calc", - "end": { - "description": "Sets the end value for the x axis bins. The last bin may not end exactly at this value, we increment the bin edge by `size` from `start` until we reach or exceed `end`. Defaults to the maximum data value. Like `start`, for dates use a date string, and for category data `end` is based on the category serial numbers.", - "editType": "calc", - "valType": "any" - }, - "role": "object", - "size": { - "description": "Sets the size of each x axis bin. Default behavior: If `nbinsx` is 0 or omitted, we choose a nice round bin size such that the number of bins is about the same as the typical number of samples in each bin. If `nbinsx` is provided, we choose a nice round bin size giving no more than that many bins. For date data, use milliseconds or *M* for months, as in `axis.dtick`. For category data, the number of categories to bin together (always defaults to 1). If multiple non-overlaying histograms share a subplot, the first explicit `size` is used and all others discarded. If no `size` is provided,the sample data from all traces is combined to determine `size` as described above.", - "editType": "calc", - "valType": "any" - }, - "start": { - "description": "Sets the starting value for the x axis bins. Defaults to the minimum data value, shifted down if necessary to make nice round values and to remove ambiguous bin edges. For example, if most of the data is integers we shift the bin edges 0.5 down, so a `size` of 5 would have a default `start` of -0.5, so it is clear that 0-4 are in the first bin, 5-9 in the second, but continuous data gets a start of 0 and bins [0,5), [5,10) etc. Dates behave similarly, and `start` should be a date string. For category data, `start` is based on the category serial numbers, and defaults to -0.5. If multiple non-overlaying histograms share a subplot, the first explicit `start` is used exactly and all others are shifted down (if necessary) to differ from that one by an integer number of bins.", - "editType": "calc", - "valType": "any" - } - }, "xcalendar": { "description": "Sets the calendar system to use with `x` date data.", "dflt": "gregorian", @@ -42809,47 +42104,87 @@ "ummalqura" ] }, + "xgap": { + "description": "Sets the horizontal gap (in pixels) between bricks.", + "dflt": 0, + "editType": "plot", + "min": 0, + "valType": "number" + }, "xhoverformat": { "description": "Sets the hover text formatting rulefor `x` 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*By default the values are formatted using `xaxis.hoverformat`.", "dflt": "", "editType": "none", "valType": "string" }, + "xperiod": { + "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer.", + "dflt": 0, + "editType": "calc", + "impliedEdits": { + "xtype": "scaled" + }, + "valType": "any" + }, + "xperiod0": { + "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01.", + "editType": "calc", + "impliedEdits": { + "xtype": "scaled" + }, + "valType": "any" + }, + "xperiodalignment": { + "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis.", + "dflt": "middle", + "editType": "calc", + "impliedEdits": { + "xtype": "scaled" + }, + "valType": "enumerated", + "values": [ + "start", + "middle", + "end" + ] + }, "xsrc": { "description": "Sets the source reference on Chart Studio Cloud for `x`.", "editType": "none", "valType": "string" }, + "xtype": { + "description": "If *array*, the heatmap's x coordinates are given by *x* (the default behavior when `x` is provided). If *scaled*, the heatmap's x coordinates are given by *x0* and *dx* (the default behavior when `x` is not provided).", + "editType": "calc+clearAxisTypes", + "valType": "enumerated", + "values": [ + "array", + "scaled" + ] + }, "y": { - "description": "Sets the sample data to be binned on the y axis.", + "description": "Sets the y coordinates.", "editType": "calc+clearAxisTypes", + "impliedEdits": { + "ytype": "array" + }, "valType": "data_array" }, + "y0": { + "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step.", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "impliedEdits": { + "ytype": "scaled" + }, + "valType": "any" + }, "yaxis": { "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on.", "dflt": "y", "editType": "calc+clearAxisTypes", "valType": "subplotid" }, - "ybins": { - "editType": "calc", - "end": { - "description": "Sets the end value for the y axis bins. The last bin may not end exactly at this value, we increment the bin edge by `size` from `start` until we reach or exceed `end`. Defaults to the maximum data value. Like `start`, for dates use a date string, and for category data `end` is based on the category serial numbers.", - "editType": "calc", - "valType": "any" - }, - "role": "object", - "size": { - "description": "Sets the size of each y axis bin. Default behavior: If `nbinsy` is 0 or omitted, we choose a nice round bin size such that the number of bins is about the same as the typical number of samples in each bin. If `nbinsy` is provided, we choose a nice round bin size giving no more than that many bins. For date data, use milliseconds or *M* for months, as in `axis.dtick`. For category data, the number of categories to bin together (always defaults to 1). If multiple non-overlaying histograms share a subplot, the first explicit `size` is used and all others discarded. If no `size` is provided,the sample data from all traces is combined to determine `size` as described above.", - "editType": "calc", - "valType": "any" - }, - "start": { - "description": "Sets the starting value for the y axis bins. Defaults to the minimum data value, shifted down if necessary to make nice round values and to remove ambiguous bin edges. For example, if most of the data is integers we shift the bin edges 0.5 down, so a `size` of 5 would have a default `start` of -0.5, so it is clear that 0-4 are in the first bin, 5-9 in the second, but continuous data gets a start of 0 and bins [0,5), [5,10) etc. Dates behave similarly, and `start` should be a date string. For category data, `start` is based on the category serial numbers, and defaults to -0.5. If multiple non-overlaying histograms share a subplot, the first explicit `start` is used exactly and all others are shifted down (if necessary) to differ from that one by an integer number of bins.", - "editType": "calc", - "valType": "any" - } - }, "ycalendar": { "description": "Sets the calendar system to use with `y` date data.", "dflt": "gregorian", @@ -42874,99 +42209,144 @@ "ummalqura" ] }, + "ygap": { + "description": "Sets the vertical gap (in pixels) between bricks.", + "dflt": 0, + "editType": "plot", + "min": 0, + "valType": "number" + }, "yhoverformat": { "description": "Sets the hover text formatting rulefor `y` 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*By default the values are formatted using `yaxis.hoverformat`.", "dflt": "", "editType": "none", "valType": "string" }, + "yperiod": { + "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the y axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer.", + "dflt": 0, + "editType": "calc", + "impliedEdits": { + "ytype": "scaled" + }, + "valType": "any" + }, + "yperiod0": { + "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the y0 axis. When `y0period` is round number of weeks, the `y0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01.", + "editType": "calc", + "impliedEdits": { + "ytype": "scaled" + }, + "valType": "any" + }, + "yperiodalignment": { + "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the y axis.", + "dflt": "middle", + "editType": "calc", + "impliedEdits": { + "ytype": "scaled" + }, + "valType": "enumerated", + "values": [ + "start", + "middle", + "end" + ] + }, "ysrc": { "description": "Sets the source reference on Chart Studio Cloud for `y`.", "editType": "none", "valType": "string" }, - "zorder": { - "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", - "dflt": 0, - "editType": "plot", - "valType": "integer" - } - }, - "categories": [ - "bar-like", - "cartesian", - "svg", - "bar", - "histogram", - "oriented", - "errorBarsOK", - "showLegend" - ], - "layoutAttributes": { - "barcornerradius": { - "description": "Sets the rounding of bar corners. May be an integer number of pixels, or a percentage of bar width (as a string ending in %).", + "ytype": { + "description": "If *array*, the heatmap's y coordinates are given by *y* (the default behavior when `y` is provided) If *scaled*, the heatmap's y coordinates are given by *y0* and *dy* (the default behavior when `y` is not provided)", + "editType": "calc+clearAxisTypes", + "valType": "enumerated", + "values": [ + "array", + "scaled" + ] + }, + "z": { + "description": "Sets the z data.", "editType": "calc", - "valType": "any" + "valType": "data_array" }, - "bargap": { - "description": "Sets the gap (in plot fraction) between bars of adjacent location coordinates.", + "zauto": { + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `z`) or the bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user.", + "dflt": true, "editType": "calc", - "max": 1, - "min": 0, + "impliedEdits": {}, + "valType": "boolean" + }, + "zhoverformat": { + "description": "Sets the hover text formatting rulefor `z` 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.By default the values are formatted using generic number format.", + "dflt": "", + "editType": "none", + "valType": "string" + }, + "zmax": { + "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well.", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "zauto": false + }, "valType": "number" }, - "bargroupgap": { - "description": "Sets the gap (in plot fraction) between bars of the same location coordinate.", - "dflt": 0, + "zmid": { + "description": "Sets the mid-point of the color domain by scaling `zmin` and/or `zmax` to be equidistant to this point. Value should have the same units as in `z`. Has no effect when `zauto` is `false`.", + "dflt": null, "editType": "calc", - "max": 1, - "min": 0, + "impliedEdits": {}, "valType": "number" }, - "barmode": { - "description": "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 *relative*, the bars are stacked on top of one another, with negative values below the axis, positive values above With *group*, the bars are plotted next to one another centered around the shared location. With *overlay*, the bars are plotted over one another, you might need to reduce *opacity* to see multiple bars.", - "dflt": "group", - "editType": "calc", - "valType": "enumerated", - "values": [ - "stack", - "group", - "overlay", - "relative" - ] + "zmin": { + "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well.", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "zauto": false + }, + "valType": "number" }, - "barnorm": { - "description": "Sets the normalization for bar traces on the graph. With *fraction*, the value of each bar is divided by the sum of all values at that location coordinate. *percent* is the same but multiplied by 100 to show percentages.", - "dflt": "", + "zorder": { + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", + "dflt": 0, + "editType": "plot", + "valType": "integer" + }, + "zsmooth": { + "description": "Picks a smoothing algorithm use to smooth `z` data.", + "dflt": false, "editType": "calc", "valType": "enumerated", "values": [ - "", - "fraction", - "percent" + "fast", + "best", + false ] + }, + "zsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `z`.", + "editType": "none", + "valType": "string" } }, + "categories": [ + "cartesian", + "svg", + "2dMap", + "showLegend" + ], "meta": { - "description": "The sample data from which statistics are computed is set in `x` for vertically spanning histograms and in `y` for horizontally spanning histograms. Binning options are set `xbins` and `ybins` respectively if no aggregation data is provided." + "description": "The data that describes the heatmap value-to-color mapping is set in `z`. Data in `z` can either be a {2D array} of values (ragged or not) or a 1D array of values. In the case where `z` is a {2D array}, say that `z` has N rows and M columns. Then, by default, the resulting heatmap will have N partitions along the y axis and M partitions along the x axis. In other words, the i-th row/ j-th column cell in `z` is mapped to the i-th partition of the y axis (starting from the bottom of the plot) and the j-th partition of the x-axis (starting from the left of the plot). This behavior can be flipped by using `transpose`. Moreover, `x` (`y`) can be provided with M or M+1 (N or N+1) elements. If M (N), then the coordinates correspond to the center of the heatmap cells and the cells have equal width. If M+1 (N+1), then the coordinates correspond to the edges of the heatmap cells. In the case where `z` is a 1D {array}, the x and y coordinates must be provided in `x` and `y` respectively to form data triplets." }, - "type": "histogram" + "type": "heatmap" }, - "histogram2d": { + "heatmapgl": { "animatable": false, "attributes": { - "autobinx": { - "description": "Obsolete: since v1.42 each bin attribute is auto-determined separately and `autobinx` is not needed. However, we accept `autobinx: true` or `false` and will update `xbins` accordingly before deleting `autobinx` from the trace.", - "dflt": null, - "editType": "calc", - "valType": "boolean" - }, - "autobiny": { - "description": "Obsolete: since v1.42 each bin attribute is auto-determined separately and `autobiny` is not needed. However, we accept `autobiny: true` or `false` and will update `ybins` accordingly before deleting `autobiny` from the trace.", - "dflt": null, - "editType": "calc", - "valType": "boolean" - }, "autocolorscale": { "description": "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.", "dflt": false, @@ -42974,12 +42354,6 @@ "impliedEdits": {}, "valType": "boolean" }, - "bingroup": { - "description": "Set the `xbingroup` and `ybingroup` default prefix For example, setting a `bingroup` of *1* on two histogram2d traces will make them their x-bins and y-bins match separately.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, "coloraxis": { "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", "dflt": null, @@ -42991,19 +42365,19 @@ "_deprecated": { "title": { "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars", + "editType": "calc", "valType": "string" }, "titlefont": { "color": { - "editType": "colorbars", + "editType": "calc", "valType": "color" }, "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars", + "editType": "calc", "family": { "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars", + "editType": "calc", "noBlank": true, "strict": true, "valType": "string" @@ -43011,7 +42385,7 @@ "lineposition": { "description": "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.", "dflt": "none", - "editType": "colorbars", + "editType": "calc", "extras": [ "none" ], @@ -43025,18 +42399,18 @@ "shadow": { "description": "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.", "dflt": "none", - "editType": "colorbars", + "editType": "calc", "valType": "string" }, "size": { - "editType": "colorbars", + "editType": "calc", "min": 1, "valType": "number" }, "style": { "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "normal", @@ -43046,7 +42420,7 @@ "textcase": { "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "normal", @@ -43058,7 +42432,7 @@ "variant": { "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "normal", @@ -43072,7 +42446,7 @@ "weight": { "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "colorbars", + "editType": "calc", "extras": [ "normal", "bold" @@ -43085,7 +42459,7 @@ "titleside": { "description": "Deprecated in favor of color bar's `title.side`.", "dflt": "top", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "right", @@ -43097,35 +42471,35 @@ "bgcolor": { "description": "Sets the color of padded area.", "dflt": "rgba(0,0,0,0)", - "editType": "colorbars", + "editType": "calc", "valType": "color" }, "bordercolor": { "description": "Sets the axis line color.", "dflt": "#444", - "editType": "colorbars", + "editType": "calc", "valType": "color" }, "borderwidth": { "description": "Sets the width (in px) or the border enclosing this color bar.", "dflt": 0, - "editType": "colorbars", + "editType": "calc", "min": 0, "valType": "number" }, "dtick": { "description": "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*, 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* 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*", - "editType": "colorbars", + "editType": "calc", "impliedEdits": { "tickmode": "linear" }, "valType": "any" }, - "editType": "colorbars", + "editType": "calc", "exponentformat": { "description": "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.", "dflt": "B", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "none", @@ -43139,20 +42513,20 @@ "labelalias": { "description": "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.", "dflt": false, - "editType": "colorbars", + "editType": "calc", "valType": "any" }, "len": { "description": "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.", "dflt": 1, - "editType": "colorbars", + "editType": "calc", "min": 0, "valType": "number" }, "lenmode": { "description": "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.", "dflt": "fraction", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "fraction", @@ -43162,21 +42536,21 @@ "minexponent": { "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", "dflt": 3, - "editType": "colorbars", + "editType": "calc", "min": 0, "valType": "number" }, "nticks": { "description": "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*.", "dflt": 0, - "editType": "colorbars", + "editType": "calc", "min": 0, "valType": "integer" }, "orientation": { "description": "Sets the orientation of the colorbar.", "dflt": "v", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "h", @@ -43186,13 +42560,13 @@ "outlinecolor": { "description": "Sets the axis line color.", "dflt": "#444", - "editType": "colorbars", + "editType": "calc", "valType": "color" }, "outlinewidth": { "description": "Sets the width (in px) of the axis line.", "dflt": 1, - "editType": "colorbars", + "editType": "calc", "min": 0, "valType": "number" }, @@ -43200,13 +42574,13 @@ "separatethousands": { "description": "If \"true\", even 4-digit integers are separated", "dflt": false, - "editType": "colorbars", + "editType": "calc", "valType": "boolean" }, "showexponent": { "description": "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.", "dflt": "all", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "all", @@ -43218,13 +42592,13 @@ "showticklabels": { "description": "Determines whether or not the tick labels are drawn.", "dflt": true, - "editType": "colorbars", + "editType": "calc", "valType": "boolean" }, "showtickprefix": { "description": "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.", "dflt": "all", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "all", @@ -43236,7 +42610,7 @@ "showticksuffix": { "description": "Same as `showtickprefix` but for tick suffixes.", "dflt": "all", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "all", @@ -43248,14 +42622,14 @@ "thickness": { "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", "dflt": 30, - "editType": "colorbars", + "editType": "calc", "min": 0, "valType": "number" }, "thicknessmode": { "description": "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.", "dflt": "pixels", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "fraction", @@ -43264,7 +42638,7 @@ }, "tick0": { "description": "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* (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.", - "editType": "colorbars", + "editType": "calc", "impliedEdits": { "tickmode": "linear" }, @@ -43273,25 +42647,25 @@ "tickangle": { "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", "dflt": "auto", - "editType": "colorbars", + "editType": "calc", "valType": "angle" }, "tickcolor": { "description": "Sets the tick color.", "dflt": "#444", - "editType": "colorbars", + "editType": "calc", "valType": "color" }, "tickfont": { "color": { - "editType": "colorbars", + "editType": "calc", "valType": "color" }, "description": "Sets the color bar's tick label font", - "editType": "colorbars", + "editType": "calc", "family": { "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars", + "editType": "calc", "noBlank": true, "strict": true, "valType": "string" @@ -43299,7 +42673,7 @@ "lineposition": { "description": "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.", "dflt": "none", - "editType": "colorbars", + "editType": "calc", "extras": [ "none" ], @@ -43314,18 +42688,18 @@ "shadow": { "description": "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.", "dflt": "none", - "editType": "colorbars", + "editType": "calc", "valType": "string" }, "size": { - "editType": "colorbars", + "editType": "calc", "min": 1, "valType": "number" }, "style": { "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "normal", @@ -43335,7 +42709,7 @@ "textcase": { "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "normal", @@ -43347,7 +42721,7 @@ "variant": { "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "normal", @@ -43361,7 +42735,7 @@ "weight": { "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "colorbars", + "editType": "calc", "extras": [ "normal", "bold" @@ -43374,7 +42748,7 @@ "tickformat": { "description": "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*", "dflt": "", - "editType": "colorbars", + "editType": "calc", "valType": "string" }, "tickformatstops": { @@ -43382,41 +42756,41 @@ "tickformatstop": { "dtickrange": { "description": "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*", - "editType": "colorbars", + "editType": "calc", "items": [ { - "editType": "colorbars", + "editType": "calc", "valType": "any" }, { - "editType": "colorbars", + "editType": "calc", "valType": "any" } ], "valType": "info_array" }, - "editType": "colorbars", + "editType": "calc", "enabled": { "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", "dflt": true, - "editType": "colorbars", + "editType": "calc", "valType": "boolean" }, "name": { "description": "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.", - "editType": "colorbars", + "editType": "calc", "valType": "string" }, "role": "object", "templateitemname": { "description": "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`.", - "editType": "colorbars", + "editType": "calc", "valType": "string" }, "value": { "description": "string - dtickformat for described zoom level, the same as *tickformat*", "dflt": "", - "editType": "colorbars", + "editType": "calc", "valType": "string" } } @@ -43425,7 +42799,7 @@ }, "ticklabeloverflow": { "description": "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*.", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "allow", @@ -43436,7 +42810,7 @@ "ticklabelposition": { "description": "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*.", "dflt": "outside", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "outside", @@ -43454,20 +42828,20 @@ "ticklabelstep": { "description": "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*.", "dflt": 1, - "editType": "colorbars", + "editType": "calc", "min": 1, "valType": "integer" }, "ticklen": { "description": "Sets the tick length (in px).", "dflt": 5, - "editType": "colorbars", + "editType": "calc", "min": 0, "valType": "number" }, "tickmode": { "description": "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).", - "editType": "colorbars", + "editType": "calc", "impliedEdits": {}, "valType": "enumerated", "values": [ @@ -43479,13 +42853,13 @@ "tickprefix": { "description": "Sets a tick label prefix.", "dflt": "", - "editType": "colorbars", + "editType": "calc", "valType": "string" }, "ticks": { "description": "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.", "dflt": "", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "outside", @@ -43496,12 +42870,12 @@ "ticksuffix": { "description": "Sets a tick label suffix.", "dflt": "", - "editType": "colorbars", + "editType": "calc", "valType": "string" }, "ticktext": { "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "editType": "colorbars", + "editType": "calc", "valType": "data_array" }, "ticktextsrc": { @@ -43511,7 +42885,7 @@ }, "tickvals": { "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "editType": "colorbars", + "editType": "calc", "valType": "data_array" }, "tickvalssrc": { @@ -43522,22 +42896,22 @@ "tickwidth": { "description": "Sets the tick width (in px).", "dflt": 1, - "editType": "colorbars", + "editType": "calc", "min": 0, "valType": "number" }, "title": { - "editType": "colorbars", + "editType": "calc", "font": { "color": { - "editType": "colorbars", + "editType": "calc", "valType": "color" }, "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", + "editType": "calc", "family": { "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars", + "editType": "calc", "noBlank": true, "strict": true, "valType": "string" @@ -43545,7 +42919,7 @@ "lineposition": { "description": "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.", "dflt": "none", - "editType": "colorbars", + "editType": "calc", "extras": [ "none" ], @@ -43560,18 +42934,18 @@ "shadow": { "description": "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.", "dflt": "none", - "editType": "colorbars", + "editType": "calc", "valType": "string" }, "size": { - "editType": "colorbars", + "editType": "calc", "min": 1, "valType": "number" }, "style": { "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "normal", @@ -43581,7 +42955,7 @@ "textcase": { "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "normal", @@ -43593,7 +42967,7 @@ "variant": { "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "normal", @@ -43607,7 +42981,7 @@ "weight": { "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "colorbars", + "editType": "calc", "extras": [ "normal", "bold" @@ -43620,7 +42994,7 @@ "role": "object", "side": { "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "right", @@ -43630,18 +43004,18 @@ }, "text": { "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars", + "editType": "calc", "valType": "string" } }, "x": { "description": "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*.", - "editType": "colorbars", + "editType": "calc", "valType": "number" }, "xanchor": { "description": "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*.", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "left", @@ -43652,14 +43026,14 @@ "xpad": { "description": "Sets the amount of padding (in px) along the x direction.", "dflt": 10, - "editType": "colorbars", + "editType": "calc", "min": 0, "valType": "number" }, "xref": { "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", "dflt": "paper", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "container", @@ -43668,12 +43042,12 @@ }, "y": { "description": "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*.", - "editType": "colorbars", + "editType": "calc", "valType": "number" }, "yanchor": { "description": "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*.", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "top", @@ -43684,14 +43058,14 @@ "ypad": { "description": "Sets the amount of padding (in px) along the y direction.", "dflt": 10, - "editType": "colorbars", + "editType": "calc", "min": 0, "valType": "number" }, "yref": { "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", "dflt": "paper", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "container", @@ -43718,31 +43092,23 @@ "editType": "none", "valType": "string" }, - "histfunc": { - "description": "Specifies the binning function used for this histogram trace. If *count*, the histogram values are computed by counting the number of values lying inside each bin. If *sum*, *avg*, *min*, *max*, the histogram values are computed using the sum, the average, the minimum or the maximum of the values lying inside each bin respectively.", - "dflt": "count", + "dx": { + "description": "Sets the x coordinate step. See `x0` for more info.", + "dflt": 1, "editType": "calc", - "valType": "enumerated", - "values": [ - "count", - "sum", - "avg", - "min", - "max" - ] + "impliedEdits": { + "xtype": "scaled" + }, + "valType": "number" }, - "histnorm": { - "description": "Specifies the type of normalization used for this histogram trace. If **, the span of each bar corresponds to the number of occurrences (i.e. the number of data points lying inside the bins). If *percent* / *probability*, the span of each bar corresponds to the percentage / fraction of occurrences with respect to the total number of sample points (here, the sum of all bin HEIGHTS equals 100% / 1). If *density*, the span of each bar corresponds to the number of occurrences in a bin divided by the size of the bin interval (here, the sum of all bin AREAS equals the total number of sample points). If *probability density*, the area of each bar corresponds to the probability that an event will fall into the corresponding bin (here, the sum of all bin AREAS equals 1).", - "dflt": "", + "dy": { + "description": "Sets the y coordinate step. See `y0` for more info.", + "dflt": 1, "editType": "calc", - "valType": "enumerated", - "values": [ - "", - "percent", - "probability", - "density", - "probability density" - ] + "impliedEdits": { + "ytype": "scaled" + }, + "valType": "number" }, "hoverinfo": { "arrayOk": true, @@ -43967,18 +43333,6 @@ }, "role": "object" }, - "hovertemplate": { - "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "dflt": "", - "editType": "none", - "valType": "string" - }, - "hovertemplatesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", - "editType": "none", - "valType": "string" - }, "ids": { "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", "editType": "calc", @@ -43995,12 +43349,6 @@ "editType": "style", "valType": "subplotid" }, - "legendgroup": { - "description": "Sets the legend group for this trace. Traces and shapes part of the same legend group hide/show at the same time when toggling legend items.", - "dflt": "", - "editType": "style", - "valType": "string" - }, "legendgrouptitle": { "editType": "style", "font": { @@ -44112,20 +43460,6 @@ "min": 0, "valType": "number" }, - "marker": { - "color": { - "description": "Sets the aggregation data.", - "editType": "calc", - "valType": "data_array" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "editType": "calc", - "role": "object" - }, "meta": { "arrayOk": true, "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", @@ -44142,20 +43476,6 @@ "editType": "style", "valType": "string" }, - "nbinsx": { - "description": "Specifies the maximum number of desired bins. This value will be used in an algorithm that will decide the optimal bin size such that the histogram best visualizes the distribution of the data. Ignored if `xbins.size` is provided.", - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "integer" - }, - "nbinsy": { - "description": "Specifies the maximum number of desired bins. This value will be used in an algorithm that will decide the optimal bin size such that the histogram best visualizes the distribution of the data. Ignored if `ybins.size` is provided.", - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "integer" - }, "opacity": { "description": "Sets the opacity of the trace.", "dflt": 1, @@ -44167,13 +43487,7 @@ "reversescale": { "description": "Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color.", "dflt": false, - "editType": "plot", - "valType": "boolean" - }, - "showlegend": { - "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", - "dflt": false, - "editType": "style", + "editType": "calc", "valType": "boolean" }, "showscale": { @@ -44201,101 +43515,14 @@ "valType": "string" } }, - "textfont": { - "color": { - "dflt": "auto", - "editType": "style", - "valType": "color" - }, - "description": "Sets the text font.", - "editType": "plot", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "plot", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "plot", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "plot", - "valType": "string" - }, - "size": { - "dflt": "auto", - "editType": "plot", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "plot", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } + "text": { + "description": "Sets the text elements associated with each z value.", + "editType": "calc", + "valType": "data_array" }, - "texttemplate": { - "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". 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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `z`", - "dflt": "", - "editType": "plot", + "textsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `text`.", + "editType": "none", "valType": "string" }, "transforms": { @@ -44308,7 +43535,13 @@ }, "role": "object" }, - "type": "histogram2d", + "transpose": { + "description": "Transposes the z data.", + "dflt": false, + "editType": "calc", + "valType": "boolean" + }, + "type": "heatmapgl", "uid": { "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", "editType": "plot", @@ -44331,163 +43564,81 @@ ] }, "x": { - "description": "Sets the sample data to be binned on the x axis.", - "editType": "calc+clearAxisTypes", + "description": "Sets the x coordinates.", + "editType": "calc", + "impliedEdits": { + "xtype": "array" + }, "valType": "data_array" }, + "x0": { + "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step.", + "dflt": 0, + "editType": "calc", + "impliedEdits": { + "xtype": "scaled" + }, + "valType": "any" + }, "xaxis": { "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on.", "dflt": "x", "editType": "calc+clearAxisTypes", "valType": "subplotid" }, - "xbingroup": { - "description": "Set a group of histogram traces which will have compatible x-bin settings. Using `xbingroup`, histogram2d and histogram2dcontour traces (on axes of the same axis type) can have compatible x-bin settings. Note that the same `xbingroup` value can be used to set (1D) histogram `bingroup`", - "dflt": "", - "editType": "calc", + "xsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `x`.", + "editType": "none", "valType": "string" }, - "xbins": { - "editType": "calc", - "end": { - "description": "Sets the end value for the x axis bins. The last bin may not end exactly at this value, we increment the bin edge by `size` from `start` until we reach or exceed `end`. Defaults to the maximum data value. Like `start`, for dates use a date string, and for category data `end` is based on the category serial numbers.", - "editType": "calc", - "valType": "any" - }, - "role": "object", - "size": { - "description": "Sets the size of each x axis bin. Default behavior: If `nbinsx` is 0 or omitted, we choose a nice round bin size such that the number of bins is about the same as the typical number of samples in each bin. If `nbinsx` is provided, we choose a nice round bin size giving no more than that many bins. For date data, use milliseconds or *M* for months, as in `axis.dtick`. For category data, the number of categories to bin together (always defaults to 1). ", - "editType": "calc", - "valType": "any" - }, - "start": { - "description": "Sets the starting value for the x axis bins. Defaults to the minimum data value, shifted down if necessary to make nice round values and to remove ambiguous bin edges. For example, if most of the data is integers we shift the bin edges 0.5 down, so a `size` of 5 would have a default `start` of -0.5, so it is clear that 0-4 are in the first bin, 5-9 in the second, but continuous data gets a start of 0 and bins [0,5), [5,10) etc. Dates behave similarly, and `start` should be a date string. For category data, `start` is based on the category serial numbers, and defaults to -0.5. ", - "editType": "calc", - "valType": "any" - } - }, - "xcalendar": { - "description": "Sets the calendar system to use with `x` date data.", - "dflt": "gregorian", + "xtype": { + "description": "If *array*, the heatmap's x coordinates are given by *x* (the default behavior when `x` is provided). If *scaled*, the heatmap's x coordinates are given by *x0* and *dx* (the default behavior when `x` is not provided).", "editType": "calc", "valType": "enumerated", "values": [ - "chinese", - "coptic", - "discworld", - "ethiopian", - "gregorian", - "hebrew", - "islamic", - "jalali", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "taiwan", - "thai", - "ummalqura" + "array", + "scaled" ] }, - "xgap": { - "description": "Sets the horizontal gap (in pixels) between bricks.", - "dflt": 0, - "editType": "plot", - "min": 0, - "valType": "number" - }, - "xhoverformat": { - "description": "Sets the hover text formatting rulefor `x` 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*By default the values are formatted using `xaxis.hoverformat`.", - "dflt": "", - "editType": "none", - "valType": "string" - }, - "xsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `x`.", - "editType": "none", - "valType": "string" - }, "y": { - "description": "Sets the sample data to be binned on the y axis.", - "editType": "calc+clearAxisTypes", + "description": "Sets the y coordinates.", + "editType": "calc", + "impliedEdits": { + "ytype": "array" + }, "valType": "data_array" }, + "y0": { + "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step.", + "dflt": 0, + "editType": "calc", + "impliedEdits": { + "ytype": "scaled" + }, + "valType": "any" + }, "yaxis": { "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on.", "dflt": "y", "editType": "calc+clearAxisTypes", "valType": "subplotid" }, - "ybingroup": { - "description": "Set a group of histogram traces which will have compatible y-bin settings. Using `ybingroup`, histogram2d and histogram2dcontour traces (on axes of the same axis type) can have compatible y-bin settings. Note that the same `ybingroup` value can be used to set (1D) histogram `bingroup`", - "dflt": "", - "editType": "calc", + "ysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `y`.", + "editType": "none", "valType": "string" }, - "ybins": { - "editType": "calc", - "end": { - "description": "Sets the end value for the y axis bins. The last bin may not end exactly at this value, we increment the bin edge by `size` from `start` until we reach or exceed `end`. Defaults to the maximum data value. Like `start`, for dates use a date string, and for category data `end` is based on the category serial numbers.", - "editType": "calc", - "valType": "any" - }, - "role": "object", - "size": { - "description": "Sets the size of each y axis bin. Default behavior: If `nbinsy` is 0 or omitted, we choose a nice round bin size such that the number of bins is about the same as the typical number of samples in each bin. If `nbinsy` is provided, we choose a nice round bin size giving no more than that many bins. For date data, use milliseconds or *M* for months, as in `axis.dtick`. For category data, the number of categories to bin together (always defaults to 1). ", - "editType": "calc", - "valType": "any" - }, - "start": { - "description": "Sets the starting value for the y axis bins. Defaults to the minimum data value, shifted down if necessary to make nice round values and to remove ambiguous bin edges. For example, if most of the data is integers we shift the bin edges 0.5 down, so a `size` of 5 would have a default `start` of -0.5, so it is clear that 0-4 are in the first bin, 5-9 in the second, but continuous data gets a start of 0 and bins [0,5), [5,10) etc. Dates behave similarly, and `start` should be a date string. For category data, `start` is based on the category serial numbers, and defaults to -0.5. ", - "editType": "calc", - "valType": "any" - } - }, - "ycalendar": { - "description": "Sets the calendar system to use with `y` date data.", - "dflt": "gregorian", + "ytype": { + "description": "If *array*, the heatmap's y coordinates are given by *y* (the default behavior when `y` is provided) If *scaled*, the heatmap's y coordinates are given by *y0* and *dy* (the default behavior when `y` is not provided)", "editType": "calc", "valType": "enumerated", "values": [ - "chinese", - "coptic", - "discworld", - "ethiopian", - "gregorian", - "hebrew", - "islamic", - "jalali", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "taiwan", - "thai", - "ummalqura" + "array", + "scaled" ] }, - "ygap": { - "description": "Sets the vertical gap (in pixels) between bricks.", - "dflt": 0, - "editType": "plot", - "min": 0, - "valType": "number" - }, - "yhoverformat": { - "description": "Sets the hover text formatting rulefor `y` 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*By default the values are formatted using `yaxis.hoverformat`.", - "dflt": "", - "editType": "none", - "valType": "string" - }, - "ysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `y`.", - "editType": "none", - "valType": "string" - }, "z": { - "description": "Sets the aggregation data.", + "description": "Sets the z data.", "editType": "calc", "valType": "data_array" }, @@ -44498,16 +43649,10 @@ "impliedEdits": {}, "valType": "boolean" }, - "zhoverformat": { - "description": "Sets the hover text formatting rulefor `z` 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.By default the values are formatted using generic number format.", - "dflt": "", - "editType": "none", - "valType": "string" - }, "zmax": { "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well.", "dflt": null, - "editType": "plot", + "editType": "calc", "impliedEdits": { "zauto": false }, @@ -44523,7 +43668,7 @@ "zmin": { "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well.", "dflt": null, - "editType": "plot", + "editType": "calc", "impliedEdits": { "zauto": false }, @@ -44531,12 +43676,11 @@ }, "zsmooth": { "description": "Picks a smoothing algorithm use to smooth `z` data.", - "dflt": false, + "dflt": "fast", "editType": "calc", "valType": "enumerated", "values": [ "fast", - "best", false ] }, @@ -44547,21 +43691,35 @@ } }, "categories": [ - "cartesian", - "svg", - "2dMap", - "histogram", - "showLegend" + "gl", + "gl2d", + "2dMap" ], "meta": { - "description": "The sample data from which statistics are computed is set in `x` and `y` (where `x` and `y` represent marginal distributions, binning is set in `xbins` and `ybins` in this case) or `z` (where `z` represent the 2D distribution and binning set, binning is set by `x` and `y` in this case). The resulting distribution is visualized as a heatmap.", - "hrName": "histogram_2d" + "description": "*heatmapgl* trace is deprecated! Please consider switching to the *heatmap* or *image* trace types. Alternatively you could contribute/sponsor rewriting this trace type based on cartesian features and using regl framework. WebGL version of the heatmap trace type." }, - "type": "histogram2d" + "type": "heatmapgl" }, - "histogram2dcontour": { + "histogram": { "animatable": false, "attributes": { + "_deprecated": { + "bardir": { + "description": "Renamed to `orientation`.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "v", + "h" + ] + } + }, + "alignmentgroup": { + "description": "Set several traces linked to the same position axis or matching axes to the same alignmentgroup. This controls whether bars compute their positional range dependently or independently.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, "autobinx": { "description": "Obsolete: since v1.42 each bin attribute is auto-determined separately and `autobinx` is not needed. However, we accept `autobinx: true` or `false` and will update `xbins` accordingly before deleting `autobinx` from the trace.", "dflt": null, @@ -44574,346 +43732,389 @@ "editType": "calc", "valType": "boolean" }, - "autocolorscale": { - "description": "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.", - "dflt": true, + "bingroup": { + "description": "Set a group of histogram traces which will have compatible bin settings. Note that traces on the same subplot and with the same *orientation* under `barmode` *stack*, *relative* and *group* are forced into the same bingroup, Using `bingroup`, traces under `barmode` *overlay* and on different axes (of the same axis type) can have compatible bin settings. Note that histogram and histogram2d* trace can share the same `bingroup`", + "dflt": "", "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" + "valType": "string" }, - "autocontour": { - "description": "Determines whether or not the contour level attributes are picked by an algorithm. If *true*, the number of contour levels can be set in `ncontours`. If *false*, set the contour level attributes in `contours`.", + "cliponaxis": { + "description": "Determines whether the text nodes are clipped about the subplot axes. To show the text nodes above axis lines and tick labels, make sure to set `xaxis.layer` and `yaxis.layer` to *below traces*.", "dflt": true, - "editType": "calc", - "impliedEdits": {}, + "editType": "plot", "valType": "boolean" }, - "bingroup": { - "description": "Set the `xbingroup` and `ybingroup` default prefix For example, setting a `bingroup` of *1* on two histogram2d traces will make them their x-bins and y-bins match separately.", - "dflt": "", + "constraintext": { + "description": "Constrain the size of text inside or outside a bar to be no larger than the bar itself.", + "dflt": "both", "editType": "calc", - "valType": "string" + "valType": "enumerated", + "values": [ + "inside", + "outside", + "both", + "none" + ] }, - "coloraxis": { - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", - "dflt": null, + "cumulative": { + "currentbin": { + "description": "Only applies if cumulative is enabled. Sets whether the current bin is included, excluded, or has half of its value included in the current cumulative value. *include* is the default for compatibility with various other tools, however it introduces a half-bin bias to the results. *exclude* makes the opposite half-bin bias, and *half* removes it.", + "dflt": "include", + "editType": "calc", + "valType": "enumerated", + "values": [ + "include", + "exclude", + "half" + ] + }, + "direction": { + "description": "Only applies if cumulative is enabled. If *increasing* (default) we sum all prior bins, so the result increases from left to right. If *decreasing* we sum later bins so the result decreases from left to right.", + "dflt": "increasing", + "editType": "calc", + "valType": "enumerated", + "values": [ + "increasing", + "decreasing" + ] + }, "editType": "calc", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "valType": "subplotid" + "enabled": { + "description": "If true, display the cumulative distribution by summing the binned values. Use the `direction` and `centralbin` attributes to tune the accumulation method. Note: in this mode, the *density* `histnorm` settings behave the same as their equivalents without *density*: ** and *density* both rise to the number of data points, and *probability* and *probability density* both rise to the number of sample points.", + "dflt": false, + "editType": "calc", + "valType": "boolean" + }, + "role": "object" }, - "colorbar": { + "customdata": { + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", + "editType": "calc", + "valType": "data_array" + }, + "customdatasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", + "editType": "none", + "valType": "string" + }, + "error_x": { "_deprecated": { - "title": { - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars", - "valType": "string" - }, - "titlefont": { - "color": { - "editType": "colorbars", - "valType": "color" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "valType": "string" - }, - "size": { - "editType": "colorbars", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "colorbars", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "titleside": { - "description": "Deprecated in favor of color bar's `title.side`.", - "dflt": "top", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ] + "opacity": { + "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity.", + "editType": "style", + "valType": "number" } }, - "bgcolor": { - "description": "Sets the color of padded area.", - "dflt": "rgba(0,0,0,0)", - "editType": "colorbars", - "valType": "color" - }, - "bordercolor": { - "description": "Sets the axis line color.", - "dflt": "#444", - "editType": "colorbars", - "valType": "color" + "array": { + "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data.", + "editType": "calc", + "valType": "data_array" }, - "borderwidth": { - "description": "Sets the width (in px) or the border enclosing this color bar.", - "dflt": 0, - "editType": "colorbars", - "min": 0, - "valType": "number" + "arrayminus": { + "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data.", + "editType": "calc", + "valType": "data_array" }, - "dtick": { - "description": "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*, 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* 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*", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "valType": "any" + "arrayminussrc": { + "description": "Sets the source reference on Chart Studio Cloud for `arrayminus`.", + "editType": "none", + "valType": "string" }, - "editType": "colorbars", - "exponentformat": { - "description": "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.", - "dflt": "B", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ] + "arraysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `array`.", + "editType": "none", + "valType": "string" }, - "labelalias": { - "description": "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.", - "dflt": false, - "editType": "colorbars", - "valType": "any" + "color": { + "description": "Sets the stoke color of the error bars.", + "editType": "style", + "valType": "color" }, - "len": { - "description": "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.", - "dflt": 1, - "editType": "colorbars", - "min": 0, - "valType": "number" + "copy_ystyle": { + "editType": "plot", + "valType": "boolean" }, - "lenmode": { - "description": "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.", - "dflt": "fraction", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ] + "editType": "calc", + "role": "object", + "symmetric": { + "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars.", + "editType": "calc", + "valType": "boolean" }, - "minexponent": { - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", - "dflt": 3, - "editType": "colorbars", + "thickness": { + "description": "Sets the thickness (in px) of the error bars.", + "dflt": 2, + "editType": "style", "min": 0, "valType": "number" }, - "nticks": { - "description": "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*.", + "traceref": { "dflt": 0, - "editType": "colorbars", + "editType": "style", "min": 0, "valType": "integer" }, - "orientation": { - "description": "Sets the orientation of the colorbar.", - "dflt": "v", - "editType": "colorbars", + "tracerefminus": { + "dflt": 0, + "editType": "style", + "min": 0, + "valType": "integer" + }, + "type": { + "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`.", + "editType": "calc", "valType": "enumerated", "values": [ - "h", - "v" + "percent", + "constant", + "sqrt", + "data" ] }, - "outlinecolor": { - "description": "Sets the axis line color.", - "dflt": "#444", - "editType": "colorbars", - "valType": "color" + "value": { + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars.", + "dflt": 10, + "editType": "calc", + "min": 0, + "valType": "number" }, - "outlinewidth": { - "description": "Sets the width (in px) of the axis line.", - "dflt": 1, - "editType": "colorbars", + "valueminus": { + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars", + "dflt": 10, + "editType": "calc", "min": 0, "valType": "number" }, - "role": "object", - "separatethousands": { - "description": "If \"true\", even 4-digit integers are separated", - "dflt": false, - "editType": "colorbars", + "visible": { + "description": "Determines whether or not this set of error bars is visible.", + "editType": "calc", "valType": "boolean" }, - "showexponent": { - "description": "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.", - "dflt": "all", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] + "width": { + "description": "Sets the width (in px) of the cross-bar at both ends of the error bars.", + "editType": "plot", + "min": 0, + "valType": "number" + } + }, + "error_y": { + "_deprecated": { + "opacity": { + "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity.", + "editType": "style", + "valType": "number" + } }, - "showticklabels": { - "description": "Determines whether or not the tick labels are drawn.", - "dflt": true, - "editType": "colorbars", + "array": { + "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data.", + "editType": "calc", + "valType": "data_array" + }, + "arrayminus": { + "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data.", + "editType": "calc", + "valType": "data_array" + }, + "arrayminussrc": { + "description": "Sets the source reference on Chart Studio Cloud for `arrayminus`.", + "editType": "none", + "valType": "string" + }, + "arraysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `array`.", + "editType": "none", + "valType": "string" + }, + "color": { + "description": "Sets the stoke color of the error bars.", + "editType": "style", + "valType": "color" + }, + "editType": "calc", + "role": "object", + "symmetric": { + "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars.", + "editType": "calc", "valType": "boolean" }, - "showtickprefix": { - "description": "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.", - "dflt": "all", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] + "thickness": { + "description": "Sets the thickness (in px) of the error bars.", + "dflt": 2, + "editType": "style", + "min": 0, + "valType": "number" }, - "showticksuffix": { - "description": "Same as `showtickprefix` but for tick suffixes.", - "dflt": "all", - "editType": "colorbars", + "traceref": { + "dflt": 0, + "editType": "style", + "min": 0, + "valType": "integer" + }, + "tracerefminus": { + "dflt": 0, + "editType": "style", + "min": 0, + "valType": "integer" + }, + "type": { + "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`.", + "editType": "calc", "valType": "enumerated", "values": [ - "all", - "first", - "last", - "none" + "percent", + "constant", + "sqrt", + "data" ] }, - "thickness": { - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "dflt": 30, - "editType": "colorbars", + "value": { + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars.", + "dflt": 10, + "editType": "calc", "min": 0, "valType": "number" }, - "thicknessmode": { - "description": "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.", - "dflt": "pixels", - "editType": "colorbars", + "valueminus": { + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars", + "dflt": 10, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "visible": { + "description": "Determines whether or not this set of error bars is visible.", + "editType": "calc", + "valType": "boolean" + }, + "width": { + "description": "Sets the width (in px) of the cross-bar at both ends of the error bars.", + "editType": "plot", + "min": 0, + "valType": "number" + } + }, + "histfunc": { + "description": "Specifies the binning function used for this histogram trace. If *count*, the histogram values are computed by counting the number of values lying inside each bin. If *sum*, *avg*, *min*, *max*, the histogram values are computed using the sum, the average, the minimum or the maximum of the values lying inside each bin respectively.", + "dflt": "count", + "editType": "calc", + "valType": "enumerated", + "values": [ + "count", + "sum", + "avg", + "min", + "max" + ] + }, + "histnorm": { + "description": "Specifies the type of normalization used for this histogram trace. If **, the span of each bar corresponds to the number of occurrences (i.e. the number of data points lying inside the bins). If *percent* / *probability*, the span of each bar corresponds to the percentage / fraction of occurrences with respect to the total number of sample points (here, the sum of all bin HEIGHTS equals 100% / 1). If *density*, the span of each bar corresponds to the number of occurrences in a bin divided by the size of the bin interval (here, the sum of all bin AREAS equals the total number of sample points). If *probability density*, the area of each bar corresponds to the probability that an event will fall into the corresponding bin (here, the sum of all bin AREAS equals 1).", + "dflt": "", + "editType": "calc", + "valType": "enumerated", + "values": [ + "", + "percent", + "probability", + "density", + "probability density" + ] + }, + "hoverinfo": { + "arrayOk": true, + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", + "dflt": "all", + "editType": "none", + "extras": [ + "all", + "none", + "skip" + ], + "flags": [ + "x", + "y", + "z", + "text", + "name" + ], + "valType": "flaglist" + }, + "hoverinfosrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", + "editType": "none", + "valType": "string" + }, + "hoverlabel": { + "align": { + "arrayOk": true, + "description": "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", + "dflt": "auto", + "editType": "none", "valType": "enumerated", "values": [ - "fraction", - "pixels" + "left", + "right", + "auto" ] }, - "tick0": { - "description": "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* (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.", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "valType": "any" + "alignsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `align`.", + "editType": "none", + "valType": "string" }, - "tickangle": { - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", - "dflt": "auto", - "editType": "colorbars", - "valType": "angle" + "bgcolor": { + "arrayOk": true, + "description": "Sets the background color of the hover labels for this trace", + "editType": "none", + "valType": "color" }, - "tickcolor": { - "description": "Sets the tick color.", - "dflt": "#444", - "editType": "colorbars", + "bgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", + "editType": "none", + "valType": "string" + }, + "bordercolor": { + "arrayOk": true, + "description": "Sets the border color of the hover labels for this trace.", + "editType": "none", "valType": "color" }, - "tickfont": { + "bordercolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", + "editType": "none", + "valType": "string" + }, + "editType": "none", + "font": { "color": { - "editType": "colorbars", + "arrayOk": true, + "editType": "none", "valType": "color" }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "description": "Sets the font used in hover labels.", + "editType": "none", "family": { + "arrayOk": true, "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars", + "editType": "none", "noBlank": true, "strict": true, "valType": "string" }, + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" + }, "lineposition": { + "arrayOk": true, "description": "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.", "dflt": "none", - "editType": "colorbars", + "editType": "none", "extras": [ "none" ], @@ -44924,32 +44125,56 @@ ], "valType": "flaglist" }, + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", + "editType": "none", + "valType": "string" + }, "role": "object", "shadow": { + "arrayOk": true, "description": "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.", "dflt": "none", - "editType": "colorbars", + "editType": "none", + "valType": "string" + }, + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", "valType": "string" }, "size": { - "editType": "colorbars", + "arrayOk": true, + "editType": "none", "min": 1, "valType": "number" }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, "style": { + "arrayOk": true, "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "colorbars", + "editType": "none", "valType": "enumerated", "values": [ "normal", "italic" ] }, + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", + "valType": "string" + }, "textcase": { + "arrayOk": true, "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "colorbars", + "editType": "none", "valType": "enumerated", "values": [ "normal", @@ -44958,10 +44183,16 @@ "lower" ] }, + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", + "valType": "string" + }, "variant": { + "arrayOk": true, "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "colorbars", + "editType": "none", "valType": "enumerated", "values": [ "normal", @@ -44972,10 +44203,16 @@ "unicase" ] }, + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" + }, "weight": { + "arrayOk": true, "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "colorbars", + "editType": "none", "extras": [ "normal", "bold" @@ -44983,382 +44220,186 @@ "max": 1000, "min": 1, "valType": "integer" + }, + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" } }, - "tickformat": { - "description": "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*", - "dflt": "", - "editType": "colorbars", + "namelength": { + "arrayOk": true, + "description": "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.", + "dflt": 15, + "editType": "none", + "min": -1, + "valType": "integer" + }, + "namelengthsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", + "editType": "none", "valType": "string" }, - "tickformatstops": { - "items": { - "tickformatstop": { - "dtickrange": { - "description": "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*", - "editType": "colorbars", - "items": [ - { - "editType": "colorbars", - "valType": "any" - }, - { - "editType": "colorbars", - "valType": "any" - } - ], - "valType": "info_array" - }, - "editType": "colorbars", - "enabled": { - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", - "dflt": true, - "editType": "colorbars", - "valType": "boolean" - }, - "name": { - "description": "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.", - "editType": "colorbars", - "valType": "string" - }, - "role": "object", - "templateitemname": { - "description": "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`.", - "editType": "colorbars", - "valType": "string" - }, - "value": { - "description": "string - dtickformat for described zoom level, the same as *tickformat*", - "dflt": "", - "editType": "colorbars", - "valType": "string" - } - } - }, - "role": "object" - }, - "ticklabeloverflow": { - "description": "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*.", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "allow", - "hide past div", - "hide past domain" - ] - }, - "ticklabelposition": { - "description": "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*.", - "dflt": "outside", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside left", - "inside left", - "outside right", - "inside right", - "outside bottom", - "inside bottom" - ] - }, - "ticklabelstep": { - "description": "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*.", - "dflt": 1, - "editType": "colorbars", - "min": 1, - "valType": "integer" - }, - "ticklen": { - "description": "Sets the tick length (in px).", - "dflt": 5, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "tickmode": { - "description": "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).", - "editType": "colorbars", - "impliedEdits": {}, - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ] - }, - "tickprefix": { - "description": "Sets a tick label prefix.", - "dflt": "", - "editType": "colorbars", - "valType": "string" - }, - "ticks": { - "description": "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.", - "dflt": "", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ] - }, - "ticksuffix": { - "description": "Sets a tick label suffix.", - "dflt": "", - "editType": "colorbars", - "valType": "string" - }, - "ticktext": { - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "editType": "colorbars", - "valType": "data_array" + "role": "object" + }, + "hovertemplate": { + "arrayOk": true, + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `binNumber` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "dflt": "", + "editType": "none", + "valType": "string" + }, + "hovertemplatesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", + "editType": "none", + "valType": "string" + }, + "hovertext": { + "arrayOk": true, + "description": "Same as `text`.", + "dflt": "", + "editType": "style", + "valType": "string" + }, + "hovertextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertext`.", + "editType": "none", + "valType": "string" + }, + "ids": { + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", + "editType": "calc", + "valType": "data_array" + }, + "idssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ids`.", + "editType": "none", + "valType": "string" + }, + "insidetextanchor": { + "description": "Determines if texts are kept at center or start/end points in `textposition` *inside* mode.", + "dflt": "end", + "editType": "plot", + "valType": "enumerated", + "values": [ + "end", + "middle", + "start" + ] + }, + "insidetextfont": { + "color": { + "editType": "style", + "valType": "color" }, - "ticktextsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", - "editType": "none", + "description": "Sets the font used for `text` lying inside the bar.", + "editType": "plot", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "plot", + "noBlank": true, + "strict": true, "valType": "string" }, - "tickvals": { - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "editType": "colorbars", - "valType": "data_array" + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "plot", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" }, - "tickvalssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", - "editType": "none", + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "plot", "valType": "string" }, - "tickwidth": { - "description": "Sets the tick width (in px).", - "dflt": 1, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "title": { - "editType": "colorbars", - "font": { - "color": { - "editType": "colorbars", - "valType": "color" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "valType": "string" - }, - "size": { - "editType": "colorbars", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "colorbars", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "role": "object", - "side": { - "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ] - }, - "text": { - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars", - "valType": "string" - } - }, - "x": { - "description": "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*.", - "editType": "colorbars", + "size": { + "editType": "plot", + "min": 1, "valType": "number" }, - "xanchor": { - "description": "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*.", - "editType": "colorbars", + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "plot", "valType": "enumerated", "values": [ - "left", - "center", - "right" + "normal", + "italic" ] }, - "xpad": { - "description": "Sets the amount of padding (in px) along the x direction.", - "dflt": 10, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "xref": { - "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", - "dflt": "paper", - "editType": "colorbars", + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "plot", "valType": "enumerated", "values": [ - "container", - "paper" + "normal", + "word caps", + "upper", + "lower" ] }, - "y": { - "description": "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*.", - "editType": "colorbars", - "valType": "number" - }, - "yanchor": { - "description": "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*.", - "editType": "colorbars", + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "plot", "valType": "enumerated", "values": [ - "top", - "middle", - "bottom" + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" ] }, - "ypad": { - "description": "Sets the amount of padding (in px) along the y direction.", - "dflt": 10, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "yref": { - "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", - "dflt": "paper", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "container", - "paper" - ] + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "plot", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" } }, - "colorscale": { - "description": "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 `zmin` and `zmax`. 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.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "autocolorscale": false - }, - "valType": "colorscale" + "legend": { + "description": "Sets the reference to a legend to show this trace 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.", + "dflt": "legend", + "editType": "style", + "valType": "subplotid" }, - "contours": { - "coloring": { - "description": "Determines the coloring method showing the contour values. If *fill*, coloring is done evenly between each contour level If *heatmap*, a heatmap gradient coloring is applied between each contour level. If *lines*, coloring is done on the contour lines. If *none*, no coloring is applied on this trace.", - "dflt": "fill", - "editType": "calc", - "valType": "enumerated", - "values": [ - "fill", - "heatmap", - "lines", - "none" - ] - }, - "editType": "calc", - "end": { - "description": "Sets the end contour level value. Must be more than `contours.start`", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "^autocontour": false - }, - "valType": "number" - }, - "impliedEdits": { - "autocontour": false, - "role": "object" - }, - "labelfont": { + "legendgroup": { + "description": "Sets the legend group for this trace. Traces and shapes part of the same legend group hide/show at the same time when toggling legend items.", + "dflt": "", + "editType": "style", + "valType": "string" + }, + "legendgrouptitle": { + "editType": "style", + "font": { "color": { "editType": "style", "valType": "color" }, - "description": "Sets the font used for labeling the contour levels. The default color comes from the lines, if shown. The default family and size come from `layout.font`.", - "editType": "plot", + "description": "Sets this legend group's title font.", + "editType": "style", "family": { "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "plot", + "editType": "style", "noBlank": true, "strict": true, "valType": "string" @@ -45366,7 +44407,7 @@ "lineposition": { "description": "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.", "dflt": "none", - "editType": "plot", + "editType": "style", "extras": [ "none" ], @@ -45381,18 +44422,18 @@ "shadow": { "description": "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.", "dflt": "none", - "editType": "plot", + "editType": "style", "valType": "string" }, "size": { - "editType": "plot", + "editType": "style", "min": 1, "valType": "number" }, "style": { "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "plot", + "editType": "style", "valType": "enumerated", "values": [ "normal", @@ -45402,7 +44443,7 @@ "textcase": { "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "plot", + "editType": "style", "valType": "enumerated", "values": [ "normal", @@ -45414,7 +44455,7 @@ "variant": { "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "plot", + "editType": "style", "valType": "enumerated", "values": [ "normal", @@ -45428,7 +44469,7 @@ "weight": { "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "plot", + "editType": "style", "extras": [ "normal", "bold" @@ -45438,537 +44479,1020 @@ "valType": "integer" } }, - "labelformat": { - "description": "Sets the contour 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.", + "role": "object", + "text": { + "description": "Sets the title of the legend group.", "dflt": "", - "editType": "plot", + "editType": "style", "valType": "string" - }, - "operation": { - "description": "Sets the constraint operation. *=* keeps regions equal to `value` *<* and *<=* keep regions less than `value` *>* and *>=* keep regions greater than `value` *[]*, *()*, *[)*, and *(]* keep regions inside `value[0]` to `value[1]` *][*, *)(*, *](*, *)[* keep regions outside `value[0]` to value[1]` Open vs. closed intervals make no difference to constraint display, but all versions are allowed for consistency with filter transforms.", - "dflt": "=", + } + }, + "legendrank": { + "description": "Sets the legend rank for this trace. 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.", + "dflt": 1000, + "editType": "style", + "valType": "number" + }, + "legendwidth": { + "description": "Sets the width (in px or fraction) of the legend for this trace.", + "editType": "style", + "min": 0, + "valType": "number" + }, + "marker": { + "autocolorscale": { + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color` is set to a numerical array. 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.", + "dflt": true, "editType": "calc", - "valType": "enumerated", - "values": [ - "=", - "<", - ">=", - ">", - "<=", - "[]", - "()", - "[)", - "(]", - "][", - ")(", - "](", - ")[" - ] - }, - "role": "object", - "showlabels": { - "description": "Determines whether to label the contour lines with their values.", - "dflt": false, - "editType": "plot", + "impliedEdits": {}, "valType": "boolean" }, - "showlines": { - "description": "Determines whether or not the contour lines are drawn. Has an effect only if `contours.coloring` is set to *fill*.", + "cauto": { + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color` is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user.", "dflt": true, - "editType": "plot", + "editType": "calc", + "impliedEdits": {}, "valType": "boolean" }, - "size": { - "description": "Sets the step between each contour level. Must be positive.", + "cmax": { + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well.", "dflt": null, "editType": "plot", "impliedEdits": { - "^autocontour": false + "cauto": false }, - "min": 0, "valType": "number" }, - "start": { - "description": "Sets the starting contour level value. Must be less than `contours.end`", + "cmid": { + "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`.", "dflt": null, - "editType": "plot", - "impliedEdits": { - "^autocontour": false - }, - "valType": "number" - }, - "type": { - "description": "If `levels`, the data is represented as a contour plot with multiple levels displayed. If `constraint`, the data is represented as constraints with the invalid region shaded as specified by the `operation` and `value` parameters.", - "dflt": "levels", - "editType": "calc", - "valType": "enumerated", - "values": [ - "levels", - "constraint" - ] - }, - "value": { - "description": "Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values (=,<,>=,>,<=) *value* is expected to be a number. When `operation` is set to one of the interval values ([],(),[),(],][,)(,](,)[) *value* is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound.", - "dflt": 0, "editType": "calc", - "valType": "any" - } - }, - "customdata": { - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "editType": "calc", - "valType": "data_array" - }, - "customdatasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", - "editType": "none", - "valType": "string" - }, - "histfunc": { - "description": "Specifies the binning function used for this histogram trace. If *count*, the histogram values are computed by counting the number of values lying inside each bin. If *sum*, *avg*, *min*, *max*, the histogram values are computed using the sum, the average, the minimum or the maximum of the values lying inside each bin respectively.", - "dflt": "count", - "editType": "calc", - "valType": "enumerated", - "values": [ - "count", - "sum", - "avg", - "min", - "max" - ] - }, - "histnorm": { - "description": "Specifies the type of normalization used for this histogram trace. If **, the span of each bar corresponds to the number of occurrences (i.e. the number of data points lying inside the bins). If *percent* / *probability*, the span of each bar corresponds to the percentage / fraction of occurrences with respect to the total number of sample points (here, the sum of all bin HEIGHTS equals 100% / 1). If *density*, the span of each bar corresponds to the number of occurrences in a bin divided by the size of the bin interval (here, the sum of all bin AREAS equals the total number of sample points). If *probability density*, the area of each bar corresponds to the probability that an event will fall into the corresponding bin (here, the sum of all bin AREAS equals 1).", - "dflt": "", - "editType": "calc", - "valType": "enumerated", - "values": [ - "", - "percent", - "probability", - "density", - "probability density" - ] - }, - "hoverinfo": { - "arrayOk": true, - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", - "dflt": "all", - "editType": "none", - "extras": [ - "all", - "none", - "skip" - ], - "flags": [ - "x", - "y", - "z", - "text", - "name" - ], - "valType": "flaglist" - }, - "hoverinfosrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", - "editType": "none", - "valType": "string" - }, - "hoverlabel": { - "align": { - "arrayOk": true, - "description": "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", - "dflt": "auto", - "editType": "none", - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ] - }, - "alignsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `align`.", - "editType": "none", - "valType": "string" - }, - "bgcolor": { - "arrayOk": true, - "description": "Sets the background color of the hover labels for this trace", - "editType": "none", - "valType": "color" + "impliedEdits": {}, + "valType": "number" }, - "bgcolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", - "editType": "none", - "valType": "string" + "cmin": { + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well.", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "valType": "number" }, - "bordercolor": { + "color": { "arrayOk": true, - "description": "Sets the border color of the hover labels for this trace.", - "editType": "none", + "description": "Sets the marker color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set.", + "editType": "style", "valType": "color" }, - "bordercolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", - "editType": "none", - "valType": "string" + "coloraxis": { + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", + "dflt": null, + "editType": "calc", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "valType": "subplotid" }, - "editType": "none", - "font": { - "color": { - "arrayOk": true, - "editType": "none", + "colorbar": { + "_deprecated": { + "title": { + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars", + "valType": "string" + }, + "titlefont": { + "color": { + "editType": "colorbars", + "valType": "color" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "valType": "string" + }, + "size": { + "editType": "colorbars", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "colorbars", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "titleside": { + "description": "Deprecated in favor of color bar's `title.side`.", + "dflt": "top", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ] + } + }, + "bgcolor": { + "description": "Sets the color of padded area.", + "dflt": "rgba(0,0,0,0)", + "editType": "colorbars", "valType": "color" }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" + "bordercolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" }, - "description": "Sets the font used in hover labels.", - "editType": "none", - "family": { - "arrayOk": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "none", - "noBlank": true, - "strict": true, - "valType": "string" + "borderwidth": { + "description": "Sets the width (in px) or the border enclosing this color bar.", + "dflt": 0, + "editType": "colorbars", + "min": 0, + "valType": "number" }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" + "dtick": { + "description": "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*, 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* 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*", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" }, - "lineposition": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "none", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" + "editType": "colorbars", + "exponentformat": { + "description": "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.", + "dflt": "B", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ] }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", - "valType": "string" + "labelalias": { + "description": "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.", + "dflt": false, + "editType": "colorbars", + "valType": "any" }, - "role": "object", - "shadow": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "none", - "valType": "string" + "len": { + "description": "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.", + "dflt": 1, + "editType": "colorbars", + "min": 0, + "valType": "number" }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", - "editType": "none", - "valType": "string" + "lenmode": { + "description": "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.", + "dflt": "fraction", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] }, - "size": { - "arrayOk": true, - "editType": "none", - "min": 1, + "minexponent": { + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", + "dflt": 3, + "editType": "colorbars", + "min": 0, "valType": "number" }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" + "nticks": { + "description": "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*.", + "dflt": 0, + "editType": "colorbars", + "min": 0, + "valType": "integer" }, - "style": { - "arrayOk": true, - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "none", + "orientation": { + "description": "Sets the orientation of the colorbar.", + "dflt": "v", + "editType": "colorbars", "valType": "enumerated", "values": [ - "normal", - "italic" + "h", + "v" ] }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" + "outlinecolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" }, - "textcase": { - "arrayOk": true, - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "none", + "outlinewidth": { + "description": "Sets the width (in px) of the axis line.", + "dflt": 1, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "role": "object", + "separatethousands": { + "description": "If \"true\", even 4-digit integers are separated", + "dflt": false, + "editType": "colorbars", + "valType": "boolean" + }, + "showexponent": { + "description": "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.", + "dflt": "all", + "editType": "colorbars", "valType": "enumerated", "values": [ - "normal", - "word caps", - "upper", - "lower" + "all", + "first", + "last", + "none" ] }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" + "showticklabels": { + "description": "Determines whether or not the tick labels are drawn.", + "dflt": true, + "editType": "colorbars", + "valType": "boolean" }, - "variant": { - "arrayOk": true, - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "none", + "showtickprefix": { + "description": "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.", + "dflt": "all", + "editType": "colorbars", "valType": "enumerated", "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" + "all", + "first", + "last", + "none" ] }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" + "showticksuffix": { + "description": "Same as `showtickprefix` but for tick suffixes.", + "dflt": "all", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] }, - "weight": { - "arrayOk": true, - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "none", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" + "thickness": { + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "dflt": 30, + "editType": "colorbars", + "min": 0, + "valType": "number" }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", - "valType": "string" - } - }, - "namelength": { - "arrayOk": true, - "description": "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.", - "dflt": 15, - "editType": "none", - "min": -1, - "valType": "integer" - }, - "namelengthsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", - "editType": "none", - "valType": "string" - }, - "role": "object" - }, - "hovertemplate": { - "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "dflt": "", - "editType": "none", - "valType": "string" - }, - "hovertemplatesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", - "editType": "none", - "valType": "string" - }, - "ids": { - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "editType": "calc", - "valType": "data_array" - }, - "idssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ids`.", - "editType": "none", - "valType": "string" - }, - "legend": { - "description": "Sets the reference to a legend to show this trace 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.", - "dflt": "legend", - "editType": "style", - "valType": "subplotid" - }, - "legendgroup": { - "description": "Sets the legend group for this trace. Traces and shapes part of the same legend group hide/show at the same time when toggling legend items.", - "dflt": "", - "editType": "style", - "valType": "string" - }, - "legendgrouptitle": { - "editType": "style", - "font": { - "color": { - "editType": "style", + "thicknessmode": { + "description": "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.", + "dflt": "pixels", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] + }, + "tick0": { + "description": "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* (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.", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" + }, + "tickangle": { + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", + "dflt": "auto", + "editType": "colorbars", + "valType": "angle" + }, + "tickcolor": { + "description": "Sets the tick color.", + "dflt": "#444", + "editType": "colorbars", "valType": "color" }, - "description": "Sets this legend group's title font.", - "editType": "style", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "style", - "noBlank": true, - "strict": true, + "tickfont": { + "color": { + "editType": "colorbars", + "valType": "color" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "valType": "string" + }, + "size": { + "editType": "colorbars", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "colorbars", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "tickformat": { + "description": "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*", + "dflt": "", + "editType": "colorbars", "valType": "string" }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "style", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" + "tickformatstops": { + "items": { + "tickformatstop": { + "dtickrange": { + "description": "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*", + "editType": "colorbars", + "items": [ + { + "editType": "colorbars", + "valType": "any" + }, + { + "editType": "colorbars", + "valType": "any" + } + ], + "valType": "info_array" + }, + "editType": "colorbars", + "enabled": { + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", + "dflt": true, + "editType": "colorbars", + "valType": "boolean" + }, + "name": { + "description": "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.", + "editType": "colorbars", + "valType": "string" + }, + "role": "object", + "templateitemname": { + "description": "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`.", + "editType": "colorbars", + "valType": "string" + }, + "value": { + "description": "string - dtickformat for described zoom level, the same as *tickformat*", + "dflt": "", + "editType": "colorbars", + "valType": "string" + } + } + }, + "role": "object" }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "style", - "valType": "string" + "ticklabeloverflow": { + "description": "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*.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ] }, - "size": { - "editType": "style", + "ticklabelposition": { + "description": "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*.", + "dflt": "outside", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside left", + "inside left", + "outside right", + "inside right", + "outside bottom", + "inside bottom" + ] + }, + "ticklabelstep": { + "description": "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*.", + "dflt": 1, + "editType": "colorbars", "min": 1, + "valType": "integer" + }, + "ticklen": { + "description": "Sets the tick length (in px).", + "dflt": 5, + "editType": "colorbars", + "min": 0, "valType": "number" }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "style", + "tickmode": { + "description": "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).", + "editType": "colorbars", + "impliedEdits": {}, "valType": "enumerated", "values": [ - "normal", - "italic" + "auto", + "linear", + "array" ] }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "style", + "tickprefix": { + "description": "Sets a tick label prefix.", + "dflt": "", + "editType": "colorbars", + "valType": "string" + }, + "ticks": { + "description": "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.", + "dflt": "", + "editType": "colorbars", "valType": "enumerated", "values": [ - "normal", - "word caps", - "upper", - "lower" + "outside", + "inside", + "" ] }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "style", + "ticksuffix": { + "description": "Sets a tick label suffix.", + "dflt": "", + "editType": "colorbars", + "valType": "string" + }, + "ticktext": { + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", + "editType": "colorbars", + "valType": "data_array" + }, + "ticktextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", + "editType": "none", + "valType": "string" + }, + "tickvals": { + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", + "editType": "colorbars", + "valType": "data_array" + }, + "tickvalssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", + "editType": "none", + "valType": "string" + }, + "tickwidth": { + "description": "Sets the tick width (in px).", + "dflt": 1, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "title": { + "editType": "colorbars", + "font": { + "color": { + "editType": "colorbars", + "valType": "color" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "valType": "string" + }, + "size": { + "editType": "colorbars", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "colorbars", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "role": "object", + "side": { + "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ] + }, + "text": { + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars", + "valType": "string" + } + }, + "x": { + "description": "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*.", + "editType": "colorbars", + "valType": "number" + }, + "xanchor": { + "description": "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*.", + "editType": "colorbars", "valType": "enumerated", "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" + "left", + "center", + "right" ] }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "style", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "role": "object", - "text": { - "description": "Sets the title of the legend group.", - "dflt": "", - "editType": "style", - "valType": "string" - } - }, - "legendrank": { - "description": "Sets the legend rank for this trace. 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.", - "dflt": 1000, - "editType": "style", - "valType": "number" - }, - "legendwidth": { - "description": "Sets the width (in px or fraction) of the legend for this trace.", - "editType": "style", - "min": 0, - "valType": "number" - }, - "line": { - "color": { - "description": "Sets the color of the contour level. Has no effect if `contours.coloring` is set to *lines*.", - "editType": "style+colorbars", - "valType": "color" - }, - "dash": { - "description": "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*).", - "dflt": "solid", - "editType": "style", - "valType": "string", - "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" - ] - }, - "editType": "plot", - "role": "object", - "smoothing": { - "description": "Sets the amount of smoothing for the contour lines, where *0* corresponds to no smoothing.", - "dflt": 1, - "editType": "plot", - "max": 1.3, - "min": 0, - "valType": "number" + "xpad": { + "description": "Sets the amount of padding (in px) along the x direction.", + "dflt": 10, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, + "y": { + "description": "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*.", + "editType": "colorbars", + "valType": "number" + }, + "yanchor": { + "description": "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*.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ] + }, + "ypad": { + "description": "Sets the amount of padding (in px) along the y direction.", + "dflt": 10, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + } }, - "width": { - "description": "Sets the contour line width in (in px)", - "dflt": 0.5, - "editType": "style+colorbars", - "min": 0, - "valType": "number" - } - }, - "marker": { - "color": { - "description": "Sets the aggregation data.", + "colorscale": { + "description": "Sets the colorscale. Has an effect only if in `marker.color` is set to a numerical array. 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 `marker.cmin` and `marker.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.", + "dflt": null, "editType": "calc", - "valType": "data_array" + "impliedEdits": { + "autocolorscale": false + }, + "valType": "colorscale" }, "colorsrc": { "description": "Sets the source reference on Chart Studio Cloud for `color`.", "editType": "none", "valType": "string" }, + "cornerradius": { + "description": "Sets the rounding of corners. May be an integer number of pixels, or a percentage of bar width (as a string ending in %). Defaults to `layout.barcornerradius`. In stack or relative barmode, the first trace to set cornerradius is used for the whole stack.", + "editType": "calc", + "valType": "any" + }, "editType": "calc", - "role": "object" + "line": { + "autocolorscale": { + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color` is set to a numerical array. 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.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "cauto": { + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color` is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "cmax": { + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well.", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "valType": "number" + }, + "cmid": { + "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`.", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "valType": "number" + }, + "cmin": { + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well.", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "valType": "number" + }, + "color": { + "arrayOk": true, + "description": "Sets the marker.line color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set.", + "editType": "style", + "valType": "color" + }, + "coloraxis": { + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", + "dflt": null, + "editType": "calc", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "valType": "subplotid" + }, + "colorscale": { + "description": "Sets the colorscale. Has an effect only if in `marker.line.color` is set to a numerical array. 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 `marker.line.cmin` and `marker.line.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.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "autocolorscale": false + }, + "valType": "colorscale" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "editType": "calc", + "reversescale": { + "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color` is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color.", + "dflt": false, + "editType": "plot", + "valType": "boolean" + }, + "role": "object", + "width": { + "arrayOk": true, + "description": "Sets the width (in px) of the lines bounding the marker points.", + "dflt": 0, + "editType": "style", + "min": 0, + "valType": "number" + }, + "widthsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `width`.", + "editType": "none", + "valType": "string" + } + }, + "opacity": { + "arrayOk": true, + "description": "Sets the opacity of the bars.", + "dflt": 1, + "editType": "style", + "max": 1, + "min": 0, + "valType": "number" + }, + "opacitysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `opacity`.", + "editType": "none", + "valType": "string" + }, + "pattern": { + "bgcolor": { + "arrayOk": true, + "description": "When there is no colorscale sets the color of background pattern fill. Defaults to a `marker.color` background when `fillmode` is *overlay*. Otherwise, defaults to a transparent background.", + "editType": "style", + "valType": "color" + }, + "bgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", + "editType": "none", + "valType": "string" + }, + "description": "Sets the pattern within the marker.", + "editType": "style", + "fgcolor": { + "arrayOk": true, + "description": "When there is no colorscale sets the color of foreground pattern fill. Defaults to a `marker.color` background when `fillmode` is *replace*. Otherwise, defaults to dark grey or white to increase contrast with the `bgcolor`.", + "editType": "style", + "valType": "color" + }, + "fgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `fgcolor`.", + "editType": "none", + "valType": "string" + }, + "fgopacity": { + "description": "Sets the opacity of the foreground pattern fill. Defaults to a 0.5 when `fillmode` is *overlay*. Otherwise, defaults to 1.", + "editType": "style", + "max": 1, + "min": 0, + "valType": "number" + }, + "fillmode": { + "description": "Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`.", + "dflt": "replace", + "editType": "style", + "valType": "enumerated", + "values": [ + "replace", + "overlay" + ] + }, + "role": "object", + "shape": { + "arrayOk": true, + "description": "Sets the shape of the pattern fill. By default, no pattern is used for filling the area.", + "dflt": "", + "editType": "style", + "valType": "enumerated", + "values": [ + "", + "/", + "\\", + "x", + "-", + "|", + "+", + "." + ] + }, + "shapesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shape`.", + "editType": "none", + "valType": "string" + }, + "size": { + "arrayOk": true, + "description": "Sets the size of unit squares of the pattern fill in pixels, which corresponds to the interval of repetition of the pattern.", + "dflt": 8, + "editType": "style", + "min": 0, + "valType": "number" + }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, + "solidity": { + "arrayOk": true, + "description": "Sets the solidity of the pattern fill. Solidity is roughly the fraction of the area filled by the pattern. Solidity of 0 shows only the background color without pattern and solidty of 1 shows only the foreground color without pattern.", + "dflt": 0.3, + "editType": "style", + "max": 1, + "min": 0, + "valType": "number" + }, + "soliditysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `solidity`.", + "editType": "none", + "valType": "string" + } + }, + "reversescale": { + "description": "Reverses the color mapping if true. Has an effect only if in `marker.color` is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color.", + "dflt": false, + "editType": "plot", + "valType": "boolean" + }, + "role": "object", + "showscale": { + "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color` is set to a numerical array.", + "dflt": false, + "editType": "calc", + "valType": "boolean" + } }, "meta": { "arrayOk": true, @@ -46000,12 +45524,11 @@ "min": 0, "valType": "integer" }, - "ncontours": { - "description": "Sets the maximum number of contour levels. The actual number of contours will be chosen automatically to be less than or equal to the value of `ncontours`. Has an effect only if `autocontour` is *true* or if `contours.size` is missing.", - "dflt": 15, + "offsetgroup": { + "description": "Set several traces linked to the same position axis or matching axes to the same offsetgroup where bars of the same position coordinate will line up.", + "dflt": "", "editType": "calc", - "min": 1, - "valType": "integer" + "valType": "string" }, "opacity": { "description": "Sets the opacity of the trace.", @@ -46015,11 +45538,137 @@ "min": 0, "valType": "number" }, - "reversescale": { - "description": "Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color.", - "dflt": false, + "orientation": { + "description": "Sets the orientation of the bars. With *v* (*h*), the value of the each bar spans along the vertical (horizontal).", + "editType": "calc+clearAxisTypes", + "valType": "enumerated", + "values": [ + "v", + "h" + ] + }, + "outsidetextfont": { + "color": { + "editType": "style", + "valType": "color" + }, + "description": "Sets the font used for `text` lying outside the bar.", "editType": "plot", - "valType": "boolean" + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "plot", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "plot", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "plot", + "valType": "string" + }, + "size": { + "editType": "plot", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "plot", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "selected": { + "editType": "style", + "marker": { + "color": { + "description": "Sets the marker color of selected points.", + "editType": "style", + "valType": "color" + }, + "editType": "style", + "opacity": { + "description": "Sets the marker opacity of selected points.", + "editType": "style", + "max": 1, + "min": 0, + "valType": "number" + }, + "role": "object" + }, + "role": "object", + "textfont": { + "color": { + "description": "Sets the text font color of selected points.", + "editType": "style", + "valType": "color" + }, + "editType": "style", + "role": "object" + } + }, + "selectedpoints": { + "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect.", + "editType": "calc", + "valType": "any" }, "showlegend": { "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", @@ -46027,12 +45676,6 @@ "editType": "style", "valType": "boolean" }, - "showscale": { - "description": "Determines whether or not a colorbar is displayed for this trace.", - "dflt": true, - "editType": "calc", - "valType": "boolean" - }, "stream": { "editType": "calc", "maxpoints": { @@ -46052,13 +45695,25 @@ "valType": "string" } }, + "text": { + "arrayOk": true, + "description": "Sets hover text elements associated with each bar. If a single string, the same string appears over all bars. If an array of string, the items are mapped in order to the this trace's coordinates.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "textangle": { + "description": "Sets the angle of the tick labels with respect to the bar. For example, a `tickangle` of -90 draws the tick labels vertically. With *auto* the texts may automatically be rotated to fit with the maximum size in bars.", + "dflt": "auto", + "editType": "plot", + "valType": "angle" + }, "textfont": { "color": { - "dflt": "auto", "editType": "style", "valType": "color" }, - "description": "For this trace it only has an effect if `coloring` is set to *heatmap*. Sets the text font.", + "description": "Sets the text font.", "editType": "plot", "family": { "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", @@ -46089,7 +45744,6 @@ "valType": "string" }, "size": { - "dflt": "auto", "editType": "plot", "min": 1, "valType": "number" @@ -46143,8 +45797,26 @@ "valType": "integer" } }, + "textposition": { + "arrayOk": false, + "description": "Specifies the location of the `text`. *inside* positions `text` inside, next to the bar end (rotated and scaled if needed). *outside* positions `text` outside, next to the bar end (scaled if needed), unless there is another bar stacked on this one, then the text gets pushed inside. *auto* tries to position `text` inside the bar, but if the bar is too small and no bar is stacked on this one the text is moved outside. If *none*, no text appears.", + "dflt": "auto", + "editType": "calc", + "valType": "enumerated", + "values": [ + "inside", + "outside", + "auto", + "none" + ] + }, + "textsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `text`.", + "editType": "none", + "valType": "string" + }, "texttemplate": { - "description": "For this trace it only has an effect if `coloring` is set to *heatmap*. Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". 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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `x`, `y`, `z` and `text`.", + "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". 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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `label` and `value`.", "dflt": "", "editType": "plot", "valType": "string" @@ -46159,7 +45831,7 @@ }, "role": "object" }, - "type": "histogram2dcontour", + "type": "histogram", "uid": { "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", "editType": "plot", @@ -46170,6 +45842,35 @@ "editType": "none", "valType": "any" }, + "unselected": { + "editType": "style", + "marker": { + "color": { + "description": "Sets the marker color of unselected points, applied only when a selection exists.", + "editType": "style", + "valType": "color" + }, + "editType": "style", + "opacity": { + "description": "Sets the marker opacity of unselected points, applied only when a selection exists.", + "editType": "style", + "max": 1, + "min": 0, + "valType": "number" + }, + "role": "object" + }, + "role": "object", + "textfont": { + "color": { + "description": "Sets the text font color of unselected points, applied only when a selection exists.", + "editType": "style", + "valType": "color" + }, + "editType": "style", + "role": "object" + } + }, "visible": { "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", "dflt": true, @@ -46192,12 +45893,6 @@ "editType": "calc+clearAxisTypes", "valType": "subplotid" }, - "xbingroup": { - "description": "Set a group of histogram traces which will have compatible x-bin settings. Using `xbingroup`, histogram2d and histogram2dcontour traces (on axes of the same axis type) can have compatible x-bin settings. Note that the same `xbingroup` value can be used to set (1D) histogram `bingroup`", - "dflt": "", - "editType": "calc", - "valType": "string" - }, "xbins": { "editType": "calc", "end": { @@ -46207,12 +45902,12 @@ }, "role": "object", "size": { - "description": "Sets the size of each x axis bin. Default behavior: If `nbinsx` is 0 or omitted, we choose a nice round bin size such that the number of bins is about the same as the typical number of samples in each bin. If `nbinsx` is provided, we choose a nice round bin size giving no more than that many bins. For date data, use milliseconds or *M* for months, as in `axis.dtick`. For category data, the number of categories to bin together (always defaults to 1). ", + "description": "Sets the size of each x axis bin. Default behavior: If `nbinsx` is 0 or omitted, we choose a nice round bin size such that the number of bins is about the same as the typical number of samples in each bin. If `nbinsx` is provided, we choose a nice round bin size giving no more than that many bins. For date data, use milliseconds or *M* for months, as in `axis.dtick`. For category data, the number of categories to bin together (always defaults to 1). If multiple non-overlaying histograms share a subplot, the first explicit `size` is used and all others discarded. If no `size` is provided,the sample data from all traces is combined to determine `size` as described above.", "editType": "calc", "valType": "any" }, "start": { - "description": "Sets the starting value for the x axis bins. Defaults to the minimum data value, shifted down if necessary to make nice round values and to remove ambiguous bin edges. For example, if most of the data is integers we shift the bin edges 0.5 down, so a `size` of 5 would have a default `start` of -0.5, so it is clear that 0-4 are in the first bin, 5-9 in the second, but continuous data gets a start of 0 and bins [0,5), [5,10) etc. Dates behave similarly, and `start` should be a date string. For category data, `start` is based on the category serial numbers, and defaults to -0.5. ", + "description": "Sets the starting value for the x axis bins. Defaults to the minimum data value, shifted down if necessary to make nice round values and to remove ambiguous bin edges. For example, if most of the data is integers we shift the bin edges 0.5 down, so a `size` of 5 would have a default `start` of -0.5, so it is clear that 0-4 are in the first bin, 5-9 in the second, but continuous data gets a start of 0 and bins [0,5), [5,10) etc. Dates behave similarly, and `start` should be a date string. For category data, `start` is based on the category serial numbers, and defaults to -0.5. If multiple non-overlaying histograms share a subplot, the first explicit `start` is used exactly and all others are shifted down (if necessary) to differ from that one by an integer number of bins.", "editType": "calc", "valType": "any" } @@ -46263,12 +45958,6 @@ "editType": "calc+clearAxisTypes", "valType": "subplotid" }, - "ybingroup": { - "description": "Set a group of histogram traces which will have compatible y-bin settings. Using `ybingroup`, histogram2d and histogram2dcontour traces (on axes of the same axis type) can have compatible y-bin settings. Note that the same `ybingroup` value can be used to set (1D) histogram `bingroup`", - "dflt": "", - "editType": "calc", - "valType": "string" - }, "ybins": { "editType": "calc", "end": { @@ -46278,12 +45967,12 @@ }, "role": "object", "size": { - "description": "Sets the size of each y axis bin. Default behavior: If `nbinsy` is 0 or omitted, we choose a nice round bin size such that the number of bins is about the same as the typical number of samples in each bin. If `nbinsy` is provided, we choose a nice round bin size giving no more than that many bins. For date data, use milliseconds or *M* for months, as in `axis.dtick`. For category data, the number of categories to bin together (always defaults to 1). ", + "description": "Sets the size of each y axis bin. Default behavior: If `nbinsy` is 0 or omitted, we choose a nice round bin size such that the number of bins is about the same as the typical number of samples in each bin. If `nbinsy` is provided, we choose a nice round bin size giving no more than that many bins. For date data, use milliseconds or *M* for months, as in `axis.dtick`. For category data, the number of categories to bin together (always defaults to 1). If multiple non-overlaying histograms share a subplot, the first explicit `size` is used and all others discarded. If no `size` is provided,the sample data from all traces is combined to determine `size` as described above.", "editType": "calc", "valType": "any" }, "start": { - "description": "Sets the starting value for the y axis bins. Defaults to the minimum data value, shifted down if necessary to make nice round values and to remove ambiguous bin edges. For example, if most of the data is integers we shift the bin edges 0.5 down, so a `size` of 5 would have a default `start` of -0.5, so it is clear that 0-4 are in the first bin, 5-9 in the second, but continuous data gets a start of 0 and bins [0,5), [5,10) etc. Dates behave similarly, and `start` should be a date string. For category data, `start` is based on the category serial numbers, and defaults to -0.5. ", + "description": "Sets the starting value for the y axis bins. Defaults to the minimum data value, shifted down if necessary to make nice round values and to remove ambiguous bin edges. For example, if most of the data is integers we shift the bin edges 0.5 down, so a `size` of 5 would have a default `start` of -0.5, so it is clear that 0-4 are in the first bin, 5-9 in the second, but continuous data gets a start of 0 and bins [0,5), [5,10) etc. Dates behave similarly, and `start` should be a date string. For category data, `start` is based on the category serial numbers, and defaults to -0.5. If multiple non-overlaying histograms share a subplot, the first explicit `start` is used exactly and all others are shifted down (if necessary) to differ from that one by an integer number of bins.", "editType": "calc", "valType": "any" } @@ -46323,609 +46012,413 @@ "editType": "none", "valType": "string" }, - "z": { - "description": "Sets the aggregation data.", - "editType": "calc", - "valType": "data_array" - }, - "zauto": { - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `z`) or the bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user.", - "dflt": true, + "zorder": { + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", + "dflt": 0, + "editType": "plot", + "valType": "integer" + } + }, + "categories": [ + "bar-like", + "cartesian", + "svg", + "bar", + "histogram", + "oriented", + "errorBarsOK", + "showLegend" + ], + "layoutAttributes": { + "barcornerradius": { + "description": "Sets the rounding of bar corners. May be an integer number of pixels, or a percentage of bar width (as a string ending in %).", "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" - }, - "zhoverformat": { - "description": "Sets the hover text formatting rulefor `z` 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.By default the values are formatted using generic number format.", - "dflt": "", - "editType": "none", - "valType": "string" + "valType": "any" }, - "zmax": { - "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well.", - "dflt": null, + "bargap": { + "description": "Sets the gap (in plot fraction) between bars of adjacent location coordinates.", "editType": "calc", - "impliedEdits": { - "zauto": false - }, + "max": 1, + "min": 0, "valType": "number" }, - "zmid": { - "description": "Sets the mid-point of the color domain by scaling `zmin` and/or `zmax` to be equidistant to this point. Value should have the same units as in `z`. Has no effect when `zauto` is `false`.", - "dflt": null, + "bargroupgap": { + "description": "Sets the gap (in plot fraction) between bars of the same location coordinate.", + "dflt": 0, "editType": "calc", - "impliedEdits": {}, + "max": 1, + "min": 0, "valType": "number" }, - "zmin": { - "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well.", - "dflt": null, + "barmode": { + "description": "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 *relative*, the bars are stacked on top of one another, with negative values below the axis, positive values above With *group*, the bars are plotted next to one another centered around the shared location. With *overlay*, the bars are plotted over one another, you might need to reduce *opacity* to see multiple bars.", + "dflt": "group", "editType": "calc", - "impliedEdits": { - "zauto": false - }, - "valType": "number" + "valType": "enumerated", + "values": [ + "stack", + "group", + "overlay", + "relative" + ] }, - "zsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `z`.", - "editType": "none", - "valType": "string" + "barnorm": { + "description": "Sets the normalization for bar traces on the graph. With *fraction*, the value of each bar is divided by the sum of all values at that location coordinate. *percent* is the same but multiplied by 100 to show percentages.", + "dflt": "", + "editType": "calc", + "valType": "enumerated", + "values": [ + "", + "fraction", + "percent" + ] } }, - "categories": [ - "cartesian", - "svg", - "2dMap", - "contour", - "histogram", - "showLegend" - ], "meta": { - "description": "The sample data from which statistics are computed is set in `x` and `y` (where `x` and `y` represent marginal distributions, binning is set in `xbins` and `ybins` in this case) or `z` (where `z` represent the 2D distribution and binning set, binning is set by `x` and `y` in this case). The resulting distribution is visualized as a contour plot.", - "hrName": "histogram_2d_contour" + "description": "The sample data from which statistics are computed is set in `x` for vertically spanning histograms and in `y` for horizontally spanning histograms. Binning options are set `xbins` and `ybins` respectively if no aggregation data is provided." }, - "type": "histogram2dcontour" + "type": "histogram" }, - "icicle": { - "animatable": true, + "histogram2d": { + "animatable": false, "attributes": { - "branchvalues": { - "description": "Determines how the items in `values` are summed. When set to *total*, items in `values` are taken to be value of all its descendants. When set to *remainder*, items in `values` corresponding to the root and the branches sectors are taken to be the extra part not part of the sum of the values at their leaves.", - "dflt": "remainder", + "autobinx": { + "description": "Obsolete: since v1.42 each bin attribute is auto-determined separately and `autobinx` is not needed. However, we accept `autobinx: true` or `false` and will update `xbins` accordingly before deleting `autobinx` from the trace.", + "dflt": null, "editType": "calc", - "valType": "enumerated", - "values": [ - "remainder", - "total" - ] + "valType": "boolean" }, - "count": { - "description": "Determines default for `values` when it is not provided, by inferring a 1 for each of the *leaves* and/or *branches*, otherwise 0.", - "dflt": "leaves", + "autobiny": { + "description": "Obsolete: since v1.42 each bin attribute is auto-determined separately and `autobiny` is not needed. However, we accept `autobiny: true` or `false` and will update `ybins` accordingly before deleting `autobiny` from the trace.", + "dflt": null, "editType": "calc", - "flags": [ - "branches", - "leaves" - ], - "valType": "flaglist" + "valType": "boolean" }, - "customdata": { - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", + "autocolorscale": { + "description": "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.", + "dflt": false, "editType": "calc", - "valType": "data_array" + "impliedEdits": {}, + "valType": "boolean" }, - "customdatasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", - "editType": "none", + "bingroup": { + "description": "Set the `xbingroup` and `ybingroup` default prefix For example, setting a `bingroup` of *1* on two histogram2d traces will make them their x-bins and y-bins match separately.", + "dflt": "", + "editType": "calc", "valType": "string" }, - "domain": { - "column": { - "description": "If there is a layout grid, use the domain for this column in the grid for this icicle trace .", + "coloraxis": { + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", + "dflt": null, + "editType": "calc", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "valType": "subplotid" + }, + "colorbar": { + "_deprecated": { + "title": { + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars", + "valType": "string" + }, + "titlefont": { + "color": { + "editType": "colorbars", + "valType": "color" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "valType": "string" + }, + "size": { + "editType": "colorbars", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "colorbars", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "titleside": { + "description": "Deprecated in favor of color bar's `title.side`.", + "dflt": "top", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ] + } + }, + "bgcolor": { + "description": "Sets the color of padded area.", + "dflt": "rgba(0,0,0,0)", + "editType": "colorbars", + "valType": "color" + }, + "bordercolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" + }, + "borderwidth": { + "description": "Sets the width (in px) or the border enclosing this color bar.", "dflt": 0, - "editType": "calc", + "editType": "colorbars", "min": 0, - "valType": "integer" + "valType": "number" }, - "editType": "calc", - "role": "object", - "row": { - "description": "If there is a layout grid, use the domain for this row in the grid for this icicle trace .", + "dtick": { + "description": "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*, 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* 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*", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" + }, + "editType": "colorbars", + "exponentformat": { + "description": "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.", + "dflt": "B", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ] + }, + "labelalias": { + "description": "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.", + "dflt": false, + "editType": "colorbars", + "valType": "any" + }, + "len": { + "description": "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.", + "dflt": 1, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "lenmode": { + "description": "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.", + "dflt": "fraction", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] + }, + "minexponent": { + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", + "dflt": 3, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "nticks": { + "description": "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*.", "dflt": 0, - "editType": "calc", + "editType": "colorbars", "min": 0, "valType": "integer" }, - "x": { - "description": "Sets the horizontal domain of this icicle trace (in plot fraction).", - "dflt": [ - 0, - 1 - ], - "editType": "calc", - "items": [ - { - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - { - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - } - ], - "valType": "info_array" - }, - "y": { - "description": "Sets the vertical domain of this icicle trace (in plot fraction).", - "dflt": [ - 0, - 1 - ], - "editType": "calc", - "items": [ - { - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - { - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - } - ], - "valType": "info_array" - } - }, - "hoverinfo": { - "arrayOk": true, - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", - "dflt": "label+text+value+name", - "editType": "none", - "extras": [ - "all", - "none", - "skip" - ], - "flags": [ - "label", - "text", - "value", - "name", - "current path", - "percent root", - "percent entry", - "percent parent" - ], - "valType": "flaglist" - }, - "hoverinfosrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", - "editType": "none", - "valType": "string" - }, - "hoverlabel": { - "align": { - "arrayOk": true, - "description": "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", - "dflt": "auto", - "editType": "none", + "orientation": { + "description": "Sets the orientation of the colorbar.", + "dflt": "v", + "editType": "colorbars", "valType": "enumerated", "values": [ - "left", - "right", - "auto" + "h", + "v" ] }, - "alignsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `align`.", - "editType": "none", - "valType": "string" - }, - "bgcolor": { - "arrayOk": true, - "description": "Sets the background color of the hover labels for this trace", - "editType": "none", + "outlinecolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "colorbars", "valType": "color" }, - "bgcolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", - "editType": "none", - "valType": "string" + "outlinewidth": { + "description": "Sets the width (in px) of the axis line.", + "dflt": 1, + "editType": "colorbars", + "min": 0, + "valType": "number" }, - "bordercolor": { - "arrayOk": true, - "description": "Sets the border color of the hover labels for this trace.", - "editType": "none", - "valType": "color" + "role": "object", + "separatethousands": { + "description": "If \"true\", even 4-digit integers are separated", + "dflt": false, + "editType": "colorbars", + "valType": "boolean" }, - "bordercolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", - "editType": "none", - "valType": "string" + "showexponent": { + "description": "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.", + "dflt": "all", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] }, - "editType": "none", - "font": { - "color": { - "arrayOk": true, - "editType": "none", - "valType": "color" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "description": "Sets the font used in hover labels.", - "editType": "none", - "family": { - "arrayOk": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "none", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" - }, - "lineposition": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "none", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", - "valType": "string" - }, - "role": "object", - "shadow": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "none", - "valType": "string" - }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", - "editType": "none", - "valType": "string" - }, - "size": { - "arrayOk": true, - "editType": "none", - "min": 1, - "valType": "number" - }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" - }, - "style": { - "arrayOk": true, - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "none", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" - }, - "textcase": { - "arrayOk": true, - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "none", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" - }, - "variant": { - "arrayOk": true, - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "none", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" - }, - "weight": { - "arrayOk": true, - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "none", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", - "valType": "string" - } - }, - "namelength": { - "arrayOk": true, - "description": "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.", - "dflt": 15, - "editType": "none", - "min": -1, - "valType": "integer" - }, - "namelengthsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", - "editType": "none", - "valType": "string" - }, - "role": "object" - }, - "hovertemplate": { - "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `currentPath`, `root`, `entry`, `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "dflt": "", - "editType": "none", - "valType": "string" - }, - "hovertemplatesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", - "editType": "none", - "valType": "string" - }, - "hovertext": { - "arrayOk": true, - "description": "Sets hover text elements associated with each sector. If a single string, the same string appears for all data points. If an array of string, the items are mapped in order of this trace's sectors. To be seen, trace `hoverinfo` must contain a *text* flag.", - "dflt": "", - "editType": "style", - "valType": "string" - }, - "hovertextsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hovertext`.", - "editType": "none", - "valType": "string" - }, - "ids": { - "anim": true, - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "editType": "calc", - "valType": "data_array" - }, - "idssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ids`.", - "editType": "none", - "valType": "string" - }, - "insidetextfont": { - "color": { - "arrayOk": true, - "editType": "plot", - "valType": "color" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "description": "Sets the font used for `textinfo` lying inside the sector.", - "editType": "plot", - "family": { - "arrayOk": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "plot", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" - }, - "lineposition": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "plot", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", - "valType": "string" - }, - "role": "object", - "shadow": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "plot", - "valType": "string" - }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", - "editType": "none", - "valType": "string" - }, - "size": { - "arrayOk": true, - "editType": "plot", - "min": 1, - "valType": "number" - }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" + "showticklabels": { + "description": "Determines whether or not the tick labels are drawn.", + "dflt": true, + "editType": "colorbars", + "valType": "boolean" }, - "style": { - "arrayOk": true, - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "plot", + "showtickprefix": { + "description": "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.", + "dflt": "all", + "editType": "colorbars", "valType": "enumerated", "values": [ - "normal", - "italic" + "all", + "first", + "last", + "none" ] }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" - }, - "textcase": { - "arrayOk": true, - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "plot", + "showticksuffix": { + "description": "Same as `showtickprefix` but for tick suffixes.", + "dflt": "all", + "editType": "colorbars", "valType": "enumerated", "values": [ - "normal", - "word caps", - "upper", - "lower" + "all", + "first", + "last", + "none" ] }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" + "thickness": { + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "dflt": 30, + "editType": "colorbars", + "min": 0, + "valType": "number" }, - "variant": { - "arrayOk": true, - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "plot", + "thicknessmode": { + "description": "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.", + "dflt": "pixels", + "editType": "colorbars", "valType": "enumerated", "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" + "fraction", + "pixels" ] }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" + "tick0": { + "description": "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* (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.", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" }, - "weight": { - "arrayOk": true, - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "plot", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" + "tickangle": { + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", + "dflt": "auto", + "editType": "colorbars", + "valType": "angle" }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", - "valType": "string" - } - }, - "labels": { - "description": "Sets the labels of each of the sectors.", - "editType": "calc", - "valType": "data_array" - }, - "labelssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `labels`.", - "editType": "none", - "valType": "string" - }, - "leaf": { - "editType": "plot", - "opacity": { - "description": "Sets the opacity of the leaves. With colorscale it is defaulted to 1; otherwise it is defaulted to 0.7", - "editType": "style", - "max": 1, - "min": 0, - "valType": "number" + "tickcolor": { + "description": "Sets the tick color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" }, - "role": "object" - }, - "legend": { - "description": "Sets the reference to a legend to show this trace 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.", - "dflt": "legend", - "editType": "style", - "valType": "subplotid" - }, - "legendgrouptitle": { - "editType": "style", - "font": { + "tickfont": { "color": { - "editType": "style", + "editType": "colorbars", "valType": "color" }, - "description": "Sets this legend group's title font.", - "editType": "style", + "description": "Sets the color bar's tick label font", + "editType": "colorbars", "family": { "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "style", + "editType": "colorbars", "noBlank": true, "strict": true, "valType": "string" @@ -46933,7 +46426,7 @@ "lineposition": { "description": "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.", "dflt": "none", - "editType": "style", + "editType": "colorbars", "extras": [ "none" ], @@ -46948,18 +46441,18 @@ "shadow": { "description": "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.", "dflt": "none", - "editType": "style", + "editType": "colorbars", "valType": "string" }, "size": { - "editType": "style", + "editType": "colorbars", "min": 1, "valType": "number" }, "style": { "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "style", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -46969,7 +46462,7 @@ "textcase": { "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "style", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -46981,7 +46474,7 @@ "variant": { "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "style", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -46995,7 +46488,7 @@ "weight": { "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "style", + "editType": "colorbars", "extras": [ "normal", "bold" @@ -47005,380 +46498,169 @@ "valType": "integer" } }, - "role": "object", - "text": { - "description": "Sets the title of the legend group.", + "tickformat": { + "description": "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*", "dflt": "", - "editType": "style", + "editType": "colorbars", "valType": "string" - } - }, - "legendrank": { - "description": "Sets the legend rank for this trace. 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.", - "dflt": 1000, - "editType": "style", - "valType": "number" - }, - "legendwidth": { - "description": "Sets the width (in px or fraction) of the legend for this trace.", - "editType": "style", - "min": 0, - "valType": "number" - }, - "level": { - "anim": true, - "description": "Sets the level from which this trace hierarchy is rendered. Set `level` to `''` to start from the root node in the hierarchy. Must be an \"id\" if `ids` is filled in, otherwise plotly attempts to find a matching item in `labels`.", - "editType": "plot", - "valType": "any" - }, - "marker": { - "autocolorscale": { - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if colors is set to a numerical array. 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.", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" - }, - "cauto": { - "description": "Determines whether or not the color domain is computed with respect to the input data (here colors) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if colors is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user.", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" - }, - "cmax": { - "description": "Sets the upper bound of the color domain. Has an effect only if colors is set to a numerical array. Value should have the same units as colors and if set, `marker.cmin` must be set as well.", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "valType": "number" - }, - "cmid": { - "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if colors is set to a numerical array. Value should have the same units as colors. Has no effect when `marker.cauto` is `false`.", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "valType": "number" - }, - "cmin": { - "description": "Sets the lower bound of the color domain. Has an effect only if colors is set to a numerical array. Value should have the same units as colors and if set, `marker.cmax` must be set as well.", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "valType": "number" - }, - "coloraxis": { - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", - "dflt": null, - "editType": "calc", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "valType": "subplotid" }, - "colorbar": { - "_deprecated": { - "title": { - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars", - "valType": "string" - }, - "titlefont": { - "color": { + "tickformatstops": { + "items": { + "tickformatstop": { + "dtickrange": { + "description": "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*", "editType": "colorbars", - "valType": "color" + "items": [ + { + "editType": "colorbars", + "valType": "any" + }, + { + "editType": "colorbars", + "valType": "any" + } + ], + "valType": "info_array" }, - "description": "Deprecated in favor of color bar's `title.font`.", "editType": "colorbars", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "enabled": { + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", + "dflt": true, "editType": "colorbars", - "noBlank": true, - "strict": true, - "valType": "string" + "valType": "boolean" }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "shadow": { - "description": "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.", - "dflt": "none", + "name": { + "description": "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.", "editType": "colorbars", "valType": "string" }, - "size": { - "editType": "colorbars", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", + "role": "object", + "templateitemname": { + "description": "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`.", "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] + "valType": "string" }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", + "value": { + "description": "string - dtickformat for described zoom level, the same as *tickformat*", + "dflt": "", "editType": "colorbars", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" + "valType": "string" } - }, - "titleside": { - "description": "Deprecated in favor of color bar's `title.side`.", - "dflt": "top", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ] } }, - "bgcolor": { - "description": "Sets the color of padded area.", - "dflt": "rgba(0,0,0,0)", - "editType": "colorbars", - "valType": "color" - }, - "bordercolor": { - "description": "Sets the axis line color.", - "dflt": "#444", - "editType": "colorbars", - "valType": "color" - }, - "borderwidth": { - "description": "Sets the width (in px) or the border enclosing this color bar.", - "dflt": 0, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "dtick": { - "description": "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*, 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* 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*", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "valType": "any" - }, + "role": "object" + }, + "ticklabeloverflow": { + "description": "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*.", "editType": "colorbars", - "exponentformat": { - "description": "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.", - "dflt": "B", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ] - }, - "labelalias": { - "description": "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.", - "dflt": false, - "editType": "colorbars", - "valType": "any" - }, - "len": { - "description": "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.", - "dflt": 1, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "lenmode": { - "description": "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.", - "dflt": "fraction", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ] - }, - "minexponent": { - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", - "dflt": 3, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "nticks": { - "description": "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*.", - "dflt": 0, - "editType": "colorbars", - "min": 0, - "valType": "integer" - }, - "orientation": { - "description": "Sets the orientation of the colorbar.", - "dflt": "v", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "h", - "v" - ] - }, - "outlinecolor": { - "description": "Sets the axis line color.", - "dflt": "#444", - "editType": "colorbars", - "valType": "color" - }, - "outlinewidth": { - "description": "Sets the width (in px) of the axis line.", - "dflt": 1, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "role": "object", - "separatethousands": { - "description": "If \"true\", even 4-digit integers are separated", - "dflt": false, - "editType": "colorbars", - "valType": "boolean" - }, - "showexponent": { - "description": "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.", - "dflt": "all", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] - }, - "showticklabels": { - "description": "Determines whether or not the tick labels are drawn.", - "dflt": true, - "editType": "colorbars", - "valType": "boolean" - }, - "showtickprefix": { - "description": "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.", - "dflt": "all", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] - }, - "showticksuffix": { - "description": "Same as `showtickprefix` but for tick suffixes.", - "dflt": "all", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] - }, - "thickness": { - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "dflt": 30, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "thicknessmode": { - "description": "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.", - "dflt": "pixels", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ] - }, - "tick0": { - "description": "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* (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.", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "valType": "any" - }, - "tickangle": { - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", - "dflt": "auto", - "editType": "colorbars", - "valType": "angle" - }, - "tickcolor": { - "description": "Sets the tick color.", - "dflt": "#444", - "editType": "colorbars", - "valType": "color" - }, - "tickfont": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ] + }, + "ticklabelposition": { + "description": "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*.", + "dflt": "outside", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside left", + "inside left", + "outside right", + "inside right", + "outside bottom", + "inside bottom" + ] + }, + "ticklabelstep": { + "description": "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*.", + "dflt": 1, + "editType": "colorbars", + "min": 1, + "valType": "integer" + }, + "ticklen": { + "description": "Sets the tick length (in px).", + "dflt": 5, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "tickmode": { + "description": "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).", + "editType": "colorbars", + "impliedEdits": {}, + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ] + }, + "tickprefix": { + "description": "Sets a tick label prefix.", + "dflt": "", + "editType": "colorbars", + "valType": "string" + }, + "ticks": { + "description": "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.", + "dflt": "", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ] + }, + "ticksuffix": { + "description": "Sets a tick label suffix.", + "dflt": "", + "editType": "colorbars", + "valType": "string" + }, + "ticktext": { + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", + "editType": "colorbars", + "valType": "data_array" + }, + "ticktextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", + "editType": "none", + "valType": "string" + }, + "tickvals": { + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", + "editType": "colorbars", + "valType": "data_array" + }, + "tickvalssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", + "editType": "none", + "valType": "string" + }, + "tickwidth": { + "description": "Sets the tick width (in px).", + "dflt": 1, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "title": { + "editType": "colorbars", + "font": { "color": { "editType": "colorbars", "valType": "color" }, - "description": "Sets the color bar's tick label font", + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", "editType": "colorbars", "family": { "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", @@ -47462,360 +46744,202 @@ "valType": "integer" } }, - "tickformat": { - "description": "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*", - "dflt": "", - "editType": "colorbars", - "valType": "string" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "dtickrange": { - "description": "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*", - "editType": "colorbars", - "items": [ - { - "editType": "colorbars", - "valType": "any" - }, - { - "editType": "colorbars", - "valType": "any" - } - ], - "valType": "info_array" - }, - "editType": "colorbars", - "enabled": { - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", - "dflt": true, - "editType": "colorbars", - "valType": "boolean" - }, - "name": { - "description": "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.", - "editType": "colorbars", - "valType": "string" - }, - "role": "object", - "templateitemname": { - "description": "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`.", - "editType": "colorbars", - "valType": "string" - }, - "value": { - "description": "string - dtickformat for described zoom level, the same as *tickformat*", - "dflt": "", - "editType": "colorbars", - "valType": "string" - } - } - }, - "role": "object" - }, - "ticklabeloverflow": { - "description": "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*.", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "allow", - "hide past div", - "hide past domain" - ] - }, - "ticklabelposition": { - "description": "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*.", - "dflt": "outside", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside left", - "inside left", - "outside right", - "inside right", - "outside bottom", - "inside bottom" - ] - }, - "ticklabelstep": { - "description": "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*.", - "dflt": 1, - "editType": "colorbars", - "min": 1, - "valType": "integer" - }, - "ticklen": { - "description": "Sets the tick length (in px).", - "dflt": 5, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "tickmode": { - "description": "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).", - "editType": "colorbars", - "impliedEdits": {}, - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ] - }, - "tickprefix": { - "description": "Sets a tick label prefix.", - "dflt": "", - "editType": "colorbars", - "valType": "string" - }, - "ticks": { - "description": "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.", - "dflt": "", + "role": "object", + "side": { + "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", "editType": "colorbars", "valType": "enumerated", "values": [ - "outside", - "inside", - "" + "right", + "top", + "bottom" ] }, - "ticksuffix": { - "description": "Sets a tick label suffix.", - "dflt": "", + "text": { + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", "editType": "colorbars", "valType": "string" - }, - "ticktext": { - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "editType": "colorbars", - "valType": "data_array" - }, - "ticktextsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", - "editType": "none", - "valType": "string" - }, - "tickvals": { - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "editType": "colorbars", - "valType": "data_array" - }, - "tickvalssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", - "editType": "none", - "valType": "string" - }, - "tickwidth": { - "description": "Sets the tick width (in px).", - "dflt": 1, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "title": { - "editType": "colorbars", - "font": { - "color": { - "editType": "colorbars", - "valType": "color" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "valType": "string" - }, - "size": { - "editType": "colorbars", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "colorbars", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "role": "object", - "side": { - "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ] - }, - "text": { - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars", - "valType": "string" - } - }, - "x": { - "description": "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*.", - "editType": "colorbars", - "valType": "number" - }, - "xanchor": { - "description": "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*.", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ] - }, - "xpad": { - "description": "Sets the amount of padding (in px) along the x direction.", - "dflt": 10, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "xref": { - "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", - "dflt": "paper", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "container", - "paper" - ] - }, - "y": { - "description": "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*.", - "editType": "colorbars", - "valType": "number" - }, - "yanchor": { - "description": "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*.", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ] - }, - "ypad": { - "description": "Sets the amount of padding (in px) along the y direction.", - "dflt": 10, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "yref": { - "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", - "dflt": "paper", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "container", - "paper" - ] } }, - "colors": { - "description": "Sets the color of each sector of this trace. If not specified, the default trace color set is used to pick the sector colors.", - "editType": "calc", - "valType": "data_array" + "x": { + "description": "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*.", + "editType": "colorbars", + "valType": "number" }, - "colorscale": { - "description": "Sets the colorscale. Has an effect only if colors is set to a numerical array. 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 `marker.cmin` and `marker.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.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "autocolorscale": false - }, - "valType": "colorscale" + "xanchor": { + "description": "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*.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ] }, - "colorssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `colors`.", + "xpad": { + "description": "Sets the amount of padding (in px) along the x direction.", + "dflt": 10, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, + "y": { + "description": "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*.", + "editType": "colorbars", + "valType": "number" + }, + "yanchor": { + "description": "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*.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ] + }, + "ypad": { + "description": "Sets the amount of padding (in px) along the y direction.", + "dflt": 10, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + } + }, + "colorscale": { + "description": "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 `zmin` and `zmax`. 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.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "autocolorscale": false + }, + "valType": "colorscale" + }, + "customdata": { + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", + "editType": "calc", + "valType": "data_array" + }, + "customdatasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", + "editType": "none", + "valType": "string" + }, + "histfunc": { + "description": "Specifies the binning function used for this histogram trace. If *count*, the histogram values are computed by counting the number of values lying inside each bin. If *sum*, *avg*, *min*, *max*, the histogram values are computed using the sum, the average, the minimum or the maximum of the values lying inside each bin respectively.", + "dflt": "count", + "editType": "calc", + "valType": "enumerated", + "values": [ + "count", + "sum", + "avg", + "min", + "max" + ] + }, + "histnorm": { + "description": "Specifies the type of normalization used for this histogram trace. If **, the span of each bar corresponds to the number of occurrences (i.e. the number of data points lying inside the bins). If *percent* / *probability*, the span of each bar corresponds to the percentage / fraction of occurrences with respect to the total number of sample points (here, the sum of all bin HEIGHTS equals 100% / 1). If *density*, the span of each bar corresponds to the number of occurrences in a bin divided by the size of the bin interval (here, the sum of all bin AREAS equals the total number of sample points). If *probability density*, the area of each bar corresponds to the probability that an event will fall into the corresponding bin (here, the sum of all bin AREAS equals 1).", + "dflt": "", + "editType": "calc", + "valType": "enumerated", + "values": [ + "", + "percent", + "probability", + "density", + "probability density" + ] + }, + "hoverinfo": { + "arrayOk": true, + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", + "dflt": "all", + "editType": "none", + "extras": [ + "all", + "none", + "skip" + ], + "flags": [ + "x", + "y", + "z", + "text", + "name" + ], + "valType": "flaglist" + }, + "hoverinfosrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", + "editType": "none", + "valType": "string" + }, + "hoverlabel": { + "align": { + "arrayOk": true, + "description": "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", + "dflt": "auto", + "editType": "none", + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ] + }, + "alignsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `align`.", "editType": "none", "valType": "string" }, - "editType": "calc", - "line": { + "bgcolor": { + "arrayOk": true, + "description": "Sets the background color of the hover labels for this trace", + "editType": "none", + "valType": "color" + }, + "bgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", + "editType": "none", + "valType": "string" + }, + "bordercolor": { + "arrayOk": true, + "description": "Sets the border color of the hover labels for this trace.", + "editType": "none", + "valType": "color" + }, + "bordercolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", + "editType": "none", + "valType": "string" + }, + "editType": "none", + "font": { "color": { "arrayOk": true, - "description": "Sets the color of the line enclosing each sector. Defaults to the `paper_bgcolor` value.", - "dflt": null, - "editType": "style", + "editType": "none", "valType": "color" }, "colorsrc": { @@ -47823,93 +46947,58 @@ "editType": "none", "valType": "string" }, - "editType": "calc", - "role": "object", - "width": { + "description": "Sets the font used in hover labels.", + "editType": "none", + "family": { "arrayOk": true, - "description": "Sets the width (in px) of the line enclosing each sector.", - "dflt": 1, - "editType": "style", - "min": 0, - "valType": "number" - }, - "widthsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `width`.", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", "editType": "none", + "noBlank": true, + "strict": true, "valType": "string" - } - }, - "pattern": { - "bgcolor": { - "arrayOk": true, - "description": "When there is no colorscale sets the color of background pattern fill. Defaults to a `marker.color` background when `fillmode` is *overlay*. Otherwise, defaults to a transparent background.", - "editType": "style", - "valType": "color" }, - "bgcolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", "editType": "none", "valType": "string" }, - "description": "Sets the pattern within the marker.", - "editType": "style", - "fgcolor": { + "lineposition": { "arrayOk": true, - "description": "When there is no colorscale sets the color of foreground pattern fill. Defaults to a `marker.color` background when `fillmode` is *replace*. Otherwise, defaults to dark grey or white to increase contrast with the `bgcolor`.", - "editType": "style", - "valType": "color" + "description": "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.", + "dflt": "none", + "editType": "none", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" }, - "fgcolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `fgcolor`.", + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", "editType": "none", "valType": "string" }, - "fgopacity": { - "description": "Sets the opacity of the foreground pattern fill. Defaults to a 0.5 when `fillmode` is *overlay*. Otherwise, defaults to 1.", - "editType": "style", - "max": 1, - "min": 0, - "valType": "number" - }, - "fillmode": { - "description": "Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`.", - "dflt": "replace", - "editType": "style", - "valType": "enumerated", - "values": [ - "replace", - "overlay" - ] - }, "role": "object", - "shape": { + "shadow": { "arrayOk": true, - "description": "Sets the shape of the pattern fill. By default, no pattern is used for filling the area.", - "dflt": "", - "editType": "style", - "valType": "enumerated", - "values": [ - "", - "/", - "\\", - "x", - "-", - "|", - "+", - "." - ] + "description": "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.", + "dflt": "none", + "editType": "none", + "valType": "string" }, - "shapesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shape`.", + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", "editType": "none", "valType": "string" }, "size": { "arrayOk": true, - "description": "Sets the size of unit squares of the pattern fill in pixels, which corresponds to the interval of repetition of the pattern.", - "dflt": 8, - "editType": "style", - "min": 0, + "editType": "none", + "min": 1, "valType": "number" }, "sizesrc": { @@ -47917,275 +47006,148 @@ "editType": "none", "valType": "string" }, - "solidity": { + "style": { "arrayOk": true, - "description": "Sets the solidity of the pattern fill. Solidity is roughly the fraction of the area filled by the pattern. Solidity of 0 shows only the background color without pattern and solidty of 1 shows only the foreground color without pattern.", - "dflt": 0.3, - "editType": "style", - "max": 1, - "min": 0, - "valType": "number" + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "none", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] }, - "soliditysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `solidity`.", + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", "editType": "none", "valType": "string" - } - }, - "reversescale": { - "description": "Reverses the color mapping if true. Has an effect only if colors is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color.", - "dflt": false, - "editType": "plot", - "valType": "boolean" - }, - "role": "object", - "showscale": { - "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if colors is set to a numerical array.", - "dflt": false, - "editType": "calc", - "valType": "boolean" - } - }, - "maxdepth": { - "description": "Sets the number of rendered sectors from any given `level`. Set `maxdepth` to *-1* to render all the levels in the hierarchy.", - "dflt": -1, - "editType": "plot", - "valType": "integer" - }, - "meta": { - "arrayOk": true, - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", - "editType": "plot", - "valType": "any" - }, - "metasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `meta`.", - "editType": "none", - "valType": "string" - }, - "name": { - "description": "Sets the trace name. The trace name appears as the legend item and on hover.", - "editType": "style", - "valType": "string" - }, - "opacity": { - "description": "Sets the opacity of the trace.", - "dflt": 1, - "editType": "style", - "max": 1, - "min": 0, - "valType": "number" - }, - "outsidetextfont": { - "color": { - "arrayOk": true, - "editType": "plot", - "valType": "color" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "description": "Sets the font used for `textinfo` lying outside the sector. This option refers to the root of the hierarchy presented on top left corner of a treemap graph. Please note that if a hierarchy has multiple root nodes, this option won't have any effect and `insidetextfont` would be used.", - "editType": "plot", - "family": { - "arrayOk": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "plot", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" - }, - "lineposition": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "plot", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", - "valType": "string" - }, - "role": "object", - "shadow": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "plot", - "valType": "string" - }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", - "editType": "none", - "valType": "string" - }, - "size": { - "arrayOk": true, - "editType": "plot", - "min": 1, - "valType": "number" - }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" - }, - "style": { - "arrayOk": true, - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" - }, - "textcase": { - "arrayOk": true, - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" + }, + "textcase": { + "arrayOk": true, + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "none", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", + "valType": "string" + }, + "variant": { + "arrayOk": true, + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "none", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" + }, + "weight": { + "arrayOk": true, + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "none", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + }, + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" + } }, - "variant": { + "namelength": { "arrayOk": true, - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "description": "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.", + "dflt": 15, "editType": "none", - "valType": "string" - }, - "weight": { - "arrayOk": true, - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "plot", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, + "min": -1, "valType": "integer" }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "namelengthsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", "editType": "none", "valType": "string" - } + }, + "role": "object" }, - "parents": { - "description": "Sets the parent sectors for each of the sectors. Empty string items '' are understood to reference the root node in the hierarchy. If `ids` is filled, `parents` items are understood to be \"ids\" themselves. When `ids` is not set, plotly attempts to find matching items in `labels`, but beware they must be unique.", + "hovertemplate": { + "arrayOk": true, + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "dflt": "", + "editType": "none", + "valType": "string" + }, + "hovertemplatesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", + "editType": "none", + "valType": "string" + }, + "ids": { + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", "editType": "calc", "valType": "data_array" }, - "parentssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `parents`.", + "idssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ids`.", "editType": "none", "valType": "string" }, - "pathbar": { - "edgeshape": { - "description": "Determines which shape is used for edges between `barpath` labels.", - "dflt": ">", - "editType": "plot", - "valType": "enumerated", - "values": [ - ">", - "<", - "|", - "/", - "\\" - ] - }, - "editType": "calc", - "role": "object", - "side": { - "description": "Determines on which side of the the treemap the `pathbar` should be presented.", - "dflt": "top", - "editType": "plot", - "valType": "enumerated", - "values": [ - "top", - "bottom" - ] - }, - "textfont": { + "legend": { + "description": "Sets the reference to a legend to show this trace 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.", + "dflt": "legend", + "editType": "style", + "valType": "subplotid" + }, + "legendgroup": { + "description": "Sets the legend group for this trace. Traces and shapes part of the same legend group hide/show at the same time when toggling legend items.", + "dflt": "", + "editType": "style", + "valType": "string" + }, + "legendgrouptitle": { + "editType": "style", + "font": { "color": { - "arrayOk": true, - "editType": "plot", + "editType": "style", "valType": "color" }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "description": "Sets the font used inside `pathbar`.", - "editType": "plot", + "description": "Sets this legend group's title font.", + "editType": "style", "family": { - "arrayOk": true, "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "plot", + "editType": "style", "noBlank": true, "strict": true, "valType": "string" }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" - }, "lineposition": { - "arrayOk": true, "description": "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.", "dflt": "none", - "editType": "plot", + "editType": "style", "extras": [ "none" ], @@ -48196,56 +47158,32 @@ ], "valType": "flaglist" }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", - "valType": "string" - }, "role": "object", "shadow": { - "arrayOk": true, "description": "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.", "dflt": "none", - "editType": "plot", - "valType": "string" - }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", - "editType": "none", + "editType": "style", "valType": "string" }, "size": { - "arrayOk": true, - "editType": "plot", + "editType": "style", "min": 1, "valType": "number" }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" - }, "style": { - "arrayOk": true, "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "plot", + "editType": "style", "valType": "enumerated", "values": [ "normal", "italic" ] }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" - }, "textcase": { - "arrayOk": true, "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "plot", + "editType": "style", "valType": "enumerated", "values": [ "normal", @@ -48254,16 +47192,10 @@ "lower" ] }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" - }, "variant": { - "arrayOk": true, "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "plot", + "editType": "style", "valType": "enumerated", "values": [ "normal", @@ -48274,16 +47206,10 @@ "unicase" ] }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" - }, "weight": { - "arrayOk": true, "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "plot", + "editType": "style", "extras": [ "normal", "bold" @@ -48291,38 +47217,94 @@ "max": 1000, "min": 1, "valType": "integer" - }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", - "valType": "string" } }, - "thickness": { - "description": "Sets the thickness of `pathbar` (in px). If not specified the `pathbar.textfont.size` is used with 3 pixles extra padding on each side.", - "editType": "plot", - "min": 12, - "valType": "number" - }, - "visible": { - "description": "Determines if the path bar is drawn i.e. outside the trace `domain` and with one pixel gap.", - "dflt": true, - "editType": "plot", - "valType": "boolean" + "role": "object", + "text": { + "description": "Sets the title of the legend group.", + "dflt": "", + "editType": "style", + "valType": "string" } }, - "root": { + "legendrank": { + "description": "Sets the legend rank for this trace. 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.", + "dflt": 1000, + "editType": "style", + "valType": "number" + }, + "legendwidth": { + "description": "Sets the width (in px or fraction) of the legend for this trace.", + "editType": "style", + "min": 0, + "valType": "number" + }, + "marker": { "color": { - "description": "sets the color of the root node for a sunburst/treemap/icicle trace. this has no effect when a colorscale is used to set the markers.", - "dflt": "rgba(0,0,0,0)", + "description": "Sets the aggregation data.", "editType": "calc", - "valType": "color" + "valType": "data_array" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" }, "editType": "calc", "role": "object" }, - "sort": { - "description": "Determines whether or not the sectors are reordered from largest to smallest.", + "meta": { + "arrayOk": true, + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", + "editType": "plot", + "valType": "any" + }, + "metasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `meta`.", + "editType": "none", + "valType": "string" + }, + "name": { + "description": "Sets the trace name. The trace name appears as the legend item and on hover.", + "editType": "style", + "valType": "string" + }, + "nbinsx": { + "description": "Specifies the maximum number of desired bins. This value will be used in an algorithm that will decide the optimal bin size such that the histogram best visualizes the distribution of the data. Ignored if `xbins.size` is provided.", + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "integer" + }, + "nbinsy": { + "description": "Specifies the maximum number of desired bins. This value will be used in an algorithm that will decide the optimal bin size such that the histogram best visualizes the distribution of the data. Ignored if `ybins.size` is provided.", + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "integer" + }, + "opacity": { + "description": "Sets the opacity of the trace.", + "dflt": 1, + "editType": "style", + "max": 1, + "min": 0, + "valType": "number" + }, + "reversescale": { + "description": "Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color.", + "dflt": false, + "editType": "plot", + "valType": "boolean" + }, + "showlegend": { + "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", + "dflt": false, + "editType": "style", + "valType": "boolean" + }, + "showscale": { + "description": "Determines whether or not a colorbar is displayed for this trace.", "dflt": true, "editType": "calc", "valType": "boolean" @@ -48346,39 +47328,22 @@ "valType": "string" } }, - "text": { - "description": "Sets text elements associated with each sector. If trace `textinfo` contains a *text* flag, these elements will be seen on the chart. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", - "editType": "plot", - "valType": "data_array" - }, "textfont": { "color": { - "arrayOk": true, - "editType": "plot", + "dflt": "auto", + "editType": "style", "valType": "color" }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "description": "Sets the font used for `textinfo`.", + "description": "Sets the text font.", "editType": "plot", "family": { - "arrayOk": true, "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", "editType": "plot", "noBlank": true, "strict": true, "valType": "string" }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" - }, "lineposition": { - "arrayOk": true, "description": "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.", "dflt": "none", "editType": "plot", @@ -48392,37 +47357,20 @@ ], "valType": "flaglist" }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", - "valType": "string" - }, "role": "object", "shadow": { - "arrayOk": true, "description": "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.", "dflt": "none", "editType": "plot", "valType": "string" }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", - "editType": "none", - "valType": "string" - }, "size": { - "arrayOk": true, + "dflt": "auto", "editType": "plot", "min": 1, "valType": "number" }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" - }, "style": { - "arrayOk": true, "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", "editType": "plot", @@ -48432,13 +47380,7 @@ "italic" ] }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" - }, "textcase": { - "arrayOk": true, "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", "editType": "plot", @@ -48450,13 +47392,7 @@ "lower" ] }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" - }, "variant": { - "arrayOk": true, "description": "Sets the variant of the font.", "dflt": "normal", "editType": "plot", @@ -48470,13 +47406,7 @@ "unicase" ] }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" - }, "weight": { - "arrayOk": true, "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", "editType": "plot", @@ -48487,95 +47417,14 @@ "max": 1000, "min": 1, "valType": "integer" - }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", - "valType": "string" } }, - "textinfo": { - "description": "Determines which trace information appear on the graph.", - "editType": "plot", - "extras": [ - "none" - ], - "flags": [ - "label", - "text", - "value", - "current path", - "percent root", - "percent entry", - "percent parent" - ], - "valType": "flaglist" - }, - "textposition": { - "description": "Sets the positions of the `text` elements.", - "dflt": "top left", - "editType": "plot", - "valType": "enumerated", - "values": [ - "top left", - "top center", - "top right", - "middle left", - "middle center", - "middle right", - "bottom left", - "bottom center", - "bottom right" - ] - }, - "textsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `text`.", - "editType": "none", - "valType": "string" - }, "texttemplate": { - "arrayOk": true, - "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". 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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `currentPath`, `root`, `entry`, `percentRoot`, `percentEntry`, `percentParent`, `label` and `value`.", + "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". 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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `z`", "dflt": "", "editType": "plot", "valType": "string" }, - "texttemplatesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `texttemplate`.", - "editType": "none", - "valType": "string" - }, - "tiling": { - "editType": "calc", - "flip": { - "description": "Determines if the positions obtained from solver are flipped on each axis.", - "dflt": "", - "editType": "plot", - "flags": [ - "x", - "y" - ], - "valType": "flaglist" - }, - "orientation": { - "description": "When set in conjunction with `tiling.flip`, determines on which side the root nodes are drawn in the chart. If `tiling.orientation` is *v* and `tiling.flip` is **, the root nodes appear at the top. If `tiling.orientation` is *v* and `tiling.flip` is *y*, the root nodes appear at the bottom. If `tiling.orientation` is *h* and `tiling.flip` is **, the root nodes appear at the left. If `tiling.orientation` is *h* and `tiling.flip` is *x*, the root nodes appear at the right.", - "dflt": "h", - "editType": "plot", - "valType": "enumerated", - "values": [ - "v", - "h" - ] - }, - "pad": { - "description": "Sets the inner padding (in px).", - "dflt": 0, - "editType": "plot", - "min": 0, - "valType": "number" - }, - "role": "object" - }, "transforms": { "items": { "transform": { @@ -48586,9 +47435,8 @@ }, "role": "object" }, - "type": "icicle", + "type": "histogram2d", "uid": { - "anim": true, "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", "editType": "plot", "valType": "string" @@ -48598,16 +47446,6 @@ "editType": "none", "valType": "any" }, - "values": { - "description": "Sets the values associated with each of the sectors. Use with `branchvalues` to determine how the values are summed.", - "editType": "calc", - "valType": "data_array" - }, - "valuessrc": { - "description": "Sets the source reference on Chart Studio Cloud for `values`.", - "editType": "none", - "valType": "string" - }, "visible": { "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", "dflt": true, @@ -48618,338 +47456,583 @@ false, "legendonly" ] - } - }, - "categories": [], - "layoutAttributes": { - "extendiciclecolors": { - "description": "If `true`, the icicle slice colors (whether given by `iciclecolorway` or inherited from `colorway`) will be extended to three times its original length by first repeating every color 20% lighter then each color 20% darker. This is intended to reduce the likelihood of reusing the same color when you have many slices, but you can set `false` to disable. Colors provided in the trace, using `marker.colors`, are never extended.", - "dflt": true, + }, + "x": { + "description": "Sets the sample data to be binned on the x axis.", + "editType": "calc+clearAxisTypes", + "valType": "data_array" + }, + "xaxis": { + "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on.", + "dflt": "x", + "editType": "calc+clearAxisTypes", + "valType": "subplotid" + }, + "xbingroup": { + "description": "Set a group of histogram traces which will have compatible x-bin settings. Using `xbingroup`, histogram2d and histogram2dcontour traces (on axes of the same axis type) can have compatible x-bin settings. Note that the same `xbingroup` value can be used to set (1D) histogram `bingroup`", + "dflt": "", "editType": "calc", - "valType": "boolean" + "valType": "string" }, - "iciclecolorway": { - "description": "Sets the default icicle slice colors. Defaults to the main `colorway` used for trace colors. If you specify a new list here it can still be extended with lighter and darker colors, see `extendiciclecolors`.", + "xbins": { "editType": "calc", - "valType": "colorlist" - } - }, - "meta": { - "description": "Visualize hierarchal data from leaves (and/or outer branches) towards root with rectangles. The icicle sectors are determined by the entries in *labels* or *ids* and in *parents*." - }, - "type": "icicle" - }, - "image": { - "animatable": false, - "attributes": { - "colormodel": { - "description": "Color model used to map the numerical color components described in `z` into colors. If `source` is specified, this attribute will be set to `rgba256` otherwise it defaults to `rgb`.", + "end": { + "description": "Sets the end value for the x axis bins. The last bin may not end exactly at this value, we increment the bin edge by `size` from `start` until we reach or exceed `end`. Defaults to the maximum data value. Like `start`, for dates use a date string, and for category data `end` is based on the category serial numbers.", + "editType": "calc", + "valType": "any" + }, + "role": "object", + "size": { + "description": "Sets the size of each x axis bin. Default behavior: If `nbinsx` is 0 or omitted, we choose a nice round bin size such that the number of bins is about the same as the typical number of samples in each bin. If `nbinsx` is provided, we choose a nice round bin size giving no more than that many bins. For date data, use milliseconds or *M* for months, as in `axis.dtick`. For category data, the number of categories to bin together (always defaults to 1). ", + "editType": "calc", + "valType": "any" + }, + "start": { + "description": "Sets the starting value for the x axis bins. Defaults to the minimum data value, shifted down if necessary to make nice round values and to remove ambiguous bin edges. For example, if most of the data is integers we shift the bin edges 0.5 down, so a `size` of 5 would have a default `start` of -0.5, so it is clear that 0-4 are in the first bin, 5-9 in the second, but continuous data gets a start of 0 and bins [0,5), [5,10) etc. Dates behave similarly, and `start` should be a date string. For category data, `start` is based on the category serial numbers, and defaults to -0.5. ", + "editType": "calc", + "valType": "any" + } + }, + "xcalendar": { + "description": "Sets the calendar system to use with `x` date data.", + "dflt": "gregorian", "editType": "calc", "valType": "enumerated", "values": [ - "rgb", - "rgba", - "rgba256", - "hsl", - "hsla" + "chinese", + "coptic", + "discworld", + "ethiopian", + "gregorian", + "hebrew", + "islamic", + "jalali", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "taiwan", + "thai", + "ummalqura" ] }, - "customdata": { - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "editType": "calc", - "valType": "data_array" + "xgap": { + "description": "Sets the horizontal gap (in pixels) between bricks.", + "dflt": 0, + "editType": "plot", + "min": 0, + "valType": "number" }, - "customdatasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", + "xhoverformat": { + "description": "Sets the hover text formatting rulefor `x` 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*By default the values are formatted using `xaxis.hoverformat`.", + "dflt": "", "editType": "none", "valType": "string" }, - "dx": { - "description": "Set the pixel's horizontal size.", - "dflt": 1, + "xsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `x`.", + "editType": "none", + "valType": "string" + }, + "y": { + "description": "Sets the sample data to be binned on the y axis.", + "editType": "calc+clearAxisTypes", + "valType": "data_array" + }, + "yaxis": { + "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on.", + "dflt": "y", + "editType": "calc+clearAxisTypes", + "valType": "subplotid" + }, + "ybingroup": { + "description": "Set a group of histogram traces which will have compatible y-bin settings. Using `ybingroup`, histogram2d and histogram2dcontour traces (on axes of the same axis type) can have compatible y-bin settings. Note that the same `ybingroup` value can be used to set (1D) histogram `bingroup`", + "dflt": "", "editType": "calc", - "valType": "number" + "valType": "string" }, - "dy": { - "description": "Set the pixel's vertical size", - "dflt": 1, + "ybins": { + "editType": "calc", + "end": { + "description": "Sets the end value for the y axis bins. The last bin may not end exactly at this value, we increment the bin edge by `size` from `start` until we reach or exceed `end`. Defaults to the maximum data value. Like `start`, for dates use a date string, and for category data `end` is based on the category serial numbers.", + "editType": "calc", + "valType": "any" + }, + "role": "object", + "size": { + "description": "Sets the size of each y axis bin. Default behavior: If `nbinsy` is 0 or omitted, we choose a nice round bin size such that the number of bins is about the same as the typical number of samples in each bin. If `nbinsy` is provided, we choose a nice round bin size giving no more than that many bins. For date data, use milliseconds or *M* for months, as in `axis.dtick`. For category data, the number of categories to bin together (always defaults to 1). ", + "editType": "calc", + "valType": "any" + }, + "start": { + "description": "Sets the starting value for the y axis bins. Defaults to the minimum data value, shifted down if necessary to make nice round values and to remove ambiguous bin edges. For example, if most of the data is integers we shift the bin edges 0.5 down, so a `size` of 5 would have a default `start` of -0.5, so it is clear that 0-4 are in the first bin, 5-9 in the second, but continuous data gets a start of 0 and bins [0,5), [5,10) etc. Dates behave similarly, and `start` should be a date string. For category data, `start` is based on the category serial numbers, and defaults to -0.5. ", + "editType": "calc", + "valType": "any" + } + }, + "ycalendar": { + "description": "Sets the calendar system to use with `y` date data.", + "dflt": "gregorian", "editType": "calc", + "valType": "enumerated", + "values": [ + "chinese", + "coptic", + "discworld", + "ethiopian", + "gregorian", + "hebrew", + "islamic", + "jalali", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "taiwan", + "thai", + "ummalqura" + ] + }, + "ygap": { + "description": "Sets the vertical gap (in pixels) between bricks.", + "dflt": 0, + "editType": "plot", + "min": 0, "valType": "number" }, - "hoverinfo": { - "arrayOk": true, - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", - "dflt": "x+y+z+text+name", + "yhoverformat": { + "description": "Sets the hover text formatting rulefor `y` 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*By default the values are formatted using `yaxis.hoverformat`.", + "dflt": "", "editType": "none", - "extras": [ - "all", - "none", - "skip" - ], - "flags": [ - "x", - "y", - "z", - "color", - "name", - "text" - ], - "valType": "flaglist" + "valType": "string" }, - "hoverinfosrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", + "ysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `y`.", "editType": "none", "valType": "string" }, - "hoverlabel": { - "align": { - "arrayOk": true, - "description": "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", - "dflt": "auto", - "editType": "none", - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ] - }, - "alignsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `align`.", - "editType": "none", - "valType": "string" - }, - "bgcolor": { - "arrayOk": true, - "description": "Sets the background color of the hover labels for this trace", - "editType": "none", - "valType": "color" - }, - "bgcolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", - "editType": "none", - "valType": "string" - }, - "bordercolor": { - "arrayOk": true, - "description": "Sets the border color of the hover labels for this trace.", - "editType": "none", - "valType": "color" + "z": { + "description": "Sets the aggregation data.", + "editType": "calc", + "valType": "data_array" + }, + "zauto": { + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `z`) or the bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "zhoverformat": { + "description": "Sets the hover text formatting rulefor `z` 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.By default the values are formatted using generic number format.", + "dflt": "", + "editType": "none", + "valType": "string" + }, + "zmax": { + "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well.", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "zauto": false }, - "bordercolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", - "editType": "none", - "valType": "string" + "valType": "number" + }, + "zmid": { + "description": "Sets the mid-point of the color domain by scaling `zmin` and/or `zmax` to be equidistant to this point. Value should have the same units as in `z`. Has no effect when `zauto` is `false`.", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "valType": "number" + }, + "zmin": { + "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well.", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "zauto": false }, + "valType": "number" + }, + "zsmooth": { + "description": "Picks a smoothing algorithm use to smooth `z` data.", + "dflt": false, + "editType": "calc", + "valType": "enumerated", + "values": [ + "fast", + "best", + false + ] + }, + "zsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `z`.", "editType": "none", - "font": { - "color": { - "arrayOk": true, - "editType": "none", - "valType": "color" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "description": "Sets the font used in hover labels.", - "editType": "none", - "family": { - "arrayOk": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "none", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", + "valType": "string" + } + }, + "categories": [ + "cartesian", + "svg", + "2dMap", + "histogram", + "showLegend" + ], + "meta": { + "description": "The sample data from which statistics are computed is set in `x` and `y` (where `x` and `y` represent marginal distributions, binning is set in `xbins` and `ybins` in this case) or `z` (where `z` represent the 2D distribution and binning set, binning is set by `x` and `y` in this case). The resulting distribution is visualized as a heatmap.", + "hrName": "histogram_2d" + }, + "type": "histogram2d" + }, + "histogram2dcontour": { + "animatable": false, + "attributes": { + "autobinx": { + "description": "Obsolete: since v1.42 each bin attribute is auto-determined separately and `autobinx` is not needed. However, we accept `autobinx: true` or `false` and will update `xbins` accordingly before deleting `autobinx` from the trace.", + "dflt": null, + "editType": "calc", + "valType": "boolean" + }, + "autobiny": { + "description": "Obsolete: since v1.42 each bin attribute is auto-determined separately and `autobiny` is not needed. However, we accept `autobiny: true` or `false` and will update `ybins` accordingly before deleting `autobiny` from the trace.", + "dflt": null, + "editType": "calc", + "valType": "boolean" + }, + "autocolorscale": { + "description": "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.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "autocontour": { + "description": "Determines whether or not the contour level attributes are picked by an algorithm. If *true*, the number of contour levels can be set in `ncontours`. If *false*, set the contour level attributes in `contours`.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "bingroup": { + "description": "Set the `xbingroup` and `ybingroup` default prefix For example, setting a `bingroup` of *1* on two histogram2d traces will make them their x-bins and y-bins match separately.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "coloraxis": { + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", + "dflt": null, + "editType": "calc", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "valType": "subplotid" + }, + "colorbar": { + "_deprecated": { + "title": { + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars", "valType": "string" }, - "lineposition": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "none", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", - "valType": "string" - }, - "role": "object", - "shadow": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "none", - "valType": "string" - }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", - "editType": "none", - "valType": "string" - }, - "size": { - "arrayOk": true, - "editType": "none", - "min": 1, - "valType": "number" - }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" - }, - "style": { - "arrayOk": true, - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "none", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" - }, - "textcase": { - "arrayOk": true, - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "none", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" + "titlefont": { + "color": { + "editType": "colorbars", + "valType": "color" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "valType": "string" + }, + "size": { + "editType": "colorbars", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "colorbars", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } }, - "variant": { - "arrayOk": true, - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "none", + "titleside": { + "description": "Deprecated in favor of color bar's `title.side`.", + "dflt": "top", + "editType": "colorbars", "valType": "enumerated", "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" + "right", + "top", + "bottom" ] - }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" - }, - "weight": { - "arrayOk": true, - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "none", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", - "valType": "string" } }, - "namelength": { - "arrayOk": true, - "description": "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.", - "dflt": 15, - "editType": "none", - "min": -1, + "bgcolor": { + "description": "Sets the color of padded area.", + "dflt": "rgba(0,0,0,0)", + "editType": "colorbars", + "valType": "color" + }, + "bordercolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" + }, + "borderwidth": { + "description": "Sets the width (in px) or the border enclosing this color bar.", + "dflt": 0, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "dtick": { + "description": "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*, 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* 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*", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" + }, + "editType": "colorbars", + "exponentformat": { + "description": "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.", + "dflt": "B", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ] + }, + "labelalias": { + "description": "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.", + "dflt": false, + "editType": "colorbars", + "valType": "any" + }, + "len": { + "description": "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.", + "dflt": 1, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "lenmode": { + "description": "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.", + "dflt": "fraction", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] + }, + "minexponent": { + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", + "dflt": 3, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "nticks": { + "description": "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*.", + "dflt": 0, + "editType": "colorbars", + "min": 0, "valType": "integer" }, - "namelengthsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", - "editType": "none", - "valType": "string" + "orientation": { + "description": "Sets the orientation of the colorbar.", + "dflt": "v", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "h", + "v" + ] }, - "role": "object" - }, - "hovertemplate": { - "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `z`, `color` and `colormodel`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "dflt": "", - "editType": "none", - "valType": "string" - }, - "hovertemplatesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", - "editType": "none", - "valType": "string" - }, - "hovertext": { - "description": "Same as `text`.", - "editType": "plot", - "valType": "data_array" - }, - "hovertextsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hovertext`.", - "editType": "none", - "valType": "string" - }, - "ids": { - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "editType": "calc", - "valType": "data_array" - }, - "idssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ids`.", - "editType": "none", - "valType": "string" - }, - "legend": { - "description": "Sets the reference to a legend to show this trace 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.", - "dflt": "legend", - "editType": "style", - "valType": "subplotid" - }, - "legendgrouptitle": { - "editType": "style", - "font": { + "outlinecolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" + }, + "outlinewidth": { + "description": "Sets the width (in px) of the axis line.", + "dflt": 1, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "role": "object", + "separatethousands": { + "description": "If \"true\", even 4-digit integers are separated", + "dflt": false, + "editType": "colorbars", + "valType": "boolean" + }, + "showexponent": { + "description": "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.", + "dflt": "all", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] + }, + "showticklabels": { + "description": "Determines whether or not the tick labels are drawn.", + "dflt": true, + "editType": "colorbars", + "valType": "boolean" + }, + "showtickprefix": { + "description": "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.", + "dflt": "all", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] + }, + "showticksuffix": { + "description": "Same as `showtickprefix` but for tick suffixes.", + "dflt": "all", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] + }, + "thickness": { + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "dflt": 30, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "thicknessmode": { + "description": "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.", + "dflt": "pixels", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] + }, + "tick0": { + "description": "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* (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.", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" + }, + "tickangle": { + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", + "dflt": "auto", + "editType": "colorbars", + "valType": "angle" + }, + "tickcolor": { + "description": "Sets the tick color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" + }, + "tickfont": { "color": { - "editType": "style", + "editType": "colorbars", "valType": "color" }, - "description": "Sets this legend group's title font.", - "editType": "style", + "description": "Sets the color bar's tick label font", + "editType": "colorbars", "family": { "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "style", + "editType": "colorbars", "noBlank": true, "strict": true, "valType": "string" @@ -48957,7 +48040,7 @@ "lineposition": { "description": "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.", "dflt": "none", - "editType": "style", + "editType": "colorbars", "extras": [ "none" ], @@ -48972,18 +48055,18 @@ "shadow": { "description": "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.", "dflt": "none", - "editType": "style", + "editType": "colorbars", "valType": "string" }, "size": { - "editType": "style", + "editType": "colorbars", "min": 1, "valType": "number" }, "style": { "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "style", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -48993,7 +48076,7 @@ "textcase": { "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "style", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -49005,7 +48088,7 @@ "variant": { "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "style", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -49019,7 +48102,7 @@ "weight": { "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "style", + "editType": "colorbars", "extras": [ "normal", "bold" @@ -49029,613 +48112,181 @@ "valType": "integer" } }, - "role": "object", - "text": { - "description": "Sets the title of the legend group.", + "tickformat": { + "description": "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*", "dflt": "", - "editType": "style", + "editType": "colorbars", "valType": "string" - } - }, - "legendrank": { - "description": "Sets the legend rank for this trace. 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.", - "dflt": 1000, - "editType": "style", - "valType": "number" - }, - "legendwidth": { - "description": "Sets the width (in px or fraction) of the legend for this trace.", - "editType": "style", - "min": 0, - "valType": "number" - }, - "meta": { - "arrayOk": true, - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", - "editType": "plot", - "valType": "any" - }, - "metasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `meta`.", - "editType": "none", - "valType": "string" - }, - "name": { - "description": "Sets the trace name. The trace name appears as the legend item and on hover.", - "editType": "style", - "valType": "string" - }, - "opacity": { - "description": "Sets the opacity of the trace.", - "dflt": 1, - "editType": "style", - "max": 1, - "min": 0, - "valType": "number" - }, - "source": { - "description": "Specifies the data URI of the image to be visualized. The URI consists of \"data:image/[][;base64],\"", - "editType": "calc", - "valType": "string" - }, - "stream": { - "editType": "calc", - "maxpoints": { - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot.", - "dflt": 500, - "editType": "calc", - "max": 10000, - "min": 0, - "valType": "number" }, - "role": "object", - "token": { - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details.", - "editType": "calc", - "noBlank": true, - "strict": true, - "valType": "string" - } - }, - "text": { - "description": "Sets the text elements associated with each z value.", - "editType": "plot", - "valType": "data_array" - }, - "textsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `text`.", - "editType": "none", - "valType": "string" - }, - "type": "image", - "uid": { - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", - "editType": "plot", - "valType": "string" - }, - "uirevision": { - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.", - "editType": "none", - "valType": "any" - }, - "visible": { - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", - "dflt": true, - "editType": "calc", - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ] - }, - "x0": { - "description": "Set the image's x position. The left edge of the image (or the right edge if the x axis is reversed or dx is negative) will be found at xmin=x0-dx/2", - "dflt": 0, - "editType": "calc+clearAxisTypes", - "valType": "any" - }, - "xaxis": { - "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on.", - "dflt": "x", - "editType": "calc+clearAxisTypes", - "valType": "subplotid" - }, - "y0": { - "description": "Set the image's y position. The top edge of the image (or the bottom edge if the y axis is NOT reversed or if dy is negative) will be found at ymin=y0-dy/2. By default when an image trace is included, the y axis will be reversed so that the image is right-side-up, but you can disable this by setting yaxis.autorange=true or by providing an explicit y axis range.", - "dflt": 0, - "editType": "calc+clearAxisTypes", - "valType": "any" - }, - "yaxis": { - "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on.", - "dflt": "y", - "editType": "calc+clearAxisTypes", - "valType": "subplotid" - }, - "z": { - "description": "A 2-dimensional array in which each element is an array of 3 or 4 numbers representing a color.", - "editType": "calc", - "valType": "data_array" - }, - "zmax": { - "description": "Array defining the higher bound for each color component. Note that the default value will depend on the colormodel. For the `rgb` colormodel, it is [255, 255, 255]. For the `rgba` colormodel, it is [255, 255, 255, 1]. For the `rgba256` colormodel, it is [255, 255, 255, 255]. For the `hsl` colormodel, it is [360, 100, 100]. For the `hsla` colormodel, it is [360, 100, 100, 1].", - "editType": "calc", - "items": [ - { - "editType": "calc", - "valType": "number" - }, - { - "editType": "calc", - "valType": "number" - }, - { - "editType": "calc", - "valType": "number" - }, - { - "editType": "calc", - "valType": "number" - } - ], - "valType": "info_array" - }, - "zmin": { - "description": "Array defining the lower bound for each color component. Note that the default value will depend on the colormodel. For the `rgb` colormodel, it is [0, 0, 0]. For the `rgba` colormodel, it is [0, 0, 0, 0]. For the `rgba256` colormodel, it is [0, 0, 0, 0]. For the `hsl` colormodel, it is [0, 0, 0]. For the `hsla` colormodel, it is [0, 0, 0, 0].", - "editType": "calc", - "items": [ - { - "editType": "calc", - "valType": "number" - }, - { - "editType": "calc", - "valType": "number" - }, - { - "editType": "calc", - "valType": "number" - }, - { - "editType": "calc", - "valType": "number" - } - ], - "valType": "info_array" - }, - "zorder": { - "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", - "dflt": 0, - "editType": "plot", - "valType": "integer" - }, - "zsmooth": { - "description": "Picks a smoothing algorithm used to smooth `z` data. This only applies for image traces that use the `source` attribute.", - "dflt": false, - "editType": "plot", - "valType": "enumerated", - "values": [ - "fast", - false - ] - }, - "zsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `z`.", - "editType": "none", - "valType": "string" - } - }, - "categories": [ - "cartesian", - "svg", - "2dMap", - "noSortingByValue" - ], - "meta": { - "description": "Display an image, i.e. data on a 2D regular raster. By default, when an image is displayed in a subplot, its y axis will be reversed (ie. `autorange: 'reversed'`), constrained to the domain (ie. `constrain: 'domain'`) and it will have the same scale as its x axis (ie. `scaleanchor: 'x,`) in order for pixels to be rendered as squares." - }, - "type": "image" - }, - "indicator": { - "animatable": true, - "attributes": { - "align": { - "description": "Sets the horizontal alignment of the `text` within the box. Note that this attribute has no effect if an angular gauge is displayed: in this case, it is always centered", - "editType": "plot", - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ] - }, - "customdata": { - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "editType": "calc", - "valType": "data_array" - }, - "customdatasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", - "editType": "none", - "valType": "string" - }, - "delta": { - "decreasing": { - "color": { - "description": "Sets the color for increasing value.", - "dflt": "#FF4136", - "editType": "plot", - "valType": "color" + "tickformatstops": { + "items": { + "tickformatstop": { + "dtickrange": { + "description": "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*", + "editType": "colorbars", + "items": [ + { + "editType": "colorbars", + "valType": "any" + }, + { + "editType": "colorbars", + "valType": "any" + } + ], + "valType": "info_array" + }, + "editType": "colorbars", + "enabled": { + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", + "dflt": true, + "editType": "colorbars", + "valType": "boolean" + }, + "name": { + "description": "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.", + "editType": "colorbars", + "valType": "string" + }, + "role": "object", + "templateitemname": { + "description": "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`.", + "editType": "colorbars", + "valType": "string" + }, + "value": { + "description": "string - dtickformat for described zoom level, the same as *tickformat*", + "dflt": "", + "editType": "colorbars", + "valType": "string" + } + } }, - "editType": "plot", - "role": "object", - "symbol": { - "description": "Sets the symbol to display for increasing value", - "dflt": "▼", - "editType": "plot", - "valType": "string" - } + "role": "object" }, - "editType": "calc", - "font": { - "color": { - "editType": "plot", - "valType": "color" - }, - "description": "Set the font used to display the delta", - "editType": "plot", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "plot", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "plot", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "plot", - "valType": "string" - }, - "size": { - "editType": "plot", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "plot", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } + "ticklabeloverflow": { + "description": "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*.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ] }, - "increasing": { - "color": { - "description": "Sets the color for increasing value.", - "dflt": "#3D9970", - "editType": "plot", - "valType": "color" - }, - "editType": "plot", - "role": "object", - "symbol": { - "description": "Sets the symbol to display for increasing value", - "dflt": "▲", - "editType": "plot", - "valType": "string" - } + "ticklabelposition": { + "description": "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*.", + "dflt": "outside", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside left", + "inside left", + "outside right", + "inside right", + "outside bottom", + "inside bottom" + ] }, - "position": { - "description": "Sets the position of delta with respect to the number.", - "dflt": "bottom", - "editType": "plot", + "ticklabelstep": { + "description": "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*.", + "dflt": 1, + "editType": "colorbars", + "min": 1, + "valType": "integer" + }, + "ticklen": { + "description": "Sets the tick length (in px).", + "dflt": 5, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "tickmode": { + "description": "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).", + "editType": "colorbars", + "impliedEdits": {}, "valType": "enumerated", "values": [ - "top", - "bottom", - "left", - "right" + "auto", + "linear", + "array" ] }, - "prefix": { - "description": "Sets a prefix appearing before the delta.", + "tickprefix": { + "description": "Sets a tick label prefix.", "dflt": "", - "editType": "plot", + "editType": "colorbars", "valType": "string" }, - "reference": { - "description": "Sets the reference value to compute the delta. By default, it is set to the current value.", - "editType": "calc", - "valType": "number" - }, - "relative": { - "description": "Show relative change", - "dflt": false, - "editType": "plot", - "valType": "boolean" + "ticks": { + "description": "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.", + "dflt": "", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ] }, - "role": "object", - "suffix": { - "description": "Sets a suffix appearing next to the delta.", + "ticksuffix": { + "description": "Sets a tick label suffix.", "dflt": "", - "editType": "plot", + "editType": "colorbars", "valType": "string" }, - "valueformat": { - "description": "Sets the value 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.", - "editType": "plot", + "ticktext": { + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", + "editType": "colorbars", + "valType": "data_array" + }, + "ticktextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", + "editType": "none", "valType": "string" - } - }, - "domain": { - "column": { - "description": "If there is a layout grid, use the domain for this column in the grid for this indicator trace .", - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "integer" }, - "editType": "calc", - "role": "object", - "row": { - "description": "If there is a layout grid, use the domain for this row in the grid for this indicator trace .", - "dflt": 0, - "editType": "calc", + "tickvals": { + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", + "editType": "colorbars", + "valType": "data_array" + }, + "tickvalssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", + "editType": "none", + "valType": "string" + }, + "tickwidth": { + "description": "Sets the tick width (in px).", + "dflt": 1, + "editType": "colorbars", "min": 0, - "valType": "integer" + "valType": "number" }, - "x": { - "description": "Sets the horizontal domain of this indicator trace (in plot fraction).", - "dflt": [ - 0, - 1 - ], - "editType": "calc", - "items": [ - { - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" + "title": { + "editType": "colorbars", + "font": { + "color": { + "editType": "colorbars", + "valType": "color" }, - { - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - } - ], - "valType": "info_array" - }, - "y": { - "description": "Sets the vertical domain of this indicator trace (in plot fraction).", - "dflt": [ - 0, - 1 - ], - "editType": "calc", - "items": [ - { - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - { - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - } - ], - "valType": "info_array" - } - }, - "gauge": { - "axis": { - "dtick": { - "description": "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*, 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* 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*", - "editType": "plot", - "impliedEdits": { - "tickmode": "linear" - }, - "valType": "any" - }, - "editType": "plot", - "exponentformat": { - "description": "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.", - "dflt": "B", - "editType": "plot", - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ] - }, - "labelalias": { - "description": "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.", - "dflt": false, - "editType": "plot", - "valType": "any" - }, - "minexponent": { - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", - "dflt": 3, - "editType": "plot", - "min": 0, - "valType": "number" - }, - "nticks": { - "description": "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*.", - "dflt": 0, - "editType": "plot", - "min": 0, - "valType": "integer" - }, - "range": { - "description": "Sets the range of this axis.", - "editType": "plot", - "items": [ - { - "editType": "plot", - "valType": "number" - }, - { - "editType": "plot", - "valType": "number" - } - ], - "valType": "info_array" - }, - "role": "object", - "separatethousands": { - "description": "If \"true\", even 4-digit integers are separated", - "dflt": false, - "editType": "plot", - "valType": "boolean" - }, - "showexponent": { - "description": "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.", - "dflt": "all", - "editType": "plot", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] - }, - "showticklabels": { - "description": "Determines whether or not the tick labels are drawn.", - "dflt": true, - "editType": "plot", - "valType": "boolean" - }, - "showtickprefix": { - "description": "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.", - "dflt": "all", - "editType": "plot", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] - }, - "showticksuffix": { - "description": "Same as `showtickprefix` but for tick suffixes.", - "dflt": "all", - "editType": "plot", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] - }, - "tick0": { - "description": "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* (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.", - "editType": "plot", - "impliedEdits": { - "tickmode": "linear" - }, - "valType": "any" - }, - "tickangle": { - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", - "dflt": "auto", - "editType": "plot", - "valType": "angle" - }, - "tickcolor": { - "description": "Sets the tick color.", - "dflt": "#444", - "editType": "plot", - "valType": "color" - }, - "tickfont": { - "color": { - "editType": "plot", - "valType": "color" - }, - "description": "Sets the color bar's tick label font", - "editType": "plot", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "plot", - "noBlank": true, - "strict": true, - "valType": "string" + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars", + "noBlank": true, + "strict": true, + "valType": "string" }, "lineposition": { "description": "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.", "dflt": "none", - "editType": "plot", + "editType": "colorbars", "extras": [ "none" ], @@ -49650,18 +48301,18 @@ "shadow": { "description": "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.", "dflt": "none", - "editType": "plot", + "editType": "colorbars", "valType": "string" }, "size": { - "editType": "plot", + "editType": "colorbars", "min": 1, "valType": "number" }, "style": { "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "plot", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -49671,7 +48322,7 @@ "textcase": { "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "plot", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -49683,7 +48334,7 @@ "variant": { "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "plot", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -49697,7 +48348,7 @@ "weight": { "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "plot", + "editType": "colorbars", "extras": [ "normal", "bold" @@ -49707,344 +48358,421 @@ "valType": "integer" } }, - "tickformat": { - "description": "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*", - "dflt": "", - "editType": "plot", - "valType": "string" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "dtickrange": { - "description": "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*", - "editType": "plot", - "items": [ - { - "editType": "plot", - "valType": "any" - }, - { - "editType": "plot", - "valType": "any" - } - ], - "valType": "info_array" - }, - "editType": "plot", - "enabled": { - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", - "dflt": true, - "editType": "plot", - "valType": "boolean" - }, - "name": { - "description": "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.", - "editType": "plot", - "valType": "string" - }, - "role": "object", - "templateitemname": { - "description": "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`.", - "editType": "plot", - "valType": "string" - }, - "value": { - "description": "string - dtickformat for described zoom level, the same as *tickformat*", - "dflt": "", - "editType": "plot", - "valType": "string" - } - } - }, - "role": "object" - }, - "ticklabelstep": { - "description": "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*.", - "dflt": 1, - "editType": "plot", - "min": 1, - "valType": "integer" - }, - "ticklen": { - "description": "Sets the tick length (in px).", - "dflt": 5, - "editType": "plot", - "min": 0, - "valType": "number" - }, - "tickmode": { - "description": "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).", - "editType": "plot", - "impliedEdits": {}, + "role": "object", + "side": { + "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars", "valType": "enumerated", "values": [ - "auto", - "linear", - "array" + "right", + "top", + "bottom" ] }, - "tickprefix": { - "description": "Sets a tick label prefix.", - "dflt": "", - "editType": "plot", + "text": { + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars", "valType": "string" + } + }, + "x": { + "description": "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*.", + "editType": "colorbars", + "valType": "number" + }, + "xanchor": { + "description": "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*.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ] + }, + "xpad": { + "description": "Sets the amount of padding (in px) along the x direction.", + "dflt": 10, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, + "y": { + "description": "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*.", + "editType": "colorbars", + "valType": "number" + }, + "yanchor": { + "description": "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*.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ] + }, + "ypad": { + "description": "Sets the amount of padding (in px) along the y direction.", + "dflt": 10, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + } + }, + "colorscale": { + "description": "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 `zmin` and `zmax`. 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.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "autocolorscale": false + }, + "valType": "colorscale" + }, + "contours": { + "coloring": { + "description": "Determines the coloring method showing the contour values. If *fill*, coloring is done evenly between each contour level If *heatmap*, a heatmap gradient coloring is applied between each contour level. If *lines*, coloring is done on the contour lines. If *none*, no coloring is applied on this trace.", + "dflt": "fill", + "editType": "calc", + "valType": "enumerated", + "values": [ + "fill", + "heatmap", + "lines", + "none" + ] + }, + "editType": "calc", + "end": { + "description": "Sets the end contour level value. Must be more than `contours.start`", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "^autocontour": false }, - "ticks": { - "description": "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.", - "dflt": "outside", - "editType": "plot", - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ] + "valType": "number" + }, + "impliedEdits": { + "autocontour": false, + "role": "object" + }, + "labelfont": { + "color": { + "editType": "style", + "valType": "color" }, - "ticksuffix": { - "description": "Sets a tick label suffix.", - "dflt": "", + "description": "Sets the font used for labeling the contour levels. The default color comes from the lines, if shown. The default family and size come from `layout.font`.", + "editType": "plot", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", "editType": "plot", + "noBlank": true, + "strict": true, "valType": "string" }, - "ticktext": { - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", + "lineposition": { + "description": "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.", + "dflt": "none", "editType": "plot", - "valType": "data_array" - }, - "ticktextsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", - "editType": "none", - "valType": "string" + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" }, - "tickvals": { - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", "editType": "plot", - "valType": "data_array" - }, - "tickvalssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", - "editType": "none", "valType": "string" }, - "tickwidth": { - "description": "Sets the tick width (in px).", - "dflt": 1, + "size": { "editType": "plot", - "min": 0, + "min": 1, "valType": "number" }, - "visible": { - "description": "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", - "dflt": true, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", "editType": "plot", - "valType": "boolean" - } - }, - "bar": { - "color": { - "description": "Sets the background color of the arc.", - "dflt": "green", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", "editType": "plot", - "valType": "color" + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] }, - "description": "Set the appearance of the gauge's value", - "editType": "calc", - "line": { - "color": { - "description": "Sets the color of the line enclosing each sector.", - "dflt": "#444", - "editType": "plot", - "valType": "color" - }, - "editType": "calc", - "role": "object", - "width": { - "description": "Sets the width (in px) of the line enclosing each sector.", - "dflt": 0, - "editType": "plot", - "min": 0, - "valType": "number" - } + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] }, - "role": "object", - "thickness": { - "description": "Sets the thickness of the bar as a fraction of the total thickness of the gauge.", - "dflt": 1, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", "editType": "plot", - "max": 1, - "min": 0, - "valType": "number" + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" } }, - "bgcolor": { - "description": "Sets the gauge background color.", - "editType": "plot", - "valType": "color" - }, - "bordercolor": { - "description": "Sets the color of the border enclosing the gauge.", - "dflt": "#444", - "editType": "plot", - "valType": "color" - }, - "borderwidth": { - "description": "Sets the width (in px) of the border enclosing the gauge.", - "dflt": 1, + "labelformat": { + "description": "Sets the contour 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.", + "dflt": "", "editType": "plot", - "min": 0, - "valType": "number" + "valType": "string" }, - "description": "The gauge of the Indicator plot.", - "editType": "plot", - "role": "object", - "shape": { - "description": "Set the shape of the gauge", - "dflt": "angular", - "editType": "plot", + "operation": { + "description": "Sets the constraint operation. *=* keeps regions equal to `value` *<* and *<=* keep regions less than `value` *>* and *>=* keep regions greater than `value` *[]*, *()*, *[)*, and *(]* keep regions inside `value[0]` to `value[1]` *][*, *)(*, *](*, *)[* keep regions outside `value[0]` to value[1]` Open vs. closed intervals make no difference to constraint display, but all versions are allowed for consistency with filter transforms.", + "dflt": "=", + "editType": "calc", "valType": "enumerated", "values": [ - "angular", - "bullet" + "=", + "<", + ">=", + ">", + "<=", + "[]", + "()", + "[)", + "(]", + "][", + ")(", + "](", + ")[" ] }, - "steps": { - "items": { - "step": { - "color": { - "description": "Sets the background color of the arc.", - "editType": "plot", - "valType": "color" - }, - "editType": "calc", - "line": { - "color": { - "description": "Sets the color of the line enclosing each sector.", - "dflt": "#444", - "editType": "plot", - "valType": "color" - }, - "editType": "calc", - "role": "object", - "width": { - "description": "Sets the width (in px) of the line enclosing each sector.", - "dflt": 0, - "editType": "plot", - "min": 0, - "valType": "number" - } - }, - "name": { - "description": "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.", - "editType": "none", - "valType": "string" - }, - "range": { - "description": "Sets the range of this axis.", - "editType": "plot", - "items": [ - { - "editType": "plot", - "valType": "number" - }, - { - "editType": "plot", - "valType": "number" - } - ], - "valType": "info_array" - }, - "role": "object", - "templateitemname": { - "description": "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`.", - "editType": "calc", - "valType": "string" - }, - "thickness": { - "description": "Sets the thickness of the bar as a fraction of the total thickness of the gauge.", - "dflt": 1, - "editType": "plot", - "max": 1, - "min": 0, - "valType": "number" - } - } - }, - "role": "object" + "role": "object", + "showlabels": { + "description": "Determines whether to label the contour lines with their values.", + "dflt": false, + "editType": "plot", + "valType": "boolean" }, - "threshold": { + "showlines": { + "description": "Determines whether or not the contour lines are drawn. Has an effect only if `contours.coloring` is set to *fill*.", + "dflt": true, "editType": "plot", - "line": { - "color": { - "description": "Sets the color of the threshold line.", - "dflt": "#444", - "editType": "plot", - "valType": "color" - }, - "editType": "plot", - "role": "object", - "width": { - "description": "Sets the width (in px) of the threshold line.", - "dflt": 1, - "editType": "plot", - "min": 0, - "valType": "number" - } + "valType": "boolean" + }, + "size": { + "description": "Sets the step between each contour level. Must be positive.", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "^autocontour": false }, - "role": "object", - "thickness": { - "description": "Sets the thickness of the threshold line as a fraction of the thickness of the gauge.", - "dflt": 0.85, - "editType": "plot", - "max": 1, - "min": 0, - "valType": "number" + "min": 0, + "valType": "number" + }, + "start": { + "description": "Sets the starting contour level value. Must be less than `contours.end`", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "^autocontour": false }, - "value": { - "description": "Sets a treshold value drawn as a line.", - "dflt": false, - "editType": "calc", - "valType": "number" - } + "valType": "number" + }, + "type": { + "description": "If `levels`, the data is represented as a contour plot with multiple levels displayed. If `constraint`, the data is represented as constraints with the invalid region shaded as specified by the `operation` and `value` parameters.", + "dflt": "levels", + "editType": "calc", + "valType": "enumerated", + "values": [ + "levels", + "constraint" + ] + }, + "value": { + "description": "Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values (=,<,>=,>,<=) *value* is expected to be a number. When `operation` is set to one of the interval values ([],(),[),(],][,)(,](,)[) *value* is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound.", + "dflt": 0, + "editType": "calc", + "valType": "any" } }, - "ids": { - "anim": true, - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", + "customdata": { + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", "editType": "calc", "valType": "data_array" }, - "idssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ids`.", + "customdatasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", "editType": "none", "valType": "string" }, - "legend": { - "description": "Sets the reference to a legend to show this trace 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.", - "dflt": "legend", - "editType": "style", - "valType": "subplotid" + "histfunc": { + "description": "Specifies the binning function used for this histogram trace. If *count*, the histogram values are computed by counting the number of values lying inside each bin. If *sum*, *avg*, *min*, *max*, the histogram values are computed using the sum, the average, the minimum or the maximum of the values lying inside each bin respectively.", + "dflt": "count", + "editType": "calc", + "valType": "enumerated", + "values": [ + "count", + "sum", + "avg", + "min", + "max" + ] }, - "legendgrouptitle": { - "editType": "style", + "histnorm": { + "description": "Specifies the type of normalization used for this histogram trace. If **, the span of each bar corresponds to the number of occurrences (i.e. the number of data points lying inside the bins). If *percent* / *probability*, the span of each bar corresponds to the percentage / fraction of occurrences with respect to the total number of sample points (here, the sum of all bin HEIGHTS equals 100% / 1). If *density*, the span of each bar corresponds to the number of occurrences in a bin divided by the size of the bin interval (here, the sum of all bin AREAS equals the total number of sample points). If *probability density*, the area of each bar corresponds to the probability that an event will fall into the corresponding bin (here, the sum of all bin AREAS equals 1).", + "dflt": "", + "editType": "calc", + "valType": "enumerated", + "values": [ + "", + "percent", + "probability", + "density", + "probability density" + ] + }, + "hoverinfo": { + "arrayOk": true, + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", + "dflt": "all", + "editType": "none", + "extras": [ + "all", + "none", + "skip" + ], + "flags": [ + "x", + "y", + "z", + "text", + "name" + ], + "valType": "flaglist" + }, + "hoverinfosrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", + "editType": "none", + "valType": "string" + }, + "hoverlabel": { + "align": { + "arrayOk": true, + "description": "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", + "dflt": "auto", + "editType": "none", + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ] + }, + "alignsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `align`.", + "editType": "none", + "valType": "string" + }, + "bgcolor": { + "arrayOk": true, + "description": "Sets the background color of the hover labels for this trace", + "editType": "none", + "valType": "color" + }, + "bgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", + "editType": "none", + "valType": "string" + }, + "bordercolor": { + "arrayOk": true, + "description": "Sets the border color of the hover labels for this trace.", + "editType": "none", + "valType": "color" + }, + "bordercolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", + "editType": "none", + "valType": "string" + }, + "editType": "none", "font": { "color": { - "editType": "style", + "arrayOk": true, + "editType": "none", "valType": "color" }, - "description": "Sets this legend group's title font.", - "editType": "style", + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "description": "Sets the font used in hover labels.", + "editType": "none", "family": { + "arrayOk": true, "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "style", + "editType": "none", "noBlank": true, "strict": true, "valType": "string" }, + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" + }, "lineposition": { + "arrayOk": true, "description": "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.", "dflt": "none", - "editType": "style", + "editType": "none", "extras": [ "none" ], @@ -50055,32 +48783,56 @@ ], "valType": "flaglist" }, + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", + "editType": "none", + "valType": "string" + }, "role": "object", "shadow": { + "arrayOk": true, "description": "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.", "dflt": "none", - "editType": "style", + "editType": "none", + "valType": "string" + }, + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", "valType": "string" }, "size": { - "editType": "style", + "arrayOk": true, + "editType": "none", "min": 1, "valType": "number" }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, "style": { + "arrayOk": true, "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "style", + "editType": "none", "valType": "enumerated", "values": [ "normal", "italic" ] }, + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", + "valType": "string" + }, "textcase": { + "arrayOk": true, "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "style", + "editType": "none", "valType": "enumerated", "values": [ "normal", @@ -50089,10 +48841,16 @@ "lower" ] }, + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", + "valType": "string" + }, "variant": { + "arrayOk": true, "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "style", + "editType": "none", "valType": "enumerated", "values": [ "normal", @@ -50103,10 +48861,16 @@ "unicase" ] }, + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" + }, "weight": { + "arrayOk": true, "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "style", + "editType": "none", "extras": [ "normal", "bold" @@ -50114,67 +48878,74 @@ "max": 1000, "min": 1, "valType": "integer" + }, + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" } }, - "role": "object", - "text": { - "description": "Sets the title of the legend group.", - "dflt": "", - "editType": "style", + "namelength": { + "arrayOk": true, + "description": "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.", + "dflt": 15, + "editType": "none", + "min": -1, + "valType": "integer" + }, + "namelengthsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", + "editType": "none", "valType": "string" - } - }, - "legendrank": { - "description": "Sets the legend rank for this trace. 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.", - "dflt": 1000, - "editType": "style", - "valType": "number" - }, - "legendwidth": { - "description": "Sets the width (in px or fraction) of the legend for this trace.", - "editType": "style", - "min": 0, - "valType": "number" + }, + "role": "object" }, - "meta": { + "hovertemplate": { "arrayOk": true, - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", - "editType": "plot", - "valType": "any" + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "dflt": "", + "editType": "none", + "valType": "string" }, - "metasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `meta`.", + "hovertemplatesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", "editType": "none", "valType": "string" }, - "mode": { - "description": "Determines how the value is displayed on the graph. `number` displays the value numerically in text. `delta` displays the difference to a reference value in text. Finally, `gauge` displays the value graphically on an axis.", - "dflt": "number", + "ids": { + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", "editType": "calc", - "flags": [ - "number", - "delta", - "gauge" - ], - "valType": "flaglist" + "valType": "data_array" }, - "name": { - "description": "Sets the trace name. The trace name appears as the legend item and on hover.", + "idssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ids`.", + "editType": "none", + "valType": "string" + }, + "legend": { + "description": "Sets the reference to a legend to show this trace 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.", + "dflt": "legend", + "editType": "style", + "valType": "subplotid" + }, + "legendgroup": { + "description": "Sets the legend group for this trace. Traces and shapes part of the same legend group hide/show at the same time when toggling legend items.", + "dflt": "", "editType": "style", "valType": "string" }, - "number": { - "editType": "plot", + "legendgrouptitle": { + "editType": "style", "font": { "color": { - "editType": "plot", + "editType": "style", "valType": "color" }, - "description": "Set the font used to display main number", - "editType": "plot", + "description": "Sets this legend group's title font.", + "editType": "style", "family": { "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "plot", + "editType": "style", "noBlank": true, "strict": true, "valType": "string" @@ -50182,7 +48953,7 @@ "lineposition": { "description": "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.", "dflt": "none", - "editType": "plot", + "editType": "style", "extras": [ "none" ], @@ -50197,18 +48968,18 @@ "shadow": { "description": "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.", "dflt": "none", - "editType": "plot", + "editType": "style", "valType": "string" }, "size": { - "editType": "plot", + "editType": "style", "min": 1, "valType": "number" }, "style": { "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "plot", + "editType": "style", "valType": "enumerated", "values": [ "normal", @@ -50218,7 +48989,7 @@ "textcase": { "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "plot", + "editType": "style", "valType": "enumerated", "values": [ "normal", @@ -50230,7 +49001,7 @@ "variant": { "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "plot", + "editType": "style", "valType": "enumerated", "values": [ "normal", @@ -50244,7 +49015,7 @@ "weight": { "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "plot", + "editType": "style", "extras": [ "normal", "bold" @@ -50254,33 +49025,148 @@ "valType": "integer" } }, - "prefix": { - "description": "Sets a prefix appearing before the number.", + "role": "object", + "text": { + "description": "Sets the title of the legend group.", "dflt": "", - "editType": "plot", + "editType": "style", "valType": "string" + } + }, + "legendrank": { + "description": "Sets the legend rank for this trace. 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.", + "dflt": 1000, + "editType": "style", + "valType": "number" + }, + "legendwidth": { + "description": "Sets the width (in px or fraction) of the legend for this trace.", + "editType": "style", + "min": 0, + "valType": "number" + }, + "line": { + "color": { + "description": "Sets the color of the contour level. Has no effect if `contours.coloring` is set to *lines*.", + "editType": "style+colorbars", + "valType": "color" + }, + "dash": { + "description": "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*).", + "dflt": "solid", + "editType": "style", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] }, + "editType": "plot", "role": "object", - "suffix": { - "description": "Sets a suffix appearing next to the number.", - "dflt": "", + "smoothing": { + "description": "Sets the amount of smoothing for the contour lines, where *0* corresponds to no smoothing.", + "dflt": 1, "editType": "plot", - "valType": "string" + "max": 1.3, + "min": 0, + "valType": "number" }, - "valueformat": { - "description": "Sets the value 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.", - "dflt": "", - "editType": "plot", - "valType": "string" + "width": { + "description": "Sets the contour line width in (in px)", + "dflt": 0.5, + "editType": "style+colorbars", + "min": 0, + "valType": "number" } }, - "stream": { - "editType": "calc", - "maxpoints": { - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot.", - "dflt": 500, + "marker": { + "color": { + "description": "Sets the aggregation data.", "editType": "calc", - "max": 10000, + "valType": "data_array" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "editType": "calc", + "role": "object" + }, + "meta": { + "arrayOk": true, + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", + "editType": "plot", + "valType": "any" + }, + "metasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `meta`.", + "editType": "none", + "valType": "string" + }, + "name": { + "description": "Sets the trace name. The trace name appears as the legend item and on hover.", + "editType": "style", + "valType": "string" + }, + "nbinsx": { + "description": "Specifies the maximum number of desired bins. This value will be used in an algorithm that will decide the optimal bin size such that the histogram best visualizes the distribution of the data. Ignored if `xbins.size` is provided.", + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "integer" + }, + "nbinsy": { + "description": "Specifies the maximum number of desired bins. This value will be used in an algorithm that will decide the optimal bin size such that the histogram best visualizes the distribution of the data. Ignored if `ybins.size` is provided.", + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "integer" + }, + "ncontours": { + "description": "Sets the maximum number of contour levels. The actual number of contours will be chosen automatically to be less than or equal to the value of `ncontours`. Has an effect only if `autocontour` is *true* or if `contours.size` is missing.", + "dflt": 15, + "editType": "calc", + "min": 1, + "valType": "integer" + }, + "opacity": { + "description": "Sets the opacity of the trace.", + "dflt": 1, + "editType": "style", + "max": 1, + "min": 0, + "valType": "number" + }, + "reversescale": { + "description": "Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color.", + "dflt": false, + "editType": "plot", + "valType": "boolean" + }, + "showlegend": { + "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", + "dflt": true, + "editType": "style", + "valType": "boolean" + }, + "showscale": { + "description": "Determines whether or not a colorbar is displayed for this trace.", + "dflt": true, + "editType": "calc", + "valType": "boolean" + }, + "stream": { + "editType": "calc", + "maxpoints": { + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot.", + "dflt": 500, + "editType": "calc", + "max": 10000, "min": 0, "valType": "number" }, @@ -50293,114 +49179,103 @@ "valType": "string" } }, - "title": { - "align": { - "description": "Sets the horizontal alignment of the title. It defaults to `center` except for bullet charts for which it defaults to right.", + "textfont": { + "color": { + "dflt": "auto", + "editType": "style", + "valType": "color" + }, + "description": "For this trace it only has an effect if `coloring` is set to *heatmap*. Sets the text font.", + "editType": "plot", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "plot", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "plot", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "plot", + "valType": "string" + }, + "size": { + "dflt": "auto", + "editType": "plot", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", "editType": "plot", "valType": "enumerated", "values": [ - "left", - "center", - "right" + "normal", + "italic" ] }, - "editType": "plot", - "font": { - "color": { - "editType": "plot", - "valType": "color" - }, - "description": "Set the font used to display the title", + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", "editType": "plot", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "plot", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "plot", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "plot", - "valType": "string" - }, - "size": { - "editType": "plot", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "plot", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] }, - "role": "object", - "text": { - "description": "Sets the title of this indicator.", + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", "editType": "plot", - "valType": "string" + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "plot", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" } }, + "texttemplate": { + "description": "For this trace it only has an effect if `coloring` is set to *heatmap*. Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". 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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `x`, `y`, `z` and `text`.", + "dflt": "", + "editType": "plot", + "valType": "string" + }, "transforms": { "items": { "transform": { @@ -50411,9 +49286,8 @@ }, "role": "object" }, - "type": "indicator", + "type": "histogram2dcontour", "uid": { - "anim": true, "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", "editType": "plot", "valType": "string" @@ -50423,12 +49297,6 @@ "editType": "none", "valType": "any" }, - "value": { - "anim": true, - "description": "Sets the number to be displayed.", - "editType": "calc", - "valType": "number" - }, "visible": { "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", "dflt": true, @@ -50439,438 +49307,408 @@ false, "legendonly" ] - } - }, - "categories": [ - "svg", - "noOpacity", - "noHover" - ], - "meta": { - "description": "An indicator is used to visualize a single `value` along with some contextual information such as `steps` or a `threshold`, using a combination of three visual elements: a number, a delta, and/or a gauge. Deltas are taken with respect to a `reference`. Gauges can be either angular or bullet (aka linear) gauges." - }, - "type": "indicator" - }, - "isosurface": { - "animatable": false, - "attributes": { - "autocolorscale": { - "description": "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.", - "dflt": true, + }, + "x": { + "description": "Sets the sample data to be binned on the x axis.", + "editType": "calc+clearAxisTypes", + "valType": "data_array" + }, + "xaxis": { + "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on.", + "dflt": "x", + "editType": "calc+clearAxisTypes", + "valType": "subplotid" + }, + "xbingroup": { + "description": "Set a group of histogram traces which will have compatible x-bin settings. Using `xbingroup`, histogram2d and histogram2dcontour traces (on axes of the same axis type) can have compatible x-bin settings. Note that the same `xbingroup` value can be used to set (1D) histogram `bingroup`", + "dflt": "", "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" + "valType": "string" }, - "caps": { + "xbins": { "editType": "calc", + "end": { + "description": "Sets the end value for the x axis bins. The last bin may not end exactly at this value, we increment the bin edge by `size` from `start` until we reach or exceed `end`. Defaults to the maximum data value. Like `start`, for dates use a date string, and for category data `end` is based on the category serial numbers.", + "editType": "calc", + "valType": "any" + }, "role": "object", - "x": { + "size": { + "description": "Sets the size of each x axis bin. Default behavior: If `nbinsx` is 0 or omitted, we choose a nice round bin size such that the number of bins is about the same as the typical number of samples in each bin. If `nbinsx` is provided, we choose a nice round bin size giving no more than that many bins. For date data, use milliseconds or *M* for months, as in `axis.dtick`. For category data, the number of categories to bin together (always defaults to 1). ", "editType": "calc", - "fill": { - "description": "Sets the fill ratio of the `caps`. The default fill value of the `caps` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "dflt": 1, - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - "role": "object", - "show": { - "description": "Sets the fill ratio of the `slices`. The default fill value of the x `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "dflt": true, - "editType": "calc", - "valType": "boolean" - } + "valType": "any" }, - "y": { + "start": { + "description": "Sets the starting value for the x axis bins. Defaults to the minimum data value, shifted down if necessary to make nice round values and to remove ambiguous bin edges. For example, if most of the data is integers we shift the bin edges 0.5 down, so a `size` of 5 would have a default `start` of -0.5, so it is clear that 0-4 are in the first bin, 5-9 in the second, but continuous data gets a start of 0 and bins [0,5), [5,10) etc. Dates behave similarly, and `start` should be a date string. For category data, `start` is based on the category serial numbers, and defaults to -0.5. ", "editType": "calc", - "fill": { - "description": "Sets the fill ratio of the `caps`. The default fill value of the `caps` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "dflt": 1, - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - "role": "object", - "show": { - "description": "Sets the fill ratio of the `slices`. The default fill value of the y `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "dflt": true, - "editType": "calc", - "valType": "boolean" - } + "valType": "any" + } + }, + "xcalendar": { + "description": "Sets the calendar system to use with `x` date data.", + "dflt": "gregorian", + "editType": "calc", + "valType": "enumerated", + "values": [ + "chinese", + "coptic", + "discworld", + "ethiopian", + "gregorian", + "hebrew", + "islamic", + "jalali", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "taiwan", + "thai", + "ummalqura" + ] + }, + "xhoverformat": { + "description": "Sets the hover text formatting rulefor `x` 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*By default the values are formatted using `xaxis.hoverformat`.", + "dflt": "", + "editType": "none", + "valType": "string" + }, + "xsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `x`.", + "editType": "none", + "valType": "string" + }, + "y": { + "description": "Sets the sample data to be binned on the y axis.", + "editType": "calc+clearAxisTypes", + "valType": "data_array" + }, + "yaxis": { + "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on.", + "dflt": "y", + "editType": "calc+clearAxisTypes", + "valType": "subplotid" + }, + "ybingroup": { + "description": "Set a group of histogram traces which will have compatible y-bin settings. Using `ybingroup`, histogram2d and histogram2dcontour traces (on axes of the same axis type) can have compatible y-bin settings. Note that the same `ybingroup` value can be used to set (1D) histogram `bingroup`", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "ybins": { + "editType": "calc", + "end": { + "description": "Sets the end value for the y axis bins. The last bin may not end exactly at this value, we increment the bin edge by `size` from `start` until we reach or exceed `end`. Defaults to the maximum data value. Like `start`, for dates use a date string, and for category data `end` is based on the category serial numbers.", + "editType": "calc", + "valType": "any" }, - "z": { + "role": "object", + "size": { + "description": "Sets the size of each y axis bin. Default behavior: If `nbinsy` is 0 or omitted, we choose a nice round bin size such that the number of bins is about the same as the typical number of samples in each bin. If `nbinsy` is provided, we choose a nice round bin size giving no more than that many bins. For date data, use milliseconds or *M* for months, as in `axis.dtick`. For category data, the number of categories to bin together (always defaults to 1). ", "editType": "calc", - "fill": { - "description": "Sets the fill ratio of the `caps`. The default fill value of the `caps` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "dflt": 1, - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - "role": "object", - "show": { - "description": "Sets the fill ratio of the `slices`. The default fill value of the z `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "dflt": true, - "editType": "calc", - "valType": "boolean" - } + "valType": "any" + }, + "start": { + "description": "Sets the starting value for the y axis bins. Defaults to the minimum data value, shifted down if necessary to make nice round values and to remove ambiguous bin edges. For example, if most of the data is integers we shift the bin edges 0.5 down, so a `size` of 5 would have a default `start` of -0.5, so it is clear that 0-4 are in the first bin, 5-9 in the second, but continuous data gets a start of 0 and bins [0,5), [5,10) etc. Dates behave similarly, and `start` should be a date string. For category data, `start` is based on the category serial numbers, and defaults to -0.5. ", + "editType": "calc", + "valType": "any" } }, - "cauto": { - "description": "Determines whether or not the color domain is computed with respect to the input data (here `value`) or the bounds set in `cmin` and `cmax` Defaults to `false` when `cmin` and `cmax` are set by the user.", + "ycalendar": { + "description": "Sets the calendar system to use with `y` date data.", + "dflt": "gregorian", + "editType": "calc", + "valType": "enumerated", + "values": [ + "chinese", + "coptic", + "discworld", + "ethiopian", + "gregorian", + "hebrew", + "islamic", + "jalali", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "taiwan", + "thai", + "ummalqura" + ] + }, + "yhoverformat": { + "description": "Sets the hover text formatting rulefor `y` 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*By default the values are formatted using `yaxis.hoverformat`.", + "dflt": "", + "editType": "none", + "valType": "string" + }, + "ysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `y`.", + "editType": "none", + "valType": "string" + }, + "z": { + "description": "Sets the aggregation data.", + "editType": "calc", + "valType": "data_array" + }, + "zauto": { + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `z`) or the bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user.", "dflt": true, "editType": "calc", "impliedEdits": {}, "valType": "boolean" }, - "cmax": { - "description": "Sets the upper bound of the color domain. Value should have the same units as `value` and if set, `cmin` must be set as well.", + "zhoverformat": { + "description": "Sets the hover text formatting rulefor `z` 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.By default the values are formatted using generic number format.", + "dflt": "", + "editType": "none", + "valType": "string" + }, + "zmax": { + "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well.", "dflt": null, "editType": "calc", "impliedEdits": { - "cauto": false + "zauto": false }, "valType": "number" }, - "cmid": { - "description": "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 `value`. Has no effect when `cauto` is `false`.", + "zmid": { + "description": "Sets the mid-point of the color domain by scaling `zmin` and/or `zmax` to be equidistant to this point. Value should have the same units as in `z`. Has no effect when `zauto` is `false`.", "dflt": null, "editType": "calc", "impliedEdits": {}, "valType": "number" }, - "cmin": { - "description": "Sets the lower bound of the color domain. Value should have the same units as `value` and if set, `cmax` must be set as well.", + "zmin": { + "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well.", "dflt": null, "editType": "calc", "impliedEdits": { - "cauto": false + "zauto": false }, "valType": "number" }, - "coloraxis": { - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", - "dflt": null, - "editType": "calc", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "valType": "subplotid" + "zsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `z`.", + "editType": "none", + "valType": "string" + } + }, + "categories": [ + "cartesian", + "svg", + "2dMap", + "contour", + "histogram", + "showLegend" + ], + "meta": { + "description": "The sample data from which statistics are computed is set in `x` and `y` (where `x` and `y` represent marginal distributions, binning is set in `xbins` and `ybins` in this case) or `z` (where `z` represent the 2D distribution and binning set, binning is set by `x` and `y` in this case). The resulting distribution is visualized as a contour plot.", + "hrName": "histogram_2d_contour" + }, + "type": "histogram2dcontour" + }, + "icicle": { + "animatable": true, + "attributes": { + "branchvalues": { + "description": "Determines how the items in `values` are summed. When set to *total*, items in `values` are taken to be value of all its descendants. When set to *remainder*, items in `values` corresponding to the root and the branches sectors are taken to be the extra part not part of the sum of the values at their leaves.", + "dflt": "remainder", + "editType": "calc", + "valType": "enumerated", + "values": [ + "remainder", + "total" + ] }, - "colorbar": { - "_deprecated": { - "title": { - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "calc", - "valType": "string" - }, - "titlefont": { - "color": { - "editType": "calc", - "valType": "color" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "calc", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "calc", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "calc", - "valType": "string" - }, - "size": { - "editType": "calc", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "calc", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "titleside": { - "description": "Deprecated in favor of color bar's `title.side`.", - "dflt": "top", - "editType": "calc", - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ] - } - }, - "bgcolor": { - "description": "Sets the color of padded area.", - "dflt": "rgba(0,0,0,0)", - "editType": "calc", - "valType": "color" - }, - "bordercolor": { - "description": "Sets the axis line color.", - "dflt": "#444", - "editType": "calc", - "valType": "color" - }, - "borderwidth": { - "description": "Sets the width (in px) or the border enclosing this color bar.", + "count": { + "description": "Determines default for `values` when it is not provided, by inferring a 1 for each of the *leaves* and/or *branches*, otherwise 0.", + "dflt": "leaves", + "editType": "calc", + "flags": [ + "branches", + "leaves" + ], + "valType": "flaglist" + }, + "customdata": { + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", + "editType": "calc", + "valType": "data_array" + }, + "customdatasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", + "editType": "none", + "valType": "string" + }, + "domain": { + "column": { + "description": "If there is a layout grid, use the domain for this column in the grid for this icicle trace .", "dflt": 0, "editType": "calc", "min": 0, - "valType": "number" - }, - "dtick": { - "description": "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*, 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* 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*", - "editType": "calc", - "impliedEdits": { - "tickmode": "linear" - }, - "valType": "any" + "valType": "integer" }, "editType": "calc", - "exponentformat": { - "description": "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.", - "dflt": "B", - "editType": "calc", - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ] - }, - "labelalias": { - "description": "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.", - "dflt": false, - "editType": "calc", - "valType": "any" - }, - "len": { - "description": "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.", - "dflt": 1, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "lenmode": { - "description": "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.", - "dflt": "fraction", - "editType": "calc", - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ] - }, - "minexponent": { - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", - "dflt": 3, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "nticks": { - "description": "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*.", + "role": "object", + "row": { + "description": "If there is a layout grid, use the domain for this row in the grid for this icicle trace .", "dflt": 0, "editType": "calc", "min": 0, "valType": "integer" }, - "orientation": { - "description": "Sets the orientation of the colorbar.", - "dflt": "v", - "editType": "calc", - "valType": "enumerated", - "values": [ - "h", - "v" - ] - }, - "outlinecolor": { - "description": "Sets the axis line color.", - "dflt": "#444", - "editType": "calc", - "valType": "color" - }, - "outlinewidth": { - "description": "Sets the width (in px) of the axis line.", - "dflt": 1, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "role": "object", - "separatethousands": { - "description": "If \"true\", even 4-digit integers are separated", - "dflt": false, - "editType": "calc", - "valType": "boolean" - }, - "showexponent": { - "description": "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.", - "dflt": "all", - "editType": "calc", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] - }, - "showticklabels": { - "description": "Determines whether or not the tick labels are drawn.", - "dflt": true, - "editType": "calc", - "valType": "boolean" - }, - "showtickprefix": { - "description": "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.", - "dflt": "all", + "x": { + "description": "Sets the horizontal domain of this icicle trace (in plot fraction).", + "dflt": [ + 0, + 1 + ], "editType": "calc", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] + "items": [ + { + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + }, + { + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + } + ], + "valType": "info_array" }, - "showticksuffix": { - "description": "Same as `showtickprefix` but for tick suffixes.", - "dflt": "all", + "y": { + "description": "Sets the vertical domain of this icicle trace (in plot fraction).", + "dflt": [ + 0, + 1 + ], "editType": "calc", + "items": [ + { + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + }, + { + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + } + ], + "valType": "info_array" + } + }, + "hoverinfo": { + "arrayOk": true, + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", + "dflt": "label+text+value+name", + "editType": "none", + "extras": [ + "all", + "none", + "skip" + ], + "flags": [ + "label", + "text", + "value", + "name", + "current path", + "percent root", + "percent entry", + "percent parent" + ], + "valType": "flaglist" + }, + "hoverinfosrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", + "editType": "none", + "valType": "string" + }, + "hoverlabel": { + "align": { + "arrayOk": true, + "description": "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", + "dflt": "auto", + "editType": "none", "valType": "enumerated", "values": [ - "all", - "first", - "last", - "none" + "left", + "right", + "auto" ] }, - "thickness": { - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "dflt": 30, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "thicknessmode": { - "description": "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.", - "dflt": "pixels", - "editType": "calc", - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ] + "alignsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `align`.", + "editType": "none", + "valType": "string" }, - "tick0": { - "description": "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* (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.", - "editType": "calc", - "impliedEdits": { - "tickmode": "linear" - }, - "valType": "any" + "bgcolor": { + "arrayOk": true, + "description": "Sets the background color of the hover labels for this trace", + "editType": "none", + "valType": "color" }, - "tickangle": { - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", - "dflt": "auto", - "editType": "calc", - "valType": "angle" + "bgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", + "editType": "none", + "valType": "string" }, - "tickcolor": { - "description": "Sets the tick color.", - "dflt": "#444", - "editType": "calc", + "bordercolor": { + "arrayOk": true, + "description": "Sets the border color of the hover labels for this trace.", + "editType": "none", "valType": "color" }, - "tickfont": { + "bordercolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", + "editType": "none", + "valType": "string" + }, + "editType": "none", + "font": { "color": { - "editType": "calc", + "arrayOk": true, + "editType": "none", "valType": "color" }, - "description": "Sets the color bar's tick label font", - "editType": "calc", + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "description": "Sets the font used in hover labels.", + "editType": "none", "family": { + "arrayOk": true, "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc", + "editType": "none", "noBlank": true, "strict": true, "valType": "string" }, + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" + }, "lineposition": { + "arrayOk": true, "description": "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.", "dflt": "none", - "editType": "calc", + "editType": "none", "extras": [ "none" ], @@ -50881,32 +49719,56 @@ ], "valType": "flaglist" }, + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", + "editType": "none", + "valType": "string" + }, "role": "object", "shadow": { + "arrayOk": true, "description": "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.", "dflt": "none", - "editType": "calc", + "editType": "none", + "valType": "string" + }, + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", "valType": "string" }, "size": { - "editType": "calc", + "arrayOk": true, + "editType": "none", "min": 1, "valType": "number" }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, "style": { + "arrayOk": true, "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "calc", + "editType": "none", "valType": "enumerated", "values": [ "normal", "italic" ] }, + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", + "valType": "string" + }, "textcase": { + "arrayOk": true, "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "calc", + "editType": "none", "valType": "enumerated", "values": [ "normal", @@ -50915,10 +49777,16 @@ "lower" ] }, + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", + "valType": "string" + }, "variant": { + "arrayOk": true, "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "calc", + "editType": "none", "valType": "enumerated", "values": [ "normal", @@ -50929,10 +49797,16 @@ "unicase" ] }, + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" + }, "weight": { + "arrayOk": true, "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "calc", + "editType": "none", "extras": [ "normal", "bold" @@ -50940,651 +49814,226 @@ "max": 1000, "min": 1, "valType": "integer" - } - }, - "tickformat": { - "description": "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*", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "dtickrange": { - "description": "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*", - "editType": "calc", - "items": [ - { - "editType": "calc", - "valType": "any" - }, - { - "editType": "calc", - "valType": "any" - } - ], - "valType": "info_array" - }, - "editType": "calc", - "enabled": { - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", - "dflt": true, - "editType": "calc", - "valType": "boolean" - }, - "name": { - "description": "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.", - "editType": "calc", - "valType": "string" - }, - "role": "object", - "templateitemname": { - "description": "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`.", - "editType": "calc", - "valType": "string" - }, - "value": { - "description": "string - dtickformat for described zoom level, the same as *tickformat*", - "dflt": "", - "editType": "calc", - "valType": "string" - } - } }, - "role": "object" - }, - "ticklabeloverflow": { - "description": "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*.", - "editType": "calc", - "valType": "enumerated", - "values": [ - "allow", - "hide past div", - "hide past domain" - ] - }, - "ticklabelposition": { - "description": "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*.", - "dflt": "outside", - "editType": "calc", - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside left", - "inside left", - "outside right", - "inside right", - "outside bottom", - "inside bottom" - ] + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" + } }, - "ticklabelstep": { - "description": "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*.", - "dflt": 1, - "editType": "calc", - "min": 1, + "namelength": { + "arrayOk": true, + "description": "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.", + "dflt": 15, + "editType": "none", + "min": -1, "valType": "integer" }, - "ticklen": { - "description": "Sets the tick length (in px).", - "dflt": 5, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "tickmode": { - "description": "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).", - "editType": "calc", - "impliedEdits": {}, - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ] - }, - "tickprefix": { - "description": "Sets a tick label prefix.", - "dflt": "", - "editType": "calc", + "namelengthsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", + "editType": "none", "valType": "string" }, - "ticks": { - "description": "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.", - "dflt": "", - "editType": "calc", - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ] + "role": "object" + }, + "hovertemplate": { + "arrayOk": true, + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `currentPath`, `root`, `entry`, `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "dflt": "", + "editType": "none", + "valType": "string" + }, + "hovertemplatesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", + "editType": "none", + "valType": "string" + }, + "hovertext": { + "arrayOk": true, + "description": "Sets hover text elements associated with each sector. If a single string, the same string appears for all data points. If an array of string, the items are mapped in order of this trace's sectors. To be seen, trace `hoverinfo` must contain a *text* flag.", + "dflt": "", + "editType": "style", + "valType": "string" + }, + "hovertextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertext`.", + "editType": "none", + "valType": "string" + }, + "ids": { + "anim": true, + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", + "editType": "calc", + "valType": "data_array" + }, + "idssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ids`.", + "editType": "none", + "valType": "string" + }, + "insidetextfont": { + "color": { + "arrayOk": true, + "editType": "plot", + "valType": "color" }, - "ticksuffix": { - "description": "Sets a tick label suffix.", - "dflt": "", - "editType": "calc", + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", "valType": "string" }, - "ticktext": { - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "editType": "calc", - "valType": "data_array" + "description": "Sets the font used for `textinfo` lying inside the sector.", + "editType": "plot", + "family": { + "arrayOk": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "plot", + "noBlank": true, + "strict": true, + "valType": "string" }, - "ticktextsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", "editType": "none", "valType": "string" }, - "tickvals": { - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "editType": "calc", - "valType": "data_array" + "lineposition": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "plot", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" }, - "tickvalssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", "editType": "none", "valType": "string" }, - "tickwidth": { - "description": "Sets the tick width (in px).", - "dflt": 1, - "editType": "calc", - "min": 0, - "valType": "number" + "role": "object", + "shadow": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "plot", + "valType": "string" }, - "title": { - "editType": "calc", - "font": { - "color": { - "editType": "calc", - "valType": "color" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "calc", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "calc", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "calc", - "valType": "string" - }, - "size": { - "editType": "calc", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "calc", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "role": "object", - "side": { - "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "calc", - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ] - }, - "text": { - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "calc", - "valType": "string" - } + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", + "valType": "string" }, - "x": { - "description": "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*.", - "editType": "calc", + "size": { + "arrayOk": true, + "editType": "plot", + "min": 1, "valType": "number" }, - "xanchor": { - "description": "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*.", - "editType": "calc", - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ] - }, - "xpad": { - "description": "Sets the amount of padding (in px) along the x direction.", - "dflt": 10, - "editType": "calc", - "min": 0, - "valType": "number" + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" }, - "xref": { - "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", - "dflt": "paper", - "editType": "calc", + "style": { + "arrayOk": true, + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "plot", "valType": "enumerated", "values": [ - "container", - "paper" + "normal", + "italic" ] }, - "y": { - "description": "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*.", - "editType": "calc", - "valType": "number" + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", + "valType": "string" }, - "yanchor": { - "description": "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*.", - "editType": "calc", + "textcase": { + "arrayOk": true, + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "plot", "valType": "enumerated", "values": [ - "top", - "middle", - "bottom" + "normal", + "word caps", + "upper", + "lower" ] }, - "ypad": { - "description": "Sets the amount of padding (in px) along the y direction.", - "dflt": 10, - "editType": "calc", - "min": 0, - "valType": "number" + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", + "valType": "string" }, - "yref": { - "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", - "dflt": "paper", - "editType": "calc", + "variant": { + "arrayOk": true, + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "plot", "valType": "enumerated", "values": [ - "container", - "paper" + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" ] - } - }, - "colorscale": { - "description": "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.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "autocolorscale": false - }, - "valType": "colorscale" - }, - "contour": { - "color": { - "description": "Sets the color of the contour lines.", - "dflt": "#444", - "editType": "calc", - "valType": "color" }, - "editType": "calc", - "role": "object", - "show": { - "description": "Sets whether or not dynamic contours are shown on hover", - "dflt": false, - "editType": "calc", - "valType": "boolean" + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" }, - "width": { - "description": "Sets the width of the contour lines.", - "dflt": 2, - "editType": "calc", - "max": 16, + "weight": { + "arrayOk": true, + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "plot", + "extras": [ + "normal", + "bold" + ], + "max": 1000, "min": 1, - "valType": "number" + "valType": "integer" + }, + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" } }, - "customdata": { - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", + "labels": { + "description": "Sets the labels of each of the sectors.", "editType": "calc", "valType": "data_array" }, - "customdatasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", + "labelssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `labels`.", "editType": "none", "valType": "string" }, - "flatshading": { - "description": "Determines whether or not normal smoothing is applied to the meshes, creating meshes with an angular, low-poly look via flat reflections.", - "dflt": true, - "editType": "calc", - "valType": "boolean" - }, - "hoverinfo": { - "arrayOk": true, - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", - "dflt": "all", - "editType": "calc", - "extras": [ - "all", - "none", - "skip" - ], - "flags": [ - "x", - "y", - "z", - "text", - "name" - ], - "valType": "flaglist" - }, - "hoverinfosrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", - "editType": "none", - "valType": "string" - }, - "hoverlabel": { - "align": { - "arrayOk": true, - "description": "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", - "dflt": "auto", - "editType": "none", - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ] - }, - "alignsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `align`.", - "editType": "none", - "valType": "string" - }, - "bgcolor": { - "arrayOk": true, - "description": "Sets the background color of the hover labels for this trace", - "editType": "none", - "valType": "color" - }, - "bgcolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", - "editType": "none", - "valType": "string" - }, - "bordercolor": { - "arrayOk": true, - "description": "Sets the border color of the hover labels for this trace.", - "editType": "none", - "valType": "color" - }, - "bordercolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", - "editType": "none", - "valType": "string" - }, - "editType": "none", - "font": { - "color": { - "arrayOk": true, - "editType": "none", - "valType": "color" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "description": "Sets the font used in hover labels.", - "editType": "none", - "family": { - "arrayOk": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "none", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" - }, - "lineposition": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "none", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", - "valType": "string" - }, - "role": "object", - "shadow": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "none", - "valType": "string" - }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", - "editType": "none", - "valType": "string" - }, - "size": { - "arrayOk": true, - "editType": "none", - "min": 1, - "valType": "number" - }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" - }, - "style": { - "arrayOk": true, - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "none", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" - }, - "textcase": { - "arrayOk": true, - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "none", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" - }, - "variant": { - "arrayOk": true, - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "none", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" - }, - "weight": { - "arrayOk": true, - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "none", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", - "valType": "string" - } - }, - "namelength": { - "arrayOk": true, - "description": "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.", - "dflt": 15, - "editType": "none", - "min": -1, - "valType": "integer" - }, - "namelengthsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", - "editType": "none", - "valType": "string" - }, - "role": "object" - }, - "hovertemplate": { - "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "hovertemplatesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", - "editType": "none", - "valType": "string" - }, - "hovertext": { - "arrayOk": true, - "description": "Same as `text`.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "hovertextsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hovertext`.", - "editType": "none", - "valType": "string" - }, - "ids": { - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "editType": "calc", - "valType": "data_array" - }, - "idssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ids`.", - "editType": "none", - "valType": "string" - }, - "isomax": { - "description": "Sets the maximum boundary for iso-surface plot.", - "editType": "calc", - "valType": "number" - }, - "isomin": { - "description": "Sets the minimum boundary for iso-surface plot.", - "editType": "calc", - "valType": "number" + "leaf": { + "editType": "plot", + "opacity": { + "description": "Sets the opacity of the leaves. With colorscale it is defaulted to 1; otherwise it is defaulted to 0.7", + "editType": "style", + "max": 1, + "min": 0, + "valType": "number" + }, + "role": "object" }, "legend": { "description": "Sets the reference to a legend to show this trace 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.", @@ -51592,12 +50041,6 @@ "editType": "style", "valType": "subplotid" }, - "legendgroup": { - "description": "Sets the legend group for this trace. Traces and shapes part of the same legend group hide/show at the same time when toggling legend items.", - "dflt": "", - "editType": "style", - "valType": "string" - }, "legendgrouptitle": { "editType": "style", "font": { @@ -51709,1028 +50152,360 @@ "min": 0, "valType": "number" }, - "lighting": { - "ambient": { - "description": "Ambient light increases overall color visibility but can wash out the image.", - "dflt": 0.8, - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - "diffuse": { - "description": "Represents the extent that incident rays are reflected in a range of angles.", - "dflt": 0.8, - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - "editType": "calc", - "facenormalsepsilon": { - "description": "Epsilon for face normals calculation avoids math issues arising from degenerate geometry.", - "dflt": 0, - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - "fresnel": { - "description": "Represents the reflectance as a dependency of the viewing angle; e.g. paper is reflective when viewing it from the edge of the paper (almost 90 degrees), causing shine.", - "dflt": 0.2, - "editType": "calc", - "max": 5, - "min": 0, - "valType": "number" - }, - "role": "object", - "roughness": { - "description": "Alters specular reflection; the rougher the surface, the wider and less contrasty the shine.", - "dflt": 0.5, + "level": { + "anim": true, + "description": "Sets the level from which this trace hierarchy is rendered. Set `level` to `''` to start from the root node in the hierarchy. Must be an \"id\" if `ids` is filled in, otherwise plotly attempts to find a matching item in `labels`.", + "editType": "plot", + "valType": "any" + }, + "marker": { + "autocolorscale": { + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if colors is set to a numerical array. 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.", + "dflt": true, "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" + "impliedEdits": {}, + "valType": "boolean" }, - "specular": { - "description": "Represents the level that incident rays are reflected in a single direction, causing shine.", - "dflt": 0.05, + "cauto": { + "description": "Determines whether or not the color domain is computed with respect to the input data (here colors) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if colors is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user.", + "dflt": true, "editType": "calc", - "max": 2, - "min": 0, - "valType": "number" + "impliedEdits": {}, + "valType": "boolean" }, - "vertexnormalsepsilon": { - "description": "Epsilon for vertex normals calculation avoids math issues arising from degenerate geometry.", - "dflt": 1e-12, - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - } - }, - "lightposition": { - "editType": "calc", - "role": "object", - "x": { - "description": "Numeric vector, representing the X coordinate for each vertex.", - "dflt": 100000, - "editType": "calc", - "max": 100000, - "min": -100000, + "cmax": { + "description": "Sets the upper bound of the color domain. Has an effect only if colors is set to a numerical array. Value should have the same units as colors and if set, `marker.cmin` must be set as well.", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, "valType": "number" }, - "y": { - "description": "Numeric vector, representing the Y coordinate for each vertex.", - "dflt": 100000, + "cmid": { + "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if colors is set to a numerical array. Value should have the same units as colors. Has no effect when `marker.cauto` is `false`.", + "dflt": null, "editType": "calc", - "max": 100000, - "min": -100000, + "impliedEdits": {}, "valType": "number" }, - "z": { - "description": "Numeric vector, representing the Z coordinate for each vertex.", - "dflt": 0, - "editType": "calc", - "max": 100000, - "min": -100000, - "valType": "number" - } - }, - "meta": { - "arrayOk": true, - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", - "editType": "plot", - "valType": "any" - }, - "metasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `meta`.", - "editType": "none", - "valType": "string" - }, - "name": { - "description": "Sets the trace name. The trace name appears as the legend item and on hover.", - "editType": "style", - "valType": "string" - }, - "opacity": { - "description": "Sets the opacity of the surface. Please note that in the case of using high `opacity` values for example a value greater than or equal to 0.5 on two surfaces (and 0.25 with four surfaces), an overlay of multiple transparent surfaces may not perfectly be sorted in depth by the webgl API. This behavior may be improved in the near future and is subject to change.", - "dflt": 1, - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - "reversescale": { - "description": "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.", - "dflt": false, - "editType": "calc", - "valType": "boolean" - }, - "scene": { - "description": "Sets a reference between this trace's 3D coordinate system and a 3D scene. If *scene* (the default value), the (x,y,z) coordinates refer to `layout.scene`. If *scene2*, the (x,y,z) coordinates refer to `layout.scene2`, and so on.", - "dflt": "scene", - "editType": "calc+clearAxisTypes", - "valType": "subplotid" - }, - "showlegend": { - "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", - "dflt": false, - "editType": "calc", - "valType": "boolean" - }, - "showscale": { - "description": "Determines whether or not a colorbar is displayed for this trace.", - "dflt": true, - "editType": "calc", - "valType": "boolean" - }, - "slices": { - "editType": "calc", - "role": "object", - "x": { - "editType": "calc", - "fill": { - "description": "Sets the fill ratio of the `slices`. The default fill value of the `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "dflt": 1, - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - "locations": { - "description": "Specifies the location(s) of slices on the axis. When not specified slices would be created for all points of the axis x except start and end.", - "dflt": [], - "editType": "calc", - "valType": "data_array" - }, - "locationssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `locations`.", - "editType": "none", - "valType": "string" + "cmin": { + "description": "Sets the lower bound of the color domain. Has an effect only if colors is set to a numerical array. Value should have the same units as colors and if set, `marker.cmax` must be set as well.", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false }, - "role": "object", - "show": { - "description": "Determines whether or not slice planes about the x dimension are drawn.", - "dflt": false, - "editType": "calc", - "valType": "boolean" - } + "valType": "number" }, - "y": { + "coloraxis": { + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", + "dflt": null, "editType": "calc", - "fill": { - "description": "Sets the fill ratio of the `slices`. The default fill value of the `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "dflt": 1, - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - "locations": { - "description": "Specifies the location(s) of slices on the axis. When not specified slices would be created for all points of the axis y except start and end.", - "dflt": [], - "editType": "calc", - "valType": "data_array" - }, - "locationssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `locations`.", - "editType": "none", - "valType": "string" - }, - "role": "object", - "show": { - "description": "Determines whether or not slice planes about the y dimension are drawn.", - "dflt": false, - "editType": "calc", - "valType": "boolean" - } + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "valType": "subplotid" }, - "z": { - "editType": "calc", - "fill": { - "description": "Sets the fill ratio of the `slices`. The default fill value of the `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "dflt": 1, - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - "locations": { - "description": "Specifies the location(s) of slices on the axis. When not specified slices would be created for all points of the axis z except start and end.", - "dflt": [], - "editType": "calc", - "valType": "data_array" - }, - "locationssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `locations`.", - "editType": "none", - "valType": "string" - }, - "role": "object", - "show": { - "description": "Determines whether or not slice planes about the z dimension are drawn.", - "dflt": false, - "editType": "calc", - "valType": "boolean" - } - } - }, - "spaceframe": { - "editType": "calc", - "fill": { - "description": "Sets the fill ratio of the `spaceframe` elements. The default fill value is 0.15 meaning that only 15% of the area of every faces of tetras would be shaded. Applying a greater `fill` ratio would allow the creation of stronger elements or could be sued to have entirely closed areas (in case of using 1).", - "dflt": 0.15, - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - "role": "object", - "show": { - "description": "Displays/hides tetrahedron shapes between minimum and maximum iso-values. Often useful when either caps or surfaces are disabled or filled with values less than 1.", - "dflt": false, - "editType": "calc", - "valType": "boolean" - } - }, - "stream": { - "editType": "calc", - "maxpoints": { - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot.", - "dflt": 500, - "editType": "calc", - "max": 10000, - "min": 0, - "valType": "number" - }, - "role": "object", - "token": { - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details.", - "editType": "calc", - "noBlank": true, - "strict": true, - "valType": "string" - } - }, - "surface": { - "count": { - "description": "Sets the number of iso-surfaces between minimum and maximum iso-values. By default this value is 2 meaning that only minimum and maximum surfaces would be drawn.", - "dflt": 2, - "editType": "calc", - "min": 1, - "valType": "integer" - }, - "editType": "calc", - "fill": { - "description": "Sets the fill ratio of the iso-surface. The default fill value of the surface is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "dflt": 1, - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - "pattern": { - "description": "Sets the surface pattern of the iso-surface 3-D sections. The default pattern of the surface is `all` meaning that the rest of surface elements would be shaded. The check options (either 1 or 2) could be used to draw half of the squares on the surface. Using various combinations of capital `A`, `B`, `C`, `D` and `E` may also be used to reduce the number of triangles on the iso-surfaces and creating other patterns of interest.", - "dflt": "all", - "editType": "calc", - "extras": [ - "all", - "odd", - "even" - ], - "flags": [ - "A", - "B", - "C", - "D", - "E" - ], - "valType": "flaglist" - }, - "role": "object", - "show": { - "description": "Hides/displays surfaces between minimum and maximum iso-values.", - "dflt": true, - "editType": "calc", - "valType": "boolean" - } - }, - "text": { - "arrayOk": true, - "description": "Sets the text elements associated with the vertices. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "textsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `text`.", - "editType": "none", - "valType": "string" - }, - "type": "isosurface", - "uid": { - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", - "editType": "plot", - "valType": "string" - }, - "uirevision": { - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.", - "editType": "none", - "valType": "any" - }, - "value": { - "description": "Sets the 4th dimension (value) of the vertices.", - "editType": "calc+clearAxisTypes", - "valType": "data_array" - }, - "valuehoverformat": { - "description": "Sets the hover text formatting rulefor `value` 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.By default the values are formatted using generic number format.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "valuesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `value`.", - "editType": "none", - "valType": "string" - }, - "visible": { - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", - "dflt": true, - "editType": "calc", - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ] - }, - "x": { - "description": "Sets the X coordinates of the vertices on X axis.", - "editType": "calc+clearAxisTypes", - "valType": "data_array" - }, - "xhoverformat": { - "description": "Sets the hover text formatting rulefor `x` 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*By default the values are formatted using `xaxis.hoverformat`.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "xsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `x`.", - "editType": "none", - "valType": "string" - }, - "y": { - "description": "Sets the Y coordinates of the vertices on Y axis.", - "editType": "calc+clearAxisTypes", - "valType": "data_array" - }, - "yhoverformat": { - "description": "Sets the hover text formatting rulefor `y` 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*By default the values are formatted using `yaxis.hoverformat`.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "ysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `y`.", - "editType": "none", - "valType": "string" - }, - "z": { - "description": "Sets the Z coordinates of the vertices on Z axis.", - "editType": "calc+clearAxisTypes", - "valType": "data_array" - }, - "zhoverformat": { - "description": "Sets the hover text formatting rulefor `z` 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*By default the values are formatted using `zaxis.hoverformat`.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "zsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `z`.", - "editType": "none", - "valType": "string" - } - }, - "categories": [ - "gl3d", - "showLegend" - ], - "meta": { - "description": "Draws isosurfaces between iso-min and iso-max values with coordinates given by four 1-dimensional arrays containing the `value`, `x`, `y` and `z` of every vertex of a uniform or non-uniform 3-D grid. Horizontal or vertical slices, caps as well as spaceframe between iso-min and iso-max values could also be drawn using this trace." - }, - "type": "isosurface" - }, - "mesh3d": { - "animatable": false, - "attributes": { - "alphahull": { - "description": "Determines how the mesh surface triangles are derived from the set of vertices (points) represented by the `x`, `y` and `z` arrays, if the `i`, `j`, `k` arrays are not supplied. For general use of `mesh3d` it is preferred that `i`, `j`, `k` are supplied. If *-1*, Delaunay triangulation is used, which is mainly suitable if the mesh is a single, more or less layer surface that is perpendicular to `delaunayaxis`. In case the `delaunayaxis` intersects the mesh surface at more than one point it will result triangles that are very long in the dimension of `delaunayaxis`. If *>0*, the alpha-shape algorithm is used. In this case, the positive `alphahull` value signals the use of the alpha-shape algorithm, _and_ its value acts as the parameter for the mesh fitting. If *0*, the convex-hull algorithm is used. It is suitable for convex bodies or if the intention is to enclose the `x`, `y` and `z` point set into a convex hull.", - "dflt": -1, - "editType": "calc", - "valType": "number" - }, - "autocolorscale": { - "description": "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.", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" - }, - "cauto": { - "description": "Determines whether or not the color domain is computed with respect to the input data (here `intensity`) or the bounds set in `cmin` and `cmax` Defaults to `false` when `cmin` and `cmax` are set by the user.", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" - }, - "cmax": { - "description": "Sets the upper bound of the color domain. Value should have the same units as `intensity` and if set, `cmin` must be set as well.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "valType": "number" - }, - "cmid": { - "description": "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 `intensity`. Has no effect when `cauto` is `false`.", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "valType": "number" - }, - "cmin": { - "description": "Sets the lower bound of the color domain. Value should have the same units as `intensity` and if set, `cmax` must be set as well.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "valType": "number" - }, - "color": { - "description": "Sets the color of the whole mesh", - "editType": "calc", - "valType": "color" - }, - "coloraxis": { - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", - "dflt": null, - "editType": "calc", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "valType": "subplotid" - }, - "colorbar": { - "_deprecated": { - "title": { - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars", - "valType": "string" - }, - "titlefont": { - "color": { - "editType": "colorbars", - "valType": "color" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "shadow": { - "description": "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.", - "dflt": "none", + "colorbar": { + "_deprecated": { + "title": { + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", "editType": "colorbars", "valType": "string" }, - "size": { - "editType": "colorbars", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", + "titlefont": { + "color": { + "editType": "colorbars", + "valType": "color" + }, + "description": "Deprecated in favor of color bar's `title.font`.", "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "valType": "string" + }, + "size": { + "editType": "colorbars", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "colorbars", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", + "titleside": { + "description": "Deprecated in favor of color bar's `title.side`.", + "dflt": "top", "editType": "colorbars", "valType": "enumerated", "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" + "right", + "top", + "bottom" ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "colorbars", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" } }, - "titleside": { - "description": "Deprecated in favor of color bar's `title.side`.", - "dflt": "top", + "bgcolor": { + "description": "Sets the color of padded area.", + "dflt": "rgba(0,0,0,0)", + "editType": "colorbars", + "valType": "color" + }, + "bordercolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" + }, + "borderwidth": { + "description": "Sets the width (in px) or the border enclosing this color bar.", + "dflt": 0, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "dtick": { + "description": "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*, 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* 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*", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" + }, + "editType": "colorbars", + "exponentformat": { + "description": "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.", + "dflt": "B", "editType": "colorbars", "valType": "enumerated", "values": [ - "right", - "top", - "bottom" + "none", + "e", + "E", + "power", + "SI", + "B" ] - } - }, - "bgcolor": { - "description": "Sets the color of padded area.", - "dflt": "rgba(0,0,0,0)", - "editType": "colorbars", - "valType": "color" - }, - "bordercolor": { - "description": "Sets the axis line color.", - "dflt": "#444", - "editType": "colorbars", - "valType": "color" - }, - "borderwidth": { - "description": "Sets the width (in px) or the border enclosing this color bar.", - "dflt": 0, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "dtick": { - "description": "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*, 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* 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*", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" }, - "valType": "any" - }, - "editType": "colorbars", - "exponentformat": { - "description": "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.", - "dflt": "B", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ] - }, - "labelalias": { - "description": "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.", - "dflt": false, - "editType": "colorbars", - "valType": "any" - }, - "len": { - "description": "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.", - "dflt": 1, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "lenmode": { - "description": "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.", - "dflt": "fraction", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ] - }, - "minexponent": { - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", - "dflt": 3, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "nticks": { - "description": "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*.", - "dflt": 0, - "editType": "colorbars", - "min": 0, - "valType": "integer" - }, - "orientation": { - "description": "Sets the orientation of the colorbar.", - "dflt": "v", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "h", - "v" - ] - }, - "outlinecolor": { - "description": "Sets the axis line color.", - "dflt": "#444", - "editType": "colorbars", - "valType": "color" - }, - "outlinewidth": { - "description": "Sets the width (in px) of the axis line.", - "dflt": 1, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "role": "object", - "separatethousands": { - "description": "If \"true\", even 4-digit integers are separated", - "dflt": false, - "editType": "colorbars", - "valType": "boolean" - }, - "showexponent": { - "description": "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.", - "dflt": "all", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] - }, - "showticklabels": { - "description": "Determines whether or not the tick labels are drawn.", - "dflt": true, - "editType": "colorbars", - "valType": "boolean" - }, - "showtickprefix": { - "description": "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.", - "dflt": "all", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] - }, - "showticksuffix": { - "description": "Same as `showtickprefix` but for tick suffixes.", - "dflt": "all", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] - }, - "thickness": { - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "dflt": 30, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "thicknessmode": { - "description": "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.", - "dflt": "pixels", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ] - }, - "tick0": { - "description": "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* (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.", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" + "labelalias": { + "description": "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.", + "dflt": false, + "editType": "colorbars", + "valType": "any" }, - "valType": "any" - }, - "tickangle": { - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", - "dflt": "auto", - "editType": "colorbars", - "valType": "angle" - }, - "tickcolor": { - "description": "Sets the tick color.", - "dflt": "#444", - "editType": "colorbars", - "valType": "color" - }, - "tickfont": { - "color": { + "len": { + "description": "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.", + "dflt": 1, "editType": "colorbars", - "valType": "color" + "min": 0, + "valType": "number" }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "lenmode": { + "description": "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.", + "dflt": "fraction", "editType": "colorbars", - "noBlank": true, - "strict": true, - "valType": "string" + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] }, - "lineposition": { - "description": "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.", - "dflt": "none", + "minexponent": { + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", + "dflt": 3, "editType": "colorbars", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" + "min": 0, + "valType": "number" }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", + "nticks": { + "description": "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*.", + "dflt": 0, "editType": "colorbars", - "valType": "string" + "min": 0, + "valType": "integer" }, - "size": { + "orientation": { + "description": "Sets the orientation of the colorbar.", + "dflt": "v", "editType": "colorbars", - "min": 1, + "valType": "enumerated", + "values": [ + "h", + "v" + ] + }, + "outlinecolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" + }, + "outlinewidth": { + "description": "Sets the width (in px) of the axis line.", + "dflt": 1, + "editType": "colorbars", + "min": 0, "valType": "number" }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", + "role": "object", + "separatethousands": { + "description": "If \"true\", even 4-digit integers are separated", + "dflt": false, + "editType": "colorbars", + "valType": "boolean" + }, + "showexponent": { + "description": "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.", + "dflt": "all", "editType": "colorbars", "valType": "enumerated", "values": [ - "normal", - "italic" + "all", + "first", + "last", + "none" ] }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", + "showticklabels": { + "description": "Determines whether or not the tick labels are drawn.", + "dflt": true, + "editType": "colorbars", + "valType": "boolean" + }, + "showtickprefix": { + "description": "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.", + "dflt": "all", "editType": "colorbars", "valType": "enumerated", "values": [ - "normal", - "word caps", - "upper", - "lower" + "all", + "first", + "last", + "none" ] }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", + "showticksuffix": { + "description": "Same as `showtickprefix` but for tick suffixes.", + "dflt": "all", "editType": "colorbars", "valType": "enumerated", "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" + "all", + "first", + "last", + "none" ] }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", + "thickness": { + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "dflt": 30, "editType": "colorbars", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "tickformat": { - "description": "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*", - "dflt": "", - "editType": "colorbars", - "valType": "string" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "dtickrange": { - "description": "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*", - "editType": "colorbars", - "items": [ - { - "editType": "colorbars", - "valType": "any" - }, - { - "editType": "colorbars", - "valType": "any" - } - ], - "valType": "info_array" - }, - "editType": "colorbars", - "enabled": { - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", - "dflt": true, - "editType": "colorbars", - "valType": "boolean" - }, - "name": { - "description": "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.", - "editType": "colorbars", - "valType": "string" - }, - "role": "object", - "templateitemname": { - "description": "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`.", - "editType": "colorbars", - "valType": "string" - }, - "value": { - "description": "string - dtickformat for described zoom level, the same as *tickformat*", - "dflt": "", - "editType": "colorbars", - "valType": "string" - } - } + "min": 0, + "valType": "number" }, - "role": "object" - }, - "ticklabeloverflow": { - "description": "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*.", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "allow", - "hide past div", - "hide past domain" - ] - }, - "ticklabelposition": { - "description": "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*.", - "dflt": "outside", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside left", - "inside left", - "outside right", - "inside right", - "outside bottom", - "inside bottom" - ] - }, - "ticklabelstep": { - "description": "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*.", - "dflt": 1, - "editType": "colorbars", - "min": 1, - "valType": "integer" - }, - "ticklen": { - "description": "Sets the tick length (in px).", - "dflt": 5, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "tickmode": { - "description": "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).", - "editType": "colorbars", - "impliedEdits": {}, - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ] - }, - "tickprefix": { - "description": "Sets a tick label prefix.", - "dflt": "", - "editType": "colorbars", - "valType": "string" - }, - "ticks": { - "description": "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.", - "dflt": "", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ] - }, - "ticksuffix": { - "description": "Sets a tick label suffix.", - "dflt": "", - "editType": "colorbars", - "valType": "string" - }, - "ticktext": { - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "editType": "colorbars", - "valType": "data_array" - }, - "ticktextsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", - "editType": "none", - "valType": "string" - }, - "tickvals": { - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "editType": "colorbars", - "valType": "data_array" - }, - "tickvalssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", - "editType": "none", - "valType": "string" - }, - "tickwidth": { - "description": "Sets the tick width (in px).", - "dflt": 1, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "title": { - "editType": "colorbars", - "font": { + "thicknessmode": { + "description": "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.", + "dflt": "pixels", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] + }, + "tick0": { + "description": "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* (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.", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" + }, + "tickangle": { + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", + "dflt": "auto", + "editType": "colorbars", + "valType": "angle" + }, + "tickcolor": { + "description": "Sets the tick color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" + }, + "tickfont": { "color": { "editType": "colorbars", "valType": "color" }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "description": "Sets the color bar's tick label font", "editType": "colorbars", "family": { "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", @@ -52814,675 +50589,495 @@ "valType": "integer" } }, - "role": "object", - "side": { - "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ] - }, - "text": { - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "tickformat": { + "description": "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*", + "dflt": "", "editType": "colorbars", "valType": "string" - } - }, - "x": { - "description": "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*.", - "editType": "colorbars", - "valType": "number" - }, - "xanchor": { - "description": "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*.", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ] - }, - "xpad": { - "description": "Sets the amount of padding (in px) along the x direction.", - "dflt": 10, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "xref": { - "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", - "dflt": "paper", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "container", - "paper" - ] - }, - "y": { - "description": "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*.", - "editType": "colorbars", - "valType": "number" - }, - "yanchor": { - "description": "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*.", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ] - }, - "ypad": { - "description": "Sets the amount of padding (in px) along the y direction.", - "dflt": 10, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "yref": { - "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", - "dflt": "paper", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "container", - "paper" - ] - } - }, - "colorscale": { - "description": "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.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "autocolorscale": false - }, - "valType": "colorscale" - }, - "contour": { - "color": { - "description": "Sets the color of the contour lines.", - "dflt": "#444", - "editType": "calc", - "valType": "color" - }, - "editType": "calc", - "role": "object", - "show": { - "description": "Sets whether or not dynamic contours are shown on hover", - "dflt": false, - "editType": "calc", - "valType": "boolean" - }, - "width": { - "description": "Sets the width of the contour lines.", - "dflt": 2, - "editType": "calc", - "max": 16, - "min": 1, - "valType": "number" - } - }, - "customdata": { - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "editType": "calc", - "valType": "data_array" - }, - "customdatasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", - "editType": "none", - "valType": "string" - }, - "delaunayaxis": { - "description": "Sets the Delaunay axis, which is the axis that is perpendicular to the surface of the Delaunay triangulation. It has an effect if `i`, `j`, `k` are not provided and `alphahull` is set to indicate Delaunay triangulation.", - "dflt": "z", - "editType": "calc", - "valType": "enumerated", - "values": [ - "x", - "y", - "z" - ] - }, - "facecolor": { - "description": "Sets the color of each face Overrides *color* and *vertexcolor*.", - "editType": "calc", - "valType": "data_array" - }, - "facecolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `facecolor`.", - "editType": "none", - "valType": "string" - }, - "flatshading": { - "description": "Determines whether or not normal smoothing is applied to the meshes, creating meshes with an angular, low-poly look via flat reflections.", - "dflt": false, - "editType": "calc", - "valType": "boolean" - }, - "hoverinfo": { - "arrayOk": true, - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", - "dflt": "all", - "editType": "calc", - "extras": [ - "all", - "none", - "skip" - ], - "flags": [ - "x", - "y", - "z", - "text", - "name" - ], - "valType": "flaglist" - }, - "hoverinfosrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", - "editType": "none", - "valType": "string" - }, - "hoverlabel": { - "align": { - "arrayOk": true, - "description": "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", - "dflt": "auto", - "editType": "none", - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ] - }, - "alignsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `align`.", - "editType": "none", - "valType": "string" - }, - "bgcolor": { - "arrayOk": true, - "description": "Sets the background color of the hover labels for this trace", - "editType": "none", - "valType": "color" - }, - "bgcolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", - "editType": "none", - "valType": "string" - }, - "bordercolor": { - "arrayOk": true, - "description": "Sets the border color of the hover labels for this trace.", - "editType": "none", - "valType": "color" - }, - "bordercolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", - "editType": "none", - "valType": "string" - }, - "editType": "none", - "font": { - "color": { - "arrayOk": true, - "editType": "none", - "valType": "color" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "description": "Sets the font used in hover labels.", - "editType": "none", - "family": { - "arrayOk": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "none", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" - }, - "lineposition": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "none", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", - "valType": "string" + "tickformatstops": { + "items": { + "tickformatstop": { + "dtickrange": { + "description": "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*", + "editType": "colorbars", + "items": [ + { + "editType": "colorbars", + "valType": "any" + }, + { + "editType": "colorbars", + "valType": "any" + } + ], + "valType": "info_array" + }, + "editType": "colorbars", + "enabled": { + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", + "dflt": true, + "editType": "colorbars", + "valType": "boolean" + }, + "name": { + "description": "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.", + "editType": "colorbars", + "valType": "string" + }, + "role": "object", + "templateitemname": { + "description": "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`.", + "editType": "colorbars", + "valType": "string" + }, + "value": { + "description": "string - dtickformat for described zoom level, the same as *tickformat*", + "dflt": "", + "editType": "colorbars", + "valType": "string" + } + } + }, + "role": "object" }, - "role": "object", - "shadow": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "none", - "valType": "string" + "ticklabeloverflow": { + "description": "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*.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ] }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", - "editType": "none", - "valType": "string" + "ticklabelposition": { + "description": "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*.", + "dflt": "outside", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside left", + "inside left", + "outside right", + "inside right", + "outside bottom", + "inside bottom" + ] }, - "size": { - "arrayOk": true, - "editType": "none", + "ticklabelstep": { + "description": "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*.", + "dflt": 1, + "editType": "colorbars", "min": 1, - "valType": "number" + "valType": "integer" }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" + "ticklen": { + "description": "Sets the tick length (in px).", + "dflt": 5, + "editType": "colorbars", + "min": 0, + "valType": "number" }, - "style": { - "arrayOk": true, - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "none", + "tickmode": { + "description": "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).", + "editType": "colorbars", + "impliedEdits": {}, "valType": "enumerated", "values": [ - "normal", - "italic" + "auto", + "linear", + "array" ] }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", + "tickprefix": { + "description": "Sets a tick label prefix.", + "dflt": "", + "editType": "colorbars", "valType": "string" }, - "textcase": { - "arrayOk": true, - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "none", + "ticks": { + "description": "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.", + "dflt": "", + "editType": "colorbars", "valType": "enumerated", "values": [ - "normal", - "word caps", - "upper", - "lower" + "outside", + "inside", + "" ] }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", + "ticksuffix": { + "description": "Sets a tick label suffix.", + "dflt": "", + "editType": "colorbars", "valType": "string" }, - "variant": { - "arrayOk": true, - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "none", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] + "ticktext": { + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", + "editType": "colorbars", + "valType": "data_array" }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "ticktextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", "editType": "none", "valType": "string" }, - "weight": { - "arrayOk": true, - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "none", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" + "tickvals": { + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", + "editType": "colorbars", + "valType": "data_array" }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "tickvalssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", "editType": "none", "valType": "string" - } - }, - "namelength": { - "arrayOk": true, - "description": "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.", - "dflt": 15, - "editType": "none", - "min": -1, - "valType": "integer" - }, - "namelengthsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", - "editType": "none", - "valType": "string" - }, - "role": "object" - }, - "hovertemplate": { - "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "hovertemplatesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", - "editType": "none", - "valType": "string" - }, - "hovertext": { - "arrayOk": true, - "description": "Same as `text`.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "hovertextsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hovertext`.", - "editType": "none", - "valType": "string" - }, - "i": { - "description": "A vector of vertex indices, i.e. integer values between 0 and the length of the vertex vectors, representing the *first* vertex of a triangle. For example, `{i[m], j[m], k[m]}` together represent face m (triangle m) in the mesh, where `i[m] = n` points to the triplet `{x[n], y[n], z[n]}` in the vertex arrays. Therefore, each element in `i` represents a point in space, which is the first vertex of a triangle.", - "editType": "calc", - "valType": "data_array" - }, - "ids": { - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "editType": "calc", - "valType": "data_array" - }, - "idssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ids`.", - "editType": "none", - "valType": "string" - }, - "intensity": { - "description": "Sets the intensity values for vertices or cells as defined by `intensitymode`. It can be used for plotting fields on meshes.", - "editType": "calc", - "valType": "data_array" - }, - "intensitymode": { - "description": "Determines the source of `intensity` values.", - "dflt": "vertex", - "editType": "calc", - "valType": "enumerated", - "values": [ - "vertex", - "cell" - ] - }, - "intensitysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `intensity`.", - "editType": "none", - "valType": "string" - }, - "isrc": { - "description": "Sets the source reference on Chart Studio Cloud for `i`.", - "editType": "none", - "valType": "string" - }, - "j": { - "description": "A vector of vertex indices, i.e. integer values between 0 and the length of the vertex vectors, representing the *second* vertex of a triangle. For example, `{i[m], j[m], k[m]}` together represent face m (triangle m) in the mesh, where `j[m] = n` points to the triplet `{x[n], y[n], z[n]}` in the vertex arrays. Therefore, each element in `j` represents a point in space, which is the second vertex of a triangle.", - "editType": "calc", - "valType": "data_array" - }, - "jsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `j`.", - "editType": "none", - "valType": "string" - }, - "k": { - "description": "A vector of vertex indices, i.e. integer values between 0 and the length of the vertex vectors, representing the *third* vertex of a triangle. For example, `{i[m], j[m], k[m]}` together represent face m (triangle m) in the mesh, where `k[m] = n` points to the triplet `{x[n], y[n], z[n]}` in the vertex arrays. Therefore, each element in `k` represents a point in space, which is the third vertex of a triangle.", + }, + "tickwidth": { + "description": "Sets the tick width (in px).", + "dflt": 1, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "title": { + "editType": "colorbars", + "font": { + "color": { + "editType": "colorbars", + "valType": "color" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "valType": "string" + }, + "size": { + "editType": "colorbars", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "colorbars", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "role": "object", + "side": { + "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ] + }, + "text": { + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars", + "valType": "string" + } + }, + "x": { + "description": "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*.", + "editType": "colorbars", + "valType": "number" + }, + "xanchor": { + "description": "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*.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ] + }, + "xpad": { + "description": "Sets the amount of padding (in px) along the x direction.", + "dflt": 10, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, + "y": { + "description": "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*.", + "editType": "colorbars", + "valType": "number" + }, + "yanchor": { + "description": "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*.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ] + }, + "ypad": { + "description": "Sets the amount of padding (in px) along the y direction.", + "dflt": 10, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + } + }, + "colors": { + "description": "Sets the color of each sector of this trace. If not specified, the default trace color set is used to pick the sector colors.", + "editType": "calc", + "valType": "data_array" + }, + "colorscale": { + "description": "Sets the colorscale. Has an effect only if colors is set to a numerical array. 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 `marker.cmin` and `marker.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.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "autocolorscale": false + }, + "valType": "colorscale" + }, + "colorssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `colors`.", + "editType": "none", + "valType": "string" + }, "editType": "calc", - "valType": "data_array" - }, - "ksrc": { - "description": "Sets the source reference on Chart Studio Cloud for `k`.", - "editType": "none", - "valType": "string" - }, - "legend": { - "description": "Sets the reference to a legend to show this trace 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.", - "dflt": "legend", - "editType": "style", - "valType": "subplotid" - }, - "legendgroup": { - "description": "Sets the legend group for this trace. Traces and shapes part of the same legend group hide/show at the same time when toggling legend items.", - "dflt": "", - "editType": "style", - "valType": "string" - }, - "legendgrouptitle": { - "editType": "style", - "font": { + "line": { "color": { + "arrayOk": true, + "description": "Sets the color of the line enclosing each sector. Defaults to the `paper_bgcolor` value.", + "dflt": null, "editType": "style", "valType": "color" }, - "description": "Sets this legend group's title font.", - "editType": "style", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "style", - "noBlank": true, - "strict": true, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", "valType": "string" }, - "lineposition": { - "description": "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.", - "dflt": "none", + "editType": "calc", + "role": "object", + "width": { + "arrayOk": true, + "description": "Sets the width (in px) of the line enclosing each sector.", + "dflt": 1, "editType": "style", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" + "min": 0, + "valType": "number" }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", + "widthsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `width`.", + "editType": "none", + "valType": "string" + } + }, + "pattern": { + "bgcolor": { + "arrayOk": true, + "description": "When there is no colorscale sets the color of background pattern fill. Defaults to a `marker.color` background when `fillmode` is *overlay*. Otherwise, defaults to a transparent background.", "editType": "style", + "valType": "color" + }, + "bgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", + "editType": "none", "valType": "string" }, - "size": { + "description": "Sets the pattern within the marker.", + "editType": "style", + "fgcolor": { + "arrayOk": true, + "description": "When there is no colorscale sets the color of foreground pattern fill. Defaults to a `marker.color` background when `fillmode` is *replace*. Otherwise, defaults to dark grey or white to increase contrast with the `bgcolor`.", "editType": "style", - "min": 1, + "valType": "color" + }, + "fgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `fgcolor`.", + "editType": "none", + "valType": "string" + }, + "fgopacity": { + "description": "Sets the opacity of the foreground pattern fill. Defaults to a 0.5 when `fillmode` is *overlay*. Otherwise, defaults to 1.", + "editType": "style", + "max": 1, + "min": 0, "valType": "number" }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", + "fillmode": { + "description": "Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`.", + "dflt": "replace", "editType": "style", "valType": "enumerated", "values": [ - "normal", - "italic" + "replace", + "overlay" ] }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", + "role": "object", + "shape": { + "arrayOk": true, + "description": "Sets the shape of the pattern fill. By default, no pattern is used for filling the area.", + "dflt": "", "editType": "style", "valType": "enumerated", "values": [ - "normal", - "word caps", - "upper", - "lower" + "", + "/", + "\\", + "x", + "-", + "|", + "+", + "." ] }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", + "shapesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shape`.", + "editType": "none", + "valType": "string" + }, + "size": { + "arrayOk": true, + "description": "Sets the size of unit squares of the pattern fill in pixels, which corresponds to the interval of repetition of the pattern.", + "dflt": 8, "editType": "style", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] + "min": 0, + "valType": "number" }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, + "solidity": { + "arrayOk": true, + "description": "Sets the solidity of the pattern fill. Solidity is roughly the fraction of the area filled by the pattern. Solidity of 0 shows only the background color without pattern and solidty of 1 shows only the foreground color without pattern.", + "dflt": 0.3, "editType": "style", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" + "max": 1, + "min": 0, + "valType": "number" + }, + "soliditysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `solidity`.", + "editType": "none", + "valType": "string" } }, - "role": "object", - "text": { - "description": "Sets the title of the legend group.", - "dflt": "", - "editType": "style", - "valType": "string" - } - }, - "legendrank": { - "description": "Sets the legend rank for this trace. 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.", - "dflt": 1000, - "editType": "style", - "valType": "number" - }, - "legendwidth": { - "description": "Sets the width (in px or fraction) of the legend for this trace.", - "editType": "style", - "min": 0, - "valType": "number" - }, - "lighting": { - "ambient": { - "description": "Ambient light increases overall color visibility but can wash out the image.", - "dflt": 0.8, - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - "diffuse": { - "description": "Represents the extent that incident rays are reflected in a range of angles.", - "dflt": 0.8, - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - "editType": "calc", - "facenormalsepsilon": { - "description": "Epsilon for face normals calculation avoids math issues arising from degenerate geometry.", - "dflt": 0.000001, - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - "fresnel": { - "description": "Represents the reflectance as a dependency of the viewing angle; e.g. paper is reflective when viewing it from the edge of the paper (almost 90 degrees), causing shine.", - "dflt": 0.2, - "editType": "calc", - "max": 5, - "min": 0, - "valType": "number" + "reversescale": { + "description": "Reverses the color mapping if true. Has an effect only if colors is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color.", + "dflt": false, + "editType": "plot", + "valType": "boolean" }, "role": "object", - "roughness": { - "description": "Alters specular reflection; the rougher the surface, the wider and less contrasty the shine.", - "dflt": 0.5, - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - "specular": { - "description": "Represents the level that incident rays are reflected in a single direction, causing shine.", - "dflt": 0.05, - "editType": "calc", - "max": 2, - "min": 0, - "valType": "number" - }, - "vertexnormalsepsilon": { - "description": "Epsilon for vertex normals calculation avoids math issues arising from degenerate geometry.", - "dflt": 1e-12, + "showscale": { + "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if colors is set to a numerical array.", + "dflt": false, "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" + "valType": "boolean" } }, - "lightposition": { - "editType": "calc", - "role": "object", - "x": { - "description": "Numeric vector, representing the X coordinate for each vertex.", - "dflt": 100000, - "editType": "calc", - "max": 100000, - "min": -100000, - "valType": "number" - }, - "y": { - "description": "Numeric vector, representing the Y coordinate for each vertex.", - "dflt": 100000, - "editType": "calc", - "max": 100000, - "min": -100000, - "valType": "number" - }, - "z": { - "description": "Numeric vector, representing the Z coordinate for each vertex.", - "dflt": 0, - "editType": "calc", - "max": 100000, - "min": -100000, - "valType": "number" - } + "maxdepth": { + "description": "Sets the number of rendered sectors from any given `level`. Set `maxdepth` to *-1* to render all the levels in the hierarchy.", + "dflt": -1, + "editType": "plot", + "valType": "integer" }, "meta": { "arrayOk": true, @@ -53501,367 +51096,196 @@ "valType": "string" }, "opacity": { - "description": "Sets the opacity of the surface. Please note that in the case of using high `opacity` values for example a value greater than or equal to 0.5 on two surfaces (and 0.25 with four surfaces), an overlay of multiple transparent surfaces may not perfectly be sorted in depth by the webgl API. This behavior may be improved in the near future and is subject to change.", + "description": "Sets the opacity of the trace.", "dflt": 1, - "editType": "calc", + "editType": "style", "max": 1, "min": 0, "valType": "number" }, - "reversescale": { - "description": "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.", - "dflt": false, - "editType": "plot", - "valType": "boolean" - }, - "scene": { - "description": "Sets a reference between this trace's 3D coordinate system and a 3D scene. If *scene* (the default value), the (x,y,z) coordinates refer to `layout.scene`. If *scene2*, the (x,y,z) coordinates refer to `layout.scene2`, and so on.", - "dflt": "scene", - "editType": "calc+clearAxisTypes", - "valType": "subplotid" - }, - "showlegend": { - "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", - "dflt": false, - "editType": "style", - "valType": "boolean" - }, - "showscale": { - "description": "Determines whether or not a colorbar is displayed for this trace.", - "dflt": true, - "editType": "calc", - "valType": "boolean" - }, - "stream": { - "editType": "calc", - "maxpoints": { - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot.", - "dflt": 500, - "editType": "calc", - "max": 10000, - "min": 0, - "valType": "number" + "outsidetextfont": { + "color": { + "arrayOk": true, + "editType": "plot", + "valType": "color" }, - "role": "object", - "token": { - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details.", - "editType": "calc", + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "description": "Sets the font used for `textinfo` lying outside the sector. This option refers to the root of the hierarchy presented on top left corner of a treemap graph. Please note that if a hierarchy has multiple root nodes, this option won't have any effect and `insidetextfont` would be used.", + "editType": "plot", + "family": { + "arrayOk": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "plot", "noBlank": true, "strict": true, "valType": "string" - } - }, - "text": { - "arrayOk": true, - "description": "Sets the text elements associated with the vertices. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "textsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `text`.", - "editType": "none", - "valType": "string" - }, - "type": "mesh3d", - "uid": { - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", - "editType": "plot", - "valType": "string" - }, - "uirevision": { - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.", - "editType": "none", - "valType": "any" - }, - "vertexcolor": { - "description": "Sets the color of each vertex Overrides *color*. While Red, green and blue colors are in the range of 0 and 255; in the case of having vertex color data in RGBA format, the alpha color should be normalized to be between 0 and 1.", - "editType": "calc", - "valType": "data_array" - }, - "vertexcolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `vertexcolor`.", - "editType": "none", - "valType": "string" - }, - "visible": { - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", - "dflt": true, - "editType": "calc", - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ] - }, - "x": { - "description": "Sets the X coordinates of the vertices. The nth element of vectors `x`, `y` and `z` jointly represent the X, Y and Z coordinates of the nth vertex.", - "editType": "calc+clearAxisTypes", - "valType": "data_array" - }, - "xcalendar": { - "description": "Sets the calendar system to use with `x` date data.", - "dflt": "gregorian", - "editType": "calc", - "valType": "enumerated", - "values": [ - "chinese", - "coptic", - "discworld", - "ethiopian", - "gregorian", - "hebrew", - "islamic", - "jalali", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "taiwan", - "thai", - "ummalqura" - ] - }, - "xhoverformat": { - "description": "Sets the hover text formatting rulefor `x` 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*By default the values are formatted using `xaxis.hoverformat`.", - "dflt": "", - "editType": "none", - "valType": "string" - }, - "xsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `x`.", - "editType": "none", - "valType": "string" - }, - "y": { - "description": "Sets the Y coordinates of the vertices. The nth element of vectors `x`, `y` and `z` jointly represent the X, Y and Z coordinates of the nth vertex.", - "editType": "calc+clearAxisTypes", - "valType": "data_array" - }, - "ycalendar": { - "description": "Sets the calendar system to use with `y` date data.", - "dflt": "gregorian", - "editType": "calc", - "valType": "enumerated", - "values": [ - "chinese", - "coptic", - "discworld", - "ethiopian", - "gregorian", - "hebrew", - "islamic", - "jalali", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "taiwan", - "thai", - "ummalqura" - ] - }, - "yhoverformat": { - "description": "Sets the hover text formatting rulefor `y` 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*By default the values are formatted using `yaxis.hoverformat`.", - "dflt": "", - "editType": "none", - "valType": "string" - }, - "ysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `y`.", - "editType": "none", - "valType": "string" - }, - "z": { - "description": "Sets the Z coordinates of the vertices. The nth element of vectors `x`, `y` and `z` jointly represent the X, Y and Z coordinates of the nth vertex.", - "editType": "calc+clearAxisTypes", - "valType": "data_array" - }, - "zcalendar": { - "description": "Sets the calendar system to use with `z` date data.", - "dflt": "gregorian", - "editType": "calc", - "valType": "enumerated", - "values": [ - "chinese", - "coptic", - "discworld", - "ethiopian", - "gregorian", - "hebrew", - "islamic", - "jalali", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "taiwan", - "thai", - "ummalqura" - ] - }, - "zhoverformat": { - "description": "Sets the hover text formatting rulefor `z` 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*By default the values are formatted using `zaxis.hoverformat`.", - "dflt": "", - "editType": "none", - "valType": "string" - }, - "zsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `z`.", - "editType": "none", - "valType": "string" - } - }, - "categories": [ - "gl3d", - "showLegend" - ], - "meta": { - "description": "Draws sets of triangles with coordinates given by three 1-dimensional arrays in `x`, `y`, `z` and (1) a sets of `i`, `j`, `k` indices (2) Delaunay triangulation or (3) the Alpha-shape algorithm or (4) the Convex-hull algorithm" - }, - "type": "mesh3d" - }, - "ohlc": { - "animatable": false, - "attributes": { - "close": { - "description": "Sets the close values.", - "editType": "calc", - "valType": "data_array" - }, - "closesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `close`.", - "editType": "none", - "valType": "string" - }, - "customdata": { - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "editType": "calc", - "valType": "data_array" - }, - "customdatasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", - "editType": "none", - "valType": "string" - }, - "decreasing": { - "editType": "style", - "line": { - "color": { - "description": "Sets the line color.", - "dflt": "#FF4136", - "editType": "style", - "valType": "color" - }, - "dash": { - "description": "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*).", - "dflt": "solid", - "editType": "style", - "valType": "string", - "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" - ] - }, - "editType": "style", - "role": "object", - "width": { - "description": "Sets the line width (in px).", - "dflt": 2, - "editType": "style", - "min": 0, - "valType": "number" - } }, - "role": "object" - }, - "high": { - "description": "Sets the high values.", - "editType": "calc", - "valType": "data_array" - }, - "highsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `high`.", - "editType": "none", - "valType": "string" - }, - "hoverinfo": { - "arrayOk": true, - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", - "dflt": "all", - "editType": "none", - "extras": [ - "all", - "none", - "skip" - ], - "flags": [ - "x", - "y", - "z", - "text", - "name" - ], - "valType": "flaglist" - }, - "hoverinfosrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", - "editType": "none", - "valType": "string" - }, - "hoverlabel": { - "align": { + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" + }, + "lineposition": { "arrayOk": true, - "description": "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", - "dflt": "auto", + "description": "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.", + "dflt": "none", + "editType": "plot", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", + "editType": "none", + "valType": "string" + }, + "role": "object", + "shadow": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "plot", + "valType": "string" + }, + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", + "valType": "string" + }, + "size": { + "arrayOk": true, + "editType": "plot", + "min": 1, + "valType": "number" + }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", "editType": "none", + "valType": "string" + }, + "style": { + "arrayOk": true, + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "plot", "valType": "enumerated", "values": [ - "left", - "right", - "auto" + "normal", + "italic" ] }, - "alignsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `align`.", + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", "editType": "none", "valType": "string" }, - "bgcolor": { + "textcase": { "arrayOk": true, - "description": "Sets the background color of the hover labels for this trace", - "editType": "none", - "valType": "color" + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] }, - "bgcolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", "editType": "none", "valType": "string" }, - "bordercolor": { + "variant": { "arrayOk": true, - "description": "Sets the border color of the hover labels for this trace.", - "editType": "none", - "valType": "color" + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] }, - "bordercolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", "editType": "none", "valType": "string" }, + "weight": { + "arrayOk": true, + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "plot", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + }, + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" + } + }, + "parents": { + "description": "Sets the parent sectors for each of the sectors. Empty string items '' are understood to reference the root node in the hierarchy. If `ids` is filled, `parents` items are understood to be \"ids\" themselves. When `ids` is not set, plotly attempts to find matching items in `labels`, but beware they must be unique.", + "editType": "calc", + "valType": "data_array" + }, + "parentssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `parents`.", "editType": "none", - "font": { + "valType": "string" + }, + "pathbar": { + "edgeshape": { + "description": "Determines which shape is used for edges between `barpath` labels.", + "dflt": ">", + "editType": "plot", + "valType": "enumerated", + "values": [ + ">", + "<", + "|", + "/", + "\\" + ] + }, + "editType": "calc", + "role": "object", + "side": { + "description": "Determines on which side of the the treemap the `pathbar` should be presented.", + "dflt": "top", + "editType": "plot", + "valType": "enumerated", + "values": [ + "top", + "bottom" + ] + }, + "textfont": { "color": { "arrayOk": true, - "editType": "none", + "editType": "plot", "valType": "color" }, "colorsrc": { @@ -53869,12 +51293,12 @@ "editType": "none", "valType": "string" }, - "description": "Sets the font used in hover labels.", - "editType": "none", + "description": "Sets the font used inside `pathbar`.", + "editType": "plot", "family": { "arrayOk": true, "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "none", + "editType": "plot", "noBlank": true, "strict": true, "valType": "string" @@ -53888,7 +51312,7 @@ "arrayOk": true, "description": "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.", "dflt": "none", - "editType": "none", + "editType": "plot", "extras": [ "none" ], @@ -53909,7 +51333,7 @@ "arrayOk": true, "description": "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.", "dflt": "none", - "editType": "none", + "editType": "plot", "valType": "string" }, "shadowsrc": { @@ -53919,7 +51343,7 @@ }, "size": { "arrayOk": true, - "editType": "none", + "editType": "plot", "min": 1, "valType": "number" }, @@ -53932,7 +51356,7 @@ "arrayOk": true, "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "none", + "editType": "plot", "valType": "enumerated", "values": [ "normal", @@ -53948,7 +51372,7 @@ "arrayOk": true, "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "none", + "editType": "plot", "valType": "enumerated", "values": [ "normal", @@ -53966,7 +51390,7 @@ "arrayOk": true, "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "none", + "editType": "plot", "valType": "enumerated", "values": [ "normal", @@ -53986,7 +51410,7 @@ "arrayOk": true, "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "none", + "editType": "plot", "extras": [ "normal", "bold" @@ -54001,285 +51425,33 @@ "valType": "string" } }, - "namelength": { - "arrayOk": true, - "description": "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.", - "dflt": 15, - "editType": "none", - "min": -1, - "valType": "integer" - }, - "namelengthsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", - "editType": "none", - "valType": "string" + "thickness": { + "description": "Sets the thickness of `pathbar` (in px). If not specified the `pathbar.textfont.size` is used with 3 pixles extra padding on each side.", + "editType": "plot", + "min": 12, + "valType": "number" }, - "role": "object", - "split": { - "description": "Show hover information (open, close, high, low) in separate labels.", - "dflt": false, - "editType": "style", + "visible": { + "description": "Determines if the path bar is drawn i.e. outside the trace `domain` and with one pixel gap.", + "dflt": true, + "editType": "plot", "valType": "boolean" } }, - "hovertext": { - "arrayOk": true, - "description": "Same as `text`.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "hovertextsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hovertext`.", - "editType": "none", - "valType": "string" - }, - "ids": { - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "editType": "calc", - "valType": "data_array" - }, - "idssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ids`.", - "editType": "none", - "valType": "string" - }, - "increasing": { - "editType": "style", - "line": { - "color": { - "description": "Sets the line color.", - "dflt": "#3D9970", - "editType": "style", - "valType": "color" - }, - "dash": { - "description": "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*).", - "dflt": "solid", - "editType": "style", - "valType": "string", - "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" - ] - }, - "editType": "style", - "role": "object", - "width": { - "description": "Sets the line width (in px).", - "dflt": 2, - "editType": "style", - "min": 0, - "valType": "number" - } - }, - "role": "object" - }, - "legend": { - "description": "Sets the reference to a legend to show this trace 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.", - "dflt": "legend", - "editType": "style", - "valType": "subplotid" - }, - "legendgroup": { - "description": "Sets the legend group for this trace. Traces and shapes part of the same legend group hide/show at the same time when toggling legend items.", - "dflt": "", - "editType": "style", - "valType": "string" - }, - "legendgrouptitle": { - "editType": "style", - "font": { - "color": { - "editType": "style", - "valType": "color" - }, - "description": "Sets this legend group's title font.", - "editType": "style", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "style", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "style", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "style", - "valType": "string" - }, - "size": { - "editType": "style", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "style", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "style", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "style", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "style", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "role": "object", - "text": { - "description": "Sets the title of the legend group.", - "dflt": "", - "editType": "style", - "valType": "string" - } - }, - "legendrank": { - "description": "Sets the legend rank for this trace. 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.", - "dflt": 1000, - "editType": "style", - "valType": "number" - }, - "legendwidth": { - "description": "Sets the width (in px or fraction) of the legend for this trace.", - "editType": "style", - "min": 0, - "valType": "number" - }, - "line": { - "dash": { - "description": "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*). Note that this style setting can also be set per direction via `increasing.line.dash` and `decreasing.line.dash`.", - "dflt": "solid", - "editType": "style", - "valType": "string", - "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" - ] + "root": { + "color": { + "description": "sets the color of the root node for a sunburst/treemap/icicle trace. this has no effect when a colorscale is used to set the markers.", + "dflt": "rgba(0,0,0,0)", + "editType": "calc", + "valType": "color" }, - "editType": "style", - "role": "object", - "width": { - "description": "[object Object] Note that this style setting can also be set per direction via `increasing.line.width` and `decreasing.line.width`.", - "dflt": 2, - "editType": "style", - "min": 0, - "valType": "number" - } - }, - "low": { - "description": "Sets the low values.", - "editType": "calc", - "valType": "data_array" - }, - "lowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `low`.", - "editType": "none", - "valType": "string" - }, - "meta": { - "arrayOk": true, - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", - "editType": "plot", - "valType": "any" - }, - "metasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `meta`.", - "editType": "none", - "valType": "string" - }, - "name": { - "description": "Sets the trace name. The trace name appears as the legend item and on hover.", - "editType": "style", - "valType": "string" - }, - "opacity": { - "description": "Sets the opacity of the trace.", - "dflt": 1, - "editType": "style", - "max": 1, - "min": 0, - "valType": "number" - }, - "open": { - "description": "Sets the open values.", - "editType": "calc", - "valType": "data_array" - }, - "opensrc": { - "description": "Sets the source reference on Chart Studio Cloud for `open`.", - "editType": "none", - "valType": "string" - }, - "selectedpoints": { - "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect.", "editType": "calc", - "valType": "any" + "role": "object" }, - "showlegend": { - "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", + "sort": { + "description": "Determines whether or not the sectors are reordered from largest to smallest.", "dflt": true, - "editType": "style", + "editType": "calc", "valType": "boolean" }, "stream": { @@ -54302,24 +51474,234 @@ } }, "text": { + "description": "Sets text elements associated with each sector. If trace `textinfo` contains a *text* flag, these elements will be seen on the chart. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", + "editType": "plot", + "valType": "data_array" + }, + "textfont": { + "color": { + "arrayOk": true, + "editType": "plot", + "valType": "color" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "description": "Sets the font used for `textinfo`.", + "editType": "plot", + "family": { + "arrayOk": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "plot", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" + }, + "lineposition": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "plot", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", + "editType": "none", + "valType": "string" + }, + "role": "object", + "shadow": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "plot", + "valType": "string" + }, + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", + "valType": "string" + }, + "size": { + "arrayOk": true, + "editType": "plot", + "min": 1, + "valType": "number" + }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, + "style": { + "arrayOk": true, + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", + "valType": "string" + }, + "textcase": { + "arrayOk": true, + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", + "valType": "string" + }, + "variant": { + "arrayOk": true, + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" + }, + "weight": { + "arrayOk": true, + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "plot", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + }, + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" + } + }, + "textinfo": { + "description": "Determines which trace information appear on the graph.", + "editType": "plot", + "extras": [ + "none" + ], + "flags": [ + "label", + "text", + "value", + "current path", + "percent root", + "percent entry", + "percent parent" + ], + "valType": "flaglist" + }, + "textposition": { + "description": "Sets the positions of the `text` elements.", + "dflt": "top left", + "editType": "plot", + "valType": "enumerated", + "values": [ + "top left", + "top center", + "top right", + "middle left", + "middle center", + "middle right", + "bottom left", + "bottom center", + "bottom right" + ] + }, + "textsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `text`.", + "editType": "none", + "valType": "string" + }, + "texttemplate": { "arrayOk": true, - "description": "Sets hover text elements associated with each sample point. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to this trace's sample points.", + "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". 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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `currentPath`, `root`, `entry`, `percentRoot`, `percentEntry`, `percentParent`, `label` and `value`.", "dflt": "", - "editType": "calc", + "editType": "plot", "valType": "string" }, - "textsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `text`.", + "texttemplatesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `texttemplate`.", "editType": "none", "valType": "string" }, - "tickwidth": { - "description": "Sets the width of the open/close tick marks relative to the *x* minimal interval.", - "dflt": 0.3, + "tiling": { "editType": "calc", - "max": 0.5, - "min": 0, - "valType": "number" + "flip": { + "description": "Determines if the positions obtained from solver are flipped on each axis.", + "dflt": "", + "editType": "plot", + "flags": [ + "x", + "y" + ], + "valType": "flaglist" + }, + "orientation": { + "description": "When set in conjunction with `tiling.flip`, determines on which side the root nodes are drawn in the chart. If `tiling.orientation` is *v* and `tiling.flip` is **, the root nodes appear at the top. If `tiling.orientation` is *v* and `tiling.flip` is *y*, the root nodes appear at the bottom. If `tiling.orientation` is *h* and `tiling.flip` is **, the root nodes appear at the left. If `tiling.orientation` is *h* and `tiling.flip` is *x*, the root nodes appear at the right.", + "dflt": "h", + "editType": "plot", + "valType": "enumerated", + "values": [ + "v", + "h" + ] + }, + "pad": { + "description": "Sets the inner padding (in px).", + "dflt": 0, + "editType": "plot", + "min": 0, + "valType": "number" + }, + "role": "object" }, "transforms": { "items": { @@ -54331,8 +51713,9 @@ }, "role": "object" }, - "type": "ohlc", + "type": "icicle", "uid": { + "anim": true, "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", "editType": "plot", "valType": "string" @@ -54342,422 +51725,181 @@ "editType": "none", "valType": "any" }, - "visible": { - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", - "dflt": true, + "values": { + "description": "Sets the values associated with each of the sectors. Use with `branchvalues` to determine how the values are summed.", "editType": "calc", - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ] - }, - "x": { - "description": "Sets the x coordinates. If absent, linear coordinate will be generated.", - "editType": "calc+clearAxisTypes", "valType": "data_array" }, - "xaxis": { - "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on.", - "dflt": "x", - "editType": "calc+clearAxisTypes", - "valType": "subplotid" - }, - "xcalendar": { - "description": "Sets the calendar system to use with `x` date data.", - "dflt": "gregorian", - "editType": "calc", - "valType": "enumerated", - "values": [ - "chinese", - "coptic", - "discworld", - "ethiopian", - "gregorian", - "hebrew", - "islamic", - "jalali", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "taiwan", - "thai", - "ummalqura" - ] - }, - "xhoverformat": { - "description": "Sets the hover text formatting rulefor `x` 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*By default the values are formatted using `xaxis.hoverformat`.", - "dflt": "", + "valuessrc": { + "description": "Sets the source reference on Chart Studio Cloud for `values`.", "editType": "none", "valType": "string" }, - "xperiod": { - "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer.", - "dflt": 0, - "editType": "calc", - "valType": "any" - }, - "xperiod0": { - "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01.", - "editType": "calc", - "valType": "any" - }, - "xperiodalignment": { - "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis.", - "dflt": "middle", + "visible": { + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", + "dflt": true, "editType": "calc", "valType": "enumerated", "values": [ - "start", - "middle", - "end" + true, + false, + "legendonly" ] + } + }, + "categories": [], + "layoutAttributes": { + "extendiciclecolors": { + "description": "If `true`, the icicle slice colors (whether given by `iciclecolorway` or inherited from `colorway`) will be extended to three times its original length by first repeating every color 20% lighter then each color 20% darker. This is intended to reduce the likelihood of reusing the same color when you have many slices, but you can set `false` to disable. Colors provided in the trace, using `marker.colors`, are never extended.", + "dflt": true, + "editType": "calc", + "valType": "boolean" }, - "xsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `x`.", - "editType": "none", - "valType": "string" - }, - "yaxis": { - "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on.", - "dflt": "y", - "editType": "calc+clearAxisTypes", - "valType": "subplotid" - }, - "yhoverformat": { - "description": "Sets the hover text formatting rulefor `y` 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*By default the values are formatted using `yaxis.hoverformat`.", - "dflt": "", - "editType": "none", - "valType": "string" - }, - "zorder": { - "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", - "dflt": 0, - "editType": "plot", - "valType": "integer" + "iciclecolorway": { + "description": "Sets the default icicle slice colors. Defaults to the main `colorway` used for trace colors. If you specify a new list here it can still be extended with lighter and darker colors, see `extendiciclecolors`.", + "editType": "calc", + "valType": "colorlist" } }, - "categories": [ - "cartesian", - "svg", - "showLegend" - ], "meta": { - "description": "The ohlc (short for Open-High-Low-Close) is a style of financial chart describing open, high, low and close for a given `x` coordinate (most likely time). The tip of the lines represent the `low` and `high` values and the horizontal segments represent the `open` and `close` values. Sample points where the close value is higher (lower) then the open value are called increasing (decreasing). By default, increasing items are drawn in green whereas decreasing are drawn in red." + "description": "Visualize hierarchal data from leaves (and/or outer branches) towards root with rectangles. The icicle sectors are determined by the entries in *labels* or *ids* and in *parents*." }, - "type": "ohlc" + "type": "icicle" }, - "parcats": { + "image": { "animatable": false, "attributes": { - "arrangement": { - "description": "Sets the drag interaction mode for categories and dimensions. If `perpendicular`, the categories can only move along a line perpendicular to the paths. If `freeform`, the categories can freely move on the plane. If `fixed`, the categories and dimensions are stationary.", - "dflt": "perpendicular", - "editType": "plot", + "colormodel": { + "description": "Color model used to map the numerical color components described in `z` into colors. If `source` is specified, this attribute will be set to `rgba256` otherwise it defaults to `rgb`.", + "editType": "calc", "valType": "enumerated", "values": [ - "perpendicular", - "freeform", - "fixed" + "rgb", + "rgba", + "rgba256", + "hsl", + "hsla" ] }, - "bundlecolors": { - "description": "Sort paths so that like colors are bundled together within each category.", - "dflt": true, - "editType": "plot", - "valType": "boolean" - }, - "counts": { - "arrayOk": true, - "description": "The number of observations represented by each state. Defaults to 1 so that each state represents one observation", - "dflt": 1, + "customdata": { + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", "editType": "calc", - "min": 0, - "valType": "number" + "valType": "data_array" }, - "countssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `counts`.", + "customdatasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", "editType": "none", "valType": "string" }, - "dimensions": { - "items": { - "dimension": { - "categoryarray": { - "description": "Sets the order in which categories in this dimension appear. Only has an effect if `categoryorder` is set to *array*. Used with `categoryorder`.", - "editType": "calc", - "valType": "data_array" - }, - "categoryarraysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `categoryarray`.", - "editType": "none", - "valType": "string" - }, - "categoryorder": { - "description": "Specifies the ordering logic for the categories in the dimension. 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`.", - "dflt": "trace", - "editType": "calc", - "valType": "enumerated", - "values": [ - "trace", - "category ascending", - "category descending", - "array" - ] - }, - "description": "The dimensions (variables) of the parallel categories diagram.", - "displayindex": { - "description": "The display index of dimension, from left to right, zero indexed, defaults to dimension index.", - "editType": "calc", - "valType": "integer" - }, - "editType": "calc", - "label": { - "description": "The shown name of the dimension.", - "editType": "calc", - "valType": "string" - }, - "role": "object", - "ticktext": { - "description": "Sets alternative tick labels for the categories in this dimension. Only has an effect if `categoryorder` is set to *array*. Should be an array the same length as `categoryarray` Used with `categoryorder`.", - "editType": "calc", - "valType": "data_array" - }, - "ticktextsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", - "editType": "none", - "valType": "string" - }, - "values": { - "description": "Dimension values. `values[n]` represents the category value of the `n`th point in the dataset, therefore the `values` vector for all dimensions must be the same (longer vectors will be truncated).", - "dflt": [], - "editType": "calc", - "valType": "data_array" - }, - "valuessrc": { - "description": "Sets the source reference on Chart Studio Cloud for `values`.", - "editType": "none", - "valType": "string" - }, - "visible": { - "description": "Shows the dimension when set to `true` (the default). Hides the dimension for `false`.", - "dflt": true, - "editType": "calc", - "valType": "boolean" - } - } - }, - "role": "object" + "dx": { + "description": "Set the pixel's horizontal size.", + "dflt": 1, + "editType": "calc", + "valType": "number" }, - "domain": { - "column": { - "description": "If there is a layout grid, use the domain for this column in the grid for this parcats trace .", - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "integer" - }, + "dy": { + "description": "Set the pixel's vertical size", + "dflt": 1, "editType": "calc", - "role": "object", - "row": { - "description": "If there is a layout grid, use the domain for this row in the grid for this parcats trace .", - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "integer" - }, - "x": { - "description": "Sets the horizontal domain of this parcats trace (in plot fraction).", - "dflt": [ - 0, - 1 - ], - "editType": "calc", - "items": [ - { - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - { - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - } - ], - "valType": "info_array" - }, - "y": { - "description": "Sets the vertical domain of this parcats trace (in plot fraction).", - "dflt": [ - 0, - 1 - ], - "editType": "calc", - "items": [ - { - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - { - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - } - ], - "valType": "info_array" - } + "valType": "number" }, "hoverinfo": { - "arrayOk": false, + "arrayOk": true, "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", - "dflt": "all", - "editType": "plot", + "dflt": "x+y+z+text+name", + "editType": "none", "extras": [ "all", "none", "skip" ], "flags": [ - "count", - "probability" + "x", + "y", + "z", + "color", + "name", + "text" ], "valType": "flaglist" }, - "hoveron": { - "description": "Sets the hover interaction mode for the parcats diagram. If `category`, hover interaction take place per category. If `color`, hover interactions take place per color per category. If `dimension`, hover interactions take place across all categories per dimension.", - "dflt": "category", - "editType": "plot", - "valType": "enumerated", - "values": [ - "category", - "color", - "dimension" - ] - }, - "hovertemplate": { - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. This value here applies when hovering over dimensions. Note that `*categorycount`, *colorcount* and *bandcolorcount* are only available when `hoveron` contains the *color* flagFinally, the template string has access to variables `count`, `probability`, `category`, `categorycount`, `colorcount` and `bandcolorcount`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "dflt": "", - "editType": "plot", + "hoverinfosrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", + "editType": "none", "valType": "string" }, - "labelfont": { - "color": { - "editType": "calc", - "valType": "color" + "hoverlabel": { + "align": { + "arrayOk": true, + "description": "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", + "dflt": "auto", + "editType": "none", + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ] }, - "description": "Sets the font for the `dimension` labels.", - "editType": "calc", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc", - "noBlank": true, - "strict": true, + "alignsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `align`.", + "editType": "none", "valType": "string" }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "calc", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" + "bgcolor": { + "arrayOk": true, + "description": "Sets the background color of the hover labels for this trace", + "editType": "none", + "valType": "color" }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "calc", + "bgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", + "editType": "none", "valType": "string" }, - "size": { - "editType": "calc", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] + "bordercolor": { + "arrayOk": true, + "description": "Sets the border color of the hover labels for this trace.", + "editType": "none", + "valType": "color" }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] + "bordercolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", + "editType": "none", + "valType": "string" }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "calc", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "legendgrouptitle": { - "editType": "style", + "editType": "none", "font": { "color": { - "editType": "style", + "arrayOk": true, + "editType": "none", "valType": "color" }, - "description": "Sets this legend group's title font.", - "editType": "style", + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "description": "Sets the font used in hover labels.", + "editType": "none", "family": { + "arrayOk": true, "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "style", + "editType": "none", "noBlank": true, "strict": true, "valType": "string" }, + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" + }, "lineposition": { + "arrayOk": true, "description": "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.", "dflt": "none", - "editType": "style", + "editType": "none", "extras": [ "none" ], @@ -54768,32 +51910,56 @@ ], "valType": "flaglist" }, + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", + "editType": "none", + "valType": "string" + }, "role": "object", "shadow": { + "arrayOk": true, "description": "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.", "dflt": "none", - "editType": "style", + "editType": "none", + "valType": "string" + }, + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", "valType": "string" }, "size": { - "editType": "style", + "arrayOk": true, + "editType": "none", "min": 1, "valType": "number" }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, "style": { + "arrayOk": true, "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "style", + "editType": "none", "valType": "enumerated", "values": [ "normal", "italic" ] }, + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", + "valType": "string" + }, "textcase": { + "arrayOk": true, "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "style", + "editType": "none", "valType": "enumerated", "values": [ "normal", @@ -54802,10 +51968,16 @@ "lower" ] }, + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", + "valType": "string" + }, "variant": { + "arrayOk": true, "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "style", + "editType": "none", "valType": "enumerated", "values": [ "normal", @@ -54816,10 +51988,16 @@ "unicase" ] }, + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" + }, "weight": { + "arrayOk": true, "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "style", + "editType": "none", "extras": [ "normal", "bold" @@ -54827,295 +52005,688 @@ "max": 1000, "min": 1, "valType": "integer" + }, + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" } }, - "role": "object", - "text": { - "description": "Sets the title of the legend group.", - "dflt": "", - "editType": "style", + "namelength": { + "arrayOk": true, + "description": "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.", + "dflt": 15, + "editType": "none", + "min": -1, + "valType": "integer" + }, + "namelengthsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", + "editType": "none", "valType": "string" - } + }, + "role": "object" }, - "legendwidth": { - "description": "Sets the width (in px or fraction) of the legend for this trace.", + "hovertemplate": { + "arrayOk": true, + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `z`, `color` and `colormodel`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "dflt": "", + "editType": "none", + "valType": "string" + }, + "hovertemplatesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", + "editType": "none", + "valType": "string" + }, + "hovertext": { + "description": "Same as `text`.", + "editType": "plot", + "valType": "data_array" + }, + "hovertextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertext`.", + "editType": "none", + "valType": "string" + }, + "ids": { + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", + "editType": "calc", + "valType": "data_array" + }, + "idssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ids`.", + "editType": "none", + "valType": "string" + }, + "legend": { + "description": "Sets the reference to a legend to show this trace 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.", + "dflt": "legend", "editType": "style", - "min": 0, - "valType": "number" + "valType": "subplotid" }, - "line": { - "autocolorscale": { - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `line.colorscale`. Has an effect only if in `line.color` is set to a numerical array. 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.", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" - }, - "cauto": { - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `line.color`) or the bounds set in `line.cmin` and `line.cmax` Has an effect only if in `line.color` is set to a numerical array. Defaults to `false` when `line.cmin` and `line.cmax` are set by the user.", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" - }, - "cmax": { - "description": "Sets the upper bound of the color domain. Has an effect only if in `line.color` is set to a numerical array. Value should have the same units as in `line.color` and if set, `line.cmin` must be set as well.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "valType": "number" - }, - "cmid": { - "description": "Sets the mid-point of the color domain by scaling `line.cmin` and/or `line.cmax` to be equidistant to this point. Has an effect only if in `line.color` is set to a numerical array. Value should have the same units as in `line.color`. Has no effect when `line.cauto` is `false`.", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "valType": "number" - }, - "cmin": { - "description": "Sets the lower bound of the color domain. Has an effect only if in `line.color` is set to a numerical array. Value should have the same units as in `line.color` and if set, `line.cmax` must be set as well.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false + "legendgrouptitle": { + "editType": "style", + "font": { + "color": { + "editType": "style", + "valType": "color" }, - "valType": "number" - }, - "color": { - "arrayOk": true, - "description": "Sets the line color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `line.cmin` and `line.cmax` if set.", - "editType": "calc", - "valType": "color" - }, - "coloraxis": { - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", - "dflt": null, - "editType": "calc", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "valType": "subplotid" - }, - "colorbar": { - "_deprecated": { - "title": { - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars", - "valType": "string" - }, - "titlefont": { - "color": { - "editType": "colorbars", - "valType": "color" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "valType": "string" - }, - "size": { - "editType": "colorbars", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "colorbars", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "titleside": { - "description": "Deprecated in favor of color bar's `title.side`.", - "dflt": "top", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ] - } + "description": "Sets this legend group's title font.", + "editType": "style", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "style", + "noBlank": true, + "strict": true, + "valType": "string" }, - "bgcolor": { - "description": "Sets the color of padded area.", - "dflt": "rgba(0,0,0,0)", - "editType": "colorbars", - "valType": "color" + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "style", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" }, - "bordercolor": { - "description": "Sets the axis line color.", - "dflt": "#444", - "editType": "colorbars", - "valType": "color" + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "style", + "valType": "string" }, - "borderwidth": { - "description": "Sets the width (in px) or the border enclosing this color bar.", - "dflt": 0, - "editType": "colorbars", - "min": 0, + "size": { + "editType": "style", + "min": 1, "valType": "number" }, - "dtick": { - "description": "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*, 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* 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*", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "valType": "any" - }, - "editType": "colorbars", - "exponentformat": { - "description": "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.", - "dflt": "B", - "editType": "colorbars", + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "style", "valType": "enumerated", "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" + "normal", + "italic" ] }, - "labelalias": { - "description": "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.", - "dflt": false, - "editType": "colorbars", - "valType": "any" - }, - "len": { - "description": "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.", - "dflt": 1, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "lenmode": { - "description": "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.", - "dflt": "fraction", - "editType": "colorbars", + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "style", "valType": "enumerated", "values": [ - "fraction", - "pixels" + "normal", + "word caps", + "upper", + "lower" ] }, - "minexponent": { - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", - "dflt": 3, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "nticks": { - "description": "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*.", - "dflt": 0, - "editType": "colorbars", - "min": 0, - "valType": "integer" - }, - "orientation": { - "description": "Sets the orientation of the colorbar.", - "dflt": "v", - "editType": "colorbars", + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "style", "valType": "enumerated", "values": [ - "h", - "v" + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" ] }, - "outlinecolor": { - "description": "Sets the axis line color.", - "dflt": "#444", - "editType": "colorbars", - "valType": "color" + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "style", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "role": "object", + "text": { + "description": "Sets the title of the legend group.", + "dflt": "", + "editType": "style", + "valType": "string" + } + }, + "legendrank": { + "description": "Sets the legend rank for this trace. 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.", + "dflt": 1000, + "editType": "style", + "valType": "number" + }, + "legendwidth": { + "description": "Sets the width (in px or fraction) of the legend for this trace.", + "editType": "style", + "min": 0, + "valType": "number" + }, + "meta": { + "arrayOk": true, + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", + "editType": "plot", + "valType": "any" + }, + "metasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `meta`.", + "editType": "none", + "valType": "string" + }, + "name": { + "description": "Sets the trace name. The trace name appears as the legend item and on hover.", + "editType": "style", + "valType": "string" + }, + "opacity": { + "description": "Sets the opacity of the trace.", + "dflt": 1, + "editType": "style", + "max": 1, + "min": 0, + "valType": "number" + }, + "source": { + "description": "Specifies the data URI of the image to be visualized. The URI consists of \"data:image/[][;base64],\"", + "editType": "calc", + "valType": "string" + }, + "stream": { + "editType": "calc", + "maxpoints": { + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot.", + "dflt": 500, + "editType": "calc", + "max": 10000, + "min": 0, + "valType": "number" + }, + "role": "object", + "token": { + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" + } + }, + "text": { + "description": "Sets the text elements associated with each z value.", + "editType": "plot", + "valType": "data_array" + }, + "textsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `text`.", + "editType": "none", + "valType": "string" + }, + "type": "image", + "uid": { + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", + "editType": "plot", + "valType": "string" + }, + "uirevision": { + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.", + "editType": "none", + "valType": "any" + }, + "visible": { + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", + "dflt": true, + "editType": "calc", + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ] + }, + "x0": { + "description": "Set the image's x position. The left edge of the image (or the right edge if the x axis is reversed or dx is negative) will be found at xmin=x0-dx/2", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "valType": "any" + }, + "xaxis": { + "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on.", + "dflt": "x", + "editType": "calc+clearAxisTypes", + "valType": "subplotid" + }, + "y0": { + "description": "Set the image's y position. The top edge of the image (or the bottom edge if the y axis is NOT reversed or if dy is negative) will be found at ymin=y0-dy/2. By default when an image trace is included, the y axis will be reversed so that the image is right-side-up, but you can disable this by setting yaxis.autorange=true or by providing an explicit y axis range.", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "valType": "any" + }, + "yaxis": { + "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on.", + "dflt": "y", + "editType": "calc+clearAxisTypes", + "valType": "subplotid" + }, + "z": { + "description": "A 2-dimensional array in which each element is an array of 3 or 4 numbers representing a color.", + "editType": "calc", + "valType": "data_array" + }, + "zmax": { + "description": "Array defining the higher bound for each color component. Note that the default value will depend on the colormodel. For the `rgb` colormodel, it is [255, 255, 255]. For the `rgba` colormodel, it is [255, 255, 255, 1]. For the `rgba256` colormodel, it is [255, 255, 255, 255]. For the `hsl` colormodel, it is [360, 100, 100]. For the `hsla` colormodel, it is [360, 100, 100, 1].", + "editType": "calc", + "items": [ + { + "editType": "calc", + "valType": "number" }, - "outlinewidth": { - "description": "Sets the width (in px) of the axis line.", - "dflt": 1, - "editType": "colorbars", - "min": 0, + { + "editType": "calc", "valType": "number" }, - "role": "object", - "separatethousands": { - "description": "If \"true\", even 4-digit integers are separated", - "dflt": false, - "editType": "colorbars", + { + "editType": "calc", + "valType": "number" + }, + { + "editType": "calc", + "valType": "number" + } + ], + "valType": "info_array" + }, + "zmin": { + "description": "Array defining the lower bound for each color component. Note that the default value will depend on the colormodel. For the `rgb` colormodel, it is [0, 0, 0]. For the `rgba` colormodel, it is [0, 0, 0, 0]. For the `rgba256` colormodel, it is [0, 0, 0, 0]. For the `hsl` colormodel, it is [0, 0, 0]. For the `hsla` colormodel, it is [0, 0, 0, 0].", + "editType": "calc", + "items": [ + { + "editType": "calc", + "valType": "number" + }, + { + "editType": "calc", + "valType": "number" + }, + { + "editType": "calc", + "valType": "number" + }, + { + "editType": "calc", + "valType": "number" + } + ], + "valType": "info_array" + }, + "zorder": { + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", + "dflt": 0, + "editType": "plot", + "valType": "integer" + }, + "zsmooth": { + "description": "Picks a smoothing algorithm used to smooth `z` data. This only applies for image traces that use the `source` attribute.", + "dflt": false, + "editType": "plot", + "valType": "enumerated", + "values": [ + "fast", + false + ] + }, + "zsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `z`.", + "editType": "none", + "valType": "string" + } + }, + "categories": [ + "cartesian", + "svg", + "2dMap", + "noSortingByValue" + ], + "meta": { + "description": "Display an image, i.e. data on a 2D regular raster. By default, when an image is displayed in a subplot, its y axis will be reversed (ie. `autorange: 'reversed'`), constrained to the domain (ie. `constrain: 'domain'`) and it will have the same scale as its x axis (ie. `scaleanchor: 'x,`) in order for pixels to be rendered as squares." + }, + "type": "image" + }, + "indicator": { + "animatable": true, + "attributes": { + "align": { + "description": "Sets the horizontal alignment of the `text` within the box. Note that this attribute has no effect if an angular gauge is displayed: in this case, it is always centered", + "editType": "plot", + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ] + }, + "customdata": { + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", + "editType": "calc", + "valType": "data_array" + }, + "customdatasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", + "editType": "none", + "valType": "string" + }, + "delta": { + "decreasing": { + "color": { + "description": "Sets the color for increasing value.", + "dflt": "#FF4136", + "editType": "plot", + "valType": "color" + }, + "editType": "plot", + "role": "object", + "symbol": { + "description": "Sets the symbol to display for increasing value", + "dflt": "▼", + "editType": "plot", + "valType": "string" + } + }, + "editType": "calc", + "font": { + "color": { + "editType": "plot", + "valType": "color" + }, + "description": "Set the font used to display the delta", + "editType": "plot", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "plot", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "plot", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "plot", + "valType": "string" + }, + "size": { + "editType": "plot", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "plot", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "increasing": { + "color": { + "description": "Sets the color for increasing value.", + "dflt": "#3D9970", + "editType": "plot", + "valType": "color" + }, + "editType": "plot", + "role": "object", + "symbol": { + "description": "Sets the symbol to display for increasing value", + "dflt": "▲", + "editType": "plot", + "valType": "string" + } + }, + "position": { + "description": "Sets the position of delta with respect to the number.", + "dflt": "bottom", + "editType": "plot", + "valType": "enumerated", + "values": [ + "top", + "bottom", + "left", + "right" + ] + }, + "prefix": { + "description": "Sets a prefix appearing before the delta.", + "dflt": "", + "editType": "plot", + "valType": "string" + }, + "reference": { + "description": "Sets the reference value to compute the delta. By default, it is set to the current value.", + "editType": "calc", + "valType": "number" + }, + "relative": { + "description": "Show relative change", + "dflt": false, + "editType": "plot", + "valType": "boolean" + }, + "role": "object", + "suffix": { + "description": "Sets a suffix appearing next to the delta.", + "dflt": "", + "editType": "plot", + "valType": "string" + }, + "valueformat": { + "description": "Sets the value 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.", + "editType": "plot", + "valType": "string" + } + }, + "domain": { + "column": { + "description": "If there is a layout grid, use the domain for this column in the grid for this indicator trace .", + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "integer" + }, + "editType": "calc", + "role": "object", + "row": { + "description": "If there is a layout grid, use the domain for this row in the grid for this indicator trace .", + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "integer" + }, + "x": { + "description": "Sets the horizontal domain of this indicator trace (in plot fraction).", + "dflt": [ + 0, + 1 + ], + "editType": "calc", + "items": [ + { + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + }, + { + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + } + ], + "valType": "info_array" + }, + "y": { + "description": "Sets the vertical domain of this indicator trace (in plot fraction).", + "dflt": [ + 0, + 1 + ], + "editType": "calc", + "items": [ + { + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + }, + { + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + } + ], + "valType": "info_array" + } + }, + "gauge": { + "axis": { + "dtick": { + "description": "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*, 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* 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*", + "editType": "plot", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" + }, + "editType": "plot", + "exponentformat": { + "description": "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.", + "dflt": "B", + "editType": "plot", + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ] + }, + "labelalias": { + "description": "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.", + "dflt": false, + "editType": "plot", + "valType": "any" + }, + "minexponent": { + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", + "dflt": 3, + "editType": "plot", + "min": 0, + "valType": "number" + }, + "nticks": { + "description": "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*.", + "dflt": 0, + "editType": "plot", + "min": 0, + "valType": "integer" + }, + "range": { + "description": "Sets the range of this axis.", + "editType": "plot", + "items": [ + { + "editType": "plot", + "valType": "number" + }, + { + "editType": "plot", + "valType": "number" + } + ], + "valType": "info_array" + }, + "role": "object", + "separatethousands": { + "description": "If \"true\", even 4-digit integers are separated", + "dflt": false, + "editType": "plot", "valType": "boolean" }, "showexponent": { "description": "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.", "dflt": "all", - "editType": "colorbars", + "editType": "plot", "valType": "enumerated", "values": [ "all", @@ -55127,13 +52698,13 @@ "showticklabels": { "description": "Determines whether or not the tick labels are drawn.", "dflt": true, - "editType": "colorbars", + "editType": "plot", "valType": "boolean" }, "showtickprefix": { "description": "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.", "dflt": "all", - "editType": "colorbars", + "editType": "plot", "valType": "enumerated", "values": [ "all", @@ -55145,7 +52716,7 @@ "showticksuffix": { "description": "Same as `showtickprefix` but for tick suffixes.", "dflt": "all", - "editType": "colorbars", + "editType": "plot", "valType": "enumerated", "values": [ "all", @@ -55154,26 +52725,9 @@ "none" ] }, - "thickness": { - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "dflt": 30, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "thicknessmode": { - "description": "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.", - "dflt": "pixels", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ] - }, "tick0": { "description": "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* (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.", - "editType": "colorbars", + "editType": "plot", "impliedEdits": { "tickmode": "linear" }, @@ -55182,25 +52736,25 @@ "tickangle": { "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", "dflt": "auto", - "editType": "colorbars", + "editType": "plot", "valType": "angle" }, "tickcolor": { "description": "Sets the tick color.", "dflt": "#444", - "editType": "colorbars", + "editType": "plot", "valType": "color" }, "tickfont": { "color": { - "editType": "colorbars", + "editType": "plot", "valType": "color" }, "description": "Sets the color bar's tick label font", - "editType": "colorbars", + "editType": "plot", "family": { "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars", + "editType": "plot", "noBlank": true, "strict": true, "valType": "string" @@ -55208,7 +52762,7 @@ "lineposition": { "description": "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.", "dflt": "none", - "editType": "colorbars", + "editType": "plot", "extras": [ "none" ], @@ -55223,18 +52777,18 @@ "shadow": { "description": "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.", "dflt": "none", - "editType": "colorbars", + "editType": "plot", "valType": "string" }, "size": { - "editType": "colorbars", + "editType": "plot", "min": 1, "valType": "number" }, "style": { "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "colorbars", + "editType": "plot", "valType": "enumerated", "values": [ "normal", @@ -55244,7 +52798,7 @@ "textcase": { "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "colorbars", + "editType": "plot", "valType": "enumerated", "values": [ "normal", @@ -55256,7 +52810,7 @@ "variant": { "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "colorbars", + "editType": "plot", "valType": "enumerated", "values": [ "normal", @@ -55270,7 +52824,7 @@ "weight": { "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "colorbars", + "editType": "plot", "extras": [ "normal", "bold" @@ -55283,7 +52837,7 @@ "tickformat": { "description": "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*", "dflt": "", - "editType": "colorbars", + "editType": "plot", "valType": "string" }, "tickformatstops": { @@ -55291,92 +52845,64 @@ "tickformatstop": { "dtickrange": { "description": "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*", - "editType": "colorbars", + "editType": "plot", "items": [ { - "editType": "colorbars", + "editType": "plot", "valType": "any" }, { - "editType": "colorbars", + "editType": "plot", "valType": "any" } ], "valType": "info_array" }, - "editType": "colorbars", + "editType": "plot", "enabled": { "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", "dflt": true, - "editType": "colorbars", + "editType": "plot", "valType": "boolean" }, "name": { "description": "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.", - "editType": "colorbars", + "editType": "plot", "valType": "string" }, "role": "object", "templateitemname": { "description": "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`.", - "editType": "colorbars", + "editType": "plot", "valType": "string" }, "value": { "description": "string - dtickformat for described zoom level, the same as *tickformat*", "dflt": "", - "editType": "colorbars", + "editType": "plot", "valType": "string" } } }, "role": "object" }, - "ticklabeloverflow": { - "description": "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*.", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "allow", - "hide past div", - "hide past domain" - ] - }, - "ticklabelposition": { - "description": "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*.", - "dflt": "outside", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside left", - "inside left", - "outside right", - "inside right", - "outside bottom", - "inside bottom" - ] - }, "ticklabelstep": { "description": "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*.", "dflt": 1, - "editType": "colorbars", + "editType": "plot", "min": 1, "valType": "integer" }, "ticklen": { "description": "Sets the tick length (in px).", "dflt": 5, - "editType": "colorbars", + "editType": "plot", "min": 0, "valType": "number" }, "tickmode": { "description": "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).", - "editType": "colorbars", + "editType": "plot", "impliedEdits": {}, "valType": "enumerated", "values": [ @@ -55388,13 +52914,13 @@ "tickprefix": { "description": "Sets a tick label prefix.", "dflt": "", - "editType": "colorbars", + "editType": "plot", "valType": "string" }, "ticks": { "description": "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.", - "dflt": "", - "editType": "colorbars", + "dflt": "outside", + "editType": "plot", "valType": "enumerated", "values": [ "outside", @@ -55405,12 +52931,12 @@ "ticksuffix": { "description": "Sets a tick label suffix.", "dflt": "", - "editType": "colorbars", + "editType": "plot", "valType": "string" }, "ticktext": { "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "editType": "colorbars", + "editType": "plot", "valType": "data_array" }, "ticktextsrc": { @@ -55420,7 +52946,7 @@ }, "tickvals": { "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "editType": "colorbars", + "editType": "plot", "valType": "data_array" }, "tickvalssrc": { @@ -55431,228 +52957,312 @@ "tickwidth": { "description": "Sets the tick width (in px).", "dflt": 1, - "editType": "colorbars", + "editType": "plot", "min": 0, "valType": "number" }, - "title": { - "editType": "colorbars", - "font": { - "color": { - "editType": "colorbars", - "valType": "color" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars", - "noBlank": true, - "strict": true, + "visible": { + "description": "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", + "dflt": true, + "editType": "plot", + "valType": "boolean" + } + }, + "bar": { + "color": { + "description": "Sets the background color of the arc.", + "dflt": "green", + "editType": "plot", + "valType": "color" + }, + "description": "Set the appearance of the gauge's value", + "editType": "calc", + "line": { + "color": { + "description": "Sets the color of the line enclosing each sector.", + "dflt": "#444", + "editType": "plot", + "valType": "color" + }, + "editType": "calc", + "role": "object", + "width": { + "description": "Sets the width (in px) of the line enclosing each sector.", + "dflt": 0, + "editType": "plot", + "min": 0, + "valType": "number" + } + }, + "role": "object", + "thickness": { + "description": "Sets the thickness of the bar as a fraction of the total thickness of the gauge.", + "dflt": 1, + "editType": "plot", + "max": 1, + "min": 0, + "valType": "number" + } + }, + "bgcolor": { + "description": "Sets the gauge background color.", + "editType": "plot", + "valType": "color" + }, + "bordercolor": { + "description": "Sets the color of the border enclosing the gauge.", + "dflt": "#444", + "editType": "plot", + "valType": "color" + }, + "borderwidth": { + "description": "Sets the width (in px) of the border enclosing the gauge.", + "dflt": 1, + "editType": "plot", + "min": 0, + "valType": "number" + }, + "description": "The gauge of the Indicator plot.", + "editType": "plot", + "role": "object", + "shape": { + "description": "Set the shape of the gauge", + "dflt": "angular", + "editType": "plot", + "valType": "enumerated", + "values": [ + "angular", + "bullet" + ] + }, + "steps": { + "items": { + "step": { + "color": { + "description": "Sets the background color of the arc.", + "editType": "plot", + "valType": "color" + }, + "editType": "calc", + "line": { + "color": { + "description": "Sets the color of the line enclosing each sector.", + "dflt": "#444", + "editType": "plot", + "valType": "color" + }, + "editType": "calc", + "role": "object", + "width": { + "description": "Sets the width (in px) of the line enclosing each sector.", + "dflt": 0, + "editType": "plot", + "min": 0, + "valType": "number" + } + }, + "name": { + "description": "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.", + "editType": "none", "valType": "string" }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" + "range": { + "description": "Sets the range of this axis.", + "editType": "plot", + "items": [ + { + "editType": "plot", + "valType": "number" + }, + { + "editType": "plot", + "valType": "number" + } ], - "valType": "flaglist" + "valType": "info_array" }, "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", + "templateitemname": { + "description": "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`.", + "editType": "calc", "valType": "string" }, - "size": { - "editType": "colorbars", - "min": 1, + "thickness": { + "description": "Sets the thickness of the bar as a fraction of the total thickness of the gauge.", + "dflt": 1, + "editType": "plot", + "max": 1, + "min": 0, "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "colorbars", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" } + } + }, + "role": "object" + }, + "threshold": { + "editType": "plot", + "line": { + "color": { + "description": "Sets the color of the threshold line.", + "dflt": "#444", + "editType": "plot", + "valType": "color" }, + "editType": "plot", "role": "object", - "side": { - "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ] - }, - "text": { - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars", - "valType": "string" + "width": { + "description": "Sets the width (in px) of the threshold line.", + "dflt": 1, + "editType": "plot", + "min": 0, + "valType": "number" } }, - "x": { - "description": "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*.", - "editType": "colorbars", + "role": "object", + "thickness": { + "description": "Sets the thickness of the threshold line as a fraction of the thickness of the gauge.", + "dflt": 0.85, + "editType": "plot", + "max": 1, + "min": 0, "valType": "number" }, - "xanchor": { - "description": "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*.", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ] + "value": { + "description": "Sets a treshold value drawn as a line.", + "dflt": false, + "editType": "calc", + "valType": "number" + } + } + }, + "ids": { + "anim": true, + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", + "editType": "calc", + "valType": "data_array" + }, + "idssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ids`.", + "editType": "none", + "valType": "string" + }, + "legend": { + "description": "Sets the reference to a legend to show this trace 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.", + "dflt": "legend", + "editType": "style", + "valType": "subplotid" + }, + "legendgrouptitle": { + "editType": "style", + "font": { + "color": { + "editType": "style", + "valType": "color" }, - "xpad": { - "description": "Sets the amount of padding (in px) along the x direction.", - "dflt": 10, - "editType": "colorbars", - "min": 0, + "description": "Sets this legend group's title font.", + "editType": "style", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "style", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "style", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "style", + "valType": "string" + }, + "size": { + "editType": "style", + "min": 1, "valType": "number" }, - "xref": { - "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", - "dflt": "paper", - "editType": "colorbars", + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "style", "valType": "enumerated", "values": [ - "container", - "paper" + "normal", + "italic" ] }, - "y": { - "description": "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*.", - "editType": "colorbars", - "valType": "number" - }, - "yanchor": { - "description": "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*.", - "editType": "colorbars", + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "style", "valType": "enumerated", "values": [ - "top", - "middle", - "bottom" + "normal", + "word caps", + "upper", + "lower" ] }, - "ypad": { - "description": "Sets the amount of padding (in px) along the y direction.", - "dflt": 10, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "yref": { - "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", - "dflt": "paper", - "editType": "colorbars", + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "style", "valType": "enumerated", "values": [ - "container", - "paper" + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" ] - } - }, - "colorscale": { - "description": "Sets the colorscale. Has an effect only if in `line.color` is set to a numerical array. 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 `line.cmin` and `line.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.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "autocolorscale": false }, - "valType": "colorscale" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "style", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } }, - "editType": "calc", - "hovertemplate": { - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. This value here applies when hovering over lines.Finally, the template string has access to variables `count` and `probability`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "role": "object", + "text": { + "description": "Sets the title of the legend group.", "dflt": "", - "editType": "plot", + "editType": "style", "valType": "string" - }, - "reversescale": { - "description": "Reverses the color mapping if true. Has an effect only if in `line.color` is set to a numerical array. If true, `line.cmin` will correspond to the last color in the array and `line.cmax` will correspond to the first color.", - "dflt": false, - "editType": "plot", - "valType": "boolean" - }, - "role": "object", - "shape": { - "description": "Sets the shape of the paths. If `linear`, paths are composed of straight lines. If `hspline`, paths are composed of horizontal curved splines", - "dflt": "linear", - "editType": "plot", - "valType": "enumerated", - "values": [ - "linear", - "hspline" - ] - }, - "showscale": { - "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `line.color` is set to a numerical array.", - "dflt": false, - "editType": "calc", - "valType": "boolean" } }, + "legendrank": { + "description": "Sets the legend rank for this trace. 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.", + "dflt": 1000, + "editType": "style", + "valType": "number" + }, + "legendwidth": { + "description": "Sets the width (in px or fraction) of the legend for this trace.", + "editType": "style", + "min": 0, + "valType": "number" + }, "meta": { "arrayOk": true, "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", @@ -55664,485 +53274,34 @@ "editType": "none", "valType": "string" }, + "mode": { + "description": "Determines how the value is displayed on the graph. `number` displays the value numerically in text. `delta` displays the difference to a reference value in text. Finally, `gauge` displays the value graphically on an axis.", + "dflt": "number", + "editType": "calc", + "flags": [ + "number", + "delta", + "gauge" + ], + "valType": "flaglist" + }, "name": { "description": "Sets the trace name. The trace name appears as the legend item and on hover.", "editType": "style", "valType": "string" }, - "sortpaths": { - "description": "Sets the path sorting algorithm. If `forward`, sort paths based on dimension categories from left to right. If `backward`, sort paths based on dimensions categories from right to left.", - "dflt": "forward", + "number": { "editType": "plot", - "valType": "enumerated", - "values": [ - "forward", - "backward" - ] - }, - "stream": { - "editType": "calc", - "maxpoints": { - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot.", - "dflt": 500, - "editType": "calc", - "max": 10000, - "min": 0, - "valType": "number" - }, - "role": "object", - "token": { - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details.", - "editType": "calc", - "noBlank": true, - "strict": true, - "valType": "string" - } - }, - "tickfont": { - "color": { - "editType": "calc", - "valType": "color" - }, - "description": "Sets the font for the `category` labels.", - "editType": "calc", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "calc", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "auto", - "editType": "calc", - "valType": "string" - }, - "size": { - "editType": "calc", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "calc", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "transforms": { - "items": { - "transform": { - "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "editType": "calc", - "role": "object" - } - }, - "role": "object" - }, - "type": "parcats", - "uid": { - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", - "editType": "plot", - "valType": "string" - }, - "uirevision": { - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.", - "editType": "none", - "valType": "any" - }, - "visible": { - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", - "dflt": true, - "editType": "calc", - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ] - } - }, - "categories": [ - "noOpacity" - ], - "meta": { - "description": "Parallel categories diagram for multidimensional categorical data." - }, - "type": "parcats" - }, - "parcoords": { - "animatable": false, - "attributes": { - "customdata": { - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "editType": "calc", - "valType": "data_array" - }, - "customdatasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", - "editType": "none", - "valType": "string" - }, - "dimensions": { - "items": { - "dimension": { - "constraintrange": { - "description": "The domain range to which the filter on the dimension is constrained. Must be an array of `[fromValue, toValue]` with `fromValue <= toValue`, or if `multiselect` is not disabled, you may give an array of arrays, where each inner array is `[fromValue, toValue]`.", - "dimensions": "1-2", - "editType": "plot", - "freeLength": true, - "items": [ - { - "editType": "plot", - "valType": "any" - }, - { - "editType": "plot", - "valType": "any" - } - ], - "valType": "info_array" - }, - "description": "The dimensions (variables) of the parallel coordinates chart. 2..60 dimensions are supported.", - "editType": "calc", - "label": { - "description": "The shown name of the dimension.", - "editType": "plot", - "valType": "string" - }, - "multiselect": { - "description": "Do we allow multiple selection ranges or just a single range?", - "dflt": true, - "editType": "plot", - "valType": "boolean" - }, - "name": { - "description": "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.", - "editType": "none", - "valType": "string" - }, - "range": { - "description": "The domain range that represents the full, shown axis extent. Defaults to the `values` extent. Must be an array of `[fromValue, toValue]` with finite numbers as elements.", - "editType": "plot", - "items": [ - { - "editType": "plot", - "valType": "number" - }, - { - "editType": "plot", - "valType": "number" - } - ], - "valType": "info_array" - }, - "role": "object", - "templateitemname": { - "description": "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`.", - "editType": "calc", - "valType": "string" - }, - "tickformat": { - "description": "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*", - "dflt": "", - "editType": "plot", - "valType": "string" - }, - "ticktext": { - "description": "Sets the text displayed at the ticks position via `tickvals`.", - "editType": "plot", - "valType": "data_array" - }, - "ticktextsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", - "editType": "none", - "valType": "string" - }, - "tickvals": { - "description": "Sets the values at which ticks on this axis appear.", - "editType": "plot", - "valType": "data_array" - }, - "tickvalssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", - "editType": "none", - "valType": "string" - }, - "values": { - "description": "Dimension values. `values[n]` represents the value of the `n`th point in the dataset, therefore the `values` vector for all dimensions must be the same (longer vectors will be truncated). Each value must be a finite number.", - "editType": "calc", - "valType": "data_array" - }, - "valuessrc": { - "description": "Sets the source reference on Chart Studio Cloud for `values`.", - "editType": "none", - "valType": "string" - }, - "visible": { - "description": "Shows the dimension when set to `true` (the default). Hides the dimension for `false`.", - "dflt": true, - "editType": "plot", - "valType": "boolean" - } - } - }, - "role": "object" - }, - "domain": { - "column": { - "description": "If there is a layout grid, use the domain for this column in the grid for this parcoords trace .", - "dflt": 0, - "editType": "plot", - "min": 0, - "valType": "integer" - }, - "editType": "plot", - "role": "object", - "row": { - "description": "If there is a layout grid, use the domain for this row in the grid for this parcoords trace .", - "dflt": 0, - "editType": "plot", - "min": 0, - "valType": "integer" - }, - "x": { - "description": "Sets the horizontal domain of this parcoords trace (in plot fraction).", - "dflt": [ - 0, - 1 - ], - "editType": "plot", - "items": [ - { - "editType": "plot", - "max": 1, - "min": 0, - "valType": "number" - }, - { - "editType": "plot", - "max": 1, - "min": 0, - "valType": "number" - } - ], - "valType": "info_array" - }, - "y": { - "description": "Sets the vertical domain of this parcoords trace (in plot fraction).", - "dflt": [ - 0, - 1 - ], - "editType": "plot", - "items": [ - { - "editType": "plot", - "max": 1, - "min": 0, - "valType": "number" - }, - { - "editType": "plot", - "max": 1, - "min": 0, - "valType": "number" - } - ], - "valType": "info_array" - } - }, - "ids": { - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "editType": "calc", - "valType": "data_array" - }, - "idssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ids`.", - "editType": "none", - "valType": "string" - }, - "labelangle": { - "description": "Sets the angle of the labels with respect to the horizontal. For example, a `tickangle` of -90 draws the labels vertically. Tilted labels with *labelangle* may be positioned better inside margins when `labelposition` is set to *bottom*.", - "dflt": 0, - "editType": "plot", - "valType": "angle" - }, - "labelfont": { - "color": { - "editType": "plot", - "valType": "color" - }, - "description": "Sets the font for the `dimension` labels.", - "editType": "plot", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "plot", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "plot", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "plot", - "valType": "string" - }, - "size": { - "editType": "plot", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "plot", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "labelside": { - "description": "Specifies the location of the `label`. *top* positions labels above, next to the title *bottom* positions labels below the graph Tilted labels with *labelangle* may be positioned better inside margins when `labelposition` is set to *bottom*.", - "dflt": "top", - "editType": "plot", - "valType": "enumerated", - "values": [ - "top", - "bottom" - ] - }, - "legend": { - "description": "Sets the reference to a legend to show this trace 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.", - "dflt": "legend", - "editType": "style", - "valType": "subplotid" - }, - "legendgrouptitle": { - "editType": "style", "font": { "color": { - "editType": "style", + "editType": "plot", "valType": "color" }, - "description": "Sets this legend group's title font.", - "editType": "style", + "description": "Set the font used to display main number", + "editType": "plot", "family": { "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "style", + "editType": "plot", "noBlank": true, "strict": true, "valType": "string" @@ -56150,7 +53309,7 @@ "lineposition": { "description": "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.", "dflt": "none", - "editType": "style", + "editType": "plot", "extras": [ "none" ], @@ -56165,18 +53324,18 @@ "shadow": { "description": "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.", "dflt": "none", - "editType": "style", + "editType": "plot", "valType": "string" }, "size": { - "editType": "style", + "editType": "plot", "min": 1, "valType": "number" }, "style": { "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "style", + "editType": "plot", "valType": "enumerated", "values": [ "normal", @@ -56186,7 +53345,7 @@ "textcase": { "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "style", + "editType": "plot", "valType": "enumerated", "values": [ "normal", @@ -56198,7 +53357,7 @@ "variant": { "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "style", + "editType": "plot", "valType": "enumerated", "values": [ "normal", @@ -56212,7 +53371,7 @@ "weight": { "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "style", + "editType": "plot", "extras": [ "normal", "bold" @@ -56222,384 +53381,327 @@ "valType": "integer" } }, + "prefix": { + "description": "Sets a prefix appearing before the number.", + "dflt": "", + "editType": "plot", + "valType": "string" + }, "role": "object", - "text": { - "description": "Sets the title of the legend group.", + "suffix": { + "description": "Sets a suffix appearing next to the number.", "dflt": "", - "editType": "style", + "editType": "plot", + "valType": "string" + }, + "valueformat": { + "description": "Sets the value 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.", + "dflt": "", + "editType": "plot", "valType": "string" } }, - "legendrank": { - "description": "Sets the legend rank for this trace. 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.", - "dflt": 1000, - "editType": "style", - "valType": "number" - }, - "legendwidth": { - "description": "Sets the width (in px or fraction) of the legend for this trace.", - "editType": "style", - "min": 0, - "valType": "number" - }, - "line": { - "autocolorscale": { - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `line.colorscale`. Has an effect only if in `line.color` is set to a numerical array. 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.", - "dflt": false, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" - }, - "cauto": { - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `line.color`) or the bounds set in `line.cmin` and `line.cmax` Has an effect only if in `line.color` is set to a numerical array. Defaults to `false` when `line.cmin` and `line.cmax` are set by the user.", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" - }, - "cmax": { - "description": "Sets the upper bound of the color domain. Has an effect only if in `line.color` is set to a numerical array. Value should have the same units as in `line.color` and if set, `line.cmin` must be set as well.", - "dflt": null, + "stream": { + "editType": "calc", + "maxpoints": { + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot.", + "dflt": 500, "editType": "calc", - "impliedEdits": { - "cauto": false - }, + "max": 10000, + "min": 0, "valType": "number" }, - "cmid": { - "description": "Sets the mid-point of the color domain by scaling `line.cmin` and/or `line.cmax` to be equidistant to this point. Has an effect only if in `line.color` is set to a numerical array. Value should have the same units as in `line.color`. Has no effect when `line.cauto` is `false`.", - "dflt": null, + "role": "object", + "token": { + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details.", "editType": "calc", - "impliedEdits": {}, - "valType": "number" + "noBlank": true, + "strict": true, + "valType": "string" + } + }, + "title": { + "align": { + "description": "Sets the horizontal alignment of the title. It defaults to `center` except for bullet charts for which it defaults to right.", + "editType": "plot", + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ] }, - "cmin": { - "description": "Sets the lower bound of the color domain. Has an effect only if in `line.color` is set to a numerical array. Value should have the same units as in `line.color` and if set, `line.cmax` must be set as well.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false + "editType": "plot", + "font": { + "color": { + "editType": "plot", + "valType": "color" }, - "valType": "number" - }, - "color": { - "arrayOk": true, - "description": "Sets the line color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `line.cmin` and `line.cmax` if set.", - "editType": "calc", - "valType": "color" - }, - "coloraxis": { - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", - "dflt": null, - "editType": "calc", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "valType": "subplotid" - }, - "colorbar": { - "_deprecated": { - "title": { - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars", - "valType": "string" - }, - "titlefont": { - "color": { - "editType": "colorbars", - "valType": "color" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "valType": "string" - }, - "size": { - "editType": "colorbars", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "colorbars", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "titleside": { - "description": "Deprecated in favor of color bar's `title.side`.", - "dflt": "top", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ] - } + "description": "Set the font used to display the title", + "editType": "plot", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "plot", + "noBlank": true, + "strict": true, + "valType": "string" }, - "bgcolor": { - "description": "Sets the color of padded area.", - "dflt": "rgba(0,0,0,0)", - "editType": "colorbars", - "valType": "color" + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "plot", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" }, - "bordercolor": { - "description": "Sets the axis line color.", - "dflt": "#444", - "editType": "colorbars", - "valType": "color" + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "plot", + "valType": "string" }, - "borderwidth": { - "description": "Sets the width (in px) or the border enclosing this color bar.", - "dflt": 0, - "editType": "colorbars", - "min": 0, + "size": { + "editType": "plot", + "min": 1, "valType": "number" }, - "dtick": { - "description": "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*, 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* 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*", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "valType": "any" - }, - "editType": "colorbars", - "exponentformat": { - "description": "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.", - "dflt": "B", - "editType": "colorbars", + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "plot", "valType": "enumerated", "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" + "normal", + "italic" ] }, - "labelalias": { - "description": "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.", - "dflt": false, - "editType": "colorbars", - "valType": "any" - }, - "len": { - "description": "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.", - "dflt": 1, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "lenmode": { - "description": "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.", - "dflt": "fraction", - "editType": "colorbars", + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "plot", "valType": "enumerated", "values": [ - "fraction", - "pixels" + "normal", + "word caps", + "upper", + "lower" ] }, - "minexponent": { - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", - "dflt": 3, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "nticks": { - "description": "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*.", - "dflt": 0, - "editType": "colorbars", - "min": 0, - "valType": "integer" - }, - "orientation": { - "description": "Sets the orientation of the colorbar.", - "dflt": "v", - "editType": "colorbars", + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "plot", "valType": "enumerated", "values": [ - "h", - "v" + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" ] }, - "outlinecolor": { - "description": "Sets the axis line color.", - "dflt": "#444", - "editType": "colorbars", - "valType": "color" - }, - "outlinewidth": { - "description": "Sets the width (in px) of the axis line.", + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "plot", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "role": "object", + "text": { + "description": "Sets the title of this indicator.", + "editType": "plot", + "valType": "string" + } + }, + "transforms": { + "items": { + "transform": { + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "editType": "calc", + "role": "object" + } + }, + "role": "object" + }, + "type": "indicator", + "uid": { + "anim": true, + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", + "editType": "plot", + "valType": "string" + }, + "uirevision": { + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.", + "editType": "none", + "valType": "any" + }, + "value": { + "anim": true, + "description": "Sets the number to be displayed.", + "editType": "calc", + "valType": "number" + }, + "visible": { + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", + "dflt": true, + "editType": "calc", + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ] + } + }, + "categories": [ + "svg", + "noOpacity", + "noHover" + ], + "meta": { + "description": "An indicator is used to visualize a single `value` along with some contextual information such as `steps` or a `threshold`, using a combination of three visual elements: a number, a delta, and/or a gauge. Deltas are taken with respect to a `reference`. Gauges can be either angular or bullet (aka linear) gauges." + }, + "type": "indicator" + }, + "isosurface": { + "animatable": false, + "attributes": { + "autocolorscale": { + "description": "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.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "caps": { + "editType": "calc", + "role": "object", + "x": { + "editType": "calc", + "fill": { + "description": "Sets the fill ratio of the `caps`. The default fill value of the `caps` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", "dflt": 1, - "editType": "colorbars", + "editType": "calc", + "max": 1, "min": 0, "valType": "number" }, "role": "object", - "separatethousands": { - "description": "If \"true\", even 4-digit integers are separated", - "dflt": false, - "editType": "colorbars", + "show": { + "description": "Sets the fill ratio of the `slices`. The default fill value of the x `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", + "dflt": true, + "editType": "calc", "valType": "boolean" + } + }, + "y": { + "editType": "calc", + "fill": { + "description": "Sets the fill ratio of the `caps`. The default fill value of the `caps` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", + "dflt": 1, + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" }, - "showexponent": { - "description": "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.", - "dflt": "all", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] - }, - "showticklabels": { - "description": "Determines whether or not the tick labels are drawn.", + "role": "object", + "show": { + "description": "Sets the fill ratio of the `slices`. The default fill value of the y `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", "dflt": true, - "editType": "colorbars", + "editType": "calc", "valType": "boolean" - }, - "showtickprefix": { - "description": "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.", - "dflt": "all", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] - }, - "showticksuffix": { - "description": "Same as `showtickprefix` but for tick suffixes.", - "dflt": "all", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] - }, - "thickness": { - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "dflt": 30, - "editType": "colorbars", + } + }, + "z": { + "editType": "calc", + "fill": { + "description": "Sets the fill ratio of the `caps`. The default fill value of the `caps` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", + "dflt": 1, + "editType": "calc", + "max": 1, "min": 0, "valType": "number" }, - "thicknessmode": { - "description": "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.", - "dflt": "pixels", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ] - }, - "tick0": { - "description": "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* (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.", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "valType": "any" - }, - "tickangle": { - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", - "dflt": "auto", - "editType": "colorbars", - "valType": "angle" - }, - "tickcolor": { - "description": "Sets the tick color.", - "dflt": "#444", - "editType": "colorbars", - "valType": "color" + "role": "object", + "show": { + "description": "Sets the fill ratio of the `slices`. The default fill value of the z `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", + "dflt": true, + "editType": "calc", + "valType": "boolean" + } + } + }, + "cauto": { + "description": "Determines whether or not the color domain is computed with respect to the input data (here `value`) or the bounds set in `cmin` and `cmax` Defaults to `false` when `cmin` and `cmax` are set by the user.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "cmax": { + "description": "Sets the upper bound of the color domain. Value should have the same units as `value` and if set, `cmin` must be set as well.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "valType": "number" + }, + "cmid": { + "description": "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 `value`. Has no effect when `cauto` is `false`.", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "valType": "number" + }, + "cmin": { + "description": "Sets the lower bound of the color domain. Value should have the same units as `value` and if set, `cmax` must be set as well.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "valType": "number" + }, + "coloraxis": { + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", + "dflt": null, + "editType": "calc", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "valType": "subplotid" + }, + "colorbar": { + "_deprecated": { + "title": { + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "calc", + "valType": "string" }, - "tickfont": { + "titlefont": { "color": { - "editType": "colorbars", + "editType": "calc", "valType": "color" }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "calc", "family": { "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars", + "editType": "calc", "noBlank": true, "strict": true, "valType": "string" @@ -56607,7 +53709,7 @@ "lineposition": { "description": "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.", "dflt": "none", - "editType": "colorbars", + "editType": "calc", "extras": [ "none" ], @@ -56618,22 +53720,21 @@ ], "valType": "flaglist" }, - "role": "object", "shadow": { "description": "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.", "dflt": "none", - "editType": "colorbars", + "editType": "calc", "valType": "string" }, "size": { - "editType": "colorbars", + "editType": "calc", "min": 1, "valType": "number" }, "style": { "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "normal", @@ -56643,7 +53744,7 @@ "textcase": { "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "normal", @@ -56655,7 +53756,7 @@ "variant": { "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "normal", @@ -56669,7 +53770,7 @@ "weight": { "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "colorbars", + "editType": "calc", "extras": [ "normal", "bold" @@ -56679,952 +53780,687 @@ "valType": "integer" } }, - "tickformat": { - "description": "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*", - "dflt": "", - "editType": "colorbars", - "valType": "string" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "dtickrange": { - "description": "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*", - "editType": "colorbars", - "items": [ - { - "editType": "colorbars", - "valType": "any" - }, - { - "editType": "colorbars", - "valType": "any" - } - ], - "valType": "info_array" - }, - "editType": "colorbars", - "enabled": { - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", - "dflt": true, - "editType": "colorbars", - "valType": "boolean" - }, - "name": { - "description": "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.", - "editType": "colorbars", - "valType": "string" - }, - "role": "object", - "templateitemname": { - "description": "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`.", - "editType": "colorbars", - "valType": "string" - }, - "value": { - "description": "string - dtickformat for described zoom level, the same as *tickformat*", - "dflt": "", - "editType": "colorbars", - "valType": "string" - } - } - }, - "role": "object" - }, - "ticklabeloverflow": { - "description": "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*.", - "editType": "colorbars", + "titleside": { + "description": "Deprecated in favor of color bar's `title.side`.", + "dflt": "top", + "editType": "calc", "valType": "enumerated", "values": [ - "allow", - "hide past div", - "hide past domain" + "right", + "top", + "bottom" ] + } + }, + "bgcolor": { + "description": "Sets the color of padded area.", + "dflt": "rgba(0,0,0,0)", + "editType": "calc", + "valType": "color" + }, + "bordercolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "calc", + "valType": "color" + }, + "borderwidth": { + "description": "Sets the width (in px) or the border enclosing this color bar.", + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "dtick": { + "description": "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*, 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* 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*", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" }, - "ticklabelposition": { - "description": "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*.", - "dflt": "outside", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside left", - "inside left", - "outside right", - "inside right", - "outside bottom", - "inside bottom" - ] + "valType": "any" + }, + "editType": "calc", + "exponentformat": { + "description": "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.", + "dflt": "B", + "editType": "calc", + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ] + }, + "labelalias": { + "description": "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.", + "dflt": false, + "editType": "calc", + "valType": "any" + }, + "len": { + "description": "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.", + "dflt": 1, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "lenmode": { + "description": "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.", + "dflt": "fraction", + "editType": "calc", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] + }, + "minexponent": { + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", + "dflt": 3, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "nticks": { + "description": "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*.", + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "integer" + }, + "orientation": { + "description": "Sets the orientation of the colorbar.", + "dflt": "v", + "editType": "calc", + "valType": "enumerated", + "values": [ + "h", + "v" + ] + }, + "outlinecolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "calc", + "valType": "color" + }, + "outlinewidth": { + "description": "Sets the width (in px) of the axis line.", + "dflt": 1, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "role": "object", + "separatethousands": { + "description": "If \"true\", even 4-digit integers are separated", + "dflt": false, + "editType": "calc", + "valType": "boolean" + }, + "showexponent": { + "description": "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.", + "dflt": "all", + "editType": "calc", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] + }, + "showticklabels": { + "description": "Determines whether or not the tick labels are drawn.", + "dflt": true, + "editType": "calc", + "valType": "boolean" + }, + "showtickprefix": { + "description": "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.", + "dflt": "all", + "editType": "calc", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] + }, + "showticksuffix": { + "description": "Same as `showtickprefix` but for tick suffixes.", + "dflt": "all", + "editType": "calc", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] + }, + "thickness": { + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "dflt": 30, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "thicknessmode": { + "description": "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.", + "dflt": "pixels", + "editType": "calc", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] + }, + "tick0": { + "description": "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* (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.", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" }, - "ticklabelstep": { - "description": "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*.", - "dflt": 1, - "editType": "colorbars", - "min": 1, - "valType": "integer" + "valType": "any" + }, + "tickangle": { + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", + "dflt": "auto", + "editType": "calc", + "valType": "angle" + }, + "tickcolor": { + "description": "Sets the tick color.", + "dflt": "#444", + "editType": "calc", + "valType": "color" + }, + "tickfont": { + "color": { + "editType": "calc", + "valType": "color" }, - "ticklen": { - "description": "Sets the tick length (in px).", - "dflt": 5, - "editType": "colorbars", - "min": 0, + "description": "Sets the color bar's tick label font", + "editType": "calc", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "valType": "string" + }, + "size": { + "editType": "calc", + "min": 1, "valType": "number" }, - "tickmode": { - "description": "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).", - "editType": "colorbars", - "impliedEdits": {}, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "calc", "valType": "enumerated", "values": [ - "auto", - "linear", - "array" + "normal", + "italic" ] }, - "tickprefix": { - "description": "Sets a tick label prefix.", - "dflt": "", - "editType": "colorbars", - "valType": "string" - }, - "ticks": { - "description": "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.", - "dflt": "", - "editType": "colorbars", + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "calc", "valType": "enumerated", "values": [ - "outside", - "inside", - "" + "normal", + "word caps", + "upper", + "lower" ] }, - "ticksuffix": { - "description": "Sets a tick label suffix.", - "dflt": "", - "editType": "colorbars", - "valType": "string" - }, - "ticktext": { - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "editType": "colorbars", - "valType": "data_array" - }, - "ticktextsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", - "editType": "none", - "valType": "string" - }, - "tickvals": { - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "editType": "colorbars", - "valType": "data_array" - }, - "tickvalssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", - "editType": "none", - "valType": "string" - }, - "tickwidth": { - "description": "Sets the tick width (in px).", - "dflt": 1, - "editType": "colorbars", - "min": 0, - "valType": "number" + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] }, - "title": { - "editType": "colorbars", - "font": { - "color": { - "editType": "colorbars", - "valType": "color" + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "calc", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "tickformat": { + "description": "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*", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "dtickrange": { + "description": "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*", + "editType": "calc", + "items": [ + { + "editType": "calc", + "valType": "any" + }, + { + "editType": "calc", + "valType": "any" + } + ], + "valType": "info_array" }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars", - "noBlank": true, - "strict": true, - "valType": "string" + "editType": "calc", + "enabled": { + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", + "dflt": true, + "editType": "calc", + "valType": "boolean" }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" + "name": { + "description": "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.", + "editType": "calc", + "valType": "string" }, "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", + "templateitemname": { + "description": "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`.", + "editType": "calc", "valType": "string" }, - "size": { - "editType": "colorbars", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "colorbars", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" + "value": { + "description": "string - dtickformat for described zoom level, the same as *tickformat*", + "dflt": "", + "editType": "calc", + "valType": "string" } + } + }, + "role": "object" + }, + "ticklabeloverflow": { + "description": "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*.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ] + }, + "ticklabelposition": { + "description": "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*.", + "dflt": "outside", + "editType": "calc", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside left", + "inside left", + "outside right", + "inside right", + "outside bottom", + "inside bottom" + ] + }, + "ticklabelstep": { + "description": "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*.", + "dflt": 1, + "editType": "calc", + "min": 1, + "valType": "integer" + }, + "ticklen": { + "description": "Sets the tick length (in px).", + "dflt": 5, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "tickmode": { + "description": "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).", + "editType": "calc", + "impliedEdits": {}, + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ] + }, + "tickprefix": { + "description": "Sets a tick label prefix.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "ticks": { + "description": "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.", + "dflt": "", + "editType": "calc", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ] + }, + "ticksuffix": { + "description": "Sets a tick label suffix.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "ticktext": { + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", + "editType": "calc", + "valType": "data_array" + }, + "ticktextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", + "editType": "none", + "valType": "string" + }, + "tickvals": { + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", + "editType": "calc", + "valType": "data_array" + }, + "tickvalssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", + "editType": "none", + "valType": "string" + }, + "tickwidth": { + "description": "Sets the tick width (in px).", + "dflt": 1, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "title": { + "editType": "calc", + "font": { + "color": { + "editType": "calc", + "valType": "color" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "calc", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" }, "role": "object", - "side": { - "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "valType": "string" + }, + "size": { + "editType": "calc", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "calc", "valType": "enumerated", "values": [ - "right", - "top", - "bottom" + "normal", + "italic" ] }, - "text": { - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars", - "valType": "string" + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "calc", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" } }, - "x": { - "description": "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*.", - "editType": "colorbars", - "valType": "number" - }, - "xanchor": { - "description": "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*.", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ] - }, - "xpad": { - "description": "Sets the amount of padding (in px) along the x direction.", - "dflt": 10, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "xref": { - "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", - "dflt": "paper", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "container", - "paper" - ] - }, - "y": { - "description": "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*.", - "editType": "colorbars", - "valType": "number" - }, - "yanchor": { - "description": "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*.", - "editType": "colorbars", + "role": "object", + "side": { + "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "calc", "valType": "enumerated", "values": [ + "right", "top", - "middle", "bottom" ] }, - "ypad": { - "description": "Sets the amount of padding (in px) along the y direction.", - "dflt": 10, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "yref": { - "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", - "dflt": "paper", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "container", - "paper" - ] + "text": { + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "calc", + "valType": "string" } }, - "colorscale": { - "description": "Sets the colorscale. Has an effect only if in `line.color` is set to a numerical array. 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 `line.cmin` and `line.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.", - "dflt": [ - [ - 0, - "#440154" - ], - [ - 0.06274509803921569, - "#48186a" - ], - [ - 0.12549019607843137, - "#472d7b" - ], - [ - 0.18823529411764706, - "#424086" - ], - [ - 0.25098039215686274, - "#3b528b" - ], - [ - 0.3137254901960784, - "#33638d" - ], - [ - 0.3764705882352941, - "#2c728e" - ], - [ - 0.4392156862745098, - "#26828e" - ], - [ - 0.5019607843137255, - "#21918c" - ], - [ - 0.5647058823529412, - "#1fa088" - ], - [ - 0.6274509803921569, - "#28ae80" - ], - [ - 0.6901960784313725, - "#3fbc73" - ], - [ - 0.7529411764705882, - "#5ec962" - ], - [ - 0.8156862745098039, - "#84d44b" - ], - [ - 0.8784313725490196, - "#addc30" - ], - [ - 0.9411764705882353, - "#d8e219" - ], - [ - 1, - "#fde725" - ] - ], + "x": { + "description": "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*.", "editType": "calc", - "impliedEdits": { - "autocolorscale": false - }, - "valType": "colorscale" + "valType": "number" }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" + "xanchor": { + "description": "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*.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ] + }, + "xpad": { + "description": "Sets the amount of padding (in px) along the x direction.", + "dflt": 10, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "calc", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, + "y": { + "description": "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*.", + "editType": "calc", + "valType": "number" + }, + "yanchor": { + "description": "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*.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ] + }, + "ypad": { + "description": "Sets the amount of padding (in px) along the y direction.", + "dflt": 10, + "editType": "calc", + "min": 0, + "valType": "number" }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "calc", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + } + }, + "colorscale": { + "description": "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.", + "dflt": null, "editType": "calc", - "reversescale": { - "description": "Reverses the color mapping if true. Has an effect only if in `line.color` is set to a numerical array. If true, `line.cmin` will correspond to the last color in the array and `line.cmax` will correspond to the first color.", - "dflt": false, - "editType": "plot", - "valType": "boolean" + "impliedEdits": { + "autocolorscale": false + }, + "valType": "colorscale" + }, + "contour": { + "color": { + "description": "Sets the color of the contour lines.", + "dflt": "#444", + "editType": "calc", + "valType": "color" }, + "editType": "calc", "role": "object", - "showscale": { - "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `line.color` is set to a numerical array.", + "show": { + "description": "Sets whether or not dynamic contours are shown on hover", "dflt": false, "editType": "calc", "valType": "boolean" + }, + "width": { + "description": "Sets the width of the contour lines.", + "dflt": 2, + "editType": "calc", + "max": 16, + "min": 1, + "valType": "number" } }, - "meta": { - "arrayOk": true, - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", - "editType": "plot", - "valType": "any" + "customdata": { + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", + "editType": "calc", + "valType": "data_array" }, - "metasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `meta`.", + "customdatasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", "editType": "none", "valType": "string" }, - "name": { - "description": "Sets the trace name. The trace name appears as the legend item and on hover.", - "editType": "style", - "valType": "string" - }, - "rangefont": { - "color": { - "editType": "plot", - "valType": "color" - }, - "description": "Sets the font for the `dimension` range values.", - "editType": "plot", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "plot", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "plot", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "plot", - "valType": "string" - }, - "size": { - "editType": "plot", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "plot", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "stream": { - "editType": "calc", - "maxpoints": { - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot.", - "dflt": 500, - "editType": "calc", - "max": 10000, - "min": 0, - "valType": "number" - }, - "role": "object", - "token": { - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details.", - "editType": "calc", - "noBlank": true, - "strict": true, - "valType": "string" - } - }, - "tickfont": { - "color": { - "editType": "plot", - "valType": "color" - }, - "description": "Sets the font for the `dimension` tick values.", - "editType": "plot", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "plot", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "plot", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "auto", - "editType": "plot", - "valType": "string" - }, - "size": { - "editType": "plot", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "plot", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "transforms": { - "items": { - "transform": { - "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "editType": "calc", - "role": "object" - } - }, - "role": "object" - }, - "type": "parcoords", - "uid": { - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", - "editType": "plot", - "valType": "string" - }, - "uirevision": { - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.", - "editType": "none", - "valType": "any" - }, - "unselected": { - "editType": "plot", - "line": { - "color": { - "description": "Sets the base color of unselected lines. in connection with `unselected.line.opacity`.", - "dflt": "#7f7f7f", - "editType": "plot", - "valType": "color" - }, - "editType": "plot", - "opacity": { - "description": "Sets the opacity of unselected lines. The default *auto* decreases the opacity smoothly as the number of lines increases. Use *1* to achieve exact `unselected.line.color`.", - "dflt": "auto", - "editType": "plot", - "max": 1, - "min": 0, - "valType": "number" - }, - "role": "object" - }, - "role": "object" - }, - "visible": { - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", - "dflt": true, - "editType": "calc", - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ] - } - }, - "categories": [ - "gl", - "regl", - "noOpacity", - "noHover" - ], - "meta": { - "description": "Parallel coordinates for multidimensional exploratory data analysis. The samples are specified in `dimensions`. The colors are set in `line.color`." - }, - "type": "parcoords" - }, - "pie": { - "animatable": false, - "attributes": { - "_deprecated": { - "title": { - "description": "Deprecated in favor of `title.text`. Note that value of `title` is no longer a simple *string* but a set of sub-attributes.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "titlefont": { - "color": { - "arrayOk": true, - "editType": "plot", - "valType": "color" - }, - "description": "Deprecated in favor of `title.font`.", - "editType": "plot", - "family": { - "arrayOk": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "plot", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "plot", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "shadow": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "plot", - "valType": "string" - }, - "size": { - "arrayOk": true, - "editType": "plot", - "min": 1, - "valType": "number" - }, - "style": { - "arrayOk": true, - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "arrayOk": true, - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "arrayOk": true, - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "arrayOk": true, - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "plot", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "titleposition": { - "description": "Deprecated in favor of `title.position`.", - "editType": "calc", - "valType": "enumerated", - "values": [ - "top left", - "top center", - "top right", - "middle center", - "bottom left", - "bottom center", - "bottom right" - ] - } - }, - "automargin": { - "description": "Determines whether outside text labels can push the margins.", - "dflt": false, - "editType": "plot", - "valType": "boolean" - }, - "customdata": { - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "editType": "calc", - "valType": "data_array" - }, - "customdatasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", - "editType": "none", - "valType": "string" - }, - "direction": { - "description": "Specifies the direction at which succeeding sectors follow one another.", - "dflt": "counterclockwise", - "editType": "calc", - "valType": "enumerated", - "values": [ - "clockwise", - "counterclockwise" - ] - }, - "dlabel": { - "description": "Sets the label step. See `label0` for more info.", - "dflt": 1, - "editType": "calc", - "valType": "number" - }, - "domain": { - "column": { - "description": "If there is a layout grid, use the domain for this column in the grid for this pie trace .", - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "integer" - }, - "editType": "calc", - "role": "object", - "row": { - "description": "If there is a layout grid, use the domain for this row in the grid for this pie trace .", - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "integer" - }, - "x": { - "description": "Sets the horizontal domain of this pie trace (in plot fraction).", - "dflt": [ - 0, - 1 - ], - "editType": "calc", - "items": [ - { - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - { - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - } - ], - "valType": "info_array" - }, - "y": { - "description": "Sets the vertical domain of this pie trace (in plot fraction).", - "dflt": [ - 0, - 1 - ], - "editType": "calc", - "items": [ - { - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - { - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - } - ], - "valType": "info_array" - } - }, - "hole": { - "description": "Sets the fraction of the radius to cut out of the pie. Use this to make a donut chart.", - "dflt": 0, - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" + "flatshading": { + "description": "Determines whether or not normal smoothing is applied to the meshes, creating meshes with an angular, low-poly look via flat reflections.", + "dflt": true, + "editType": "calc", + "valType": "boolean" }, "hoverinfo": { "arrayOk": true, "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", "dflt": "all", - "editType": "none", + "editType": "calc", "extras": [ "all", "none", "skip" ], "flags": [ - "label", + "x", + "y", + "z", "text", - "value", - "percent", "name" ], "valType": "flaglist" @@ -57835,9 +54671,9 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `label`, `color`, `value`, `percent` and `text`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", "dflt": "", - "editType": "none", + "editType": "calc", "valType": "string" }, "hovertemplatesrc": { @@ -57847,9 +54683,9 @@ }, "hovertext": { "arrayOk": true, - "description": "Sets hover text elements associated with each sector. If a single string, the same string appears for all data points. If an array of string, the items are mapped in order of this trace's sectors. To be seen, trace `hoverinfo` must contain a *text* flag.", + "description": "Same as `text`.", "dflt": "", - "editType": "style", + "editType": "calc", "valType": "string" }, "hovertextsrc": { @@ -57867,176 +54703,15 @@ "editType": "none", "valType": "string" }, - "insidetextfont": { - "color": { - "arrayOk": true, - "editType": "plot", - "valType": "color" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "description": "Sets the font used for `textinfo` lying inside the sector.", - "editType": "plot", - "family": { - "arrayOk": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "plot", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" - }, - "lineposition": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "plot", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", - "valType": "string" - }, - "role": "object", - "shadow": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "plot", - "valType": "string" - }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", - "editType": "none", - "valType": "string" - }, - "size": { - "arrayOk": true, - "editType": "plot", - "min": 1, - "valType": "number" - }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" - }, - "style": { - "arrayOk": true, - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" - }, - "textcase": { - "arrayOk": true, - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" - }, - "variant": { - "arrayOk": true, - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" - }, - "weight": { - "arrayOk": true, - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "plot", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", - "valType": "string" - } - }, - "insidetextorientation": { - "description": "Controls the orientation of the text inside chart sectors. When set to *auto*, text may be oriented in any direction in order to be as big as possible in the middle of a sector. The *horizontal* option orients text to be parallel with the bottom of the chart, and may make text smaller in order to achieve that goal. The *radial* option orients text along the radius of the sector. The *tangential* option orients text perpendicular to the radius of the sector.", - "dflt": "auto", - "editType": "plot", - "valType": "enumerated", - "values": [ - "horizontal", - "radial", - "tangential", - "auto" - ] - }, - "label0": { - "description": "Alternate to `labels`. Builds a numeric set of labels. Use with `dlabel` where `label0` is the starting label and `dlabel` the step.", - "dflt": 0, + "isomax": { + "description": "Sets the maximum boundary for iso-surface plot.", "editType": "calc", "valType": "number" }, - "labels": { - "description": "Sets the sector labels. If `labels` entries are duplicated, we sum associated `values` or simply count occurrences if `values` is not provided. For other array attributes (including color) we use the first non-empty entry among all occurrences of the label.", + "isomin": { + "description": "Sets the minimum boundary for iso-surface plot.", "editType": "calc", - "valType": "data_array" - }, - "labelssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `labels`.", - "editType": "none", - "valType": "string" + "valType": "number" }, "legend": { "description": "Sets the reference to a legend to show this trace 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.", @@ -58161,141 +54836,93 @@ "min": 0, "valType": "number" }, - "marker": { - "colors": { - "description": "Sets the color of each sector. If not specified, the default trace color set is used to pick the sector colors.", + "lighting": { + "ambient": { + "description": "Ambient light increases overall color visibility but can wash out the image.", + "dflt": 0.8, "editType": "calc", - "valType": "data_array" + "max": 1, + "min": 0, + "valType": "number" }, - "colorssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `colors`.", - "editType": "none", - "valType": "string" + "diffuse": { + "description": "Represents the extent that incident rays are reflected in a range of angles.", + "dflt": 0.8, + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" }, "editType": "calc", - "line": { - "color": { - "arrayOk": true, - "description": "Sets the color of the line enclosing each sector.", - "dflt": "#444", - "editType": "style", - "valType": "color" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, + "facenormalsepsilon": { + "description": "Epsilon for face normals calculation avoids math issues arising from degenerate geometry.", + "dflt": 0, "editType": "calc", - "role": "object", - "width": { - "arrayOk": true, - "description": "Sets the width (in px) of the line enclosing each sector.", - "dflt": 0, - "editType": "style", - "min": 0, - "valType": "number" - }, - "widthsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `width`.", - "editType": "none", - "valType": "string" - } + "max": 1, + "min": 0, + "valType": "number" }, - "pattern": { - "bgcolor": { - "arrayOk": true, - "description": "When there is no colorscale sets the color of background pattern fill. Defaults to a `marker.color` background when `fillmode` is *overlay*. Otherwise, defaults to a transparent background.", - "editType": "style", - "valType": "color" - }, - "bgcolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", - "editType": "none", - "valType": "string" - }, - "description": "Sets the pattern within the marker.", - "editType": "style", - "fgcolor": { - "arrayOk": true, - "description": "When there is no colorscale sets the color of foreground pattern fill. Defaults to a `marker.color` background when `fillmode` is *replace*. Otherwise, defaults to dark grey or white to increase contrast with the `bgcolor`.", - "editType": "style", - "valType": "color" - }, - "fgcolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `fgcolor`.", - "editType": "none", - "valType": "string" - }, - "fgopacity": { - "description": "Sets the opacity of the foreground pattern fill. Defaults to a 0.5 when `fillmode` is *overlay*. Otherwise, defaults to 1.", - "editType": "style", - "max": 1, - "min": 0, - "valType": "number" - }, - "fillmode": { - "description": "Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`.", - "dflt": "replace", - "editType": "style", - "valType": "enumerated", - "values": [ - "replace", - "overlay" - ] - }, - "role": "object", - "shape": { - "arrayOk": true, - "description": "Sets the shape of the pattern fill. By default, no pattern is used for filling the area.", - "dflt": "", - "editType": "style", - "valType": "enumerated", - "values": [ - "", - "/", - "\\", - "x", - "-", - "|", - "+", - "." - ] - }, - "shapesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shape`.", - "editType": "none", - "valType": "string" - }, - "size": { - "arrayOk": true, - "description": "Sets the size of unit squares of the pattern fill in pixels, which corresponds to the interval of repetition of the pattern.", - "dflt": 8, - "editType": "style", - "min": 0, - "valType": "number" - }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" - }, - "solidity": { - "arrayOk": true, - "description": "Sets the solidity of the pattern fill. Solidity is roughly the fraction of the area filled by the pattern. Solidity of 0 shows only the background color without pattern and solidty of 1 shows only the foreground color without pattern.", - "dflt": 0.3, - "editType": "style", - "max": 1, - "min": 0, - "valType": "number" - }, - "soliditysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `solidity`.", - "editType": "none", - "valType": "string" - } + "fresnel": { + "description": "Represents the reflectance as a dependency of the viewing angle; e.g. paper is reflective when viewing it from the edge of the paper (almost 90 degrees), causing shine.", + "dflt": 0.2, + "editType": "calc", + "max": 5, + "min": 0, + "valType": "number" }, - "role": "object" + "role": "object", + "roughness": { + "description": "Alters specular reflection; the rougher the surface, the wider and less contrasty the shine.", + "dflt": 0.5, + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + }, + "specular": { + "description": "Represents the level that incident rays are reflected in a single direction, causing shine.", + "dflt": 0.05, + "editType": "calc", + "max": 2, + "min": 0, + "valType": "number" + }, + "vertexnormalsepsilon": { + "description": "Epsilon for vertex normals calculation avoids math issues arising from degenerate geometry.", + "dflt": 1e-12, + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + } + }, + "lightposition": { + "editType": "calc", + "role": "object", + "x": { + "description": "Numeric vector, representing the X coordinate for each vertex.", + "dflt": 100000, + "editType": "calc", + "max": 100000, + "min": -100000, + "valType": "number" + }, + "y": { + "description": "Numeric vector, representing the Y coordinate for each vertex.", + "dflt": 100000, + "editType": "calc", + "max": 100000, + "min": -100000, + "valType": "number" + }, + "z": { + "description": "Numeric vector, representing the Z coordinate for each vertex.", + "dflt": 0, + "editType": "calc", + "max": 100000, + "min": -100000, + "valType": "number" + } }, "meta": { "arrayOk": true, @@ -58314,193 +54941,145 @@ "valType": "string" }, "opacity": { - "description": "Sets the opacity of the trace.", + "description": "Sets the opacity of the surface. Please note that in the case of using high `opacity` values for example a value greater than or equal to 0.5 on two surfaces (and 0.25 with four surfaces), an overlay of multiple transparent surfaces may not perfectly be sorted in depth by the webgl API. This behavior may be improved in the near future and is subject to change.", "dflt": 1, - "editType": "style", + "editType": "calc", "max": 1, "min": 0, "valType": "number" }, - "outsidetextfont": { - "color": { - "arrayOk": true, - "editType": "plot", - "valType": "color" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "description": "Sets the font used for `textinfo` lying outside the sector.", - "editType": "plot", - "family": { - "arrayOk": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "plot", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" - }, - "lineposition": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "plot", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", - "valType": "string" - }, + "reversescale": { + "description": "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.", + "dflt": false, + "editType": "calc", + "valType": "boolean" + }, + "scene": { + "description": "Sets a reference between this trace's 3D coordinate system and a 3D scene. If *scene* (the default value), the (x,y,z) coordinates refer to `layout.scene`. If *scene2*, the (x,y,z) coordinates refer to `layout.scene2`, and so on.", + "dflt": "scene", + "editType": "calc+clearAxisTypes", + "valType": "subplotid" + }, + "showlegend": { + "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", + "dflt": false, + "editType": "calc", + "valType": "boolean" + }, + "showscale": { + "description": "Determines whether or not a colorbar is displayed for this trace.", + "dflt": true, + "editType": "calc", + "valType": "boolean" + }, + "slices": { + "editType": "calc", "role": "object", - "shadow": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "plot", - "valType": "string" + "x": { + "editType": "calc", + "fill": { + "description": "Sets the fill ratio of the `slices`. The default fill value of the `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", + "dflt": 1, + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + }, + "locations": { + "description": "Specifies the location(s) of slices on the axis. When not specified slices would be created for all points of the axis x except start and end.", + "dflt": [], + "editType": "calc", + "valType": "data_array" + }, + "locationssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `locations`.", + "editType": "none", + "valType": "string" + }, + "role": "object", + "show": { + "description": "Determines whether or not slice planes about the x dimension are drawn.", + "dflt": false, + "editType": "calc", + "valType": "boolean" + } }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", - "editType": "none", - "valType": "string" + "y": { + "editType": "calc", + "fill": { + "description": "Sets the fill ratio of the `slices`. The default fill value of the `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", + "dflt": 1, + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + }, + "locations": { + "description": "Specifies the location(s) of slices on the axis. When not specified slices would be created for all points of the axis y except start and end.", + "dflt": [], + "editType": "calc", + "valType": "data_array" + }, + "locationssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `locations`.", + "editType": "none", + "valType": "string" + }, + "role": "object", + "show": { + "description": "Determines whether or not slice planes about the y dimension are drawn.", + "dflt": false, + "editType": "calc", + "valType": "boolean" + } }, - "size": { - "arrayOk": true, - "editType": "plot", - "min": 1, - "valType": "number" - }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" - }, - "style": { - "arrayOk": true, - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" - }, - "textcase": { - "arrayOk": true, - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" - }, - "variant": { - "arrayOk": true, - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" - }, - "weight": { - "arrayOk": true, - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "plot", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", - "valType": "string" + "z": { + "editType": "calc", + "fill": { + "description": "Sets the fill ratio of the `slices`. The default fill value of the `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", + "dflt": 1, + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + }, + "locations": { + "description": "Specifies the location(s) of slices on the axis. When not specified slices would be created for all points of the axis z except start and end.", + "dflt": [], + "editType": "calc", + "valType": "data_array" + }, + "locationssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `locations`.", + "editType": "none", + "valType": "string" + }, + "role": "object", + "show": { + "description": "Determines whether or not slice planes about the z dimension are drawn.", + "dflt": false, + "editType": "calc", + "valType": "boolean" + } } }, - "pull": { - "arrayOk": true, - "description": "Sets the fraction of larger radius to pull the sectors out from the center. This can be a constant to pull all slices apart from each other equally or an array to highlight one or more slices.", - "dflt": 0, - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - "pullsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `pull`.", - "editType": "none", - "valType": "string" - }, - "rotation": { - "description": "Instead of the first slice starting at 12 o'clock, rotate to some other angle.", - "dflt": 0, - "editType": "calc", - "valType": "angle" - }, - "scalegroup": { - "description": "If there are multiple pie charts that should be sized according to their totals, link them by providing a non-empty group id here shared by every trace in the same group.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "showlegend": { - "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", - "dflt": true, - "editType": "style", - "valType": "boolean" - }, - "sort": { - "description": "Determines whether or not the sectors are reordered from largest to smallest.", - "dflt": true, + "spaceframe": { "editType": "calc", - "valType": "boolean" + "fill": { + "description": "Sets the fill ratio of the `spaceframe` elements. The default fill value is 0.15 meaning that only 15% of the area of every faces of tetras would be shaded. Applying a greater `fill` ratio would allow the creation of stronger elements or could be sued to have entirely closed areas (in case of using 1).", + "dflt": 0.15, + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + }, + "role": "object", + "show": { + "description": "Displays/hides tetrahedron shapes between minimum and maximum iso-values. Often useful when either caps or surfaces are disabled or filled with values less than 1.", + "dflt": false, + "editType": "calc", + "valType": "boolean" + } }, "stream": { "editType": "calc", @@ -58521,296 +55100,566 @@ "valType": "string" } }, - "text": { - "description": "Sets text elements associated with each sector. If trace `textinfo` contains a *text* flag, these elements will be seen on the chart. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", - "editType": "plot", - "valType": "data_array" - }, - "textfont": { - "color": { - "arrayOk": true, - "editType": "plot", - "valType": "color" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "description": "Sets the font used for `textinfo`.", - "editType": "plot", - "family": { - "arrayOk": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "plot", - "noBlank": true, - "strict": true, - "valType": "string" + "surface": { + "count": { + "description": "Sets the number of iso-surfaces between minimum and maximum iso-values. By default this value is 2 meaning that only minimum and maximum surfaces would be drawn.", + "dflt": 2, + "editType": "calc", + "min": 1, + "valType": "integer" }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" + "editType": "calc", + "fill": { + "description": "Sets the fill ratio of the iso-surface. The default fill value of the surface is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", + "dflt": 1, + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" }, - "lineposition": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "plot", + "pattern": { + "description": "Sets the surface pattern of the iso-surface 3-D sections. The default pattern of the surface is `all` meaning that the rest of surface elements would be shaded. The check options (either 1 or 2) could be used to draw half of the squares on the surface. Using various combinations of capital `A`, `B`, `C`, `D` and `E` may also be used to reduce the number of triangles on the iso-surfaces and creating other patterns of interest.", + "dflt": "all", + "editType": "calc", "extras": [ - "none" + "all", + "odd", + "even" ], "flags": [ - "under", - "over", - "through" + "A", + "B", + "C", + "D", + "E" ], "valType": "flaglist" }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", - "valType": "string" - }, "role": "object", - "shadow": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "plot", - "valType": "string" - }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", - "editType": "none", - "valType": "string" - }, - "size": { - "arrayOk": true, - "editType": "plot", - "min": 1, - "valType": "number" - }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" - }, - "style": { - "arrayOk": true, - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" - }, - "textcase": { - "arrayOk": true, - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" - }, - "variant": { - "arrayOk": true, - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "plot", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" - }, - "weight": { - "arrayOk": true, - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "plot", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", - "valType": "string" + "show": { + "description": "Hides/displays surfaces between minimum and maximum iso-values.", + "dflt": true, + "editType": "calc", + "valType": "boolean" } }, - "textinfo": { - "description": "Determines which trace information appear on the graph.", + "text": { + "arrayOk": true, + "description": "Sets the text elements associated with the vertices. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", + "dflt": "", "editType": "calc", - "extras": [ - "none" - ], - "flags": [ - "label", - "text", - "value", - "percent" - ], - "valType": "flaglist" + "valType": "string" }, - "textposition": { - "arrayOk": true, - "description": "Specifies the location of the `textinfo`.", - "dflt": "auto", + "textsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `text`.", + "editType": "none", + "valType": "string" + }, + "type": "isosurface", + "uid": { + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", "editType": "plot", + "valType": "string" + }, + "uirevision": { + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.", + "editType": "none", + "valType": "any" + }, + "value": { + "description": "Sets the 4th dimension (value) of the vertices.", + "editType": "calc+clearAxisTypes", + "valType": "data_array" + }, + "valuehoverformat": { + "description": "Sets the hover text formatting rulefor `value` 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.By default the values are formatted using generic number format.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "valuesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `value`.", + "editType": "none", + "valType": "string" + }, + "visible": { + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", + "dflt": true, + "editType": "calc", "valType": "enumerated", "values": [ - "inside", - "outside", - "auto", - "none" + true, + false, + "legendonly" ] }, - "textpositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textposition`.", + "x": { + "description": "Sets the X coordinates of the vertices on X axis.", + "editType": "calc+clearAxisTypes", + "valType": "data_array" + }, + "xhoverformat": { + "description": "Sets the hover text formatting rulefor `x` 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*By default the values are formatted using `xaxis.hoverformat`.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "xsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `x`.", "editType": "none", "valType": "string" }, - "textsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `text`.", + "y": { + "description": "Sets the Y coordinates of the vertices on Y axis.", + "editType": "calc+clearAxisTypes", + "valType": "data_array" + }, + "yhoverformat": { + "description": "Sets the hover text formatting rulefor `y` 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*By default the values are formatted using `yaxis.hoverformat`.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "ysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `y`.", "editType": "none", "valType": "string" }, - "texttemplate": { - "arrayOk": true, - "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". 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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `label`, `color`, `value`, `percent` and `text`.", + "z": { + "description": "Sets the Z coordinates of the vertices on Z axis.", + "editType": "calc+clearAxisTypes", + "valType": "data_array" + }, + "zhoverformat": { + "description": "Sets the hover text formatting rulefor `z` 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*By default the values are formatted using `zaxis.hoverformat`.", "dflt": "", - "editType": "plot", + "editType": "calc", "valType": "string" }, - "texttemplatesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `texttemplate`.", + "zsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `z`.", "editType": "none", "valType": "string" + } + }, + "categories": [ + "gl3d", + "showLegend" + ], + "meta": { + "description": "Draws isosurfaces between iso-min and iso-max values with coordinates given by four 1-dimensional arrays containing the `value`, `x`, `y` and `z` of every vertex of a uniform or non-uniform 3-D grid. Horizontal or vertical slices, caps as well as spaceframe between iso-min and iso-max values could also be drawn using this trace." + }, + "type": "isosurface" + }, + "mesh3d": { + "animatable": false, + "attributes": { + "alphahull": { + "description": "Determines how the mesh surface triangles are derived from the set of vertices (points) represented by the `x`, `y` and `z` arrays, if the `i`, `j`, `k` arrays are not supplied. For general use of `mesh3d` it is preferred that `i`, `j`, `k` are supplied. If *-1*, Delaunay triangulation is used, which is mainly suitable if the mesh is a single, more or less layer surface that is perpendicular to `delaunayaxis`. In case the `delaunayaxis` intersects the mesh surface at more than one point it will result triangles that are very long in the dimension of `delaunayaxis`. If *>0*, the alpha-shape algorithm is used. In this case, the positive `alphahull` value signals the use of the alpha-shape algorithm, _and_ its value acts as the parameter for the mesh fitting. If *0*, the convex-hull algorithm is used. It is suitable for convex bodies or if the intention is to enclose the `x`, `y` and `z` point set into a convex hull.", + "dflt": -1, + "editType": "calc", + "valType": "number" }, - "title": { - "editType": "plot", - "font": { - "color": { - "arrayOk": true, - "editType": "plot", - "valType": "color" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "description": "Sets the font used for `title`. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "plot", - "family": { - "arrayOk": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "plot", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" - }, - "lineposition": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "plot", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", - "valType": "string" - }, - "role": "object", - "shadow": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "plot", - "valType": "string" - }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", - "editType": "none", + "autocolorscale": { + "description": "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.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "cauto": { + "description": "Determines whether or not the color domain is computed with respect to the input data (here `intensity`) or the bounds set in `cmin` and `cmax` Defaults to `false` when `cmin` and `cmax` are set by the user.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "cmax": { + "description": "Sets the upper bound of the color domain. Value should have the same units as `intensity` and if set, `cmin` must be set as well.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "valType": "number" + }, + "cmid": { + "description": "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 `intensity`. Has no effect when `cauto` is `false`.", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "valType": "number" + }, + "cmin": { + "description": "Sets the lower bound of the color domain. Value should have the same units as `intensity` and if set, `cmax` must be set as well.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "valType": "number" + }, + "color": { + "description": "Sets the color of the whole mesh", + "editType": "calc", + "valType": "color" + }, + "coloraxis": { + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", + "dflt": null, + "editType": "calc", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "valType": "subplotid" + }, + "colorbar": { + "_deprecated": { + "title": { + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars", + "valType": "string" + }, + "titlefont": { + "color": { + "editType": "colorbars", + "valType": "color" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "valType": "string" + }, + "size": { + "editType": "colorbars", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "colorbars", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "titleside": { + "description": "Deprecated in favor of color bar's `title.side`.", + "dflt": "top", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ] + } + }, + "bgcolor": { + "description": "Sets the color of padded area.", + "dflt": "rgba(0,0,0,0)", + "editType": "colorbars", + "valType": "color" + }, + "bordercolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" + }, + "borderwidth": { + "description": "Sets the width (in px) or the border enclosing this color bar.", + "dflt": 0, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "dtick": { + "description": "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*, 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* 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*", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" + }, + "editType": "colorbars", + "exponentformat": { + "description": "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.", + "dflt": "B", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ] + }, + "labelalias": { + "description": "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.", + "dflt": false, + "editType": "colorbars", + "valType": "any" + }, + "len": { + "description": "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.", + "dflt": 1, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "lenmode": { + "description": "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.", + "dflt": "fraction", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] + }, + "minexponent": { + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", + "dflt": 3, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "nticks": { + "description": "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*.", + "dflt": 0, + "editType": "colorbars", + "min": 0, + "valType": "integer" + }, + "orientation": { + "description": "Sets the orientation of the colorbar.", + "dflt": "v", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "h", + "v" + ] + }, + "outlinecolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" + }, + "outlinewidth": { + "description": "Sets the width (in px) of the axis line.", + "dflt": 1, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "role": "object", + "separatethousands": { + "description": "If \"true\", even 4-digit integers are separated", + "dflt": false, + "editType": "colorbars", + "valType": "boolean" + }, + "showexponent": { + "description": "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.", + "dflt": "all", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] + }, + "showticklabels": { + "description": "Determines whether or not the tick labels are drawn.", + "dflt": true, + "editType": "colorbars", + "valType": "boolean" + }, + "showtickprefix": { + "description": "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.", + "dflt": "all", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] + }, + "showticksuffix": { + "description": "Same as `showtickprefix` but for tick suffixes.", + "dflt": "all", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] + }, + "thickness": { + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "dflt": 30, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "thicknessmode": { + "description": "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.", + "dflt": "pixels", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] + }, + "tick0": { + "description": "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* (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.", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" + }, + "tickangle": { + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", + "dflt": "auto", + "editType": "colorbars", + "valType": "angle" + }, + "tickcolor": { + "description": "Sets the tick color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" + }, + "tickfont": { + "color": { + "editType": "colorbars", + "valType": "color" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", "valType": "string" }, "size": { - "arrayOk": true, - "editType": "plot", + "editType": "colorbars", "min": 1, "valType": "number" }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" - }, "style": { - "arrayOk": true, "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "plot", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", "italic" ] }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" - }, "textcase": { - "arrayOk": true, "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "plot", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -58819,16 +55668,10 @@ "lower" ] }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" - }, "variant": { - "arrayOk": true, "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "plot", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -58839,16 +55682,10 @@ "unicase" ] }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" - }, "weight": { - "arrayOk": true, "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "plot", + "editType": "colorbars", "extras": [ "normal", "bold" @@ -58856,129 +55693,411 @@ "max": 1000, "min": 1, "valType": "integer" - }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", - "valType": "string" } }, - "position": { - "description": "Specifies the location of the `title`. Note that the title's position used to be set by the now deprecated `titleposition` attribute.", - "editType": "plot", + "tickformat": { + "description": "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*", + "dflt": "", + "editType": "colorbars", + "valType": "string" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "dtickrange": { + "description": "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*", + "editType": "colorbars", + "items": [ + { + "editType": "colorbars", + "valType": "any" + }, + { + "editType": "colorbars", + "valType": "any" + } + ], + "valType": "info_array" + }, + "editType": "colorbars", + "enabled": { + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", + "dflt": true, + "editType": "colorbars", + "valType": "boolean" + }, + "name": { + "description": "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.", + "editType": "colorbars", + "valType": "string" + }, + "role": "object", + "templateitemname": { + "description": "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`.", + "editType": "colorbars", + "valType": "string" + }, + "value": { + "description": "string - dtickformat for described zoom level, the same as *tickformat*", + "dflt": "", + "editType": "colorbars", + "valType": "string" + } + } + }, + "role": "object" + }, + "ticklabeloverflow": { + "description": "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*.", + "editType": "colorbars", "valType": "enumerated", "values": [ - "top left", - "top center", - "top right", - "middle center", - "bottom left", - "bottom center", - "bottom right" + "allow", + "hide past div", + "hide past domain" ] }, - "role": "object", - "text": { - "description": "Sets the title of the chart. If it is empty, no title is displayed. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "dflt": "", - "editType": "plot", - "valType": "string" - } - }, - "transforms": { - "items": { - "transform": { - "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "editType": "calc", - "role": "object" - } - }, - "role": "object" - }, - "type": "pie", - "uid": { - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", - "editType": "plot", - "valType": "string" + "ticklabelposition": { + "description": "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*.", + "dflt": "outside", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside left", + "inside left", + "outside right", + "inside right", + "outside bottom", + "inside bottom" + ] + }, + "ticklabelstep": { + "description": "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*.", + "dflt": 1, + "editType": "colorbars", + "min": 1, + "valType": "integer" + }, + "ticklen": { + "description": "Sets the tick length (in px).", + "dflt": 5, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "tickmode": { + "description": "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).", + "editType": "colorbars", + "impliedEdits": {}, + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ] + }, + "tickprefix": { + "description": "Sets a tick label prefix.", + "dflt": "", + "editType": "colorbars", + "valType": "string" + }, + "ticks": { + "description": "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.", + "dflt": "", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ] + }, + "ticksuffix": { + "description": "Sets a tick label suffix.", + "dflt": "", + "editType": "colorbars", + "valType": "string" + }, + "ticktext": { + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", + "editType": "colorbars", + "valType": "data_array" + }, + "ticktextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", + "editType": "none", + "valType": "string" + }, + "tickvals": { + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", + "editType": "colorbars", + "valType": "data_array" + }, + "tickvalssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", + "editType": "none", + "valType": "string" + }, + "tickwidth": { + "description": "Sets the tick width (in px).", + "dflt": 1, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "title": { + "editType": "colorbars", + "font": { + "color": { + "editType": "colorbars", + "valType": "color" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "valType": "string" + }, + "size": { + "editType": "colorbars", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "colorbars", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "role": "object", + "side": { + "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ] + }, + "text": { + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars", + "valType": "string" + } + }, + "x": { + "description": "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*.", + "editType": "colorbars", + "valType": "number" + }, + "xanchor": { + "description": "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*.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ] + }, + "xpad": { + "description": "Sets the amount of padding (in px) along the x direction.", + "dflt": 10, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, + "y": { + "description": "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*.", + "editType": "colorbars", + "valType": "number" + }, + "yanchor": { + "description": "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*.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ] + }, + "ypad": { + "description": "Sets the amount of padding (in px) along the y direction.", + "dflt": 10, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + } }, - "uirevision": { - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.", - "editType": "none", - "valType": "any" + "colorscale": { + "description": "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.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "autocolorscale": false + }, + "valType": "colorscale" }, - "values": { - "description": "Sets the values of the sectors. If omitted, we count occurrences of each label.", + "contour": { + "color": { + "description": "Sets the color of the contour lines.", + "dflt": "#444", + "editType": "calc", + "valType": "color" + }, + "editType": "calc", + "role": "object", + "show": { + "description": "Sets whether or not dynamic contours are shown on hover", + "dflt": false, + "editType": "calc", + "valType": "boolean" + }, + "width": { + "description": "Sets the width of the contour lines.", + "dflt": 2, + "editType": "calc", + "max": 16, + "min": 1, + "valType": "number" + } + }, + "customdata": { + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", "editType": "calc", "valType": "data_array" }, - "valuessrc": { - "description": "Sets the source reference on Chart Studio Cloud for `values`.", + "customdatasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", "editType": "none", "valType": "string" }, - "visible": { - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", - "dflt": true, + "delaunayaxis": { + "description": "Sets the Delaunay axis, which is the axis that is perpendicular to the surface of the Delaunay triangulation. It has an effect if `i`, `j`, `k` are not provided and `alphahull` is set to indicate Delaunay triangulation.", + "dflt": "z", "editType": "calc", "valType": "enumerated", "values": [ - true, - false, - "legendonly" + "x", + "y", + "z" ] - } - }, - "categories": [ - "pie-like", - "pie", - "showLegend" - ], - "layoutAttributes": { - "extendpiecolors": { - "description": "If `true`, the pie slice colors (whether given by `piecolorway` or inherited from `colorway`) will be extended to three times its original length by first repeating every color 20% lighter then each color 20% darker. This is intended to reduce the likelihood of reusing the same color when you have many slices, but you can set `false` to disable. Colors provided in the trace, using `marker.colors`, are never extended.", - "dflt": true, - "editType": "calc", - "valType": "boolean" }, - "hiddenlabels": { - "description": "hiddenlabels is the funnelarea & pie chart analog of visible:'legendonly' but it can contain many labels, and can simultaneously hide slices from several pies/funnelarea charts", + "facecolor": { + "description": "Sets the color of each face Overrides *color* and *vertexcolor*.", "editType": "calc", "valType": "data_array" }, - "hiddenlabelssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hiddenlabels`.", + "facecolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `facecolor`.", "editType": "none", "valType": "string" }, - "piecolorway": { - "description": "Sets the default pie slice colors. Defaults to the main `colorway` used for trace colors. If you specify a new list here it can still be extended with lighter and darker colors, see `extendpiecolors`.", - "editType": "calc", - "valType": "colorlist" - } - }, - "meta": { - "description": "A data visualized by the sectors of the pie is set in `values`. The sector labels are set in `labels`. The sector colors are set in `marker.colors`" - }, - "type": "pie" - }, - "pointcloud": { - "animatable": false, - "attributes": { - "customdata": { - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", + "flatshading": { + "description": "Determines whether or not normal smoothing is applied to the meshes, creating meshes with an angular, low-poly look via flat reflections.", + "dflt": false, "editType": "calc", - "valType": "data_array" - }, - "customdatasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", - "editType": "none", - "valType": "string" + "valType": "boolean" }, "hoverinfo": { "arrayOk": true, "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", "dflt": "all", - "editType": "none", + "editType": "calc", "extras": [ "all", "none", @@ -59197,6 +56316,35 @@ }, "role": "object" }, + "hovertemplate": { + "arrayOk": true, + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "hovertemplatesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", + "editType": "none", + "valType": "string" + }, + "hovertext": { + "arrayOk": true, + "description": "Same as `text`.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "hovertextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertext`.", + "editType": "none", + "valType": "string" + }, + "i": { + "description": "A vector of vertex indices, i.e. integer values between 0 and the length of the vertex vectors, representing the *first* vertex of a triangle. For example, `{i[m], j[m], k[m]}` together represent face m (triangle m) in the mesh, where `i[m] = n` points to the triplet `{x[n], y[n], z[n]}` in the vertex arrays. Therefore, each element in `i` represents a point in space, which is the first vertex of a triangle.", + "editType": "calc", + "valType": "data_array" + }, "ids": { "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", "editType": "calc", @@ -59207,13 +56355,48 @@ "editType": "none", "valType": "string" }, - "indices": { - "description": "A sequential value, 0..n, supply it to avoid creating this array inside plotting. If specified, it must be a typed `Int32Array` array. Its length must be equal to or greater than the number of points. For the best performance and memory use, create one large `indices` typed array that is guaranteed to be at least as long as the largest number of points during use, and reuse it on each `Plotly.restyle()` call.", + "intensity": { + "description": "Sets the intensity values for vertices or cells as defined by `intensitymode`. It can be used for plotting fields on meshes.", "editType": "calc", "valType": "data_array" }, - "indicessrc": { - "description": "Sets the source reference on Chart Studio Cloud for `indices`.", + "intensitymode": { + "description": "Determines the source of `intensity` values.", + "dflt": "vertex", + "editType": "calc", + "valType": "enumerated", + "values": [ + "vertex", + "cell" + ] + }, + "intensitysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `intensity`.", + "editType": "none", + "valType": "string" + }, + "isrc": { + "description": "Sets the source reference on Chart Studio Cloud for `i`.", + "editType": "none", + "valType": "string" + }, + "j": { + "description": "A vector of vertex indices, i.e. integer values between 0 and the length of the vertex vectors, representing the *second* vertex of a triangle. For example, `{i[m], j[m], k[m]}` together represent face m (triangle m) in the mesh, where `j[m] = n` points to the triplet `{x[n], y[n], z[n]}` in the vertex arrays. Therefore, each element in `j` represents a point in space, which is the second vertex of a triangle.", + "editType": "calc", + "valType": "data_array" + }, + "jsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `j`.", + "editType": "none", + "valType": "string" + }, + "k": { + "description": "A vector of vertex indices, i.e. integer values between 0 and the length of the vertex vectors, representing the *third* vertex of a triangle. For example, `{i[m], j[m], k[m]}` together represent face m (triangle m) in the mesh, where `k[m] = n` points to the triplet `{x[n], y[n], z[n]}` in the vertex arrays. Therefore, each element in `k` represents a point in space, which is the third vertex of a triangle.", + "editType": "calc", + "valType": "data_array" + }, + "ksrc": { + "description": "Sets the source reference on Chart Studio Cloud for `k`.", "editType": "none", "valType": "string" }, @@ -59340,65 +56523,95 @@ "min": 0, "valType": "number" }, - "marker": { - "blend": { - "description": "Determines if colors are blended together for a translucency effect in case `opacity` is specified as a value less then `1`. Setting `blend` to `true` reduces zoom/pan speed if used with large numbers of points.", - "dflt": null, - "editType": "calc", - "valType": "boolean" - }, - "border": { - "arearatio": { - "description": "Specifies what fraction of the marker area is covered with the border.", - "dflt": 0, - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - "color": { - "arrayOk": false, - "description": "Sets the stroke color. It accepts a specific color. If the color is not fully opaque and there are hundreds of thousands of points, it may cause slower zooming and panning.", - "editType": "calc", - "valType": "color" - }, + "lighting": { + "ambient": { + "description": "Ambient light increases overall color visibility but can wash out the image.", + "dflt": 0.8, "editType": "calc", - "role": "object" + "max": 1, + "min": 0, + "valType": "number" }, - "color": { - "arrayOk": false, - "description": "Sets the marker fill color. It accepts a specific color. If the color is not fully opaque and there are hundreds of thousands of points, it may cause slower zooming and panning.", + "diffuse": { + "description": "Represents the extent that incident rays are reflected in a range of angles.", + "dflt": 0.8, "editType": "calc", - "valType": "color" + "max": 1, + "min": 0, + "valType": "number" }, "editType": "calc", - "opacity": { - "arrayOk": false, - "description": "Sets the marker opacity. The default value is `1` (fully opaque). If the markers are not fully opaque and there are hundreds of thousands of points, it may cause slower zooming and panning. Opacity fades the color even if `blend` is left on `false` even if there is no translucency effect in that case.", - "dflt": 1, + "facenormalsepsilon": { + "description": "Epsilon for face normals calculation avoids math issues arising from degenerate geometry.", + "dflt": 0.000001, "editType": "calc", "max": 1, "min": 0, "valType": "number" }, - "role": "object", - "sizemax": { - "description": "Sets the maximum size (in px) of the rendered marker points. Effective when the `pointcloud` shows only few points.", - "dflt": 20, + "fresnel": { + "description": "Represents the reflectance as a dependency of the viewing angle; e.g. paper is reflective when viewing it from the edge of the paper (almost 90 degrees), causing shine.", + "dflt": 0.2, "editType": "calc", - "min": 0.1, + "max": 5, + "min": 0, "valType": "number" }, - "sizemin": { - "description": "Sets the minimum size (in px) of the rendered marker points, effective when the `pointcloud` shows a million or more points.", + "role": "object", + "roughness": { + "description": "Alters specular reflection; the rougher the surface, the wider and less contrasty the shine.", "dflt": 0.5, "editType": "calc", - "max": 2, - "min": 0.1, + "max": 1, + "min": 0, "valType": "number" - } - }, - "meta": { + }, + "specular": { + "description": "Represents the level that incident rays are reflected in a single direction, causing shine.", + "dflt": 0.05, + "editType": "calc", + "max": 2, + "min": 0, + "valType": "number" + }, + "vertexnormalsepsilon": { + "description": "Epsilon for vertex normals calculation avoids math issues arising from degenerate geometry.", + "dflt": 1e-12, + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + } + }, + "lightposition": { + "editType": "calc", + "role": "object", + "x": { + "description": "Numeric vector, representing the X coordinate for each vertex.", + "dflt": 100000, + "editType": "calc", + "max": 100000, + "min": -100000, + "valType": "number" + }, + "y": { + "description": "Numeric vector, representing the Y coordinate for each vertex.", + "dflt": 100000, + "editType": "calc", + "max": 100000, + "min": -100000, + "valType": "number" + }, + "z": { + "description": "Numeric vector, representing the Z coordinate for each vertex.", + "dflt": 0, + "editType": "calc", + "max": 100000, + "min": -100000, + "valType": "number" + } + }, + "meta": { "arrayOk": true, "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", "editType": "plot", @@ -59415,19 +56628,37 @@ "valType": "string" }, "opacity": { - "description": "Sets the opacity of the trace.", + "description": "Sets the opacity of the surface. Please note that in the case of using high `opacity` values for example a value greater than or equal to 0.5 on two surfaces (and 0.25 with four surfaces), an overlay of multiple transparent surfaces may not perfectly be sorted in depth by the webgl API. This behavior may be improved in the near future and is subject to change.", "dflt": 1, - "editType": "style", + "editType": "calc", "max": 1, "min": 0, "valType": "number" }, + "reversescale": { + "description": "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.", + "dflt": false, + "editType": "plot", + "valType": "boolean" + }, + "scene": { + "description": "Sets a reference between this trace's 3D coordinate system and a 3D scene. If *scene* (the default value), the (x,y,z) coordinates refer to `layout.scene`. If *scene2*, the (x,y,z) coordinates refer to `layout.scene2`, and so on.", + "dflt": "scene", + "editType": "calc+clearAxisTypes", + "valType": "subplotid" + }, "showlegend": { "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", - "dflt": true, + "dflt": false, "editType": "style", "valType": "boolean" }, + "showscale": { + "description": "Determines whether or not a colorbar is displayed for this trace.", + "dflt": true, + "editType": "calc", + "valType": "boolean" + }, "stream": { "editType": "calc", "maxpoints": { @@ -59449,7 +56680,7 @@ }, "text": { "arrayOk": true, - "description": "Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", + "description": "Sets the text elements associated with the vertices. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", "dflt": "", "editType": "calc", "valType": "string" @@ -59459,7 +56690,7 @@ "editType": "none", "valType": "string" }, - "type": "pointcloud", + "type": "mesh3d", "uid": { "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", "editType": "plot", @@ -59470,6 +56701,16 @@ "editType": "none", "valType": "any" }, + "vertexcolor": { + "description": "Sets the color of each vertex Overrides *color*. While Red, green and blue colors are in the range of 0 and 255; in the case of having vertex color data in RGBA format, the alpha color should be normalized to be between 0 and 1.", + "editType": "calc", + "valType": "data_array" + }, + "vertexcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `vertexcolor`.", + "editType": "none", + "valType": "string" + }, "visible": { "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", "dflt": true, @@ -59482,23 +56723,37 @@ ] }, "x": { - "description": "Sets the x coordinates.", + "description": "Sets the X coordinates of the vertices. The nth element of vectors `x`, `y` and `z` jointly represent the X, Y and Z coordinates of the nth vertex.", "editType": "calc+clearAxisTypes", "valType": "data_array" }, - "xaxis": { - "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on.", - "dflt": "x", - "editType": "calc+clearAxisTypes", - "valType": "subplotid" - }, - "xbounds": { - "description": "Specify `xbounds` in the shape of `[xMin, xMax] to avoid looping through the `xy` typed array. Use it in conjunction with `xy` and `ybounds` for the performance benefits.", + "xcalendar": { + "description": "Sets the calendar system to use with `x` date data.", + "dflt": "gregorian", "editType": "calc", - "valType": "data_array" + "valType": "enumerated", + "values": [ + "chinese", + "coptic", + "discworld", + "ethiopian", + "gregorian", + "hebrew", + "islamic", + "jalali", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "taiwan", + "thai", + "ummalqura" + ] }, - "xboundssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `xbounds`.", + "xhoverformat": { + "description": "Sets the hover text formatting rulefor `x` 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*By default the values are formatted using `xaxis.hoverformat`.", + "dflt": "", "editType": "none", "valType": "string" }, @@ -59507,67 +56762,108 @@ "editType": "none", "valType": "string" }, - "xy": { - "description": "Faster alternative to specifying `x` and `y` separately. If supplied, it must be a typed `Float32Array` array that represents points such that `xy[i * 2] = x[i]` and `xy[i * 2 + 1] = y[i]`", - "editType": "calc", + "y": { + "description": "Sets the Y coordinates of the vertices. The nth element of vectors `x`, `y` and `z` jointly represent the X, Y and Z coordinates of the nth vertex.", + "editType": "calc+clearAxisTypes", "valType": "data_array" }, - "xysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `xy`.", + "ycalendar": { + "description": "Sets the calendar system to use with `y` date data.", + "dflt": "gregorian", + "editType": "calc", + "valType": "enumerated", + "values": [ + "chinese", + "coptic", + "discworld", + "ethiopian", + "gregorian", + "hebrew", + "islamic", + "jalali", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "taiwan", + "thai", + "ummalqura" + ] + }, + "yhoverformat": { + "description": "Sets the hover text formatting rulefor `y` 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*By default the values are formatted using `yaxis.hoverformat`.", + "dflt": "", "editType": "none", "valType": "string" }, - "y": { - "description": "Sets the y coordinates.", - "editType": "calc+clearAxisTypes", - "valType": "data_array" + "ysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `y`.", + "editType": "none", + "valType": "string" }, - "yaxis": { - "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on.", - "dflt": "y", + "z": { + "description": "Sets the Z coordinates of the vertices. The nth element of vectors `x`, `y` and `z` jointly represent the X, Y and Z coordinates of the nth vertex.", "editType": "calc+clearAxisTypes", - "valType": "subplotid" + "valType": "data_array" }, - "ybounds": { - "description": "Specify `ybounds` in the shape of `[yMin, yMax] to avoid looping through the `xy` typed array. Use it in conjunction with `xy` and `xbounds` for the performance benefits.", + "zcalendar": { + "description": "Sets the calendar system to use with `z` date data.", + "dflt": "gregorian", "editType": "calc", - "valType": "data_array" + "valType": "enumerated", + "values": [ + "chinese", + "coptic", + "discworld", + "ethiopian", + "gregorian", + "hebrew", + "islamic", + "jalali", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "taiwan", + "thai", + "ummalqura" + ] }, - "yboundssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ybounds`.", + "zhoverformat": { + "description": "Sets the hover text formatting rulefor `z` 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*By default the values are formatted using `zaxis.hoverformat`.", + "dflt": "", "editType": "none", "valType": "string" }, - "ysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `y`.", + "zsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `z`.", "editType": "none", "valType": "string" } }, "categories": [ - "gl", - "gl2d", + "gl3d", "showLegend" ], "meta": { - "description": "*pointcloud* trace is deprecated! Please consider switching to the *scattergl* trace type. The data visualized as a point cloud set in `x` and `y` using the WebGl plotting engine." + "description": "Draws sets of triangles with coordinates given by three 1-dimensional arrays in `x`, `y`, `z` and (1) a sets of `i`, `j`, `k` indices (2) Delaunay triangulation or (3) the Alpha-shape algorithm or (4) the Convex-hull algorithm" }, - "type": "pointcloud" + "type": "mesh3d" }, - "sankey": { + "ohlc": { "animatable": false, "attributes": { - "arrangement": { - "description": "If value is `snap` (the default), the node arrangement is assisted by automatic snapping of elements to preserve space between nodes specified via `nodepad`. If value is `perpendicular`, the nodes can only move along a line perpendicular to the flow. If value is `freeform`, the nodes can freely move on the plane. If value is `fixed`, the nodes are stationary.", - "dflt": "snap", + "close": { + "description": "Sets the close values.", "editType": "calc", - "valType": "enumerated", - "values": [ - "snap", - "perpendicular", - "freeform", - "fixed" - ] + "valType": "data_array" + }, + "closesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `close`.", + "editType": "none", + "valType": "string" }, "customdata": { "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", @@ -59579,89 +56875,81 @@ "editType": "none", "valType": "string" }, - "domain": { - "column": { - "description": "If there is a layout grid, use the domain for this column in the grid for this sankey trace .", - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "integer" + "decreasing": { + "editType": "style", + "line": { + "color": { + "description": "Sets the line color.", + "dflt": "#FF4136", + "editType": "style", + "valType": "color" + }, + "dash": { + "description": "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*).", + "dflt": "solid", + "editType": "style", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] + }, + "editType": "style", + "role": "object", + "width": { + "description": "Sets the line width (in px).", + "dflt": 2, + "editType": "style", + "min": 0, + "valType": "number" + } }, + "role": "object" + }, + "high": { + "description": "Sets the high values.", "editType": "calc", - "role": "object", - "row": { - "description": "If there is a layout grid, use the domain for this row in the grid for this sankey trace .", - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "integer" - }, - "x": { - "description": "Sets the horizontal domain of this sankey trace (in plot fraction).", - "dflt": [ - 0, - 1 - ], - "editType": "calc", - "items": [ - { - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - { - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - } - ], - "valType": "info_array" - }, - "y": { - "description": "Sets the vertical domain of this sankey trace (in plot fraction).", - "dflt": [ - 0, - 1 - ], - "editType": "calc", - "items": [ - { - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - { - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - } - ], - "valType": "info_array" - } + "valType": "data_array" + }, + "highsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `high`.", + "editType": "none", + "valType": "string" }, "hoverinfo": { - "arrayOk": false, - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired. Note that this attribute is superseded by `node.hoverinfo` and `node.hoverinfo` for nodes and links respectively.", + "arrayOk": true, + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", "dflt": "all", - "editType": "calc", + "editType": "none", "extras": [ "all", "none", "skip" ], - "flags": [], + "flags": [ + "x", + "y", + "z", + "text", + "name" + ], "valType": "flaglist" }, + "hoverinfosrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", + "editType": "none", + "valType": "string" + }, "hoverlabel": { "align": { "arrayOk": true, "description": "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", "dflt": "auto", - "editType": "calc", + "editType": "none", "valType": "enumerated", "values": [ "left", @@ -59677,7 +56965,7 @@ "bgcolor": { "arrayOk": true, "description": "Sets the background color of the hover labels for this trace", - "editType": "calc", + "editType": "none", "valType": "color" }, "bgcolorsrc": { @@ -59688,7 +56976,7 @@ "bordercolor": { "arrayOk": true, "description": "Sets the border color of the hover labels for this trace.", - "editType": "calc", + "editType": "none", "valType": "color" }, "bordercolorsrc": { @@ -59696,11 +56984,11 @@ "editType": "none", "valType": "string" }, - "editType": "calc", + "editType": "none", "font": { "color": { "arrayOk": true, - "editType": "calc", + "editType": "none", "valType": "color" }, "colorsrc": { @@ -59709,11 +56997,11 @@ "valType": "string" }, "description": "Sets the font used in hover labels.", - "editType": "calc", + "editType": "none", "family": { "arrayOk": true, "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc", + "editType": "none", "noBlank": true, "strict": true, "valType": "string" @@ -59727,7 +57015,7 @@ "arrayOk": true, "description": "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.", "dflt": "none", - "editType": "calc", + "editType": "none", "extras": [ "none" ], @@ -59748,7 +57036,7 @@ "arrayOk": true, "description": "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.", "dflt": "none", - "editType": "calc", + "editType": "none", "valType": "string" }, "shadowsrc": { @@ -59758,7 +57046,7 @@ }, "size": { "arrayOk": true, - "editType": "calc", + "editType": "none", "min": 1, "valType": "number" }, @@ -59771,7 +57059,7 @@ "arrayOk": true, "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "calc", + "editType": "none", "valType": "enumerated", "values": [ "normal", @@ -59787,7 +57075,7 @@ "arrayOk": true, "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "calc", + "editType": "none", "valType": "enumerated", "values": [ "normal", @@ -59805,7 +57093,7 @@ "arrayOk": true, "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "calc", + "editType": "none", "valType": "enumerated", "values": [ "normal", @@ -59825,7 +57113,7 @@ "arrayOk": true, "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "calc", + "editType": "none", "extras": [ "normal", "bold" @@ -59844,7 +57132,7 @@ "arrayOk": true, "description": "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.", "dflt": 15, - "editType": "calc", + "editType": "none", "min": -1, "valType": "integer" }, @@ -59853,7 +57141,25 @@ "editType": "none", "valType": "string" }, - "role": "object" + "role": "object", + "split": { + "description": "Show hover information (open, close, high, low) in separate labels.", + "dflt": false, + "editType": "style", + "valType": "boolean" + } + }, + "hovertext": { + "arrayOk": true, + "description": "Same as `text`.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "hovertextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertext`.", + "editType": "none", + "valType": "string" }, "ids": { "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", @@ -59865,12 +57171,53 @@ "editType": "none", "valType": "string" }, + "increasing": { + "editType": "style", + "line": { + "color": { + "description": "Sets the line color.", + "dflt": "#3D9970", + "editType": "style", + "valType": "color" + }, + "dash": { + "description": "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*).", + "dflt": "solid", + "editType": "style", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] + }, + "editType": "style", + "role": "object", + "width": { + "description": "Sets the line width (in px).", + "dflt": 2, + "editType": "style", + "min": 0, + "valType": "number" + } + }, + "role": "object" + }, "legend": { "description": "Sets the reference to a legend to show this trace 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.", "dflt": "legend", "editType": "style", "valType": "subplotid" }, + "legendgroup": { + "description": "Sets the legend group for this trace. Traces and shapes part of the same legend group hide/show at the same time when toggling legend items.", + "dflt": "", + "editType": "style", + "valType": "string" + }, "legendgrouptitle": { "editType": "style", "font": { @@ -59982,551 +57329,1013 @@ "min": 0, "valType": "number" }, - "link": { - "arrowlen": { - "description": "Sets the length (in px) of the links arrow, if 0 no arrow will be drawn.", - "dflt": 0, - "editType": "calc", + "line": { + "dash": { + "description": "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*). Note that this style setting can also be set per direction via `increasing.line.dash` and `decreasing.line.dash`.", + "dflt": "solid", + "editType": "style", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] + }, + "editType": "style", + "role": "object", + "width": { + "description": "[object Object] Note that this style setting can also be set per direction via `increasing.line.width` and `decreasing.line.width`.", + "dflt": 2, + "editType": "style", "min": 0, "valType": "number" - }, - "color": { - "arrayOk": true, - "description": "Sets the `link` color. It can be a single value, or an array for specifying color for each `link`. If `link.color` is omitted, then by default, a translucent grey link will be used.", - "editType": "calc", - "valType": "color" - }, - "colorscales": { - "items": { - "concentrationscales": { - "cmax": { - "description": "Sets the upper bound of the color domain.", - "dflt": 1, - "editType": "calc", - "valType": "number" - }, - "cmin": { - "description": "Sets the lower bound of the color domain.", - "dflt": 0, - "editType": "calc", - "valType": "number" - }, - "colorscale": { - "description": "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.", - "dflt": [ - [ - 0, - "white" - ], - [ - 1, - "black" - ] - ], - "editType": "calc", - "impliedEdits": { - "autocolorscale": false - }, - "valType": "colorscale" - }, - "editType": "calc", - "label": { - "description": "The label of the links to color based on their concentration within a flow.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "name": { - "description": "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.", - "editType": "calc", - "valType": "string" - }, - "role": "object", - "templateitemname": { - "description": "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`.", - "editType": "calc", - "valType": "string" - } - } - }, - "role": "object" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "customdata": { - "description": "Assigns extra data to each link.", - "editType": "calc", - "valType": "data_array" - }, - "customdatasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", - "editType": "none", - "valType": "string" - }, - "description": "The links of the Sankey plot.", + } + }, + "low": { + "description": "Sets the low values.", "editType": "calc", - "hovercolor": { - "arrayOk": true, - "description": "Sets the `link` hover color. It can be a single value, or an array for specifying hover colors for each `link`. If `link.hovercolor` is omitted, then by default, links will become slightly more opaque when hovered over.", + "valType": "data_array" + }, + "lowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `low`.", + "editType": "none", + "valType": "string" + }, + "meta": { + "arrayOk": true, + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", + "editType": "plot", + "valType": "any" + }, + "metasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `meta`.", + "editType": "none", + "valType": "string" + }, + "name": { + "description": "Sets the trace name. The trace name appears as the legend item and on hover.", + "editType": "style", + "valType": "string" + }, + "opacity": { + "description": "Sets the opacity of the trace.", + "dflt": 1, + "editType": "style", + "max": 1, + "min": 0, + "valType": "number" + }, + "open": { + "description": "Sets the open values.", + "editType": "calc", + "valType": "data_array" + }, + "opensrc": { + "description": "Sets the source reference on Chart Studio Cloud for `open`.", + "editType": "none", + "valType": "string" + }, + "selectedpoints": { + "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect.", + "editType": "calc", + "valType": "any" + }, + "showlegend": { + "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", + "dflt": true, + "editType": "style", + "valType": "boolean" + }, + "stream": { + "editType": "calc", + "maxpoints": { + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot.", + "dflt": 500, "editType": "calc", - "valType": "color" - }, - "hovercolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hovercolor`.", - "editType": "none", - "valType": "string" + "max": 10000, + "min": 0, + "valType": "number" }, - "hoverinfo": { - "description": "Determines which trace information appear when hovering links. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", - "dflt": "all", + "role": "object", + "token": { + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details.", "editType": "calc", - "valType": "enumerated", - "values": [ - "all", - "none", - "skip" - ] - }, - "hoverlabel": { - "align": { - "arrayOk": true, - "description": "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", - "dflt": "auto", - "editType": "calc", - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ] - }, - "alignsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `align`.", - "editType": "none", - "valType": "string" - }, - "bgcolor": { - "arrayOk": true, - "description": "Sets the background color of the hover labels for this trace", - "editType": "calc", - "valType": "color" - }, - "bgcolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", - "editType": "none", - "valType": "string" - }, - "bordercolor": { - "arrayOk": true, - "description": "Sets the border color of the hover labels for this trace.", + "noBlank": true, + "strict": true, + "valType": "string" + } + }, + "text": { + "arrayOk": true, + "description": "Sets hover text elements associated with each sample point. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to this trace's sample points.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "textsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `text`.", + "editType": "none", + "valType": "string" + }, + "tickwidth": { + "description": "Sets the width of the open/close tick marks relative to the *x* minimal interval.", + "dflt": 0.3, + "editType": "calc", + "max": 0.5, + "min": 0, + "valType": "number" + }, + "transforms": { + "items": { + "transform": { + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", "editType": "calc", - "valType": "color" - }, - "bordercolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", - "editType": "none", - "valType": "string" - }, - "editType": "calc", - "font": { - "color": { - "arrayOk": true, + "role": "object" + } + }, + "role": "object" + }, + "type": "ohlc", + "uid": { + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", + "editType": "plot", + "valType": "string" + }, + "uirevision": { + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.", + "editType": "none", + "valType": "any" + }, + "visible": { + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", + "dflt": true, + "editType": "calc", + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ] + }, + "x": { + "description": "Sets the x coordinates. If absent, linear coordinate will be generated.", + "editType": "calc+clearAxisTypes", + "valType": "data_array" + }, + "xaxis": { + "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on.", + "dflt": "x", + "editType": "calc+clearAxisTypes", + "valType": "subplotid" + }, + "xcalendar": { + "description": "Sets the calendar system to use with `x` date data.", + "dflt": "gregorian", + "editType": "calc", + "valType": "enumerated", + "values": [ + "chinese", + "coptic", + "discworld", + "ethiopian", + "gregorian", + "hebrew", + "islamic", + "jalali", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "taiwan", + "thai", + "ummalqura" + ] + }, + "xhoverformat": { + "description": "Sets the hover text formatting rulefor `x` 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*By default the values are formatted using `xaxis.hoverformat`.", + "dflt": "", + "editType": "none", + "valType": "string" + }, + "xperiod": { + "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer.", + "dflt": 0, + "editType": "calc", + "valType": "any" + }, + "xperiod0": { + "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01.", + "editType": "calc", + "valType": "any" + }, + "xperiodalignment": { + "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis.", + "dflt": "middle", + "editType": "calc", + "valType": "enumerated", + "values": [ + "start", + "middle", + "end" + ] + }, + "xsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `x`.", + "editType": "none", + "valType": "string" + }, + "yaxis": { + "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on.", + "dflt": "y", + "editType": "calc+clearAxisTypes", + "valType": "subplotid" + }, + "yhoverformat": { + "description": "Sets the hover text formatting rulefor `y` 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*By default the values are formatted using `yaxis.hoverformat`.", + "dflt": "", + "editType": "none", + "valType": "string" + }, + "zorder": { + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", + "dflt": 0, + "editType": "plot", + "valType": "integer" + } + }, + "categories": [ + "cartesian", + "svg", + "showLegend" + ], + "meta": { + "description": "The ohlc (short for Open-High-Low-Close) is a style of financial chart describing open, high, low and close for a given `x` coordinate (most likely time). The tip of the lines represent the `low` and `high` values and the horizontal segments represent the `open` and `close` values. Sample points where the close value is higher (lower) then the open value are called increasing (decreasing). By default, increasing items are drawn in green whereas decreasing are drawn in red." + }, + "type": "ohlc" + }, + "parcats": { + "animatable": false, + "attributes": { + "arrangement": { + "description": "Sets the drag interaction mode for categories and dimensions. If `perpendicular`, the categories can only move along a line perpendicular to the paths. If `freeform`, the categories can freely move on the plane. If `fixed`, the categories and dimensions are stationary.", + "dflt": "perpendicular", + "editType": "plot", + "valType": "enumerated", + "values": [ + "perpendicular", + "freeform", + "fixed" + ] + }, + "bundlecolors": { + "description": "Sort paths so that like colors are bundled together within each category.", + "dflt": true, + "editType": "plot", + "valType": "boolean" + }, + "counts": { + "arrayOk": true, + "description": "The number of observations represented by each state. Defaults to 1 so that each state represents one observation", + "dflt": 1, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "countssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `counts`.", + "editType": "none", + "valType": "string" + }, + "dimensions": { + "items": { + "dimension": { + "categoryarray": { + "description": "Sets the order in which categories in this dimension appear. Only has an effect if `categoryorder` is set to *array*. Used with `categoryorder`.", "editType": "calc", - "valType": "color" + "valType": "data_array" }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "categoryarraysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `categoryarray`.", "editType": "none", "valType": "string" }, - "description": "Sets the font used in hover labels.", - "editType": "calc", - "family": { - "arrayOk": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "categoryorder": { + "description": "Specifies the ordering logic for the categories in the dimension. 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`.", + "dflt": "trace", "editType": "calc", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" + "valType": "enumerated", + "values": [ + "trace", + "category ascending", + "category descending", + "array" + ] }, - "lineposition": { - "arrayOk": true, - "description": "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.", - "dflt": "none", + "description": "The dimensions (variables) of the parallel categories diagram.", + "displayindex": { + "description": "The display index of dimension, from left to right, zero indexed, defaults to dimension index.", "editType": "calc", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" + "valType": "integer" }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", + "editType": "calc", + "label": { + "description": "The shown name of the dimension.", + "editType": "calc", "valType": "string" }, "role": "object", - "shadow": { - "arrayOk": true, - "description": "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.", - "dflt": "none", + "ticktext": { + "description": "Sets alternative tick labels for the categories in this dimension. Only has an effect if `categoryorder` is set to *array*. Should be an array the same length as `categoryarray` Used with `categoryorder`.", "editType": "calc", - "valType": "string" + "valType": "data_array" }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "ticktextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", "editType": "none", "valType": "string" }, - "size": { - "arrayOk": true, + "values": { + "description": "Dimension values. `values[n]` represents the category value of the `n`th point in the dataset, therefore the `values` vector for all dimensions must be the same (longer vectors will be truncated).", + "dflt": [], "editType": "calc", - "min": 1, - "valType": "number" + "valType": "data_array" }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "valuessrc": { + "description": "Sets the source reference on Chart Studio Cloud for `values`.", "editType": "none", "valType": "string" }, - "style": { - "arrayOk": true, - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", + "visible": { + "description": "Shows the dimension when set to `true` (the default). Hides the dimension for `false`.", + "dflt": true, "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" - }, - "textcase": { - "arrayOk": true, - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", + "valType": "boolean" + } + } + }, + "role": "object" + }, + "domain": { + "column": { + "description": "If there is a layout grid, use the domain for this column in the grid for this parcats trace .", + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "integer" + }, + "editType": "calc", + "role": "object", + "row": { + "description": "If there is a layout grid, use the domain for this row in the grid for this parcats trace .", + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "integer" + }, + "x": { + "description": "Sets the horizontal domain of this parcats trace (in plot fraction).", + "dflt": [ + 0, + 1 + ], + "editType": "calc", + "items": [ + { "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" + "max": 1, + "min": 0, + "valType": "number" }, - "variant": { - "arrayOk": true, - "description": "Sets the variant of the font.", - "dflt": "normal", + { "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" - }, - "weight": { - "arrayOk": true, - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", + "max": 1, + "min": 0, + "valType": "number" + } + ], + "valType": "info_array" + }, + "y": { + "description": "Sets the vertical domain of this parcats trace (in plot fraction).", + "dflt": [ + 0, + 1 + ], + "editType": "calc", + "items": [ + { "editType": "calc", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" + "max": 1, + "min": 0, + "valType": "number" }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", - "valType": "string" + { + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" } - }, - "namelength": { - "arrayOk": true, - "description": "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.", - "dflt": 15, - "editType": "calc", - "min": -1, - "valType": "integer" - }, - "namelengthsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", - "editType": "none", - "valType": "string" - }, - "role": "object" + ], + "valType": "info_array" + } + }, + "hoverinfo": { + "arrayOk": false, + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", + "dflt": "all", + "editType": "plot", + "extras": [ + "all", + "none", + "skip" + ], + "flags": [ + "count", + "probability" + ], + "valType": "flaglist" + }, + "hoveron": { + "description": "Sets the hover interaction mode for the parcats diagram. If `category`, hover interaction take place per category. If `color`, hover interactions take place per color per category. If `dimension`, hover interactions take place across all categories per dimension.", + "dflt": "category", + "editType": "plot", + "valType": "enumerated", + "values": [ + "category", + "color", + "dimension" + ] + }, + "hovertemplate": { + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. This value here applies when hovering over dimensions. Note that `*categorycount`, *colorcount* and *bandcolorcount* are only available when `hoveron` contains the *color* flagFinally, the template string has access to variables `count`, `probability`, `category`, `categorycount`, `colorcount` and `bandcolorcount`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "dflt": "", + "editType": "plot", + "valType": "string" + }, + "labelfont": { + "color": { + "editType": "calc", + "valType": "color" }, - "hovertemplate": { - "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Variables `source` and `target` are node objects.Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "dflt": "", + "description": "Sets the font for the `dimension` labels.", + "editType": "calc", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", "editType": "calc", + "noBlank": true, + "strict": true, "valType": "string" }, - "hovertemplatesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", - "editType": "none", + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "calc", "valType": "string" }, - "label": { - "description": "The shown name of the link.", - "dflt": [], + "size": { "editType": "calc", - "valType": "data_array" + "min": 1, + "valType": "number" }, - "labelsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `label`.", - "editType": "none", - "valType": "string" + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] }, - "line": { + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "calc", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "legendgrouptitle": { + "editType": "style", + "font": { "color": { - "arrayOk": true, - "description": "Sets the color of the `line` around each `link`.", - "dflt": "#444", - "editType": "calc", + "editType": "style", "valType": "color" }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", + "description": "Sets this legend group's title font.", + "editType": "style", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "style", + "noBlank": true, + "strict": true, "valType": "string" }, - "editType": "calc", + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "style", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, "role": "object", - "width": { - "arrayOk": true, - "description": "Sets the width (in px) of the `line` around each `link`.", - "dflt": 0, - "editType": "calc", - "min": 0, + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "style", + "valType": "string" + }, + "size": { + "editType": "style", + "min": 1, "valType": "number" }, - "widthsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `width`.", - "editType": "none", - "valType": "string" + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "style", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "style", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "style", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "style", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" } }, "role": "object", - "source": { - "description": "An integer number `[0..nodes.length - 1]` that represents the source node.", - "dflt": [], - "editType": "calc", - "valType": "data_array" - }, - "sourcesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `source`.", - "editType": "none", - "valType": "string" - }, - "target": { - "description": "An integer number `[0..nodes.length - 1]` that represents the target node.", - "dflt": [], - "editType": "calc", - "valType": "data_array" - }, - "targetsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `target`.", - "editType": "none", - "valType": "string" - }, - "value": { - "description": "A numeric value representing the flow volume value.", - "dflt": [], - "editType": "calc", - "valType": "data_array" - }, - "valuesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `value`.", - "editType": "none", + "text": { + "description": "Sets the title of the legend group.", + "dflt": "", + "editType": "style", "valType": "string" } }, - "meta": { - "arrayOk": true, - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", - "editType": "plot", - "valType": "any" - }, - "metasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `meta`.", - "editType": "none", - "valType": "string" - }, - "name": { - "description": "Sets the trace name. The trace name appears as the legend item and on hover.", + "legendwidth": { + "description": "Sets the width (in px or fraction) of the legend for this trace.", "editType": "style", - "valType": "string" + "min": 0, + "valType": "number" }, - "node": { - "align": { - "description": "Sets the alignment method used to position the nodes along the horizontal axis.", - "dflt": "justify", + "line": { + "autocolorscale": { + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `line.colorscale`. Has an effect only if in `line.color` is set to a numerical array. 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.", + "dflt": true, "editType": "calc", - "valType": "enumerated", - "values": [ - "justify", - "left", - "right", - "center" - ] + "impliedEdits": {}, + "valType": "boolean" }, - "color": { - "arrayOk": true, - "description": "Sets the `node` color. It can be a single value, or an array for specifying color for each `node`. If `node.color` is omitted, then the default `Plotly` color palette will be cycled through to have a variety of colors. These defaults are not fully opaque, to allow some visibility of what is beneath the node.", + "cauto": { + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `line.color`) or the bounds set in `line.cmin` and `line.cmax` Has an effect only if in `line.color` is set to a numerical array. Defaults to `false` when `line.cmin` and `line.cmax` are set by the user.", + "dflt": true, "editType": "calc", - "valType": "color" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" + "impliedEdits": {}, + "valType": "boolean" }, - "customdata": { - "description": "Assigns extra data to each node.", + "cmax": { + "description": "Sets the upper bound of the color domain. Has an effect only if in `line.color` is set to a numerical array. Value should have the same units as in `line.color` and if set, `line.cmin` must be set as well.", + "dflt": null, "editType": "calc", - "valType": "data_array" + "impliedEdits": { + "cauto": false + }, + "valType": "number" }, - "customdatasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", - "editType": "none", - "valType": "string" + "cmid": { + "description": "Sets the mid-point of the color domain by scaling `line.cmin` and/or `line.cmax` to be equidistant to this point. Has an effect only if in `line.color` is set to a numerical array. Value should have the same units as in `line.color`. Has no effect when `line.cauto` is `false`.", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "valType": "number" }, - "description": "The nodes of the Sankey plot.", - "editType": "calc", - "groups": { - "description": "Groups of nodes. Each group is defined by an array with the indices of the nodes it contains. Multiple groups can be specified.", - "dflt": [], - "dimensions": 2, + "cmin": { + "description": "Sets the lower bound of the color domain. Has an effect only if in `line.color` is set to a numerical array. Value should have the same units as in `line.color` and if set, `line.cmax` must be set as well.", + "dflt": null, "editType": "calc", - "freeLength": true, "impliedEdits": { - "x": [], - "y": [] - }, - "items": { - "editType": "calc", - "valType": "number" + "cauto": false }, - "valType": "info_array" + "valType": "number" }, - "hoverinfo": { - "description": "Determines which trace information appear when hovering nodes. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", - "dflt": "all", + "color": { + "arrayOk": true, + "description": "Sets the line color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `line.cmin` and `line.cmax` if set.", "editType": "calc", - "valType": "enumerated", - "values": [ - "all", - "none", - "skip" - ] + "valType": "color" }, - "hoverlabel": { - "align": { - "arrayOk": true, - "description": "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", - "dflt": "auto", - "editType": "calc", - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ] - }, - "alignsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `align`.", - "editType": "none", - "valType": "string" - }, - "bgcolor": { - "arrayOk": true, - "description": "Sets the background color of the hover labels for this trace", - "editType": "calc", - "valType": "color" - }, - "bgcolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", - "editType": "none", - "valType": "string" - }, - "bordercolor": { - "arrayOk": true, - "description": "Sets the border color of the hover labels for this trace.", - "editType": "calc", - "valType": "color" - }, - "bordercolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", - "editType": "none", - "valType": "string" - }, + "coloraxis": { + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", + "dflt": null, "editType": "calc", - "font": { - "color": { - "arrayOk": true, - "editType": "calc", - "valType": "color" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "description": "Sets the font used in hover labels.", - "editType": "calc", - "family": { - "arrayOk": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "valType": "subplotid" + }, + "colorbar": { + "_deprecated": { + "title": { + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars", "valType": "string" }, - "lineposition": { - "arrayOk": true, + "titlefont": { + "color": { + "editType": "colorbars", + "valType": "color" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "valType": "string" + }, + "size": { + "editType": "colorbars", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "colorbars", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "titleside": { + "description": "Deprecated in favor of color bar's `title.side`.", + "dflt": "top", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ] + } + }, + "bgcolor": { + "description": "Sets the color of padded area.", + "dflt": "rgba(0,0,0,0)", + "editType": "colorbars", + "valType": "color" + }, + "bordercolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" + }, + "borderwidth": { + "description": "Sets the width (in px) or the border enclosing this color bar.", + "dflt": 0, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "dtick": { + "description": "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*, 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* 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*", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" + }, + "editType": "colorbars", + "exponentformat": { + "description": "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.", + "dflt": "B", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ] + }, + "labelalias": { + "description": "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.", + "dflt": false, + "editType": "colorbars", + "valType": "any" + }, + "len": { + "description": "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.", + "dflt": 1, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "lenmode": { + "description": "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.", + "dflt": "fraction", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] + }, + "minexponent": { + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", + "dflt": 3, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "nticks": { + "description": "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*.", + "dflt": 0, + "editType": "colorbars", + "min": 0, + "valType": "integer" + }, + "orientation": { + "description": "Sets the orientation of the colorbar.", + "dflt": "v", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "h", + "v" + ] + }, + "outlinecolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" + }, + "outlinewidth": { + "description": "Sets the width (in px) of the axis line.", + "dflt": 1, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "role": "object", + "separatethousands": { + "description": "If \"true\", even 4-digit integers are separated", + "dflt": false, + "editType": "colorbars", + "valType": "boolean" + }, + "showexponent": { + "description": "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.", + "dflt": "all", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] + }, + "showticklabels": { + "description": "Determines whether or not the tick labels are drawn.", + "dflt": true, + "editType": "colorbars", + "valType": "boolean" + }, + "showtickprefix": { + "description": "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.", + "dflt": "all", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] + }, + "showticksuffix": { + "description": "Same as `showtickprefix` but for tick suffixes.", + "dflt": "all", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] + }, + "thickness": { + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "dflt": 30, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "thicknessmode": { + "description": "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.", + "dflt": "pixels", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] + }, + "tick0": { + "description": "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* (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.", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" + }, + "tickangle": { + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", + "dflt": "auto", + "editType": "colorbars", + "valType": "angle" + }, + "tickcolor": { + "description": "Sets the tick color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" + }, + "tickfont": { + "color": { + "editType": "colorbars", + "valType": "color" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { "description": "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.", "dflt": "none", - "editType": "calc", + "editType": "colorbars", "extras": [ "none" ], @@ -60537,56 +58346,32 @@ ], "valType": "flaglist" }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", - "valType": "string" - }, "role": "object", "shadow": { - "arrayOk": true, "description": "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.", "dflt": "none", - "editType": "calc", - "valType": "string" - }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", - "editType": "none", + "editType": "colorbars", "valType": "string" }, "size": { - "arrayOk": true, - "editType": "calc", + "editType": "colorbars", "min": 1, "valType": "number" }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" - }, "style": { - "arrayOk": true, "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", "italic" ] }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" - }, "textcase": { - "arrayOk": true, "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -60595,16 +58380,10 @@ "lower" ] }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" - }, "variant": { - "arrayOk": true, "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -60615,16 +58394,10 @@ "unicase" ] }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" - }, "weight": { - "arrayOk": true, "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "calc", + "editType": "colorbars", "extras": [ "normal", "bold" @@ -60632,135 +58405,407 @@ "max": 1000, "min": 1, "valType": "integer" - }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", - "valType": "string" } }, - "namelength": { - "arrayOk": true, - "description": "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.", - "dflt": 15, - "editType": "calc", - "min": -1, - "valType": "integer" - }, - "namelengthsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", - "editType": "none", + "tickformat": { + "description": "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*", + "dflt": "", + "editType": "colorbars", "valType": "string" }, - "role": "object" - }, - "hovertemplate": { - "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Variables `sourceLinks` and `targetLinks` are arrays of link objects.Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "hovertemplatesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", - "editType": "none", - "valType": "string" - }, - "label": { - "description": "The shown name of the node.", - "dflt": [], - "editType": "calc", - "valType": "data_array" - }, - "labelsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `label`.", - "editType": "none", - "valType": "string" - }, - "line": { - "color": { - "arrayOk": true, - "description": "Sets the color of the `line` around each `node`.", - "dflt": "#444", - "editType": "calc", - "valType": "color" + "tickformatstops": { + "items": { + "tickformatstop": { + "dtickrange": { + "description": "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*", + "editType": "colorbars", + "items": [ + { + "editType": "colorbars", + "valType": "any" + }, + { + "editType": "colorbars", + "valType": "any" + } + ], + "valType": "info_array" + }, + "editType": "colorbars", + "enabled": { + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", + "dflt": true, + "editType": "colorbars", + "valType": "boolean" + }, + "name": { + "description": "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.", + "editType": "colorbars", + "valType": "string" + }, + "role": "object", + "templateitemname": { + "description": "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`.", + "editType": "colorbars", + "valType": "string" + }, + "value": { + "description": "string - dtickformat for described zoom level, the same as *tickformat*", + "dflt": "", + "editType": "colorbars", + "valType": "string" + } + } + }, + "role": "object" }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" + "ticklabeloverflow": { + "description": "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*.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ] }, - "editType": "calc", - "role": "object", - "width": { - "arrayOk": true, - "description": "Sets the width (in px) of the `line` around each `node`.", - "dflt": 0.5, - "editType": "calc", + "ticklabelposition": { + "description": "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*.", + "dflt": "outside", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside left", + "inside left", + "outside right", + "inside right", + "outside bottom", + "inside bottom" + ] + }, + "ticklabelstep": { + "description": "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*.", + "dflt": 1, + "editType": "colorbars", + "min": 1, + "valType": "integer" + }, + "ticklen": { + "description": "Sets the tick length (in px).", + "dflt": 5, + "editType": "colorbars", "min": 0, "valType": "number" }, - "widthsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `width`.", - "editType": "none", - "valType": "string" - } - }, - "pad": { - "arrayOk": false, - "description": "Sets the padding (in px) between the `nodes`.", - "dflt": 20, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "role": "object", - "thickness": { - "arrayOk": false, - "description": "Sets the thickness (in px) of the `nodes`.", - "dflt": 20, - "editType": "calc", - "min": 1, - "valType": "number" + "tickmode": { + "description": "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).", + "editType": "colorbars", + "impliedEdits": {}, + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ] + }, + "tickprefix": { + "description": "Sets a tick label prefix.", + "dflt": "", + "editType": "colorbars", + "valType": "string" + }, + "ticks": { + "description": "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.", + "dflt": "", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ] + }, + "ticksuffix": { + "description": "Sets a tick label suffix.", + "dflt": "", + "editType": "colorbars", + "valType": "string" + }, + "ticktext": { + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", + "editType": "colorbars", + "valType": "data_array" + }, + "ticktextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", + "editType": "none", + "valType": "string" + }, + "tickvals": { + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", + "editType": "colorbars", + "valType": "data_array" + }, + "tickvalssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", + "editType": "none", + "valType": "string" + }, + "tickwidth": { + "description": "Sets the tick width (in px).", + "dflt": 1, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "title": { + "editType": "colorbars", + "font": { + "color": { + "editType": "colorbars", + "valType": "color" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "valType": "string" + }, + "size": { + "editType": "colorbars", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "colorbars", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "role": "object", + "side": { + "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ] + }, + "text": { + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars", + "valType": "string" + } + }, + "x": { + "description": "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*.", + "editType": "colorbars", + "valType": "number" + }, + "xanchor": { + "description": "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*.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ] + }, + "xpad": { + "description": "Sets the amount of padding (in px) along the x direction.", + "dflt": 10, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, + "y": { + "description": "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*.", + "editType": "colorbars", + "valType": "number" + }, + "yanchor": { + "description": "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*.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ] + }, + "ypad": { + "description": "Sets the amount of padding (in px) along the y direction.", + "dflt": 10, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + } }, - "x": { - "description": "The normalized horizontal position of the node.", - "dflt": [], + "colorscale": { + "description": "Sets the colorscale. Has an effect only if in `line.color` is set to a numerical array. 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 `line.cmin` and `line.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.", + "dflt": null, "editType": "calc", - "valType": "data_array" + "impliedEdits": { + "autocolorscale": false + }, + "valType": "colorscale" }, - "xsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `x`.", + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", "editType": "none", "valType": "string" }, - "y": { - "description": "The normalized vertical position of the node.", - "dflt": [], - "editType": "calc", - "valType": "data_array" - }, - "ysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `y`.", - "editType": "none", + "editType": "calc", + "hovertemplate": { + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. This value here applies when hovering over lines.Finally, the template string has access to variables `count` and `probability`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "dflt": "", + "editType": "plot", "valType": "string" + }, + "reversescale": { + "description": "Reverses the color mapping if true. Has an effect only if in `line.color` is set to a numerical array. If true, `line.cmin` will correspond to the last color in the array and `line.cmax` will correspond to the first color.", + "dflt": false, + "editType": "plot", + "valType": "boolean" + }, + "role": "object", + "shape": { + "description": "Sets the shape of the paths. If `linear`, paths are composed of straight lines. If `hspline`, paths are composed of horizontal curved splines", + "dflt": "linear", + "editType": "plot", + "valType": "enumerated", + "values": [ + "linear", + "hspline" + ] + }, + "showscale": { + "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `line.color` is set to a numerical array.", + "dflt": false, + "editType": "calc", + "valType": "boolean" } }, - "orientation": { - "description": "Sets the orientation of the Sankey diagram.", - "dflt": "h", - "editType": "calc", + "meta": { + "arrayOk": true, + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", + "editType": "plot", + "valType": "any" + }, + "metasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `meta`.", + "editType": "none", + "valType": "string" + }, + "name": { + "description": "Sets the trace name. The trace name appears as the legend item and on hover.", + "editType": "style", + "valType": "string" + }, + "sortpaths": { + "description": "Sets the path sorting algorithm. If `forward`, sort paths based on dimension categories from left to right. If `backward`, sort paths based on dimensions categories from right to left.", + "dflt": "forward", + "editType": "plot", "valType": "enumerated", "values": [ - "v", - "h" + "forward", + "backward" ] }, - "selectedpoints": { - "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect.", - "editType": "calc", - "valType": "any" - }, "stream": { "editType": "calc", "maxpoints": { @@ -60780,12 +58825,12 @@ "valType": "string" } }, - "textfont": { + "tickfont": { "color": { "editType": "calc", "valType": "color" }, - "description": "Sets the font for node labels", + "description": "Sets the font for the `category` labels.", "editType": "calc", "family": { "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", @@ -60869,7 +58914,17 @@ "valType": "integer" } }, - "type": "sankey", + "transforms": { + "items": { + "transform": { + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "editType": "calc", + "role": "object" + } + }, + "role": "object" + }, + "type": "parcats", "uid": { "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", "editType": "plot", @@ -60880,18 +58935,6 @@ "editType": "none", "valType": "any" }, - "valueformat": { - "description": "Sets the value 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.", - "dflt": ".3s", - "editType": "calc", - "valType": "string" - }, - "valuesuffix": { - "description": "Adds a unit to follow the value in the hover tooltip. Add a space if a separation is necessary from the value.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, "visible": { "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", "dflt": true, @@ -60908,31 +58951,13 @@ "noOpacity" ], "meta": { - "description": "Sankey plots for network flow data analysis. The nodes are specified in `nodes` and the links between sources and targets in `links`. The colors are set in `nodes[i].color` and `links[i].color`, otherwise defaults are used." + "description": "Parallel categories diagram for multidimensional categorical data." }, - "type": "sankey" + "type": "parcats" }, - "scatter": { - "animatable": true, + "parcoords": { + "animatable": false, "attributes": { - "alignmentgroup": { - "description": "Set several traces linked to the same position axis or matching axes to the same alignmentgroup. This controls whether bars compute their positional range dependently or independently.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "cliponaxis": { - "description": "Determines whether or not markers and text nodes are clipped about the subplot axes. To show markers and text nodes above axis lines and tick labels, make sure to set `xaxis.layer` and `yaxis.layer` to *below traces*.", - "dflt": true, - "editType": "plot", - "valType": "boolean" - }, - "connectgaps": { - "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the provided data arrays are connected.", - "dflt": false, - "editType": "calc", - "valType": "boolean" - }, "customdata": { "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", "editType": "calc", @@ -60943,1827 +58968,2754 @@ "editType": "none", "valType": "string" }, - "dx": { - "anim": true, - "description": "Sets the x coordinate step. See `x0` for more info.", - "dflt": 1, - "editType": "calc", - "valType": "number" - }, - "dy": { - "anim": true, - "description": "Sets the y coordinate step. See `y0` for more info.", - "dflt": 1, - "editType": "calc", - "valType": "number" - }, - "error_x": { - "_deprecated": { - "opacity": { - "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity.", - "editType": "style", - "valType": "number" + "dimensions": { + "items": { + "dimension": { + "constraintrange": { + "description": "The domain range to which the filter on the dimension is constrained. Must be an array of `[fromValue, toValue]` with `fromValue <= toValue`, or if `multiselect` is not disabled, you may give an array of arrays, where each inner array is `[fromValue, toValue]`.", + "dimensions": "1-2", + "editType": "plot", + "freeLength": true, + "items": [ + { + "editType": "plot", + "valType": "any" + }, + { + "editType": "plot", + "valType": "any" + } + ], + "valType": "info_array" + }, + "description": "The dimensions (variables) of the parallel coordinates chart. 2..60 dimensions are supported.", + "editType": "calc", + "label": { + "description": "The shown name of the dimension.", + "editType": "plot", + "valType": "string" + }, + "multiselect": { + "description": "Do we allow multiple selection ranges or just a single range?", + "dflt": true, + "editType": "plot", + "valType": "boolean" + }, + "name": { + "description": "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.", + "editType": "none", + "valType": "string" + }, + "range": { + "description": "The domain range that represents the full, shown axis extent. Defaults to the `values` extent. Must be an array of `[fromValue, toValue]` with finite numbers as elements.", + "editType": "plot", + "items": [ + { + "editType": "plot", + "valType": "number" + }, + { + "editType": "plot", + "valType": "number" + } + ], + "valType": "info_array" + }, + "role": "object", + "templateitemname": { + "description": "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`.", + "editType": "calc", + "valType": "string" + }, + "tickformat": { + "description": "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*", + "dflt": "", + "editType": "plot", + "valType": "string" + }, + "ticktext": { + "description": "Sets the text displayed at the ticks position via `tickvals`.", + "editType": "plot", + "valType": "data_array" + }, + "ticktextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", + "editType": "none", + "valType": "string" + }, + "tickvals": { + "description": "Sets the values at which ticks on this axis appear.", + "editType": "plot", + "valType": "data_array" + }, + "tickvalssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", + "editType": "none", + "valType": "string" + }, + "values": { + "description": "Dimension values. `values[n]` represents the value of the `n`th point in the dataset, therefore the `values` vector for all dimensions must be the same (longer vectors will be truncated). Each value must be a finite number.", + "editType": "calc", + "valType": "data_array" + }, + "valuessrc": { + "description": "Sets the source reference on Chart Studio Cloud for `values`.", + "editType": "none", + "valType": "string" + }, + "visible": { + "description": "Shows the dimension when set to `true` (the default). Hides the dimension for `false`.", + "dflt": true, + "editType": "plot", + "valType": "boolean" + } } }, - "array": { - "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data.", - "editType": "calc", - "valType": "data_array" - }, - "arrayminus": { - "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data.", - "editType": "calc", - "valType": "data_array" - }, - "arrayminussrc": { - "description": "Sets the source reference on Chart Studio Cloud for `arrayminus`.", - "editType": "none", - "valType": "string" - }, - "arraysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `array`.", - "editType": "none", - "valType": "string" - }, - "color": { - "description": "Sets the stoke color of the error bars.", - "editType": "style", - "valType": "color" - }, - "copy_ystyle": { - "editType": "plot", - "valType": "boolean" - }, - "editType": "calc", - "role": "object", - "symmetric": { - "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars.", - "editType": "calc", - "valType": "boolean" - }, - "thickness": { - "description": "Sets the thickness (in px) of the error bars.", - "dflt": 2, - "editType": "style", - "min": 0, - "valType": "number" - }, - "traceref": { + "role": "object" + }, + "domain": { + "column": { + "description": "If there is a layout grid, use the domain for this column in the grid for this parcoords trace .", "dflt": 0, - "editType": "style", + "editType": "plot", "min": 0, "valType": "integer" }, - "tracerefminus": { + "editType": "plot", + "role": "object", + "row": { + "description": "If there is a layout grid, use the domain for this row in the grid for this parcoords trace .", "dflt": 0, - "editType": "style", + "editType": "plot", "min": 0, "valType": "integer" }, - "type": { - "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`.", - "editType": "calc", - "valType": "enumerated", - "values": [ - "percent", - "constant", - "sqrt", - "data" - ] - }, - "value": { - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars.", - "dflt": 10, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "valueminus": { - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars", - "dflt": 10, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "visible": { - "description": "Determines whether or not this set of error bars is visible.", - "editType": "calc", - "valType": "boolean" + "x": { + "description": "Sets the horizontal domain of this parcoords trace (in plot fraction).", + "dflt": [ + 0, + 1 + ], + "editType": "plot", + "items": [ + { + "editType": "plot", + "max": 1, + "min": 0, + "valType": "number" + }, + { + "editType": "plot", + "max": 1, + "min": 0, + "valType": "number" + } + ], + "valType": "info_array" }, - "width": { - "description": "Sets the width (in px) of the cross-bar at both ends of the error bars.", + "y": { + "description": "Sets the vertical domain of this parcoords trace (in plot fraction).", + "dflt": [ + 0, + 1 + ], "editType": "plot", - "min": 0, - "valType": "number" + "items": [ + { + "editType": "plot", + "max": 1, + "min": 0, + "valType": "number" + }, + { + "editType": "plot", + "max": 1, + "min": 0, + "valType": "number" + } + ], + "valType": "info_array" } }, - "error_y": { - "_deprecated": { - "opacity": { - "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity.", - "editType": "style", - "valType": "number" - } - }, - "array": { - "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data.", - "editType": "calc", - "valType": "data_array" - }, - "arrayminus": { - "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data.", - "editType": "calc", - "valType": "data_array" - }, - "arrayminussrc": { - "description": "Sets the source reference on Chart Studio Cloud for `arrayminus`.", - "editType": "none", - "valType": "string" + "ids": { + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", + "editType": "calc", + "valType": "data_array" + }, + "idssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ids`.", + "editType": "none", + "valType": "string" + }, + "labelangle": { + "description": "Sets the angle of the labels with respect to the horizontal. For example, a `tickangle` of -90 draws the labels vertically. Tilted labels with *labelangle* may be positioned better inside margins when `labelposition` is set to *bottom*.", + "dflt": 0, + "editType": "plot", + "valType": "angle" + }, + "labelfont": { + "color": { + "editType": "plot", + "valType": "color" }, - "arraysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `array`.", - "editType": "none", + "description": "Sets the font for the `dimension` labels.", + "editType": "plot", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "plot", + "noBlank": true, + "strict": true, "valType": "string" }, - "color": { - "description": "Sets the stoke color of the error bars.", - "editType": "style", - "valType": "color" + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "plot", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" }, - "editType": "calc", "role": "object", - "symmetric": { - "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars.", - "editType": "calc", - "valType": "boolean" + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "plot", + "valType": "string" }, - "thickness": { - "description": "Sets the thickness (in px) of the error bars.", - "dflt": 2, - "editType": "style", - "min": 0, + "size": { + "editType": "plot", + "min": 1, "valType": "number" }, - "traceref": { - "dflt": 0, - "editType": "style", - "min": 0, - "valType": "integer" - }, - "tracerefminus": { - "dflt": 0, - "editType": "style", - "min": 0, - "valType": "integer" - }, - "type": { - "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`.", - "editType": "calc", + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "plot", "valType": "enumerated", "values": [ - "percent", - "constant", - "sqrt", - "data" + "normal", + "italic" ] }, - "value": { - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars.", - "dflt": 10, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "valueminus": { - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars", - "dflt": 10, - "editType": "calc", - "min": 0, - "valType": "number" + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] }, - "visible": { - "description": "Determines whether or not this set of error bars is visible.", - "editType": "calc", - "valType": "boolean" + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] }, - "width": { - "description": "Sets the width (in px) of the cross-bar at both ends of the error bars.", + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", "editType": "plot", - "min": 0, - "valType": "number" + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" } }, - "fill": { - "description": "Sets the area to fill with a solid color. Defaults to *none* unless this trace is stacked, then it gets *tonexty* (*tonextx*) if `orientation` is *v* (*h*) Use with `fillcolor` if not *none*. *tozerox* and *tozeroy* fill to x=0 and y=0 respectively. *tonextx* and *tonexty* fill between the endpoints of this trace and the endpoints of the trace before it, connecting those endpoints with straight lines (to make a stacked area graph); if there is no trace before it, they behave like *tozerox* and *tozeroy*. *toself* connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape. *tonext* fills the space between two traces if one completely encloses the other (eg consecutive contour lines), and behaves like *toself* if there is no trace before it. *tonext* should not be used if one trace does not enclose the other. Traces in a `stackgroup` will only fill to (or be filled to) other traces in the same group. With multiple `stackgroup`s or some traces stacked and some not, if fill-linked traces are not already consecutive, the later ones will be pushed down in the drawing order.", - "editType": "calc", + "labelside": { + "description": "Specifies the location of the `label`. *top* positions labels above, next to the title *bottom* positions labels below the graph Tilted labels with *labelangle* may be positioned better inside margins when `labelposition` is set to *bottom*.", + "dflt": "top", + "editType": "plot", "valType": "enumerated", "values": [ - "none", - "tozeroy", - "tozerox", - "tonexty", - "tonextx", - "toself", - "tonext" + "top", + "bottom" ] }, - "fillcolor": { - "anim": true, - "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available. If fillgradient is specified, fillcolor is ignored except for setting the background color of the hover label, if any.", + "legend": { + "description": "Sets the reference to a legend to show this trace 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.", + "dflt": "legend", "editType": "style", - "valType": "color" + "valType": "subplotid" }, - "fillgradient": { - "colorscale": { - "description": "Sets the fill gradient colors as a color scale. The color scale is interpreted as a gradient applied in the direction specified by *orientation*, from the lowest to the highest value of the scatter plot along that axis, or from the center to the most distant point from it, if orientation is *radial*.", + "legendgrouptitle": { + "editType": "style", + "font": { + "color": { + "editType": "style", + "valType": "color" + }, + "description": "Sets this legend group's title font.", "editType": "style", - "valType": "colorscale" + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "style", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "style", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "style", + "valType": "string" + }, + "size": { + "editType": "style", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "style", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "style", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "style", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "style", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } }, - "description": "Sets a fill gradient. If not specified, the fillcolor is used instead.", - "editType": "calc", "role": "object", - "start": { - "description": "Sets the gradient start value. It is given as the absolute position on the axis determined by the orientiation. E.g., if orientation is *horizontal*, the gradient will be horizontal and start from the x-position given by start. If omitted, the gradient starts at the lowest value of the trace along the respective axis. Ignored if orientation is *radial*.", + "text": { + "description": "Sets the title of the legend group.", + "dflt": "", + "editType": "style", + "valType": "string" + } + }, + "legendrank": { + "description": "Sets the legend rank for this trace. 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.", + "dflt": 1000, + "editType": "style", + "valType": "number" + }, + "legendwidth": { + "description": "Sets the width (in px or fraction) of the legend for this trace.", + "editType": "style", + "min": 0, + "valType": "number" + }, + "line": { + "autocolorscale": { + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `line.colorscale`. Has an effect only if in `line.color` is set to a numerical array. 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.", + "dflt": false, "editType": "calc", - "valType": "number" + "impliedEdits": {}, + "valType": "boolean" }, - "stop": { - "description": "Sets the gradient end value. It is given as the absolute position on the axis determined by the orientiation. E.g., if orientation is *horizontal*, the gradient will be horizontal and end at the x-position given by end. If omitted, the gradient ends at the highest value of the trace along the respective axis. Ignored if orientation is *radial*.", + "cauto": { + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `line.color`) or the bounds set in `line.cmin` and `line.cmax` Has an effect only if in `line.color` is set to a numerical array. Defaults to `false` when `line.cmin` and `line.cmax` are set by the user.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "cmax": { + "description": "Sets the upper bound of the color domain. Has an effect only if in `line.color` is set to a numerical array. Value should have the same units as in `line.color` and if set, `line.cmin` must be set as well.", + "dflt": null, "editType": "calc", + "impliedEdits": { + "cauto": false + }, "valType": "number" }, - "type": { - "description": "Sets the type/orientation of the color gradient for the fill. Defaults to *none*.", - "dflt": "none", + "cmid": { + "description": "Sets the mid-point of the color domain by scaling `line.cmin` and/or `line.cmax` to be equidistant to this point. Has an effect only if in `line.color` is set to a numerical array. Value should have the same units as in `line.color`. Has no effect when `line.cauto` is `false`.", + "dflt": null, "editType": "calc", - "valType": "enumerated", - "values": [ - "radial", - "horizontal", - "vertical", - "none" - ] - } - }, - "fillpattern": { - "bgcolor": { - "arrayOk": true, - "description": "When there is no colorscale sets the color of background pattern fill. Defaults to a `marker.color` background when `fillmode` is *overlay*. Otherwise, defaults to a transparent background.", - "editType": "style", - "valType": "color" + "impliedEdits": {}, + "valType": "number" }, - "bgcolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", - "editType": "none", - "valType": "string" + "cmin": { + "description": "Sets the lower bound of the color domain. Has an effect only if in `line.color` is set to a numerical array. Value should have the same units as in `line.color` and if set, `line.cmax` must be set as well.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "valType": "number" }, - "description": "Sets the pattern within the marker.", - "editType": "style", - "fgcolor": { + "color": { "arrayOk": true, - "description": "When there is no colorscale sets the color of foreground pattern fill. Defaults to a `marker.color` background when `fillmode` is *replace*. Otherwise, defaults to dark grey or white to increase contrast with the `bgcolor`.", - "editType": "style", + "description": "Sets the line color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `line.cmin` and `line.cmax` if set.", + "editType": "calc", "valType": "color" }, - "fgcolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `fgcolor`.", - "editType": "none", - "valType": "string" + "coloraxis": { + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", + "dflt": null, + "editType": "calc", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "valType": "subplotid" }, - "fgopacity": { - "description": "Sets the opacity of the foreground pattern fill. Defaults to a 0.5 when `fillmode` is *overlay*. Otherwise, defaults to 1.", - "editType": "style", - "max": 1, - "min": 0, - "valType": "number" - }, - "fillmode": { - "description": "Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`.", - "dflt": "replace", - "editType": "style", - "valType": "enumerated", - "values": [ - "replace", - "overlay" - ] - }, - "role": "object", - "shape": { - "arrayOk": true, - "description": "Sets the shape of the pattern fill. By default, no pattern is used for filling the area.", - "dflt": "", - "editType": "style", - "valType": "enumerated", - "values": [ - "", - "/", - "\\", - "x", - "-", - "|", - "+", - "." - ] - }, - "shapesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shape`.", - "editType": "none", - "valType": "string" - }, - "size": { - "arrayOk": true, - "description": "Sets the size of unit squares of the pattern fill in pixels, which corresponds to the interval of repetition of the pattern.", - "dflt": 8, - "editType": "style", - "min": 0, - "valType": "number" - }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" - }, - "solidity": { - "arrayOk": true, - "description": "Sets the solidity of the pattern fill. Solidity is roughly the fraction of the area filled by the pattern. Solidity of 0 shows only the background color without pattern and solidty of 1 shows only the foreground color without pattern.", - "dflt": 0.3, - "editType": "style", - "max": 1, - "min": 0, - "valType": "number" - }, - "soliditysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `solidity`.", - "editType": "none", - "valType": "string" - } - }, - "groupnorm": { - "description": "Only relevant when `stackgroup` is used, and only the first `groupnorm` found in the `stackgroup` will be used - including if `visible` is *legendonly* but not if it is `false`. Sets the normalization for the sum of this `stackgroup`. With *fraction*, the value of each trace at each location is divided by the sum of all trace values at that location. *percent* is the same but multiplied by 100 to show percentages. If there are multiple subplots, or multiple `stackgroup`s on one subplot, each will be normalized within its own set.", - "dflt": "", - "editType": "calc", - "valType": "enumerated", - "values": [ - "", - "fraction", - "percent" - ] - }, - "hoverinfo": { - "arrayOk": true, - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", - "dflt": "all", - "editType": "none", - "extras": [ - "all", - "none", - "skip" - ], - "flags": [ - "x", - "y", - "z", - "text", - "name" - ], - "valType": "flaglist" - }, - "hoverinfosrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", - "editType": "none", - "valType": "string" - }, - "hoverlabel": { - "align": { - "arrayOk": true, - "description": "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", - "dflt": "auto", - "editType": "none", - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ] - }, - "alignsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `align`.", - "editType": "none", - "valType": "string" - }, - "bgcolor": { - "arrayOk": true, - "description": "Sets the background color of the hover labels for this trace", - "editType": "none", - "valType": "color" - }, - "bgcolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", - "editType": "none", - "valType": "string" - }, - "bordercolor": { - "arrayOk": true, - "description": "Sets the border color of the hover labels for this trace.", - "editType": "none", - "valType": "color" - }, - "bordercolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", - "editType": "none", - "valType": "string" - }, - "editType": "none", - "font": { - "color": { - "arrayOk": true, - "editType": "none", + "colorbar": { + "_deprecated": { + "title": { + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars", + "valType": "string" + }, + "titlefont": { + "color": { + "editType": "colorbars", + "valType": "color" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "valType": "string" + }, + "size": { + "editType": "colorbars", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "colorbars", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "titleside": { + "description": "Deprecated in favor of color bar's `title.side`.", + "dflt": "top", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ] + } + }, + "bgcolor": { + "description": "Sets the color of padded area.", + "dflt": "rgba(0,0,0,0)", + "editType": "colorbars", "valType": "color" }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" + "bordercolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" }, - "description": "Sets the font used in hover labels.", - "editType": "none", - "family": { - "arrayOk": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "none", - "noBlank": true, - "strict": true, - "valType": "string" + "borderwidth": { + "description": "Sets the width (in px) or the border enclosing this color bar.", + "dflt": 0, + "editType": "colorbars", + "min": 0, + "valType": "number" }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" + "dtick": { + "description": "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*, 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* 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*", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" }, - "lineposition": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "none", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" + "editType": "colorbars", + "exponentformat": { + "description": "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.", + "dflt": "B", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ] }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", - "valType": "string" + "labelalias": { + "description": "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.", + "dflt": false, + "editType": "colorbars", + "valType": "any" }, - "role": "object", - "shadow": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "none", - "valType": "string" + "len": { + "description": "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.", + "dflt": 1, + "editType": "colorbars", + "min": 0, + "valType": "number" }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", - "editType": "none", - "valType": "string" + "lenmode": { + "description": "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.", + "dflt": "fraction", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] }, - "size": { - "arrayOk": true, - "editType": "none", - "min": 1, + "minexponent": { + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", + "dflt": 3, + "editType": "colorbars", + "min": 0, "valType": "number" }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" + "nticks": { + "description": "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*.", + "dflt": 0, + "editType": "colorbars", + "min": 0, + "valType": "integer" }, - "style": { - "arrayOk": true, - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "none", + "orientation": { + "description": "Sets the orientation of the colorbar.", + "dflt": "v", + "editType": "colorbars", "valType": "enumerated", "values": [ - "normal", - "italic" + "h", + "v" ] }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" + "outlinecolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" }, - "textcase": { - "arrayOk": true, - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "none", + "outlinewidth": { + "description": "Sets the width (in px) of the axis line.", + "dflt": 1, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "role": "object", + "separatethousands": { + "description": "If \"true\", even 4-digit integers are separated", + "dflt": false, + "editType": "colorbars", + "valType": "boolean" + }, + "showexponent": { + "description": "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.", + "dflt": "all", + "editType": "colorbars", "valType": "enumerated", "values": [ - "normal", - "word caps", - "upper", - "lower" + "all", + "first", + "last", + "none" ] }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" + "showticklabels": { + "description": "Determines whether or not the tick labels are drawn.", + "dflt": true, + "editType": "colorbars", + "valType": "boolean" }, - "variant": { - "arrayOk": true, - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "none", + "showtickprefix": { + "description": "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.", + "dflt": "all", + "editType": "colorbars", "valType": "enumerated", "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" + "all", + "first", + "last", + "none" ] }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" + "showticksuffix": { + "description": "Same as `showtickprefix` but for tick suffixes.", + "dflt": "all", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] }, - "weight": { - "arrayOk": true, - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "none", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" + "thickness": { + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "dflt": 30, + "editType": "colorbars", + "min": 0, + "valType": "number" }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", - "valType": "string" - } - }, - "namelength": { - "arrayOk": true, - "description": "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.", - "dflt": 15, - "editType": "none", - "min": -1, - "valType": "integer" - }, - "namelengthsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", - "editType": "none", - "valType": "string" - }, - "role": "object" - }, - "hoveron": { - "description": "Do the hover effects highlight individual points (markers or line points) or do they highlight filled regions? If the fill is *toself* or *tonext* and there are no markers or text, then the default is *fills*, otherwise it is *points*.", - "editType": "style", - "flags": [ - "points", - "fills" - ], - "valType": "flaglist" - }, - "hovertemplate": { - "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "dflt": "", - "editType": "none", - "valType": "string" - }, - "hovertemplatesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", - "editType": "none", - "valType": "string" - }, - "hovertext": { - "arrayOk": true, - "description": "Sets hover text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag.", - "dflt": "", - "editType": "style", - "valType": "string" - }, - "hovertextsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hovertext`.", - "editType": "none", - "valType": "string" - }, - "ids": { - "anim": true, - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "editType": "calc", - "valType": "data_array" - }, - "idssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ids`.", - "editType": "none", - "valType": "string" - }, - "legend": { - "description": "Sets the reference to a legend to show this trace 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.", - "dflt": "legend", - "editType": "style", - "valType": "subplotid" - }, - "legendgroup": { - "description": "Sets the legend group for this trace. Traces and shapes part of the same legend group hide/show at the same time when toggling legend items.", - "dflt": "", - "editType": "style", - "valType": "string" - }, - "legendgrouptitle": { - "editType": "style", - "font": { - "color": { - "editType": "style", + "thicknessmode": { + "description": "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.", + "dflt": "pixels", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] + }, + "tick0": { + "description": "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* (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.", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" + }, + "tickangle": { + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", + "dflt": "auto", + "editType": "colorbars", + "valType": "angle" + }, + "tickcolor": { + "description": "Sets the tick color.", + "dflt": "#444", + "editType": "colorbars", "valType": "color" }, - "description": "Sets this legend group's title font.", - "editType": "style", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "style", - "noBlank": true, - "strict": true, + "tickfont": { + "color": { + "editType": "colorbars", + "valType": "color" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "valType": "string" + }, + "size": { + "editType": "colorbars", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "colorbars", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "tickformat": { + "description": "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*", + "dflt": "", + "editType": "colorbars", "valType": "string" }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "style", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" + "tickformatstops": { + "items": { + "tickformatstop": { + "dtickrange": { + "description": "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*", + "editType": "colorbars", + "items": [ + { + "editType": "colorbars", + "valType": "any" + }, + { + "editType": "colorbars", + "valType": "any" + } + ], + "valType": "info_array" + }, + "editType": "colorbars", + "enabled": { + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", + "dflt": true, + "editType": "colorbars", + "valType": "boolean" + }, + "name": { + "description": "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.", + "editType": "colorbars", + "valType": "string" + }, + "role": "object", + "templateitemname": { + "description": "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`.", + "editType": "colorbars", + "valType": "string" + }, + "value": { + "description": "string - dtickformat for described zoom level, the same as *tickformat*", + "dflt": "", + "editType": "colorbars", + "valType": "string" + } + } + }, + "role": "object" }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "style", - "valType": "string" + "ticklabeloverflow": { + "description": "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*.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ] }, - "size": { - "editType": "style", + "ticklabelposition": { + "description": "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*.", + "dflt": "outside", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside left", + "inside left", + "outside right", + "inside right", + "outside bottom", + "inside bottom" + ] + }, + "ticklabelstep": { + "description": "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*.", + "dflt": 1, + "editType": "colorbars", "min": 1, + "valType": "integer" + }, + "ticklen": { + "description": "Sets the tick length (in px).", + "dflt": 5, + "editType": "colorbars", + "min": 0, "valType": "number" }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "style", + "tickmode": { + "description": "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).", + "editType": "colorbars", + "impliedEdits": {}, "valType": "enumerated", "values": [ - "normal", - "italic" + "auto", + "linear", + "array" ] }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "style", + "tickprefix": { + "description": "Sets a tick label prefix.", + "dflt": "", + "editType": "colorbars", + "valType": "string" + }, + "ticks": { + "description": "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.", + "dflt": "", + "editType": "colorbars", "valType": "enumerated", "values": [ - "normal", - "word caps", - "upper", - "lower" + "outside", + "inside", + "" ] }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "style", + "ticksuffix": { + "description": "Sets a tick label suffix.", + "dflt": "", + "editType": "colorbars", + "valType": "string" + }, + "ticktext": { + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", + "editType": "colorbars", + "valType": "data_array" + }, + "ticktextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", + "editType": "none", + "valType": "string" + }, + "tickvals": { + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", + "editType": "colorbars", + "valType": "data_array" + }, + "tickvalssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", + "editType": "none", + "valType": "string" + }, + "tickwidth": { + "description": "Sets the tick width (in px).", + "dflt": 1, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "title": { + "editType": "colorbars", + "font": { + "color": { + "editType": "colorbars", + "valType": "color" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "valType": "string" + }, + "size": { + "editType": "colorbars", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "colorbars", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "role": "object", + "side": { + "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ] + }, + "text": { + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars", + "valType": "string" + } + }, + "x": { + "description": "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*.", + "editType": "colorbars", + "valType": "number" + }, + "xanchor": { + "description": "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*.", + "editType": "colorbars", "valType": "enumerated", "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" + "left", + "center", + "right" ] }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "style", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "role": "object", - "text": { - "description": "Sets the title of the legend group.", - "dflt": "", - "editType": "style", - "valType": "string" - } - }, - "legendrank": { - "description": "Sets the legend rank for this trace. 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.", - "dflt": 1000, - "editType": "style", - "valType": "number" - }, - "legendwidth": { - "description": "Sets the width (in px or fraction) of the legend for this trace.", - "editType": "style", - "min": 0, - "valType": "number" - }, - "line": { - "backoff": { - "arrayOk": true, - "description": "Sets the line back off from the end point of the nth line segment (in px). This option is useful e.g. to avoid overlap with arrowhead markers. With *auto* the lines would trim before markers if `marker.angleref` is set to *previous*.", - "dflt": "auto", - "editType": "plot", - "min": 0, - "valType": "number" + "xpad": { + "description": "Sets the amount of padding (in px) along the x direction.", + "dflt": 10, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, + "y": { + "description": "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*.", + "editType": "colorbars", + "valType": "number" + }, + "yanchor": { + "description": "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*.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ] + }, + "ypad": { + "description": "Sets the amount of padding (in px) along the y direction.", + "dflt": 10, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + } }, - "backoffsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `backoff`.", + "colorscale": { + "description": "Sets the colorscale. Has an effect only if in `line.color` is set to a numerical array. 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 `line.cmin` and `line.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.", + "dflt": [ + [ + 0, + "#440154" + ], + [ + 0.06274509803921569, + "#48186a" + ], + [ + 0.12549019607843137, + "#472d7b" + ], + [ + 0.18823529411764706, + "#424086" + ], + [ + 0.25098039215686274, + "#3b528b" + ], + [ + 0.3137254901960784, + "#33638d" + ], + [ + 0.3764705882352941, + "#2c728e" + ], + [ + 0.4392156862745098, + "#26828e" + ], + [ + 0.5019607843137255, + "#21918c" + ], + [ + 0.5647058823529412, + "#1fa088" + ], + [ + 0.6274509803921569, + "#28ae80" + ], + [ + 0.6901960784313725, + "#3fbc73" + ], + [ + 0.7529411764705882, + "#5ec962" + ], + [ + 0.8156862745098039, + "#84d44b" + ], + [ + 0.8784313725490196, + "#addc30" + ], + [ + 0.9411764705882353, + "#d8e219" + ], + [ + 1, + "#fde725" + ] + ], + "editType": "calc", + "impliedEdits": { + "autocolorscale": false + }, + "valType": "colorscale" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", "editType": "none", "valType": "string" }, + "editType": "calc", + "reversescale": { + "description": "Reverses the color mapping if true. Has an effect only if in `line.color` is set to a numerical array. If true, `line.cmin` will correspond to the last color in the array and `line.cmax` will correspond to the first color.", + "dflt": false, + "editType": "plot", + "valType": "boolean" + }, + "role": "object", + "showscale": { + "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `line.color` is set to a numerical array.", + "dflt": false, + "editType": "calc", + "valType": "boolean" + } + }, + "meta": { + "arrayOk": true, + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", + "editType": "plot", + "valType": "any" + }, + "metasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `meta`.", + "editType": "none", + "valType": "string" + }, + "name": { + "description": "Sets the trace name. The trace name appears as the legend item and on hover.", + "editType": "style", + "valType": "string" + }, + "rangefont": { "color": { - "anim": true, - "description": "Sets the line color.", - "editType": "style", + "editType": "plot", "valType": "color" }, - "dash": { - "description": "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*).", - "dflt": "solid", - "editType": "style", - "valType": "string", + "description": "Sets the font for the `dimension` range values.", + "editType": "plot", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "plot", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "plot", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "plot", + "valType": "string" + }, + "size": { + "editType": "plot", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" + "normal", + "italic" ] }, - "editType": "plot", - "role": "object", - "shape": { - "description": "Determines the line shape. With *spline* the lines are drawn using spline interpolation. The other available values correspond to step-wise line shapes.", - "dflt": "linear", + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", "editType": "plot", "valType": "enumerated", "values": [ - "linear", - "spline", - "hv", - "vh", - "hvh", - "vhv" + "normal", + "word caps", + "upper", + "lower" ] }, - "simplify": { - "description": "Simplifies lines by removing nearly-collinear points. When transitioning lines, it may be desirable to disable this so that the number of points along the resulting SVG path is unaffected.", - "dflt": true, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", "editType": "plot", - "valType": "boolean" + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] }, - "smoothing": { - "description": "Has an effect only if `shape` is set to *spline* Sets the amount of smoothing. *0* corresponds to no smoothing (equivalent to a *linear* shape).", - "dflt": 1, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", "editType": "plot", - "max": 1.3, + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "stream": { + "editType": "calc", + "maxpoints": { + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot.", + "dflt": 500, + "editType": "calc", + "max": 10000, "min": 0, "valType": "number" }, - "width": { - "anim": true, - "description": "Sets the line width (in px).", - "dflt": 2, - "editType": "style", - "min": 0, - "valType": "number" + "role": "object", + "token": { + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" } }, - "marker": { - "angle": { - "anim": false, - "arrayOk": true, - "description": "Sets the marker angle in respect to `angleref`.", - "dflt": 0, + "tickfont": { + "color": { "editType": "plot", - "valType": "angle" + "valType": "color" }, - "angleref": { - "anim": false, - "description": "Sets the reference for marker angle. With *previous*, angle 0 points along the line from the previous point to this one. With *up*, angle 0 points toward the top of the screen.", - "dflt": "up", + "description": "Sets the font for the `dimension` tick values.", + "editType": "plot", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "plot", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "plot", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "auto", + "editType": "plot", + "valType": "string" + }, + "size": { + "editType": "plot", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", "editType": "plot", "valType": "enumerated", "values": [ - "previous", - "up" + "normal", + "italic" ] }, - "anglesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `angle`.", - "editType": "none", - "valType": "string" + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] }, - "autocolorscale": { - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color` is set to a numerical array. 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.", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] }, - "cauto": { - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color` is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user.", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "plot", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "transforms": { + "items": { + "transform": { + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "editType": "calc", + "role": "object" + } }, - "cmax": { - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well.", - "dflt": null, + "role": "object" + }, + "type": "parcoords", + "uid": { + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", + "editType": "plot", + "valType": "string" + }, + "uirevision": { + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.", + "editType": "none", + "valType": "any" + }, + "unselected": { + "editType": "plot", + "line": { + "color": { + "description": "Sets the base color of unselected lines. in connection with `unselected.line.opacity`.", + "dflt": "#7f7f7f", + "editType": "plot", + "valType": "color" + }, "editType": "plot", - "impliedEdits": { - "cauto": false + "opacity": { + "description": "Sets the opacity of unselected lines. The default *auto* decreases the opacity smoothly as the number of lines increases. Use *1* to achieve exact `unselected.line.color`.", + "dflt": "auto", + "editType": "plot", + "max": 1, + "min": 0, + "valType": "number" }, - "valType": "number" + "role": "object" }, - "cmid": { - "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`.", - "dflt": null, + "role": "object" + }, + "visible": { + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", + "dflt": true, + "editType": "calc", + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ] + } + }, + "categories": [ + "gl", + "regl", + "noOpacity", + "noHover" + ], + "meta": { + "description": "Parallel coordinates for multidimensional exploratory data analysis. The samples are specified in `dimensions`. The colors are set in `line.color`." + }, + "type": "parcoords" + }, + "pie": { + "animatable": false, + "attributes": { + "_deprecated": { + "title": { + "description": "Deprecated in favor of `title.text`. Note that value of `title` is no longer a simple *string* but a set of sub-attributes.", + "dflt": "", "editType": "calc", - "impliedEdits": {}, - "valType": "number" + "valType": "string" }, - "cmin": { - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well.", - "dflt": null, + "titlefont": { + "color": { + "arrayOk": true, + "editType": "plot", + "valType": "color" + }, + "description": "Deprecated in favor of `title.font`.", "editType": "plot", - "impliedEdits": { - "cauto": false + "family": { + "arrayOk": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "plot", + "noBlank": true, + "strict": true, + "valType": "string" }, - "valType": "number" + "lineposition": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "plot", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "shadow": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "plot", + "valType": "string" + }, + "size": { + "arrayOk": true, + "editType": "plot", + "min": 1, + "valType": "number" + }, + "style": { + "arrayOk": true, + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "arrayOk": true, + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "arrayOk": true, + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "arrayOk": true, + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "plot", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } }, - "color": { - "anim": true, - "arrayOk": true, - "description": "Sets the marker color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set.", - "editType": "style", - "valType": "color" + "titleposition": { + "description": "Deprecated in favor of `title.position`.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "top left", + "top center", + "top right", + "middle center", + "bottom left", + "bottom center", + "bottom right" + ] + } + }, + "automargin": { + "description": "Determines whether outside text labels can push the margins.", + "dflt": false, + "editType": "plot", + "valType": "boolean" + }, + "customdata": { + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", + "editType": "calc", + "valType": "data_array" + }, + "customdatasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", + "editType": "none", + "valType": "string" + }, + "direction": { + "description": "Specifies the direction at which succeeding sectors follow one another.", + "dflt": "counterclockwise", + "editType": "calc", + "valType": "enumerated", + "values": [ + "clockwise", + "counterclockwise" + ] + }, + "dlabel": { + "description": "Sets the label step. See `label0` for more info.", + "dflt": 1, + "editType": "calc", + "valType": "number" + }, + "domain": { + "column": { + "description": "If there is a layout grid, use the domain for this column in the grid for this pie trace .", + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "integer" }, - "coloraxis": { - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", - "dflt": null, + "editType": "calc", + "role": "object", + "row": { + "description": "If there is a layout grid, use the domain for this row in the grid for this pie trace .", + "dflt": 0, "editType": "calc", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "valType": "subplotid" + "min": 0, + "valType": "integer" }, - "colorbar": { - "_deprecated": { - "title": { - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars", - "valType": "string" + "x": { + "description": "Sets the horizontal domain of this pie trace (in plot fraction).", + "dflt": [ + 0, + 1 + ], + "editType": "calc", + "items": [ + { + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" }, - "titlefont": { - "color": { - "editType": "colorbars", - "valType": "color" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "valType": "string" - }, - "size": { - "editType": "colorbars", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "colorbars", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } + { + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + } + ], + "valType": "info_array" + }, + "y": { + "description": "Sets the vertical domain of this pie trace (in plot fraction).", + "dflt": [ + 0, + 1 + ], + "editType": "calc", + "items": [ + { + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" }, - "titleside": { - "description": "Deprecated in favor of color bar's `title.side`.", - "dflt": "top", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ] + { + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" } - }, - "bgcolor": { - "description": "Sets the color of padded area.", - "dflt": "rgba(0,0,0,0)", - "editType": "colorbars", + ], + "valType": "info_array" + } + }, + "hole": { + "description": "Sets the fraction of the radius to cut out of the pie. Use this to make a donut chart.", + "dflt": 0, + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + }, + "hoverinfo": { + "arrayOk": true, + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", + "dflt": "all", + "editType": "none", + "extras": [ + "all", + "none", + "skip" + ], + "flags": [ + "label", + "text", + "value", + "percent", + "name" + ], + "valType": "flaglist" + }, + "hoverinfosrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", + "editType": "none", + "valType": "string" + }, + "hoverlabel": { + "align": { + "arrayOk": true, + "description": "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", + "dflt": "auto", + "editType": "none", + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ] + }, + "alignsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `align`.", + "editType": "none", + "valType": "string" + }, + "bgcolor": { + "arrayOk": true, + "description": "Sets the background color of the hover labels for this trace", + "editType": "none", + "valType": "color" + }, + "bgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", + "editType": "none", + "valType": "string" + }, + "bordercolor": { + "arrayOk": true, + "description": "Sets the border color of the hover labels for this trace.", + "editType": "none", + "valType": "color" + }, + "bordercolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", + "editType": "none", + "valType": "string" + }, + "editType": "none", + "font": { + "color": { + "arrayOk": true, + "editType": "none", "valType": "color" }, - "bordercolor": { - "description": "Sets the axis line color.", - "dflt": "#444", - "editType": "colorbars", - "valType": "color" + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" }, - "borderwidth": { - "description": "Sets the width (in px) or the border enclosing this color bar.", - "dflt": 0, - "editType": "colorbars", - "min": 0, - "valType": "number" + "description": "Sets the font used in hover labels.", + "editType": "none", + "family": { + "arrayOk": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "none", + "noBlank": true, + "strict": true, + "valType": "string" }, - "dtick": { - "description": "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*, 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* 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*", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "valType": "any" + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" }, - "editType": "colorbars", - "exponentformat": { - "description": "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.", - "dflt": "B", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ] + "lineposition": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "none", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" }, - "labelalias": { - "description": "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.", - "dflt": false, - "editType": "colorbars", - "valType": "any" + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", + "editType": "none", + "valType": "string" }, - "len": { - "description": "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.", - "dflt": 1, - "editType": "colorbars", - "min": 0, - "valType": "number" + "role": "object", + "shadow": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "none", + "valType": "string" }, - "lenmode": { - "description": "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.", - "dflt": "fraction", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ] + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", + "valType": "string" }, - "minexponent": { - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", - "dflt": 3, - "editType": "colorbars", - "min": 0, + "size": { + "arrayOk": true, + "editType": "none", + "min": 1, "valType": "number" }, - "nticks": { - "description": "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*.", - "dflt": 0, - "editType": "colorbars", - "min": 0, - "valType": "integer" + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" }, - "orientation": { - "description": "Sets the orientation of the colorbar.", - "dflt": "v", - "editType": "colorbars", + "style": { + "arrayOk": true, + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "none", "valType": "enumerated", "values": [ - "h", - "v" + "normal", + "italic" ] }, - "outlinecolor": { - "description": "Sets the axis line color.", - "dflt": "#444", - "editType": "colorbars", - "valType": "color" + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", + "valType": "string" }, - "outlinewidth": { - "description": "Sets the width (in px) of the axis line.", - "dflt": 1, - "editType": "colorbars", - "min": 0, - "valType": "number" + "textcase": { + "arrayOk": true, + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "none", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] }, - "role": "object", - "separatethousands": { - "description": "If \"true\", even 4-digit integers are separated", - "dflt": false, - "editType": "colorbars", - "valType": "boolean" + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", + "valType": "string" }, - "showexponent": { - "description": "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.", - "dflt": "all", - "editType": "colorbars", + "variant": { + "arrayOk": true, + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "none", "valType": "enumerated", "values": [ - "all", - "first", - "last", - "none" + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" ] }, - "showticklabels": { - "description": "Determines whether or not the tick labels are drawn.", - "dflt": true, - "editType": "colorbars", - "valType": "boolean" + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" }, - "showtickprefix": { - "description": "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.", - "dflt": "all", - "editType": "colorbars", + "weight": { + "arrayOk": true, + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "none", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + }, + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" + } + }, + "namelength": { + "arrayOk": true, + "description": "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.", + "dflt": 15, + "editType": "none", + "min": -1, + "valType": "integer" + }, + "namelengthsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", + "editType": "none", + "valType": "string" + }, + "role": "object" + }, + "hovertemplate": { + "arrayOk": true, + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `label`, `color`, `value`, `percent` and `text`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "dflt": "", + "editType": "none", + "valType": "string" + }, + "hovertemplatesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", + "editType": "none", + "valType": "string" + }, + "hovertext": { + "arrayOk": true, + "description": "Sets hover text elements associated with each sector. If a single string, the same string appears for all data points. If an array of string, the items are mapped in order of this trace's sectors. To be seen, trace `hoverinfo` must contain a *text* flag.", + "dflt": "", + "editType": "style", + "valType": "string" + }, + "hovertextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertext`.", + "editType": "none", + "valType": "string" + }, + "ids": { + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", + "editType": "calc", + "valType": "data_array" + }, + "idssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ids`.", + "editType": "none", + "valType": "string" + }, + "insidetextfont": { + "color": { + "arrayOk": true, + "editType": "plot", + "valType": "color" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "description": "Sets the font used for `textinfo` lying inside the sector.", + "editType": "plot", + "family": { + "arrayOk": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "plot", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" + }, + "lineposition": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "plot", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", + "editType": "none", + "valType": "string" + }, + "role": "object", + "shadow": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "plot", + "valType": "string" + }, + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", + "valType": "string" + }, + "size": { + "arrayOk": true, + "editType": "plot", + "min": 1, + "valType": "number" + }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, + "style": { + "arrayOk": true, + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", + "valType": "string" + }, + "textcase": { + "arrayOk": true, + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", + "valType": "string" + }, + "variant": { + "arrayOk": true, + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" + }, + "weight": { + "arrayOk": true, + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "plot", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + }, + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" + } + }, + "insidetextorientation": { + "description": "Controls the orientation of the text inside chart sectors. When set to *auto*, text may be oriented in any direction in order to be as big as possible in the middle of a sector. The *horizontal* option orients text to be parallel with the bottom of the chart, and may make text smaller in order to achieve that goal. The *radial* option orients text along the radius of the sector. The *tangential* option orients text perpendicular to the radius of the sector.", + "dflt": "auto", + "editType": "plot", + "valType": "enumerated", + "values": [ + "horizontal", + "radial", + "tangential", + "auto" + ] + }, + "label0": { + "description": "Alternate to `labels`. Builds a numeric set of labels. Use with `dlabel` where `label0` is the starting label and `dlabel` the step.", + "dflt": 0, + "editType": "calc", + "valType": "number" + }, + "labels": { + "description": "Sets the sector labels. If `labels` entries are duplicated, we sum associated `values` or simply count occurrences if `values` is not provided. For other array attributes (including color) we use the first non-empty entry among all occurrences of the label.", + "editType": "calc", + "valType": "data_array" + }, + "labelssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `labels`.", + "editType": "none", + "valType": "string" + }, + "legend": { + "description": "Sets the reference to a legend to show this trace 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.", + "dflt": "legend", + "editType": "style", + "valType": "subplotid" + }, + "legendgroup": { + "description": "Sets the legend group for this trace. Traces and shapes part of the same legend group hide/show at the same time when toggling legend items.", + "dflt": "", + "editType": "style", + "valType": "string" + }, + "legendgrouptitle": { + "editType": "style", + "font": { + "color": { + "editType": "style", + "valType": "color" + }, + "description": "Sets this legend group's title font.", + "editType": "style", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "style", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "style", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "style", + "valType": "string" + }, + "size": { + "editType": "style", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "style", "valType": "enumerated", "values": [ - "all", - "first", - "last", - "none" + "normal", + "italic" ] }, - "showticksuffix": { - "description": "Same as `showtickprefix` but for tick suffixes.", - "dflt": "all", - "editType": "colorbars", + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "style", "valType": "enumerated", "values": [ - "all", - "first", - "last", - "none" + "normal", + "word caps", + "upper", + "lower" ] }, - "thickness": { - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "dflt": 30, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "thicknessmode": { - "description": "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.", - "dflt": "pixels", - "editType": "colorbars", + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "style", "valType": "enumerated", "values": [ - "fraction", - "pixels" + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" ] }, - "tick0": { - "description": "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* (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.", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "valType": "any" + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "style", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "role": "object", + "text": { + "description": "Sets the title of the legend group.", + "dflt": "", + "editType": "style", + "valType": "string" + } + }, + "legendrank": { + "description": "Sets the legend rank for this trace. 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.", + "dflt": 1000, + "editType": "style", + "valType": "number" + }, + "legendwidth": { + "description": "Sets the width (in px or fraction) of the legend for this trace.", + "editType": "style", + "min": 0, + "valType": "number" + }, + "marker": { + "colors": { + "description": "Sets the color of each sector. If not specified, the default trace color set is used to pick the sector colors.", + "editType": "calc", + "valType": "data_array" + }, + "colorssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `colors`.", + "editType": "none", + "valType": "string" + }, + "editType": "calc", + "line": { + "color": { + "arrayOk": true, + "description": "Sets the color of the line enclosing each sector.", + "dflt": "#444", + "editType": "style", + "valType": "color" }, - "tickangle": { - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", - "dflt": "auto", - "editType": "colorbars", - "valType": "angle" + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" }, - "tickcolor": { - "description": "Sets the tick color.", - "dflt": "#444", - "editType": "colorbars", + "editType": "calc", + "role": "object", + "width": { + "arrayOk": true, + "description": "Sets the width (in px) of the line enclosing each sector.", + "dflt": 0, + "editType": "style", + "min": 0, + "valType": "number" + }, + "widthsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `width`.", + "editType": "none", + "valType": "string" + } + }, + "pattern": { + "bgcolor": { + "arrayOk": true, + "description": "When there is no colorscale sets the color of background pattern fill. Defaults to a `marker.color` background when `fillmode` is *overlay*. Otherwise, defaults to a transparent background.", + "editType": "style", "valType": "color" }, - "tickfont": { - "color": { - "editType": "colorbars", - "valType": "color" - }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "valType": "string" - }, - "size": { - "editType": "colorbars", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "colorbars", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "tickformat": { - "description": "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*", - "dflt": "", - "editType": "colorbars", + "bgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", + "editType": "none", "valType": "string" }, - "tickformatstops": { - "items": { - "tickformatstop": { - "dtickrange": { - "description": "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*", - "editType": "colorbars", - "items": [ - { - "editType": "colorbars", - "valType": "any" - }, - { - "editType": "colorbars", - "valType": "any" - } - ], - "valType": "info_array" - }, - "editType": "colorbars", - "enabled": { - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", - "dflt": true, - "editType": "colorbars", - "valType": "boolean" - }, - "name": { - "description": "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.", - "editType": "colorbars", - "valType": "string" - }, - "role": "object", - "templateitemname": { - "description": "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`.", - "editType": "colorbars", - "valType": "string" - }, - "value": { - "description": "string - dtickformat for described zoom level, the same as *tickformat*", - "dflt": "", - "editType": "colorbars", - "valType": "string" - } - } - }, - "role": "object" - }, - "ticklabeloverflow": { - "description": "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*.", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "allow", - "hide past div", - "hide past domain" - ] - }, - "ticklabelposition": { - "description": "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*.", - "dflt": "outside", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside left", - "inside left", - "outside right", - "inside right", - "outside bottom", - "inside bottom" - ] + "description": "Sets the pattern within the marker.", + "editType": "style", + "fgcolor": { + "arrayOk": true, + "description": "When there is no colorscale sets the color of foreground pattern fill. Defaults to a `marker.color` background when `fillmode` is *replace*. Otherwise, defaults to dark grey or white to increase contrast with the `bgcolor`.", + "editType": "style", + "valType": "color" }, - "ticklabelstep": { - "description": "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*.", - "dflt": 1, - "editType": "colorbars", - "min": 1, - "valType": "integer" + "fgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `fgcolor`.", + "editType": "none", + "valType": "string" }, - "ticklen": { - "description": "Sets the tick length (in px).", - "dflt": 5, - "editType": "colorbars", + "fgopacity": { + "description": "Sets the opacity of the foreground pattern fill. Defaults to a 0.5 when `fillmode` is *overlay*. Otherwise, defaults to 1.", + "editType": "style", + "max": 1, "min": 0, "valType": "number" }, - "tickmode": { - "description": "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).", - "editType": "colorbars", - "impliedEdits": {}, + "fillmode": { + "description": "Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`.", + "dflt": "replace", + "editType": "style", "valType": "enumerated", "values": [ - "auto", - "linear", - "array" + "replace", + "overlay" ] }, - "tickprefix": { - "description": "Sets a tick label prefix.", - "dflt": "", - "editType": "colorbars", - "valType": "string" - }, - "ticks": { - "description": "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.", + "role": "object", + "shape": { + "arrayOk": true, + "description": "Sets the shape of the pattern fill. By default, no pattern is used for filling the area.", "dflt": "", - "editType": "colorbars", + "editType": "style", "valType": "enumerated", "values": [ - "outside", - "inside", - "" + "", + "/", + "\\", + "x", + "-", + "|", + "+", + "." ] }, - "ticksuffix": { - "description": "Sets a tick label suffix.", - "dflt": "", - "editType": "colorbars", - "valType": "string" - }, - "ticktext": { - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "editType": "colorbars", - "valType": "data_array" - }, - "ticktextsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", - "editType": "none", - "valType": "string" - }, - "tickvals": { - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "editType": "colorbars", - "valType": "data_array" - }, - "tickvalssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", + "shapesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shape`.", "editType": "none", "valType": "string" }, - "tickwidth": { - "description": "Sets the tick width (in px).", - "dflt": 1, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "title": { - "editType": "colorbars", - "font": { - "color": { - "editType": "colorbars", - "valType": "color" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "valType": "string" - }, - "size": { - "editType": "colorbars", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "colorbars", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "role": "object", - "side": { - "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ] - }, - "text": { - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars", - "valType": "string" - } - }, - "x": { - "description": "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*.", - "editType": "colorbars", - "valType": "number" - }, - "xanchor": { - "description": "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*.", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ] - }, - "xpad": { - "description": "Sets the amount of padding (in px) along the x direction.", - "dflt": 10, - "editType": "colorbars", + "size": { + "arrayOk": true, + "description": "Sets the size of unit squares of the pattern fill in pixels, which corresponds to the interval of repetition of the pattern.", + "dflt": 8, + "editType": "style", "min": 0, "valType": "number" }, - "xref": { - "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", - "dflt": "paper", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "container", - "paper" - ] - }, - "y": { - "description": "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*.", - "editType": "colorbars", - "valType": "number" - }, - "yanchor": { - "description": "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*.", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ] + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" }, - "ypad": { - "description": "Sets the amount of padding (in px) along the y direction.", - "dflt": 10, - "editType": "colorbars", + "solidity": { + "arrayOk": true, + "description": "Sets the solidity of the pattern fill. Solidity is roughly the fraction of the area filled by the pattern. Solidity of 0 shows only the background color without pattern and solidty of 1 shows only the foreground color without pattern.", + "dflt": 0.3, + "editType": "style", + "max": 1, "min": 0, "valType": "number" }, - "yref": { - "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", - "dflt": "paper", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "container", - "paper" - ] + "soliditysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `solidity`.", + "editType": "none", + "valType": "string" } }, - "colorscale": { - "description": "Sets the colorscale. Has an effect only if in `marker.color` is set to a numerical array. 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 `marker.cmin` and `marker.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.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "autocolorscale": false - }, - "valType": "colorscale" + "role": "object" + }, + "meta": { + "arrayOk": true, + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", + "editType": "plot", + "valType": "any" + }, + "metasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `meta`.", + "editType": "none", + "valType": "string" + }, + "name": { + "description": "Sets the trace name. The trace name appears as the legend item and on hover.", + "editType": "style", + "valType": "string" + }, + "opacity": { + "description": "Sets the opacity of the trace.", + "dflt": 1, + "editType": "style", + "max": 1, + "min": 0, + "valType": "number" + }, + "outsidetextfont": { + "color": { + "arrayOk": true, + "editType": "plot", + "valType": "color" }, "colorsrc": { "description": "Sets the source reference on Chart Studio Cloud for `color`.", "editType": "none", "valType": "string" }, - "editType": "calc", - "gradient": { - "color": { - "arrayOk": true, - "description": "Sets the final color of the gradient fill: the center color for radial, the right for horizontal, or the bottom for vertical.", - "editType": "calc", - "valType": "color" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "editType": "calc", - "role": "object", - "type": { - "arrayOk": true, - "description": "Sets the type of gradient used to fill the markers", - "dflt": "none", - "editType": "calc", - "valType": "enumerated", - "values": [ - "radial", - "horizontal", - "vertical", - "none" - ] - }, - "typesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `type`.", - "editType": "none", - "valType": "string" - } - }, - "line": { - "autocolorscale": { - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color` is set to a numerical array. 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.", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" - }, - "cauto": { - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color` is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user.", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" - }, - "cmax": { - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well.", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "valType": "number" - }, - "cmid": { - "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`.", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "valType": "number" - }, - "cmin": { - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well.", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "valType": "number" - }, - "color": { - "anim": true, - "arrayOk": true, - "description": "Sets the marker.line color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set.", - "editType": "style", - "valType": "color" - }, - "coloraxis": { - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", - "dflt": null, - "editType": "calc", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "valType": "subplotid" - }, - "colorscale": { - "description": "Sets the colorscale. Has an effect only if in `marker.line.color` is set to a numerical array. 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 `marker.line.cmin` and `marker.line.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.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "autocolorscale": false - }, - "valType": "colorscale" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "editType": "calc", - "reversescale": { - "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color` is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color.", - "dflt": false, - "editType": "plot", - "valType": "boolean" - }, - "role": "object", - "width": { - "anim": true, - "arrayOk": true, - "description": "Sets the width (in px) of the lines bounding the marker points.", - "editType": "style", - "min": 0, - "valType": "number" - }, - "widthsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `width`.", - "editType": "none", - "valType": "string" - } - }, - "maxdisplayed": { - "description": "Sets a maximum number of points to be drawn on the graph. *0* corresponds to no limit.", - "dflt": 0, + "description": "Sets the font used for `textinfo` lying outside the sector.", + "editType": "plot", + "family": { + "arrayOk": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", "editType": "plot", - "min": 0, - "valType": "number" + "noBlank": true, + "strict": true, + "valType": "string" }, - "opacity": { - "anim": true, + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" + }, + "lineposition": { "arrayOk": true, - "description": "Sets the marker opacity.", - "editType": "style", - "max": 1, - "min": 0, - "valType": "number" + "description": "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.", + "dflt": "none", + "editType": "plot", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" }, - "opacitysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `opacity`.", + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", "editType": "none", "valType": "string" }, - "reversescale": { - "description": "Reverses the color mapping if true. Has an effect only if in `marker.color` is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color.", - "dflt": false, + "role": "object", + "shadow": { + "arrayOk": true, + "description": "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.", + "dflt": "none", "editType": "plot", - "valType": "boolean" + "valType": "string" }, - "role": "object", - "showscale": { - "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color` is set to a numerical array.", - "dflt": false, - "editType": "calc", - "valType": "boolean" + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", + "valType": "string" }, "size": { - "anim": true, "arrayOk": true, - "description": "Sets the marker size (in px).", - "dflt": 6, - "editType": "calc", - "min": 0, + "editType": "plot", + "min": 1, "valType": "number" }, - "sizemin": { - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the minimum size (in px) of the rendered marker points.", - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "number" + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" }, - "sizemode": { - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the rule for which the data in `size` is converted to pixels.", - "dflt": "diameter", - "editType": "calc", + "style": { + "arrayOk": true, + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "plot", "valType": "enumerated", "values": [ - "diameter", - "area" + "normal", + "italic" ] }, - "sizeref": { - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the scale factor used to determine the rendered size of marker points. Use with `sizemin` and `sizemode`.", - "dflt": 1, + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", + "valType": "string" + }, + "textcase": { + "arrayOk": true, + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", + "valType": "string" + }, + "variant": { + "arrayOk": true, + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" + }, + "weight": { + "arrayOk": true, + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "plot", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + }, + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" + } + }, + "pull": { + "arrayOk": true, + "description": "Sets the fraction of larger radius to pull the sectors out from the center. This can be a constant to pull all slices apart from each other equally or an array to highlight one or more slices.", + "dflt": 0, + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + }, + "pullsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `pull`.", + "editType": "none", + "valType": "string" + }, + "rotation": { + "description": "Instead of the first slice starting at 12 o'clock, rotate to some other angle.", + "dflt": 0, + "editType": "calc", + "valType": "angle" + }, + "scalegroup": { + "description": "If there are multiple pie charts that should be sized according to their totals, link them by providing a non-empty group id here shared by every trace in the same group.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "showlegend": { + "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", + "dflt": true, + "editType": "style", + "valType": "boolean" + }, + "sort": { + "description": "Determines whether or not the sectors are reordered from largest to smallest.", + "dflt": true, + "editType": "calc", + "valType": "boolean" + }, + "stream": { + "editType": "calc", + "maxpoints": { + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot.", + "dflt": 500, + "editType": "calc", + "max": 10000, + "min": 0, + "valType": "number" + }, + "role": "object", + "token": { + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details.", "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" + } + }, + "text": { + "description": "Sets text elements associated with each sector. If trace `textinfo` contains a *text* flag, these elements will be seen on the chart. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", + "editType": "plot", + "valType": "data_array" + }, + "textfont": { + "color": { + "arrayOk": true, + "editType": "plot", + "valType": "color" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "description": "Sets the font used for `textinfo`.", + "editType": "plot", + "family": { + "arrayOk": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "plot", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" + }, + "lineposition": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "plot", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", + "editType": "none", + "valType": "string" + }, + "role": "object", + "shadow": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "plot", + "valType": "string" + }, + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", + "valType": "string" + }, + "size": { + "arrayOk": true, + "editType": "plot", + "min": 1, "valType": "number" }, "sizesrc": { @@ -62771,844 +61723,295 @@ "editType": "none", "valType": "string" }, - "standoff": { - "anim": true, + "style": { "arrayOk": true, - "description": "Moves the marker away from the data point in the direction of `angle` (in px). This can be useful for example if you have another marker at this location and you want to point an arrowhead marker at it.", - "dflt": 0, + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", "editType": "plot", - "min": 0, - "valType": "number" + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] }, - "standoffsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `standoff`.", + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", "editType": "none", "valType": "string" }, - "symbol": { + "textcase": { "arrayOk": true, - "description": "Sets the marker symbol type. Adding 100 is equivalent to appending *-open* to a symbol name. Adding 200 is equivalent to appending *-dot* to a symbol name. Adding 300 is equivalent to appending *-open-dot* or *dot-open* to a symbol name.", - "dflt": "circle", - "editType": "style", + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "plot", "valType": "enumerated", "values": [ - 0, - "0", - "circle", - 100, - "100", - "circle-open", - 200, - "200", - "circle-dot", - 300, - "300", - "circle-open-dot", - 1, - "1", - "square", - 101, - "101", - "square-open", - 201, - "201", - "square-dot", - 301, - "301", - "square-open-dot", - 2, - "2", - "diamond", - 102, - "102", - "diamond-open", - 202, - "202", - "diamond-dot", - 302, - "302", - "diamond-open-dot", - 3, - "3", - "cross", - 103, - "103", - "cross-open", - 203, - "203", - "cross-dot", - 303, - "303", - "cross-open-dot", - 4, - "4", - "x", - 104, - "104", - "x-open", - 204, - "204", - "x-dot", - 304, - "304", - "x-open-dot", - 5, - "5", - "triangle-up", - 105, - "105", - "triangle-up-open", - 205, - "205", - "triangle-up-dot", - 305, - "305", - "triangle-up-open-dot", - 6, - "6", - "triangle-down", - 106, - "106", - "triangle-down-open", - 206, - "206", - "triangle-down-dot", - 306, - "306", - "triangle-down-open-dot", - 7, - "7", - "triangle-left", - 107, - "107", - "triangle-left-open", - 207, - "207", - "triangle-left-dot", - 307, - "307", - "triangle-left-open-dot", - 8, - "8", - "triangle-right", - 108, - "108", - "triangle-right-open", - 208, - "208", - "triangle-right-dot", - 308, - "308", - "triangle-right-open-dot", - 9, - "9", - "triangle-ne", - 109, - "109", - "triangle-ne-open", - 209, - "209", - "triangle-ne-dot", - 309, - "309", - "triangle-ne-open-dot", - 10, - "10", - "triangle-se", - 110, - "110", - "triangle-se-open", - 210, - "210", - "triangle-se-dot", - 310, - "310", - "triangle-se-open-dot", - 11, - "11", - "triangle-sw", - 111, - "111", - "triangle-sw-open", - 211, - "211", - "triangle-sw-dot", - 311, - "311", - "triangle-sw-open-dot", - 12, - "12", - "triangle-nw", - 112, - "112", - "triangle-nw-open", - 212, - "212", - "triangle-nw-dot", - 312, - "312", - "triangle-nw-open-dot", - 13, - "13", - "pentagon", - 113, - "113", - "pentagon-open", - 213, - "213", - "pentagon-dot", - 313, - "313", - "pentagon-open-dot", - 14, - "14", - "hexagon", - 114, - "114", - "hexagon-open", - 214, - "214", - "hexagon-dot", - 314, - "314", - "hexagon-open-dot", - 15, - "15", - "hexagon2", - 115, - "115", - "hexagon2-open", - 215, - "215", - "hexagon2-dot", - 315, - "315", - "hexagon2-open-dot", - 16, - "16", - "octagon", - 116, - "116", - "octagon-open", - 216, - "216", - "octagon-dot", - 316, - "316", - "octagon-open-dot", - 17, - "17", - "star", - 117, - "117", - "star-open", - 217, - "217", - "star-dot", - 317, - "317", - "star-open-dot", - 18, - "18", - "hexagram", - 118, - "118", - "hexagram-open", - 218, - "218", - "hexagram-dot", - 318, - "318", - "hexagram-open-dot", - 19, - "19", - "star-triangle-up", - 119, - "119", - "star-triangle-up-open", - 219, - "219", - "star-triangle-up-dot", - 319, - "319", - "star-triangle-up-open-dot", - 20, - "20", - "star-triangle-down", - 120, - "120", - "star-triangle-down-open", - 220, - "220", - "star-triangle-down-dot", - 320, - "320", - "star-triangle-down-open-dot", - 21, - "21", - "star-square", - 121, - "121", - "star-square-open", - 221, - "221", - "star-square-dot", - 321, - "321", - "star-square-open-dot", - 22, - "22", - "star-diamond", - 122, - "122", - "star-diamond-open", - 222, - "222", - "star-diamond-dot", - 322, - "322", - "star-diamond-open-dot", - 23, - "23", - "diamond-tall", - 123, - "123", - "diamond-tall-open", - 223, - "223", - "diamond-tall-dot", - 323, - "323", - "diamond-tall-open-dot", - 24, - "24", - "diamond-wide", - 124, - "124", - "diamond-wide-open", - 224, - "224", - "diamond-wide-dot", - 324, - "324", - "diamond-wide-open-dot", - 25, - "25", - "hourglass", - 125, - "125", - "hourglass-open", - 26, - "26", - "bowtie", - 126, - "126", - "bowtie-open", - 27, - "27", - "circle-cross", - 127, - "127", - "circle-cross-open", - 28, - "28", - "circle-x", - 128, - "128", - "circle-x-open", - 29, - "29", - "square-cross", - 129, - "129", - "square-cross-open", - 30, - "30", - "square-x", - 130, - "130", - "square-x-open", - 31, - "31", - "diamond-cross", - 131, - "131", - "diamond-cross-open", - 32, - "32", - "diamond-x", - 132, - "132", - "diamond-x-open", - 33, - "33", - "cross-thin", - 133, - "133", - "cross-thin-open", - 34, - "34", - "x-thin", - 134, - "134", - "x-thin-open", - 35, - "35", - "asterisk", - 135, - "135", - "asterisk-open", - 36, - "36", - "hash", - 136, - "136", - "hash-open", - 236, - "236", - "hash-dot", - 336, - "336", - "hash-open-dot", - 37, - "37", - "y-up", - 137, - "137", - "y-up-open", - 38, - "38", - "y-down", - 138, - "138", - "y-down-open", - 39, - "39", - "y-left", - 139, - "139", - "y-left-open", - 40, - "40", - "y-right", - 140, - "140", - "y-right-open", - 41, - "41", - "line-ew", - 141, - "141", - "line-ew-open", - 42, - "42", - "line-ns", - 142, - "142", - "line-ns-open", - 43, - "43", - "line-ne", - 143, - "143", - "line-ne-open", - 44, - "44", - "line-nw", - 144, - "144", - "line-nw-open", - 45, - "45", - "arrow-up", - 145, - "145", - "arrow-up-open", - 46, - "46", - "arrow-down", - 146, - "146", - "arrow-down-open", - 47, - "47", - "arrow-left", - 147, - "147", - "arrow-left-open", - 48, - "48", - "arrow-right", - 148, - "148", - "arrow-right-open", - 49, - "49", - "arrow-bar-up", - 149, - "149", - "arrow-bar-up-open", - 50, - "50", - "arrow-bar-down", - 150, - "150", - "arrow-bar-down-open", - 51, - "51", - "arrow-bar-left", - 151, - "151", - "arrow-bar-left-open", - 52, - "52", - "arrow-bar-right", - 152, - "152", - "arrow-bar-right-open", - 53, - "53", - "arrow", - 153, - "153", - "arrow-open", - 54, - "54", - "arrow-wide", - 154, - "154", - "arrow-wide-open" + "normal", + "word caps", + "upper", + "lower" ] }, - "symbolsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `symbol`.", + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", + "valType": "string" + }, + "variant": { + "arrayOk": true, + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" + }, + "weight": { + "arrayOk": true, + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "plot", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + }, + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", "editType": "none", "valType": "string" } }, - "meta": { - "arrayOk": true, - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", - "editType": "plot", - "valType": "any" - }, - "metasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `meta`.", - "editType": "none", - "valType": "string" - }, - "mode": { - "description": "Determines the drawing mode for this scatter trace. If the provided `mode` includes *text* then the `text` elements appear at the coordinates. Otherwise, the `text` elements appear on hover. If there are less than 20 points and the trace is not stacked then the default is *lines+markers*. Otherwise, *lines*.", + "textinfo": { + "description": "Determines which trace information appear on the graph.", "editType": "calc", "extras": [ "none" ], "flags": [ - "lines", - "markers", - "text" + "label", + "text", + "value", + "percent" ], "valType": "flaglist" }, - "name": { - "description": "Sets the trace name. The trace name appears as the legend item and on hover.", - "editType": "style", + "textposition": { + "arrayOk": true, + "description": "Specifies the location of the `textinfo`.", + "dflt": "auto", + "editType": "plot", + "valType": "enumerated", + "values": [ + "inside", + "outside", + "auto", + "none" + ] + }, + "textpositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textposition`.", + "editType": "none", "valType": "string" }, - "offsetgroup": { - "description": "Set several traces linked to the same position axis or matching axes to the same offsetgroup where bars of the same position coordinate will line up.", - "dflt": "", - "editType": "calc", + "textsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `text`.", + "editType": "none", "valType": "string" }, - "opacity": { - "description": "Sets the opacity of the trace.", - "dflt": 1, - "editType": "style", - "max": 1, - "min": 0, - "valType": "number" + "texttemplate": { + "arrayOk": true, + "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". 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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `label`, `color`, `value`, `percent` and `text`.", + "dflt": "", + "editType": "plot", + "valType": "string" }, - "orientation": { - "description": "Only relevant in the following cases: 1. when `scattermode` is set to *group*. 2. when `stackgroup` is used, and only the first `orientation` found in the `stackgroup` will be used - including if `visible` is *legendonly* but not if it is `false`. Sets the stacking direction. With *v* (*h*), the y (x) values of subsequent traces are added. Also affects the default value of `fill`.", - "editType": "calc", - "valType": "enumerated", - "values": [ - "v", - "h" - ] + "texttemplatesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `texttemplate`.", + "editType": "none", + "valType": "string" }, - "selected": { - "editType": "style", - "marker": { + "title": { + "editType": "plot", + "font": { "color": { - "description": "Sets the marker color of selected points.", - "editType": "style", + "arrayOk": true, + "editType": "plot", "valType": "color" }, - "editType": "style", - "opacity": { - "description": "Sets the marker opacity of selected points.", - "editType": "style", - "max": 1, - "min": 0, - "valType": "number" + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" }, - "role": "object", - "size": { - "description": "Sets the marker size of selected points.", - "editType": "style", - "min": 0, + "description": "Sets the font used for `title`. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "plot", + "family": { + "arrayOk": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "plot", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" + }, + "lineposition": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "plot", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", + "editType": "none", + "valType": "string" + }, + "role": "object", + "shadow": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "plot", + "valType": "string" + }, + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", + "valType": "string" + }, + "size": { + "arrayOk": true, + "editType": "plot", + "min": 1, "valType": "number" - } - }, - "role": "object", - "textfont": { - "color": { - "description": "Sets the text font color of selected points.", - "editType": "style", - "valType": "color" }, - "editType": "style", - "role": "object" - } - }, - "selectedpoints": { - "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect.", - "editType": "calc", - "valType": "any" - }, - "showlegend": { - "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", - "dflt": true, - "editType": "style", - "valType": "boolean" - }, - "stackgaps": { - "description": "Only relevant when `stackgroup` is used, and only the first `stackgaps` found in the `stackgroup` will be used - including if `visible` is *legendonly* but not if it is `false`. Determines how we handle locations at which other traces in this group have data but this one does not. With *infer zero* we insert a zero at these locations. With *interpolate* we linearly interpolate between existing values, and extrapolate a constant beyond the existing values.", - "dflt": "infer zero", - "editType": "calc", - "valType": "enumerated", - "values": [ - "infer zero", - "interpolate" - ] - }, - "stackgroup": { - "description": "Set several scatter traces (on the same subplot) to the same stackgroup in order to add their y values (or their x values if `orientation` is *h*). If blank or omitted this trace will not be stacked. Stacking also turns `fill` on by default, using *tonexty* (*tonextx*) if `orientation` is *h* (*v*) and sets the default `mode` to *lines* irrespective of point count. You can only stack on a numeric (linear or log) axis. Traces in a `stackgroup` will only fill to (or be filled to) other traces in the same group. With multiple `stackgroup`s or some traces stacked and some not, if fill-linked traces are not already consecutive, the later ones will be pushed down in the drawing order.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "stream": { - "editType": "calc", - "maxpoints": { - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot.", - "dflt": 500, - "editType": "calc", - "max": 10000, - "min": 0, - "valType": "number" - }, - "role": "object", - "token": { - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details.", - "editType": "calc", - "noBlank": true, - "strict": true, - "valType": "string" - } - }, - "text": { - "arrayOk": true, - "description": "Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "textfont": { - "color": { - "arrayOk": true, - "editType": "style", - "valType": "color" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "description": "Sets the text font.", - "editType": "calc", - "family": { - "arrayOk": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" - }, - "lineposition": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "calc", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", - "valType": "string" - }, - "role": "object", - "shadow": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "calc", - "valType": "string" - }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", - "editType": "none", - "valType": "string" - }, - "size": { - "arrayOk": true, - "editType": "calc", - "min": 1, - "valType": "number" - }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" - }, - "style": { - "arrayOk": true, - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" - }, - "textcase": { - "arrayOk": true, - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, + "style": { + "arrayOk": true, + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", + "valType": "string" + }, + "textcase": { + "arrayOk": true, + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", + "valType": "string" + }, + "variant": { + "arrayOk": true, + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "plot", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" + }, + "weight": { + "arrayOk": true, + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "plot", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + }, + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" + } }, - "variant": { - "arrayOk": true, - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "calc", + "position": { + "description": "Specifies the location of the `title`. Note that the title's position used to be set by the now deprecated `titleposition` attribute.", + "editType": "plot", "valType": "enumerated", "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" + "top left", + "top center", + "top right", + "middle center", + "bottom left", + "bottom center", + "bottom right" ] }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" - }, - "weight": { - "arrayOk": true, - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "calc", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", + "role": "object", + "text": { + "description": "Sets the title of the chart. If it is empty, no title is displayed. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "dflt": "", + "editType": "plot", "valType": "string" } }, - "textposition": { - "arrayOk": true, - "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates.", - "dflt": "middle center", - "editType": "calc", - "valType": "enumerated", - "values": [ - "top left", - "top center", - "top right", - "middle left", - "middle center", - "middle right", - "bottom left", - "bottom center", - "bottom right" - ] - }, - "textpositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textposition`.", - "editType": "none", - "valType": "string" - }, - "textsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `text`.", - "editType": "none", - "valType": "string" - }, - "texttemplate": { - "arrayOk": true, - "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". 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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. ", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "texttemplatesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `texttemplate`.", - "editType": "none", - "valType": "string" - }, "transforms": { "items": { "transform": { @@ -63619,9 +62022,8 @@ }, "role": "object" }, - "type": "scatter", + "type": "pie", "uid": { - "anim": true, "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", "editType": "plot", "valType": "string" @@ -63631,40 +62033,15 @@ "editType": "none", "valType": "any" }, - "unselected": { - "editType": "style", - "marker": { - "color": { - "description": "Sets the marker color of unselected points, applied only when a selection exists.", - "editType": "style", - "valType": "color" - }, - "editType": "style", - "opacity": { - "description": "Sets the marker opacity of unselected points, applied only when a selection exists.", - "editType": "style", - "max": 1, - "min": 0, - "valType": "number" - }, - "role": "object", - "size": { - "description": "Sets the marker size of unselected points, applied only when a selection exists.", - "editType": "style", - "min": 0, - "valType": "number" - } - }, - "role": "object", - "textfont": { - "color": { - "description": "Sets the text font color of unselected points, applied only when a selection exists.", - "editType": "style", - "valType": "color" - }, - "editType": "style", - "role": "object" - } + "values": { + "description": "Sets the values of the sectors. If omitted, we count occurrences of each label.", + "editType": "calc", + "valType": "data_array" + }, + "valuessrc": { + "description": "Sets the source reference on Chart Studio Cloud for `values`.", + "editType": "none", + "valType": "string" }, "visible": { "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", @@ -63676,208 +62053,44 @@ false, "legendonly" ] + } + }, + "categories": [ + "pie-like", + "pie", + "showLegend" + ], + "layoutAttributes": { + "extendpiecolors": { + "description": "If `true`, the pie slice colors (whether given by `piecolorway` or inherited from `colorway`) will be extended to three times its original length by first repeating every color 20% lighter then each color 20% darker. This is intended to reduce the likelihood of reusing the same color when you have many slices, but you can set `false` to disable. Colors provided in the trace, using `marker.colors`, are never extended.", + "dflt": true, + "editType": "calc", + "valType": "boolean" }, - "x": { - "anim": true, - "description": "Sets the x coordinates.", - "editType": "calc+clearAxisTypes", - "valType": "data_array" - }, - "x0": { - "anim": true, - "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step.", - "dflt": 0, - "editType": "calc+clearAxisTypes", - "valType": "any" - }, - "xaxis": { - "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on.", - "dflt": "x", - "editType": "calc+clearAxisTypes", - "valType": "subplotid" - }, - "xcalendar": { - "description": "Sets the calendar system to use with `x` date data.", - "dflt": "gregorian", + "hiddenlabels": { + "description": "hiddenlabels is the funnelarea & pie chart analog of visible:'legendonly' but it can contain many labels, and can simultaneously hide slices from several pies/funnelarea charts", "editType": "calc", - "valType": "enumerated", - "values": [ - "chinese", - "coptic", - "discworld", - "ethiopian", - "gregorian", - "hebrew", - "islamic", - "jalali", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "taiwan", - "thai", - "ummalqura" - ] + "valType": "data_array" }, - "xhoverformat": { - "description": "Sets the hover text formatting rulefor `x` 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*By default the values are formatted using `xaxis.hoverformat`.", - "dflt": "", + "hiddenlabelssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hiddenlabels`.", "editType": "none", "valType": "string" }, - "xperiod": { - "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer.", - "dflt": 0, - "editType": "calc", - "valType": "any" - }, - "xperiod0": { - "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01.", - "editType": "calc", - "valType": "any" - }, - "xperiodalignment": { - "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis.", - "dflt": "middle", + "piecolorway": { + "description": "Sets the default pie slice colors. Defaults to the main `colorway` used for trace colors. If you specify a new list here it can still be extended with lighter and darker colors, see `extendpiecolors`.", "editType": "calc", - "valType": "enumerated", - "values": [ - "start", - "middle", - "end" - ] - }, - "xsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `x`.", - "editType": "none", - "valType": "string" - }, - "y": { - "anim": true, - "description": "Sets the y coordinates.", - "editType": "calc+clearAxisTypes", - "valType": "data_array" - }, - "y0": { - "anim": true, - "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step.", - "dflt": 0, - "editType": "calc+clearAxisTypes", - "valType": "any" - }, - "yaxis": { - "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on.", - "dflt": "y", - "editType": "calc+clearAxisTypes", - "valType": "subplotid" - }, - "ycalendar": { - "description": "Sets the calendar system to use with `y` date data.", - "dflt": "gregorian", - "editType": "calc", - "valType": "enumerated", - "values": [ - "chinese", - "coptic", - "discworld", - "ethiopian", - "gregorian", - "hebrew", - "islamic", - "jalali", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "taiwan", - "thai", - "ummalqura" - ] - }, - "yhoverformat": { - "description": "Sets the hover text formatting rulefor `y` 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*By default the values are formatted using `yaxis.hoverformat`.", - "dflt": "", - "editType": "none", - "valType": "string" - }, - "yperiod": { - "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the y axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer.", - "dflt": 0, - "editType": "calc", - "valType": "any" - }, - "yperiod0": { - "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the y0 axis. When `y0period` is round number of weeks, the `y0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01.", - "editType": "calc", - "valType": "any" - }, - "yperiodalignment": { - "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the y axis.", - "dflt": "middle", - "editType": "calc", - "valType": "enumerated", - "values": [ - "start", - "middle", - "end" - ] - }, - "ysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `y`.", - "editType": "none", - "valType": "string" - }, - "zorder": { - "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", - "dflt": 0, - "editType": "plot", - "valType": "integer" - } - }, - "categories": [ - "cartesian", - "svg", - "symbols", - "errorBarsOK", - "showLegend", - "scatter-like", - "zoomScale" - ], - "layoutAttributes": { - "scattergap": { - "description": "Sets the gap (in plot fraction) between scatter points of adjacent location coordinates. Defaults to `bargap`.", - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - "scattermode": { - "description": "Determines how scatter points at the same location coordinate are displayed on the graph. With *group*, the scatter points are plotted next to one another centered around the shared location. With *overlay*, the scatter points are plotted over one another, you might need to reduce *opacity* to see multiple scatter points.", - "dflt": "overlay", - "editType": "calc", - "valType": "enumerated", - "values": [ - "group", - "overlay" - ] + "valType": "colorlist" } }, "meta": { - "description": "The scatter trace type encompasses line charts, scatter charts, text charts, and bubble charts. The data visualized as scatter point or lines is set in `x` and `y`. Text (appearing either on the chart or on hover only) is via `text`. Bubble charts are achieved by setting `marker.size` and/or `marker.color` to numerical arrays." + "description": "A data visualized by the sectors of the pie is set in `values`. The sector labels are set in `labels`. The sector colors are set in `marker.colors`" }, - "type": "scatter" + "type": "pie" }, - "scatter3d": { + "pointcloud": { "animatable": false, "attributes": { - "connectgaps": { - "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the provided data arrays are connected.", - "dflt": false, - "editType": "calc", - "valType": "boolean" - }, "customdata": { "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", "editType": "calc", @@ -63888,307 +62101,11 @@ "editType": "none", "valType": "string" }, - "error_x": { - "_deprecated": { - "opacity": { - "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity.", - "editType": "calc", - "valType": "number" - } - }, - "array": { - "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data.", - "editType": "calc", - "valType": "data_array" - }, - "arrayminus": { - "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data.", - "editType": "calc", - "valType": "data_array" - }, - "arrayminussrc": { - "description": "Sets the source reference on Chart Studio Cloud for `arrayminus`.", - "editType": "none", - "valType": "string" - }, - "arraysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `array`.", - "editType": "none", - "valType": "string" - }, - "color": { - "description": "Sets the stoke color of the error bars.", - "editType": "calc", - "valType": "color" - }, - "copy_zstyle": { - "editType": "calc", - "valType": "boolean" - }, - "editType": "calc", - "role": "object", - "symmetric": { - "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars.", - "editType": "calc", - "valType": "boolean" - }, - "thickness": { - "description": "Sets the thickness (in px) of the error bars.", - "dflt": 2, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "traceref": { - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "integer" - }, - "tracerefminus": { - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "integer" - }, - "type": { - "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`.", - "editType": "calc", - "valType": "enumerated", - "values": [ - "percent", - "constant", - "sqrt", - "data" - ] - }, - "value": { - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars.", - "dflt": 10, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "valueminus": { - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars", - "dflt": 10, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "visible": { - "description": "Determines whether or not this set of error bars is visible.", - "editType": "calc", - "valType": "boolean" - }, - "width": { - "description": "Sets the width (in px) of the cross-bar at both ends of the error bars.", - "editType": "calc", - "min": 0, - "valType": "number" - } - }, - "error_y": { - "_deprecated": { - "opacity": { - "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity.", - "editType": "calc", - "valType": "number" - } - }, - "array": { - "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data.", - "editType": "calc", - "valType": "data_array" - }, - "arrayminus": { - "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data.", - "editType": "calc", - "valType": "data_array" - }, - "arrayminussrc": { - "description": "Sets the source reference on Chart Studio Cloud for `arrayminus`.", - "editType": "none", - "valType": "string" - }, - "arraysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `array`.", - "editType": "none", - "valType": "string" - }, - "color": { - "description": "Sets the stoke color of the error bars.", - "editType": "calc", - "valType": "color" - }, - "copy_zstyle": { - "editType": "calc", - "valType": "boolean" - }, - "editType": "calc", - "role": "object", - "symmetric": { - "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars.", - "editType": "calc", - "valType": "boolean" - }, - "thickness": { - "description": "Sets the thickness (in px) of the error bars.", - "dflt": 2, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "traceref": { - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "integer" - }, - "tracerefminus": { - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "integer" - }, - "type": { - "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`.", - "editType": "calc", - "valType": "enumerated", - "values": [ - "percent", - "constant", - "sqrt", - "data" - ] - }, - "value": { - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars.", - "dflt": 10, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "valueminus": { - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars", - "dflt": 10, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "visible": { - "description": "Determines whether or not this set of error bars is visible.", - "editType": "calc", - "valType": "boolean" - }, - "width": { - "description": "Sets the width (in px) of the cross-bar at both ends of the error bars.", - "editType": "calc", - "min": 0, - "valType": "number" - } - }, - "error_z": { - "_deprecated": { - "opacity": { - "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity.", - "editType": "calc", - "valType": "number" - } - }, - "array": { - "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data.", - "editType": "calc", - "valType": "data_array" - }, - "arrayminus": { - "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data.", - "editType": "calc", - "valType": "data_array" - }, - "arrayminussrc": { - "description": "Sets the source reference on Chart Studio Cloud for `arrayminus`.", - "editType": "none", - "valType": "string" - }, - "arraysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `array`.", - "editType": "none", - "valType": "string" - }, - "color": { - "description": "Sets the stoke color of the error bars.", - "editType": "calc", - "valType": "color" - }, - "editType": "calc", - "role": "object", - "symmetric": { - "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars.", - "editType": "calc", - "valType": "boolean" - }, - "thickness": { - "description": "Sets the thickness (in px) of the error bars.", - "dflt": 2, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "traceref": { - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "integer" - }, - "tracerefminus": { - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "integer" - }, - "type": { - "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`.", - "editType": "calc", - "valType": "enumerated", - "values": [ - "percent", - "constant", - "sqrt", - "data" - ] - }, - "value": { - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars.", - "dflt": 10, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "valueminus": { - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars", - "dflt": 10, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "visible": { - "description": "Determines whether or not this set of error bars is visible.", - "editType": "calc", - "valType": "boolean" - }, - "width": { - "description": "Sets the width (in px) of the cross-bar at both ends of the error bars.", - "editType": "calc", - "min": 0, - "valType": "number" - } - }, "hoverinfo": { "arrayOk": true, "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", "dflt": "all", - "editType": "calc", + "editType": "none", "extras": [ "all", "none", @@ -64407,37 +62324,23 @@ }, "role": "object" }, - "hovertemplate": { - "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "hovertemplatesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", - "editType": "none", - "valType": "string" - }, - "hovertext": { - "arrayOk": true, - "description": "Sets text elements associated with each (x,y,z) triplet. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y,z) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag.", - "dflt": "", + "ids": { + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", "editType": "calc", - "valType": "string" + "valType": "data_array" }, - "hovertextsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hovertext`.", + "idssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ids`.", "editType": "none", "valType": "string" }, - "ids": { - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", + "indices": { + "description": "A sequential value, 0..n, supply it to avoid creating this array inside plotting. If specified, it must be a typed `Int32Array` array. Its length must be equal to or greater than the number of points. For the best performance and memory use, create one large `indices` typed array that is guaranteed to be at least as long as the largest number of points during use, and reuse it on each `Plotly.restyle()` call.", "editType": "calc", "valType": "data_array" }, - "idssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ids`.", + "indicessrc": { + "description": "Sets the source reference on Chart Studio Cloud for `indices`.", "editType": "none", "valType": "string" }, @@ -64564,369 +62467,825 @@ "min": 0, "valType": "number" }, - "line": { - "autocolorscale": { - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `line.colorscale`. Has an effect only if in `line.color` is set to a numerical array. 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.", - "dflt": true, + "marker": { + "blend": { + "description": "Determines if colors are blended together for a translucency effect in case `opacity` is specified as a value less then `1`. Setting `blend` to `true` reduces zoom/pan speed if used with large numbers of points.", + "dflt": null, "editType": "calc", - "impliedEdits": {}, "valType": "boolean" }, - "cauto": { - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `line.color`) or the bounds set in `line.cmin` and `line.cmax` Has an effect only if in `line.color` is set to a numerical array. Defaults to `false` when `line.cmin` and `line.cmax` are set by the user.", - "dflt": true, + "border": { + "arearatio": { + "description": "Specifies what fraction of the marker area is covered with the border.", + "dflt": 0, + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + }, + "color": { + "arrayOk": false, + "description": "Sets the stroke color. It accepts a specific color. If the color is not fully opaque and there are hundreds of thousands of points, it may cause slower zooming and panning.", + "editType": "calc", + "valType": "color" + }, "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" + "role": "object" }, - "cmax": { - "description": "Sets the upper bound of the color domain. Has an effect only if in `line.color` is set to a numerical array. Value should have the same units as in `line.color` and if set, `line.cmin` must be set as well.", - "dflt": null, + "color": { + "arrayOk": false, + "description": "Sets the marker fill color. It accepts a specific color. If the color is not fully opaque and there are hundreds of thousands of points, it may cause slower zooming and panning.", "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "valType": "number" + "valType": "color" }, - "cmid": { - "description": "Sets the mid-point of the color domain by scaling `line.cmin` and/or `line.cmax` to be equidistant to this point. Has an effect only if in `line.color` is set to a numerical array. Value should have the same units as in `line.color`. Has no effect when `line.cauto` is `false`.", - "dflt": null, + "editType": "calc", + "opacity": { + "arrayOk": false, + "description": "Sets the marker opacity. The default value is `1` (fully opaque). If the markers are not fully opaque and there are hundreds of thousands of points, it may cause slower zooming and panning. Opacity fades the color even if `blend` is left on `false` even if there is no translucency effect in that case.", + "dflt": 1, "editType": "calc", - "impliedEdits": {}, + "max": 1, + "min": 0, "valType": "number" }, - "cmin": { - "description": "Sets the lower bound of the color domain. Has an effect only if in `line.color` is set to a numerical array. Value should have the same units as in `line.color` and if set, `line.cmax` must be set as well.", - "dflt": null, + "role": "object", + "sizemax": { + "description": "Sets the maximum size (in px) of the rendered marker points. Effective when the `pointcloud` shows only few points.", + "dflt": 20, "editType": "calc", - "impliedEdits": { - "cauto": false - }, + "min": 0.1, "valType": "number" }, - "color": { - "arrayOk": true, - "description": "Sets the line color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `line.cmin` and `line.cmax` if set.", + "sizemin": { + "description": "Sets the minimum size (in px) of the rendered marker points, effective when the `pointcloud` shows a million or more points.", + "dflt": 0.5, "editType": "calc", - "valType": "color" + "max": 2, + "min": 0.1, + "valType": "number" + } + }, + "meta": { + "arrayOk": true, + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", + "editType": "plot", + "valType": "any" + }, + "metasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `meta`.", + "editType": "none", + "valType": "string" + }, + "name": { + "description": "Sets the trace name. The trace name appears as the legend item and on hover.", + "editType": "style", + "valType": "string" + }, + "opacity": { + "description": "Sets the opacity of the trace.", + "dflt": 1, + "editType": "style", + "max": 1, + "min": 0, + "valType": "number" + }, + "showlegend": { + "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", + "dflt": true, + "editType": "style", + "valType": "boolean" + }, + "stream": { + "editType": "calc", + "maxpoints": { + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot.", + "dflt": 500, + "editType": "calc", + "max": 10000, + "min": 0, + "valType": "number" }, - "coloraxis": { - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", - "dflt": null, + "role": "object", + "token": { + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details.", "editType": "calc", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "valType": "subplotid" + "noBlank": true, + "strict": true, + "valType": "string" + } + }, + "text": { + "arrayOk": true, + "description": "Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "textsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `text`.", + "editType": "none", + "valType": "string" + }, + "type": "pointcloud", + "uid": { + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", + "editType": "plot", + "valType": "string" + }, + "uirevision": { + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.", + "editType": "none", + "valType": "any" + }, + "visible": { + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", + "dflt": true, + "editType": "calc", + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ] + }, + "x": { + "description": "Sets the x coordinates.", + "editType": "calc+clearAxisTypes", + "valType": "data_array" + }, + "xaxis": { + "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on.", + "dflt": "x", + "editType": "calc+clearAxisTypes", + "valType": "subplotid" + }, + "xbounds": { + "description": "Specify `xbounds` in the shape of `[xMin, xMax] to avoid looping through the `xy` typed array. Use it in conjunction with `xy` and `ybounds` for the performance benefits.", + "editType": "calc", + "valType": "data_array" + }, + "xboundssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `xbounds`.", + "editType": "none", + "valType": "string" + }, + "xsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `x`.", + "editType": "none", + "valType": "string" + }, + "xy": { + "description": "Faster alternative to specifying `x` and `y` separately. If supplied, it must be a typed `Float32Array` array that represents points such that `xy[i * 2] = x[i]` and `xy[i * 2 + 1] = y[i]`", + "editType": "calc", + "valType": "data_array" + }, + "xysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `xy`.", + "editType": "none", + "valType": "string" + }, + "y": { + "description": "Sets the y coordinates.", + "editType": "calc+clearAxisTypes", + "valType": "data_array" + }, + "yaxis": { + "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on.", + "dflt": "y", + "editType": "calc+clearAxisTypes", + "valType": "subplotid" + }, + "ybounds": { + "description": "Specify `ybounds` in the shape of `[yMin, yMax] to avoid looping through the `xy` typed array. Use it in conjunction with `xy` and `xbounds` for the performance benefits.", + "editType": "calc", + "valType": "data_array" + }, + "yboundssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ybounds`.", + "editType": "none", + "valType": "string" + }, + "ysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `y`.", + "editType": "none", + "valType": "string" + } + }, + "categories": [ + "gl", + "gl2d", + "showLegend" + ], + "meta": { + "description": "*pointcloud* trace is deprecated! Please consider switching to the *scattergl* trace type. The data visualized as a point cloud set in `x` and `y` using the WebGl plotting engine." + }, + "type": "pointcloud" + }, + "sankey": { + "animatable": false, + "attributes": { + "arrangement": { + "description": "If value is `snap` (the default), the node arrangement is assisted by automatic snapping of elements to preserve space between nodes specified via `nodepad`. If value is `perpendicular`, the nodes can only move along a line perpendicular to the flow. If value is `freeform`, the nodes can freely move on the plane. If value is `fixed`, the nodes are stationary.", + "dflt": "snap", + "editType": "calc", + "valType": "enumerated", + "values": [ + "snap", + "perpendicular", + "freeform", + "fixed" + ] + }, + "customdata": { + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", + "editType": "calc", + "valType": "data_array" + }, + "customdatasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", + "editType": "none", + "valType": "string" + }, + "domain": { + "column": { + "description": "If there is a layout grid, use the domain for this column in the grid for this sankey trace .", + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "integer" }, - "colorbar": { - "_deprecated": { - "title": { - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "calc", + "role": "object", + "row": { + "description": "If there is a layout grid, use the domain for this row in the grid for this sankey trace .", + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "integer" + }, + "x": { + "description": "Sets the horizontal domain of this sankey trace (in plot fraction).", + "dflt": [ + 0, + 1 + ], + "editType": "calc", + "items": [ + { "editType": "calc", - "valType": "string" + "max": 1, + "min": 0, + "valType": "number" }, - "titlefont": { - "color": { - "editType": "calc", - "valType": "color" - }, - "description": "Deprecated in favor of color bar's `title.font`.", + { "editType": "calc", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "calc", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "calc", - "valType": "string" - }, - "size": { - "editType": "calc", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "calc", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } + "max": 1, + "min": 0, + "valType": "number" + } + ], + "valType": "info_array" + }, + "y": { + "description": "Sets the vertical domain of this sankey trace (in plot fraction).", + "dflt": [ + 0, + 1 + ], + "editType": "calc", + "items": [ + { + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" }, - "titleside": { - "description": "Deprecated in favor of color bar's `title.side`.", - "dflt": "top", + { "editType": "calc", - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ] + "max": 1, + "min": 0, + "valType": "number" } - }, - "bgcolor": { - "description": "Sets the color of padded area.", - "dflt": "rgba(0,0,0,0)", + ], + "valType": "info_array" + } + }, + "hoverinfo": { + "arrayOk": false, + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired. Note that this attribute is superseded by `node.hoverinfo` and `node.hoverinfo` for nodes and links respectively.", + "dflt": "all", + "editType": "calc", + "extras": [ + "all", + "none", + "skip" + ], + "flags": [], + "valType": "flaglist" + }, + "hoverlabel": { + "align": { + "arrayOk": true, + "description": "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", + "dflt": "auto", + "editType": "calc", + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ] + }, + "alignsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `align`.", + "editType": "none", + "valType": "string" + }, + "bgcolor": { + "arrayOk": true, + "description": "Sets the background color of the hover labels for this trace", + "editType": "calc", + "valType": "color" + }, + "bgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", + "editType": "none", + "valType": "string" + }, + "bordercolor": { + "arrayOk": true, + "description": "Sets the border color of the hover labels for this trace.", + "editType": "calc", + "valType": "color" + }, + "bordercolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", + "editType": "none", + "valType": "string" + }, + "editType": "calc", + "font": { + "color": { + "arrayOk": true, "editType": "calc", "valType": "color" }, - "bordercolor": { - "description": "Sets the axis line color.", - "dflt": "#444", - "editType": "calc", - "valType": "color" + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" }, - "borderwidth": { - "description": "Sets the width (in px) or the border enclosing this color bar.", - "dflt": 0, + "description": "Sets the font used in hover labels.", + "editType": "calc", + "family": { + "arrayOk": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", "editType": "calc", - "min": 0, - "valType": "number" + "noBlank": true, + "strict": true, + "valType": "string" }, - "dtick": { - "description": "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*, 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* 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*", - "editType": "calc", - "impliedEdits": { - "tickmode": "linear" - }, - "valType": "any" + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" }, - "editType": "calc", - "exponentformat": { - "description": "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.", - "dflt": "B", + "lineposition": { + "arrayOk": true, + "description": "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.", + "dflt": "none", "editType": "calc", - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ] + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" }, - "labelalias": { - "description": "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.", - "dflt": false, - "editType": "calc", - "valType": "any" + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", + "editType": "none", + "valType": "string" }, - "len": { - "description": "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.", - "dflt": 1, + "role": "object", + "shadow": { + "arrayOk": true, + "description": "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.", + "dflt": "none", "editType": "calc", - "min": 0, - "valType": "number" + "valType": "string" }, - "lenmode": { - "description": "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.", - "dflt": "fraction", - "editType": "calc", - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ] + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", + "valType": "string" }, - "minexponent": { - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", - "dflt": 3, + "size": { + "arrayOk": true, "editType": "calc", - "min": 0, + "min": 1, "valType": "number" }, - "nticks": { - "description": "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*.", - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "integer" + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" }, - "orientation": { - "description": "Sets the orientation of the colorbar.", - "dflt": "v", + "style": { + "arrayOk": true, + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", "editType": "calc", "valType": "enumerated", "values": [ - "h", - "v" + "normal", + "italic" ] }, - "outlinecolor": { - "description": "Sets the axis line color.", - "dflt": "#444", - "editType": "calc", - "valType": "color" + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", + "valType": "string" }, - "outlinewidth": { - "description": "Sets the width (in px) of the axis line.", - "dflt": 1, + "textcase": { + "arrayOk": true, + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", "editType": "calc", - "min": 0, - "valType": "number" + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] }, - "role": "object", - "separatethousands": { - "description": "If \"true\", even 4-digit integers are separated", - "dflt": false, - "editType": "calc", - "valType": "boolean" + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", + "valType": "string" }, - "showexponent": { - "description": "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.", - "dflt": "all", + "variant": { + "arrayOk": true, + "description": "Sets the variant of the font.", + "dflt": "normal", "editType": "calc", "valType": "enumerated", "values": [ - "all", - "first", - "last", - "none" + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" ] }, - "showticklabels": { - "description": "Determines whether or not the tick labels are drawn.", - "dflt": true, - "editType": "calc", - "valType": "boolean" + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" }, - "showtickprefix": { - "description": "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.", - "dflt": "all", + "weight": { + "arrayOk": true, + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", "editType": "calc", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + }, + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" + } + }, + "namelength": { + "arrayOk": true, + "description": "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.", + "dflt": 15, + "editType": "calc", + "min": -1, + "valType": "integer" + }, + "namelengthsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", + "editType": "none", + "valType": "string" + }, + "role": "object" + }, + "ids": { + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", + "editType": "calc", + "valType": "data_array" + }, + "idssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ids`.", + "editType": "none", + "valType": "string" + }, + "legend": { + "description": "Sets the reference to a legend to show this trace 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.", + "dflt": "legend", + "editType": "style", + "valType": "subplotid" + }, + "legendgrouptitle": { + "editType": "style", + "font": { + "color": { + "editType": "style", + "valType": "color" + }, + "description": "Sets this legend group's title font.", + "editType": "style", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "style", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "style", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "style", + "valType": "string" + }, + "size": { + "editType": "style", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "style", "valType": "enumerated", "values": [ - "all", - "first", - "last", - "none" + "normal", + "italic" ] }, - "showticksuffix": { - "description": "Same as `showtickprefix` but for tick suffixes.", - "dflt": "all", - "editType": "calc", + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "style", "valType": "enumerated", "values": [ - "all", - "first", - "last", - "none" + "normal", + "word caps", + "upper", + "lower" ] }, - "thickness": { - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "dflt": 30, - "editType": "calc", - "min": 0, - "valType": "number" + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "style", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] }, - "thicknessmode": { - "description": "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.", - "dflt": "pixels", + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "style", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "role": "object", + "text": { + "description": "Sets the title of the legend group.", + "dflt": "", + "editType": "style", + "valType": "string" + } + }, + "legendrank": { + "description": "Sets the legend rank for this trace. 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.", + "dflt": 1000, + "editType": "style", + "valType": "number" + }, + "legendwidth": { + "description": "Sets the width (in px or fraction) of the legend for this trace.", + "editType": "style", + "min": 0, + "valType": "number" + }, + "link": { + "arrowlen": { + "description": "Sets the length (in px) of the links arrow, if 0 no arrow will be drawn.", + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "color": { + "arrayOk": true, + "description": "Sets the `link` color. It can be a single value, or an array for specifying color for each `link`. If `link.color` is omitted, then by default, a translucent grey link will be used.", + "editType": "calc", + "valType": "color" + }, + "colorscales": { + "items": { + "concentrationscales": { + "cmax": { + "description": "Sets the upper bound of the color domain.", + "dflt": 1, + "editType": "calc", + "valType": "number" + }, + "cmin": { + "description": "Sets the lower bound of the color domain.", + "dflt": 0, + "editType": "calc", + "valType": "number" + }, + "colorscale": { + "description": "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.", + "dflt": [ + [ + 0, + "white" + ], + [ + 1, + "black" + ] + ], + "editType": "calc", + "impliedEdits": { + "autocolorscale": false + }, + "valType": "colorscale" + }, + "editType": "calc", + "label": { + "description": "The label of the links to color based on their concentration within a flow.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "name": { + "description": "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.", + "editType": "calc", + "valType": "string" + }, + "role": "object", + "templateitemname": { + "description": "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`.", + "editType": "calc", + "valType": "string" + } + } + }, + "role": "object" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "customdata": { + "description": "Assigns extra data to each link.", + "editType": "calc", + "valType": "data_array" + }, + "customdatasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", + "editType": "none", + "valType": "string" + }, + "description": "The links of the Sankey plot.", + "editType": "calc", + "hovercolor": { + "arrayOk": true, + "description": "Sets the `link` hover color. It can be a single value, or an array for specifying hover colors for each `link`. If `link.hovercolor` is omitted, then by default, links will become slightly more opaque when hovered over.", + "editType": "calc", + "valType": "color" + }, + "hovercolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovercolor`.", + "editType": "none", + "valType": "string" + }, + "hoverinfo": { + "description": "Determines which trace information appear when hovering links. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", + "dflt": "all", + "editType": "calc", + "valType": "enumerated", + "values": [ + "all", + "none", + "skip" + ] + }, + "hoverlabel": { + "align": { + "arrayOk": true, + "description": "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", + "dflt": "auto", "editType": "calc", "valType": "enumerated", "values": [ - "fraction", - "pixels" + "left", + "right", + "auto" ] }, - "tick0": { - "description": "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* (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.", - "editType": "calc", - "impliedEdits": { - "tickmode": "linear" - }, - "valType": "any" + "alignsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `align`.", + "editType": "none", + "valType": "string" }, - "tickangle": { - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", - "dflt": "auto", + "bgcolor": { + "arrayOk": true, + "description": "Sets the background color of the hover labels for this trace", "editType": "calc", - "valType": "angle" + "valType": "color" }, - "tickcolor": { - "description": "Sets the tick color.", - "dflt": "#444", + "bgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", + "editType": "none", + "valType": "string" + }, + "bordercolor": { + "arrayOk": true, + "description": "Sets the border color of the hover labels for this trace.", "editType": "calc", "valType": "color" }, - "tickfont": { + "bordercolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", + "editType": "none", + "valType": "string" + }, + "editType": "calc", + "font": { "color": { + "arrayOk": true, "editType": "calc", "valType": "color" }, - "description": "Sets the color bar's tick label font", + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "description": "Sets the font used in hover labels.", "editType": "calc", "family": { + "arrayOk": true, "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", "editType": "calc", "noBlank": true, "strict": true, "valType": "string" }, + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" + }, "lineposition": { + "arrayOk": true, "description": "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.", "dflt": "none", "editType": "calc", @@ -64940,19 +63299,37 @@ ], "valType": "flaglist" }, + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", + "editType": "none", + "valType": "string" + }, "role": "object", "shadow": { + "arrayOk": true, "description": "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.", "dflt": "none", "editType": "calc", "valType": "string" }, + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", + "valType": "string" + }, "size": { + "arrayOk": true, "editType": "calc", "min": 1, "valType": "number" }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, "style": { + "arrayOk": true, "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", "editType": "calc", @@ -64962,7 +63339,13 @@ "italic" ] }, + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", + "valType": "string" + }, "textcase": { + "arrayOk": true, "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", "editType": "calc", @@ -64974,7 +63357,13 @@ "lower" ] }, + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", + "valType": "string" + }, "variant": { + "arrayOk": true, "description": "Sets the variant of the font.", "dflt": "normal", "editType": "calc", @@ -64988,7 +63377,13 @@ "unicase" ] }, + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" + }, "weight": { + "arrayOk": true, "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", "editType": "calc", @@ -64999,990 +63394,1606 @@ "max": 1000, "min": 1, "valType": "integer" + }, + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" } }, - "tickformat": { - "description": "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*", - "dflt": "", + "namelength": { + "arrayOk": true, + "description": "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.", + "dflt": 15, "editType": "calc", + "min": -1, + "valType": "integer" + }, + "namelengthsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", + "editType": "none", "valType": "string" }, - "tickformatstops": { - "items": { - "tickformatstop": { - "dtickrange": { - "description": "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*", - "editType": "calc", - "items": [ - { - "editType": "calc", - "valType": "any" - }, - { - "editType": "calc", - "valType": "any" - } - ], - "valType": "info_array" - }, - "editType": "calc", - "enabled": { - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", - "dflt": true, - "editType": "calc", - "valType": "boolean" - }, - "name": { - "description": "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.", - "editType": "calc", - "valType": "string" - }, - "role": "object", - "templateitemname": { - "description": "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`.", - "editType": "calc", - "valType": "string" - }, - "value": { - "description": "string - dtickformat for described zoom level, the same as *tickformat*", - "dflt": "", - "editType": "calc", - "valType": "string" - } - } - }, - "role": "object" - }, - "ticklabeloverflow": { - "description": "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*.", - "editType": "calc", - "valType": "enumerated", - "values": [ - "allow", - "hide past div", - "hide past domain" - ] - }, - "ticklabelposition": { - "description": "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*.", - "dflt": "outside", + "role": "object" + }, + "hovertemplate": { + "arrayOk": true, + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Variables `source` and `target` are node objects.Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "hovertemplatesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", + "editType": "none", + "valType": "string" + }, + "label": { + "description": "The shown name of the link.", + "dflt": [], + "editType": "calc", + "valType": "data_array" + }, + "labelsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `label`.", + "editType": "none", + "valType": "string" + }, + "line": { + "color": { + "arrayOk": true, + "description": "Sets the color of the `line` around each `link`.", + "dflt": "#444", "editType": "calc", - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside left", - "inside left", - "outside right", - "inside right", - "outside bottom", - "inside bottom" - ] + "valType": "color" }, - "ticklabelstep": { - "description": "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*.", - "dflt": 1, - "editType": "calc", - "min": 1, - "valType": "integer" + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" }, - "ticklen": { - "description": "Sets the tick length (in px).", - "dflt": 5, + "editType": "calc", + "role": "object", + "width": { + "arrayOk": true, + "description": "Sets the width (in px) of the `line` around each `link`.", + "dflt": 0, "editType": "calc", "min": 0, "valType": "number" }, - "tickmode": { - "description": "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).", - "editType": "calc", - "impliedEdits": {}, - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ] + "widthsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `width`.", + "editType": "none", + "valType": "string" + } + }, + "role": "object", + "source": { + "description": "An integer number `[0..nodes.length - 1]` that represents the source node.", + "dflt": [], + "editType": "calc", + "valType": "data_array" + }, + "sourcesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `source`.", + "editType": "none", + "valType": "string" + }, + "target": { + "description": "An integer number `[0..nodes.length - 1]` that represents the target node.", + "dflt": [], + "editType": "calc", + "valType": "data_array" + }, + "targetsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `target`.", + "editType": "none", + "valType": "string" + }, + "value": { + "description": "A numeric value representing the flow volume value.", + "dflt": [], + "editType": "calc", + "valType": "data_array" + }, + "valuesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `value`.", + "editType": "none", + "valType": "string" + } + }, + "meta": { + "arrayOk": true, + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", + "editType": "plot", + "valType": "any" + }, + "metasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `meta`.", + "editType": "none", + "valType": "string" + }, + "name": { + "description": "Sets the trace name. The trace name appears as the legend item and on hover.", + "editType": "style", + "valType": "string" + }, + "node": { + "align": { + "description": "Sets the alignment method used to position the nodes along the horizontal axis.", + "dflt": "justify", + "editType": "calc", + "valType": "enumerated", + "values": [ + "justify", + "left", + "right", + "center" + ] + }, + "color": { + "arrayOk": true, + "description": "Sets the `node` color. It can be a single value, or an array for specifying color for each `node`. If `node.color` is omitted, then the default `Plotly` color palette will be cycled through to have a variety of colors. These defaults are not fully opaque, to allow some visibility of what is beneath the node.", + "editType": "calc", + "valType": "color" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "customdata": { + "description": "Assigns extra data to each node.", + "editType": "calc", + "valType": "data_array" + }, + "customdatasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", + "editType": "none", + "valType": "string" + }, + "description": "The nodes of the Sankey plot.", + "editType": "calc", + "groups": { + "description": "Groups of nodes. Each group is defined by an array with the indices of the nodes it contains. Multiple groups can be specified.", + "dflt": [], + "dimensions": 2, + "editType": "calc", + "freeLength": true, + "impliedEdits": { + "x": [], + "y": [] }, - "tickprefix": { - "description": "Sets a tick label prefix.", - "dflt": "", + "items": { "editType": "calc", - "valType": "string" + "valType": "number" }, - "ticks": { - "description": "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.", - "dflt": "", + "valType": "info_array" + }, + "hoverinfo": { + "description": "Determines which trace information appear when hovering nodes. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", + "dflt": "all", + "editType": "calc", + "valType": "enumerated", + "values": [ + "all", + "none", + "skip" + ] + }, + "hoverlabel": { + "align": { + "arrayOk": true, + "description": "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", + "dflt": "auto", "editType": "calc", "valType": "enumerated", "values": [ - "outside", - "inside", - "" + "left", + "right", + "auto" ] }, - "ticksuffix": { - "description": "Sets a tick label suffix.", - "dflt": "", - "editType": "calc", + "alignsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `align`.", + "editType": "none", "valType": "string" }, - "ticktext": { - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", + "bgcolor": { + "arrayOk": true, + "description": "Sets the background color of the hover labels for this trace", "editType": "calc", - "valType": "data_array" + "valType": "color" }, - "ticktextsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", + "bgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", "editType": "none", "valType": "string" }, - "tickvals": { - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", + "bordercolor": { + "arrayOk": true, + "description": "Sets the border color of the hover labels for this trace.", "editType": "calc", - "valType": "data_array" + "valType": "color" }, - "tickvalssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", + "bordercolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", "editType": "none", "valType": "string" }, - "tickwidth": { - "description": "Sets the tick width (in px).", - "dflt": 1, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "title": { + "editType": "calc", + "font": { + "color": { + "arrayOk": true, + "editType": "calc", + "valType": "color" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "description": "Sets the font used in hover labels.", "editType": "calc", - "font": { - "color": { - "editType": "calc", - "valType": "color" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "family": { + "arrayOk": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", "editType": "calc", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "calc", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "calc", - "valType": "string" - }, - "size": { - "editType": "calc", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "calc", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } + "noBlank": true, + "strict": true, + "valType": "string" + }, + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" + }, + "lineposition": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", + "editType": "none", + "valType": "string" }, "role": "object", - "side": { - "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "shadow": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "calc", + "valType": "string" + }, + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", + "valType": "string" + }, + "size": { + "arrayOk": true, + "editType": "calc", + "min": 1, + "valType": "number" + }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, + "style": { + "arrayOk": true, + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", "editType": "calc", "valType": "enumerated", "values": [ - "right", - "top", - "bottom" + "normal", + "italic" ] }, - "text": { - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", + "valType": "string" + }, + "textcase": { + "arrayOk": true, + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", "valType": "string" - } - }, - "x": { - "description": "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*.", - "editType": "calc", - "valType": "number" - }, - "xanchor": { - "description": "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*.", - "editType": "calc", - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ] - }, - "xpad": { - "description": "Sets the amount of padding (in px) along the x direction.", - "dflt": 10, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "xref": { - "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", - "dflt": "paper", - "editType": "calc", - "valType": "enumerated", - "values": [ - "container", - "paper" - ] - }, - "y": { - "description": "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*.", + }, + "variant": { + "arrayOk": true, + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" + }, + "weight": { + "arrayOk": true, + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "calc", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + }, + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" + } + }, + "namelength": { + "arrayOk": true, + "description": "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.", + "dflt": 15, "editType": "calc", - "valType": "number" + "min": -1, + "valType": "integer" }, - "yanchor": { - "description": "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*.", + "namelengthsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", + "editType": "none", + "valType": "string" + }, + "role": "object" + }, + "hovertemplate": { + "arrayOk": true, + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Variables `sourceLinks` and `targetLinks` are arrays of link objects.Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "hovertemplatesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", + "editType": "none", + "valType": "string" + }, + "label": { + "description": "The shown name of the node.", + "dflt": [], + "editType": "calc", + "valType": "data_array" + }, + "labelsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `label`.", + "editType": "none", + "valType": "string" + }, + "line": { + "color": { + "arrayOk": true, + "description": "Sets the color of the `line` around each `node`.", + "dflt": "#444", "editType": "calc", - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ] + "valType": "color" }, - "ypad": { - "description": "Sets the amount of padding (in px) along the y direction.", - "dflt": 10, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "editType": "calc", + "role": "object", + "width": { + "arrayOk": true, + "description": "Sets the width (in px) of the `line` around each `node`.", + "dflt": 0.5, "editType": "calc", "min": 0, "valType": "number" }, - "yref": { - "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", - "dflt": "paper", - "editType": "calc", - "valType": "enumerated", - "values": [ - "container", - "paper" - ] + "widthsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `width`.", + "editType": "none", + "valType": "string" } }, - "colorscale": { - "description": "Sets the colorscale. Has an effect only if in `line.color` is set to a numerical array. 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 `line.cmin` and `line.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.", - "dflt": null, + "pad": { + "arrayOk": false, + "description": "Sets the padding (in px) between the `nodes`.", + "dflt": 20, "editType": "calc", - "impliedEdits": { - "autocolorscale": false - }, - "valType": "colorscale" + "min": 0, + "valType": "number" }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "role": "object", + "thickness": { + "arrayOk": false, + "description": "Sets the thickness (in px) of the `nodes`.", + "dflt": 20, + "editType": "calc", + "min": 1, + "valType": "number" + }, + "x": { + "description": "The normalized horizontal position of the node.", + "dflt": [], + "editType": "calc", + "valType": "data_array" + }, + "xsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `x`.", "editType": "none", "valType": "string" }, - "dash": { - "description": "Sets the dash style of the lines.", - "dflt": "solid", + "y": { + "description": "The normalized vertical position of the node.", + "dflt": [], + "editType": "calc", + "valType": "data_array" + }, + "ysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `y`.", + "editType": "none", + "valType": "string" + } + }, + "orientation": { + "description": "Sets the orientation of the Sankey diagram.", + "dflt": "h", + "editType": "calc", + "valType": "enumerated", + "values": [ + "v", + "h" + ] + }, + "selectedpoints": { + "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect.", + "editType": "calc", + "valType": "any" + }, + "stream": { + "editType": "calc", + "maxpoints": { + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot.", + "dflt": 500, + "editType": "calc", + "max": 10000, + "min": 0, + "valType": "number" + }, + "role": "object", + "token": { + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" + } + }, + "textfont": { + "color": { + "editType": "calc", + "valType": "color" + }, + "description": "Sets the font for node labels", + "editType": "calc", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "auto", + "editType": "calc", + "valType": "string" + }, + "size": { + "editType": "calc", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", "editType": "calc", "valType": "enumerated", "values": [ - "dash", - "dashdot", - "dot", - "longdash", - "longdashdot", - "solid" + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" ] }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "calc", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "type": "sankey", + "uid": { + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", + "editType": "plot", + "valType": "string" + }, + "uirevision": { + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.", + "editType": "none", + "valType": "any" + }, + "valueformat": { + "description": "Sets the value 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.", + "dflt": ".3s", "editType": "calc", - "reversescale": { - "description": "Reverses the color mapping if true. Has an effect only if in `line.color` is set to a numerical array. If true, `line.cmin` will correspond to the last color in the array and `line.cmax` will correspond to the first color.", - "dflt": false, + "valType": "string" + }, + "valuesuffix": { + "description": "Adds a unit to follow the value in the hover tooltip. Add a space if a separation is necessary from the value.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "visible": { + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", + "dflt": true, + "editType": "calc", + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ] + } + }, + "categories": [ + "noOpacity" + ], + "meta": { + "description": "Sankey plots for network flow data analysis. The nodes are specified in `nodes` and the links between sources and targets in `links`. The colors are set in `nodes[i].color` and `links[i].color`, otherwise defaults are used." + }, + "type": "sankey" + }, + "scatter": { + "animatable": true, + "attributes": { + "alignmentgroup": { + "description": "Set several traces linked to the same position axis or matching axes to the same alignmentgroup. This controls whether bars compute their positional range dependently or independently.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "cliponaxis": { + "description": "Determines whether or not markers and text nodes are clipped about the subplot axes. To show markers and text nodes above axis lines and tick labels, make sure to set `xaxis.layer` and `yaxis.layer` to *below traces*.", + "dflt": true, + "editType": "plot", + "valType": "boolean" + }, + "connectgaps": { + "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the provided data arrays are connected.", + "dflt": false, + "editType": "calc", + "valType": "boolean" + }, + "customdata": { + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", + "editType": "calc", + "valType": "data_array" + }, + "customdatasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", + "editType": "none", + "valType": "string" + }, + "dx": { + "anim": true, + "description": "Sets the x coordinate step. See `x0` for more info.", + "dflt": 1, + "editType": "calc", + "valType": "number" + }, + "dy": { + "anim": true, + "description": "Sets the y coordinate step. See `y0` for more info.", + "dflt": 1, + "editType": "calc", + "valType": "number" + }, + "error_x": { + "_deprecated": { + "opacity": { + "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity.", + "editType": "style", + "valType": "number" + } + }, + "array": { + "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data.", + "editType": "calc", + "valType": "data_array" + }, + "arrayminus": { + "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data.", "editType": "calc", + "valType": "data_array" + }, + "arrayminussrc": { + "description": "Sets the source reference on Chart Studio Cloud for `arrayminus`.", + "editType": "none", + "valType": "string" + }, + "arraysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `array`.", + "editType": "none", + "valType": "string" + }, + "color": { + "description": "Sets the stoke color of the error bars.", + "editType": "style", + "valType": "color" + }, + "copy_ystyle": { + "editType": "plot", "valType": "boolean" }, + "editType": "calc", "role": "object", - "showscale": { - "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `line.color` is set to a numerical array.", - "dflt": false, + "symmetric": { + "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars.", "editType": "calc", "valType": "boolean" }, - "width": { - "description": "Sets the line width (in px).", + "thickness": { + "description": "Sets the thickness (in px) of the error bars.", "dflt": 2, - "editType": "calc", + "editType": "style", "min": 0, "valType": "number" - } - }, - "marker": { - "autocolorscale": { - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color` is set to a numerical array. 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.", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" }, - "cauto": { - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color` is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user.", - "dflt": true, + "traceref": { + "dflt": 0, + "editType": "style", + "min": 0, + "valType": "integer" + }, + "tracerefminus": { + "dflt": 0, + "editType": "style", + "min": 0, + "valType": "integer" + }, + "type": { + "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`.", "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" + "valType": "enumerated", + "values": [ + "percent", + "constant", + "sqrt", + "data" + ] }, - "cmax": { - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well.", - "dflt": null, + "value": { + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars.", + "dflt": 10, "editType": "calc", - "impliedEdits": { - "cauto": false - }, + "min": 0, "valType": "number" }, - "cmid": { - "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`.", - "dflt": null, + "valueminus": { + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars", + "dflt": 10, "editType": "calc", - "impliedEdits": {}, + "min": 0, "valType": "number" }, - "cmin": { - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well.", - "dflt": null, + "visible": { + "description": "Determines whether or not this set of error bars is visible.", "editType": "calc", - "impliedEdits": { - "cauto": false - }, + "valType": "boolean" + }, + "width": { + "description": "Sets the width (in px) of the cross-bar at both ends of the error bars.", + "editType": "plot", + "min": 0, "valType": "number" + } + }, + "error_y": { + "_deprecated": { + "opacity": { + "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity.", + "editType": "style", + "valType": "number" + } }, - "color": { - "arrayOk": true, - "description": "Sets the marker color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set.", + "array": { + "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data.", "editType": "calc", - "valType": "color" + "valType": "data_array" }, - "coloraxis": { - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", - "dflt": null, - "editType": "calc", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "valType": "subplotid" + "arrayminus": { + "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data.", + "editType": "calc", + "valType": "data_array" }, - "colorbar": { - "_deprecated": { - "title": { - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "calc", - "valType": "string" - }, - "titlefont": { - "color": { - "editType": "calc", - "valType": "color" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "calc", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "calc", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "calc", - "valType": "string" - }, - "size": { - "editType": "calc", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "calc", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "titleside": { - "description": "Deprecated in favor of color bar's `title.side`.", - "dflt": "top", - "editType": "calc", - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ] - } - }, - "bgcolor": { - "description": "Sets the color of padded area.", - "dflt": "rgba(0,0,0,0)", - "editType": "calc", + "arrayminussrc": { + "description": "Sets the source reference on Chart Studio Cloud for `arrayminus`.", + "editType": "none", + "valType": "string" + }, + "arraysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `array`.", + "editType": "none", + "valType": "string" + }, + "color": { + "description": "Sets the stoke color of the error bars.", + "editType": "style", + "valType": "color" + }, + "editType": "calc", + "role": "object", + "symmetric": { + "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars.", + "editType": "calc", + "valType": "boolean" + }, + "thickness": { + "description": "Sets the thickness (in px) of the error bars.", + "dflt": 2, + "editType": "style", + "min": 0, + "valType": "number" + }, + "traceref": { + "dflt": 0, + "editType": "style", + "min": 0, + "valType": "integer" + }, + "tracerefminus": { + "dflt": 0, + "editType": "style", + "min": 0, + "valType": "integer" + }, + "type": { + "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "percent", + "constant", + "sqrt", + "data" + ] + }, + "value": { + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars.", + "dflt": 10, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "valueminus": { + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars", + "dflt": 10, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "visible": { + "description": "Determines whether or not this set of error bars is visible.", + "editType": "calc", + "valType": "boolean" + }, + "width": { + "description": "Sets the width (in px) of the cross-bar at both ends of the error bars.", + "editType": "plot", + "min": 0, + "valType": "number" + } + }, + "fill": { + "description": "Sets the area to fill with a solid color. Defaults to *none* unless this trace is stacked, then it gets *tonexty* (*tonextx*) if `orientation` is *v* (*h*) Use with `fillcolor` if not *none*. *tozerox* and *tozeroy* fill to x=0 and y=0 respectively. *tonextx* and *tonexty* fill between the endpoints of this trace and the endpoints of the trace before it, connecting those endpoints with straight lines (to make a stacked area graph); if there is no trace before it, they behave like *tozerox* and *tozeroy*. *toself* connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape. *tonext* fills the space between two traces if one completely encloses the other (eg consecutive contour lines), and behaves like *toself* if there is no trace before it. *tonext* should not be used if one trace does not enclose the other. Traces in a `stackgroup` will only fill to (or be filled to) other traces in the same group. With multiple `stackgroup`s or some traces stacked and some not, if fill-linked traces are not already consecutive, the later ones will be pushed down in the drawing order.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "none", + "tozeroy", + "tozerox", + "tonexty", + "tonextx", + "toself", + "tonext" + ] + }, + "fillcolor": { + "anim": true, + "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available. If fillgradient is specified, fillcolor is ignored except for setting the background color of the hover label, if any.", + "editType": "style", + "valType": "color" + }, + "fillgradient": { + "colorscale": { + "description": "Sets the fill gradient colors as a color scale. The color scale is interpreted as a gradient applied in the direction specified by *orientation*, from the lowest to the highest value of the scatter plot along that axis, or from the center to the most distant point from it, if orientation is *radial*.", + "editType": "style", + "valType": "colorscale" + }, + "description": "Sets a fill gradient. If not specified, the fillcolor is used instead.", + "editType": "calc", + "role": "object", + "start": { + "description": "Sets the gradient start value. It is given as the absolute position on the axis determined by the orientiation. E.g., if orientation is *horizontal*, the gradient will be horizontal and start from the x-position given by start. If omitted, the gradient starts at the lowest value of the trace along the respective axis. Ignored if orientation is *radial*.", + "editType": "calc", + "valType": "number" + }, + "stop": { + "description": "Sets the gradient end value. It is given as the absolute position on the axis determined by the orientiation. E.g., if orientation is *horizontal*, the gradient will be horizontal and end at the x-position given by end. If omitted, the gradient ends at the highest value of the trace along the respective axis. Ignored if orientation is *radial*.", + "editType": "calc", + "valType": "number" + }, + "type": { + "description": "Sets the type/orientation of the color gradient for the fill. Defaults to *none*.", + "dflt": "none", + "editType": "calc", + "valType": "enumerated", + "values": [ + "radial", + "horizontal", + "vertical", + "none" + ] + } + }, + "fillpattern": { + "bgcolor": { + "arrayOk": true, + "description": "When there is no colorscale sets the color of background pattern fill. Defaults to a `marker.color` background when `fillmode` is *overlay*. Otherwise, defaults to a transparent background.", + "editType": "style", + "valType": "color" + }, + "bgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", + "editType": "none", + "valType": "string" + }, + "description": "Sets the pattern within the marker.", + "editType": "style", + "fgcolor": { + "arrayOk": true, + "description": "When there is no colorscale sets the color of foreground pattern fill. Defaults to a `marker.color` background when `fillmode` is *replace*. Otherwise, defaults to dark grey or white to increase contrast with the `bgcolor`.", + "editType": "style", + "valType": "color" + }, + "fgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `fgcolor`.", + "editType": "none", + "valType": "string" + }, + "fgopacity": { + "description": "Sets the opacity of the foreground pattern fill. Defaults to a 0.5 when `fillmode` is *overlay*. Otherwise, defaults to 1.", + "editType": "style", + "max": 1, + "min": 0, + "valType": "number" + }, + "fillmode": { + "description": "Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`.", + "dflt": "replace", + "editType": "style", + "valType": "enumerated", + "values": [ + "replace", + "overlay" + ] + }, + "role": "object", + "shape": { + "arrayOk": true, + "description": "Sets the shape of the pattern fill. By default, no pattern is used for filling the area.", + "dflt": "", + "editType": "style", + "valType": "enumerated", + "values": [ + "", + "/", + "\\", + "x", + "-", + "|", + "+", + "." + ] + }, + "shapesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shape`.", + "editType": "none", + "valType": "string" + }, + "size": { + "arrayOk": true, + "description": "Sets the size of unit squares of the pattern fill in pixels, which corresponds to the interval of repetition of the pattern.", + "dflt": 8, + "editType": "style", + "min": 0, + "valType": "number" + }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, + "solidity": { + "arrayOk": true, + "description": "Sets the solidity of the pattern fill. Solidity is roughly the fraction of the area filled by the pattern. Solidity of 0 shows only the background color without pattern and solidty of 1 shows only the foreground color without pattern.", + "dflt": 0.3, + "editType": "style", + "max": 1, + "min": 0, + "valType": "number" + }, + "soliditysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `solidity`.", + "editType": "none", + "valType": "string" + } + }, + "groupnorm": { + "description": "Only relevant when `stackgroup` is used, and only the first `groupnorm` found in the `stackgroup` will be used - including if `visible` is *legendonly* but not if it is `false`. Sets the normalization for the sum of this `stackgroup`. With *fraction*, the value of each trace at each location is divided by the sum of all trace values at that location. *percent* is the same but multiplied by 100 to show percentages. If there are multiple subplots, or multiple `stackgroup`s on one subplot, each will be normalized within its own set.", + "dflt": "", + "editType": "calc", + "valType": "enumerated", + "values": [ + "", + "fraction", + "percent" + ] + }, + "hoverinfo": { + "arrayOk": true, + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", + "dflt": "all", + "editType": "none", + "extras": [ + "all", + "none", + "skip" + ], + "flags": [ + "x", + "y", + "z", + "text", + "name" + ], + "valType": "flaglist" + }, + "hoverinfosrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", + "editType": "none", + "valType": "string" + }, + "hoverlabel": { + "align": { + "arrayOk": true, + "description": "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", + "dflt": "auto", + "editType": "none", + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ] + }, + "alignsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `align`.", + "editType": "none", + "valType": "string" + }, + "bgcolor": { + "arrayOk": true, + "description": "Sets the background color of the hover labels for this trace", + "editType": "none", + "valType": "color" + }, + "bgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", + "editType": "none", + "valType": "string" + }, + "bordercolor": { + "arrayOk": true, + "description": "Sets the border color of the hover labels for this trace.", + "editType": "none", + "valType": "color" + }, + "bordercolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", + "editType": "none", + "valType": "string" + }, + "editType": "none", + "font": { + "color": { + "arrayOk": true, + "editType": "none", "valType": "color" }, - "bordercolor": { - "description": "Sets the axis line color.", - "dflt": "#444", - "editType": "calc", - "valType": "color" + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" }, - "borderwidth": { - "description": "Sets the width (in px) or the border enclosing this color bar.", - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "number" + "description": "Sets the font used in hover labels.", + "editType": "none", + "family": { + "arrayOk": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "none", + "noBlank": true, + "strict": true, + "valType": "string" }, - "dtick": { - "description": "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*, 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* 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*", - "editType": "calc", - "impliedEdits": { - "tickmode": "linear" - }, - "valType": "any" + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" }, - "editType": "calc", - "exponentformat": { - "description": "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.", - "dflt": "B", - "editType": "calc", - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ] + "lineposition": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "none", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" }, - "labelalias": { - "description": "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.", - "dflt": false, - "editType": "calc", - "valType": "any" + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", + "editType": "none", + "valType": "string" }, - "len": { - "description": "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.", - "dflt": 1, - "editType": "calc", - "min": 0, - "valType": "number" + "role": "object", + "shadow": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "none", + "valType": "string" }, - "lenmode": { - "description": "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.", - "dflt": "fraction", - "editType": "calc", - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ] - }, - "minexponent": { - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", - "dflt": 3, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "nticks": { - "description": "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*.", - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "integer" - }, - "orientation": { - "description": "Sets the orientation of the colorbar.", - "dflt": "v", - "editType": "calc", - "valType": "enumerated", - "values": [ - "h", - "v" - ] - }, - "outlinecolor": { - "description": "Sets the axis line color.", - "dflt": "#444", - "editType": "calc", - "valType": "color" + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", + "valType": "string" }, - "outlinewidth": { - "description": "Sets the width (in px) of the axis line.", - "dflt": 1, - "editType": "calc", - "min": 0, + "size": { + "arrayOk": true, + "editType": "none", + "min": 1, "valType": "number" }, - "role": "object", - "separatethousands": { - "description": "If \"true\", even 4-digit integers are separated", - "dflt": false, - "editType": "calc", - "valType": "boolean" + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" }, - "showexponent": { - "description": "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.", - "dflt": "all", - "editType": "calc", + "style": { + "arrayOk": true, + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "none", "valType": "enumerated", "values": [ - "all", - "first", - "last", - "none" + "normal", + "italic" ] }, - "showticklabels": { - "description": "Determines whether or not the tick labels are drawn.", - "dflt": true, - "editType": "calc", - "valType": "boolean" - }, - "showtickprefix": { - "description": "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.", - "dflt": "all", - "editType": "calc", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", + "valType": "string" }, - "showticksuffix": { - "description": "Same as `showtickprefix` but for tick suffixes.", - "dflt": "all", - "editType": "calc", + "textcase": { + "arrayOk": true, + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "none", "valType": "enumerated", "values": [ - "all", - "first", - "last", - "none" + "normal", + "word caps", + "upper", + "lower" ] }, - "thickness": { - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "dflt": 30, - "editType": "calc", - "min": 0, - "valType": "number" + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", + "valType": "string" }, - "thicknessmode": { - "description": "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.", - "dflt": "pixels", - "editType": "calc", + "variant": { + "arrayOk": true, + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "none", "valType": "enumerated", "values": [ - "fraction", - "pixels" + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" ] }, - "tick0": { - "description": "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* (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.", - "editType": "calc", - "impliedEdits": { - "tickmode": "linear" - }, - "valType": "any" + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" }, - "tickangle": { - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", - "dflt": "auto", - "editType": "calc", - "valType": "angle" + "weight": { + "arrayOk": true, + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "none", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" }, - "tickcolor": { - "description": "Sets the tick color.", - "dflt": "#444", - "editType": "calc", + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" + } + }, + "namelength": { + "arrayOk": true, + "description": "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.", + "dflt": 15, + "editType": "none", + "min": -1, + "valType": "integer" + }, + "namelengthsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", + "editType": "none", + "valType": "string" + }, + "role": "object" + }, + "hoveron": { + "description": "Do the hover effects highlight individual points (markers or line points) or do they highlight filled regions? If the fill is *toself* or *tonext* and there are no markers or text, then the default is *fills*, otherwise it is *points*.", + "editType": "style", + "flags": [ + "points", + "fills" + ], + "valType": "flaglist" + }, + "hovertemplate": { + "arrayOk": true, + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "dflt": "", + "editType": "none", + "valType": "string" + }, + "hovertemplatesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", + "editType": "none", + "valType": "string" + }, + "hovertext": { + "arrayOk": true, + "description": "Sets hover text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag.", + "dflt": "", + "editType": "style", + "valType": "string" + }, + "hovertextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertext`.", + "editType": "none", + "valType": "string" + }, + "ids": { + "anim": true, + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", + "editType": "calc", + "valType": "data_array" + }, + "idssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ids`.", + "editType": "none", + "valType": "string" + }, + "legend": { + "description": "Sets the reference to a legend to show this trace 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.", + "dflt": "legend", + "editType": "style", + "valType": "subplotid" + }, + "legendgroup": { + "description": "Sets the legend group for this trace. Traces and shapes part of the same legend group hide/show at the same time when toggling legend items.", + "dflt": "", + "editType": "style", + "valType": "string" + }, + "legendgrouptitle": { + "editType": "style", + "font": { + "color": { + "editType": "style", "valType": "color" }, - "tickfont": { - "color": { - "editType": "calc", - "valType": "color" - }, - "description": "Sets the color bar's tick label font", - "editType": "calc", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "calc", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "calc", - "valType": "string" - }, - "size": { - "editType": "calc", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "calc", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "tickformat": { - "description": "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*", - "dflt": "", - "editType": "calc", + "description": "Sets this legend group's title font.", + "editType": "style", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "style", + "noBlank": true, + "strict": true, "valType": "string" }, - "tickformatstops": { - "items": { - "tickformatstop": { - "dtickrange": { - "description": "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*", - "editType": "calc", - "items": [ - { - "editType": "calc", - "valType": "any" - }, - { - "editType": "calc", - "valType": "any" - } - ], - "valType": "info_array" - }, - "editType": "calc", - "enabled": { - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", - "dflt": true, - "editType": "calc", - "valType": "boolean" - }, - "name": { - "description": "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.", - "editType": "calc", - "valType": "string" - }, - "role": "object", - "templateitemname": { - "description": "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`.", - "editType": "calc", - "valType": "string" - }, - "value": { - "description": "string - dtickformat for described zoom level, the same as *tickformat*", - "dflt": "", - "editType": "calc", - "valType": "string" - } - } - }, - "role": "object" - }, - "ticklabeloverflow": { - "description": "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*.", - "editType": "calc", - "valType": "enumerated", - "values": [ - "allow", - "hide past div", - "hide past domain" - ] + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "style", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" }, - "ticklabelposition": { - "description": "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*.", - "dflt": "outside", - "editType": "calc", - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside left", - "inside left", - "outside right", - "inside right", - "outside bottom", - "inside bottom" - ] + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "style", + "valType": "string" }, - "ticklabelstep": { - "description": "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*.", - "dflt": 1, - "editType": "calc", + "size": { + "editType": "style", "min": 1, - "valType": "integer" - }, - "ticklen": { - "description": "Sets the tick length (in px).", - "dflt": 5, - "editType": "calc", - "min": 0, "valType": "number" }, - "tickmode": { - "description": "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).", - "editType": "calc", - "impliedEdits": {}, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "style", "valType": "enumerated", "values": [ - "auto", - "linear", - "array" + "normal", + "italic" ] }, - "tickprefix": { - "description": "Sets a tick label prefix.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "ticks": { - "description": "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.", - "dflt": "", - "editType": "calc", + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "style", "valType": "enumerated", "values": [ - "outside", - "inside", - "" + "normal", + "word caps", + "upper", + "lower" ] }, - "ticksuffix": { - "description": "Sets a tick label suffix.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "ticktext": { - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "editType": "calc", - "valType": "data_array" + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "style", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] }, - "ticktextsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", - "editType": "none", - "valType": "string" - }, - "tickvals": { - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "editType": "calc", - "valType": "data_array" - }, - "tickvalssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", - "editType": "none", - "valType": "string" + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "style", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "role": "object", + "text": { + "description": "Sets the title of the legend group.", + "dflt": "", + "editType": "style", + "valType": "string" + } + }, + "legendrank": { + "description": "Sets the legend rank for this trace. 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.", + "dflt": 1000, + "editType": "style", + "valType": "number" + }, + "legendwidth": { + "description": "Sets the width (in px or fraction) of the legend for this trace.", + "editType": "style", + "min": 0, + "valType": "number" + }, + "line": { + "backoff": { + "arrayOk": true, + "description": "Sets the line back off from the end point of the nth line segment (in px). This option is useful e.g. to avoid overlap with arrowhead markers. With *auto* the lines would trim before markers if `marker.angleref` is set to *previous*.", + "dflt": "auto", + "editType": "plot", + "min": 0, + "valType": "number" + }, + "backoffsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `backoff`.", + "editType": "none", + "valType": "string" + }, + "color": { + "anim": true, + "description": "Sets the line color.", + "editType": "style", + "valType": "color" + }, + "dash": { + "description": "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*).", + "dflt": "solid", + "editType": "style", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] + }, + "editType": "plot", + "role": "object", + "shape": { + "description": "Determines the line shape. With *spline* the lines are drawn using spline interpolation. The other available values correspond to step-wise line shapes.", + "dflt": "linear", + "editType": "plot", + "valType": "enumerated", + "values": [ + "linear", + "spline", + "hv", + "vh", + "hvh", + "vhv" + ] + }, + "simplify": { + "description": "Simplifies lines by removing nearly-collinear points. When transitioning lines, it may be desirable to disable this so that the number of points along the resulting SVG path is unaffected.", + "dflt": true, + "editType": "plot", + "valType": "boolean" + }, + "smoothing": { + "description": "Has an effect only if `shape` is set to *spline* Sets the amount of smoothing. *0* corresponds to no smoothing (equivalent to a *linear* shape).", + "dflt": 1, + "editType": "plot", + "max": 1.3, + "min": 0, + "valType": "number" + }, + "width": { + "anim": true, + "description": "Sets the line width (in px).", + "dflt": 2, + "editType": "style", + "min": 0, + "valType": "number" + } + }, + "marker": { + "angle": { + "anim": false, + "arrayOk": true, + "description": "Sets the marker angle in respect to `angleref`.", + "dflt": 0, + "editType": "plot", + "valType": "angle" + }, + "angleref": { + "anim": false, + "description": "Sets the reference for marker angle. With *previous*, angle 0 points along the line from the previous point to this one. With *up*, angle 0 points toward the top of the screen.", + "dflt": "up", + "editType": "plot", + "valType": "enumerated", + "values": [ + "previous", + "up" + ] + }, + "anglesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `angle`.", + "editType": "none", + "valType": "string" + }, + "autocolorscale": { + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color` is set to a numerical array. 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.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "cauto": { + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color` is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "cmax": { + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well.", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false }, - "tickwidth": { - "description": "Sets the tick width (in px).", - "dflt": 1, - "editType": "calc", - "min": 0, - "valType": "number" + "valType": "number" + }, + "cmid": { + "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`.", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "valType": "number" + }, + "cmin": { + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well.", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false }, - "title": { - "editType": "calc", - "font": { + "valType": "number" + }, + "color": { + "anim": true, + "arrayOk": true, + "description": "Sets the marker color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set.", + "editType": "style", + "valType": "color" + }, + "coloraxis": { + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", + "dflt": null, + "editType": "calc", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "valType": "subplotid" + }, + "colorbar": { + "_deprecated": { + "title": { + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars", + "valType": "string" + }, + "titlefont": { "color": { - "editType": "calc", + "editType": "colorbars", "valType": "color" }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "calc", + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars", "family": { "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc", + "editType": "colorbars", "noBlank": true, "strict": true, "valType": "string" @@ -65990,7 +65001,7 @@ "lineposition": { "description": "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.", "dflt": "none", - "editType": "calc", + "editType": "colorbars", "extras": [ "none" ], @@ -66001,22 +65012,21 @@ ], "valType": "flaglist" }, - "role": "object", "shadow": { "description": "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.", "dflt": "none", - "editType": "calc", + "editType": "colorbars", "valType": "string" }, "size": { - "editType": "calc", + "editType": "colorbars", "min": 1, "valType": "number" }, "style": { "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -66026,7 +65036,7 @@ "textcase": { "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -66038,7 +65048,7 @@ "variant": { "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -66052,7 +65062,7 @@ "weight": { "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "calc", + "editType": "colorbars", "extras": [ "normal", "bold" @@ -66062,1870 +65072,2695 @@ "valType": "integer" } }, - "role": "object", - "side": { - "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "calc", + "titleside": { + "description": "Deprecated in favor of color bar's `title.side`.", + "dflt": "top", + "editType": "colorbars", "valType": "enumerated", "values": [ "right", "top", "bottom" ] - }, - "text": { - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "calc", - "valType": "string" } }, - "x": { - "description": "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*.", - "editType": "calc", + "bgcolor": { + "description": "Sets the color of padded area.", + "dflt": "rgba(0,0,0,0)", + "editType": "colorbars", + "valType": "color" + }, + "bordercolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" + }, + "borderwidth": { + "description": "Sets the width (in px) or the border enclosing this color bar.", + "dflt": 0, + "editType": "colorbars", + "min": 0, "valType": "number" }, - "xanchor": { - "description": "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*.", - "editType": "calc", + "dtick": { + "description": "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*, 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* 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*", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" + }, + "editType": "colorbars", + "exponentformat": { + "description": "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.", + "dflt": "B", + "editType": "colorbars", "valType": "enumerated", "values": [ - "left", - "center", - "right" + "none", + "e", + "E", + "power", + "SI", + "B" ] }, - "xpad": { - "description": "Sets the amount of padding (in px) along the x direction.", - "dflt": 10, - "editType": "calc", + "labelalias": { + "description": "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.", + "dflt": false, + "editType": "colorbars", + "valType": "any" + }, + "len": { + "description": "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.", + "dflt": 1, + "editType": "colorbars", "min": 0, "valType": "number" }, - "xref": { - "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", - "dflt": "paper", - "editType": "calc", + "lenmode": { + "description": "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.", + "dflt": "fraction", + "editType": "colorbars", "valType": "enumerated", "values": [ - "container", - "paper" + "fraction", + "pixels" ] }, - "y": { - "description": "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*.", - "editType": "calc", + "minexponent": { + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", + "dflt": 3, + "editType": "colorbars", + "min": 0, "valType": "number" }, - "yanchor": { - "description": "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*.", - "editType": "calc", + "nticks": { + "description": "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*.", + "dflt": 0, + "editType": "colorbars", + "min": 0, + "valType": "integer" + }, + "orientation": { + "description": "Sets the orientation of the colorbar.", + "dflt": "v", + "editType": "colorbars", "valType": "enumerated", "values": [ - "top", - "middle", - "bottom" + "h", + "v" ] }, - "ypad": { - "description": "Sets the amount of padding (in px) along the y direction.", - "dflt": 10, - "editType": "calc", + "outlinecolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" + }, + "outlinewidth": { + "description": "Sets the width (in px) of the axis line.", + "dflt": 1, + "editType": "colorbars", "min": 0, "valType": "number" }, - "yref": { - "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", - "dflt": "paper", - "editType": "calc", + "role": "object", + "separatethousands": { + "description": "If \"true\", even 4-digit integers are separated", + "dflt": false, + "editType": "colorbars", + "valType": "boolean" + }, + "showexponent": { + "description": "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.", + "dflt": "all", + "editType": "colorbars", "valType": "enumerated", "values": [ - "container", - "paper" + "all", + "first", + "last", + "none" ] - } - }, - "colorscale": { - "description": "Sets the colorscale. Has an effect only if in `marker.color` is set to a numerical array. 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 `marker.cmin` and `marker.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.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "autocolorscale": false - }, - "valType": "colorscale" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "editType": "calc", - "line": { - "autocolorscale": { - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color` is set to a numerical array. 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.", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" }, - "cauto": { - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color` is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user.", + "showticklabels": { + "description": "Determines whether or not the tick labels are drawn.", "dflt": true, - "editType": "calc", - "impliedEdits": {}, + "editType": "colorbars", "valType": "boolean" }, - "cmax": { - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "valType": "number" + "showtickprefix": { + "description": "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.", + "dflt": "all", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] }, - "cmid": { - "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`.", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "valType": "number" + "showticksuffix": { + "description": "Same as `showtickprefix` but for tick suffixes.", + "dflt": "all", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] }, - "cmin": { - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, + "thickness": { + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "dflt": 30, + "editType": "colorbars", + "min": 0, "valType": "number" }, - "color": { - "arrayOk": true, - "description": "Sets the marker.line color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set.", - "editType": "calc", - "valType": "color" - }, - "coloraxis": { - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", - "dflt": null, - "editType": "calc", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "valType": "subplotid" + "thicknessmode": { + "description": "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.", + "dflt": "pixels", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] }, - "colorscale": { - "description": "Sets the colorscale. Has an effect only if in `marker.line.color` is set to a numerical array. 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 `marker.line.cmin` and `marker.line.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.", - "dflt": null, - "editType": "calc", + "tick0": { + "description": "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* (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.", + "editType": "colorbars", "impliedEdits": { - "autocolorscale": false + "tickmode": "linear" }, - "valType": "colorscale" + "valType": "any" }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" + "tickangle": { + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", + "dflt": "auto", + "editType": "colorbars", + "valType": "angle" }, - "editType": "calc", - "reversescale": { - "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color` is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color.", - "dflt": false, - "editType": "calc", - "valType": "boolean" + "tickcolor": { + "description": "Sets the tick color.", + "dflt": "#444", + "editType": "colorbars", + "valType": "color" }, - "role": "object", - "width": { - "arrayOk": false, - "description": "Sets the width (in px) of the lines bounding the marker points.", - "editType": "calc", - "min": 0, - "valType": "number" - } - }, - "opacity": { - "arrayOk": false, - "description": "Sets the marker opacity. Note that the marker opacity for scatter3d traces must be a scalar value for performance reasons. To set a blending opacity value (i.e. which is not transparent), set *marker.color* to an rgba color and use its alpha channel.", - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - "reversescale": { - "description": "Reverses the color mapping if true. Has an effect only if in `marker.color` is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color.", - "dflt": false, - "editType": "calc", - "valType": "boolean" - }, - "role": "object", - "showscale": { - "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color` is set to a numerical array.", - "dflt": false, - "editType": "calc", - "valType": "boolean" - }, - "size": { - "arrayOk": true, - "description": "Sets the marker size (in px).", - "dflt": 8, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "sizemin": { - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the minimum size (in px) of the rendered marker points.", - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "sizemode": { - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the rule for which the data in `size` is converted to pixels.", - "dflt": "diameter", - "editType": "calc", - "valType": "enumerated", - "values": [ - "diameter", - "area" - ] - }, - "sizeref": { - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the scale factor used to determine the rendered size of marker points. Use with `sizemin` and `sizemode`.", - "dflt": 1, - "editType": "calc", - "valType": "number" - }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" - }, - "symbol": { - "arrayOk": true, - "description": "Sets the marker symbol type.", - "dflt": "circle", - "editType": "calc", - "valType": "enumerated", - "values": [ - "circle", - "circle-open", - "cross", - "diamond", - "diamond-open", - "square", - "square-open", - "x" - ] - }, - "symbolsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `symbol`.", - "editType": "none", - "valType": "string" - } - }, - "meta": { - "arrayOk": true, - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", - "editType": "plot", - "valType": "any" - }, - "metasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `meta`.", - "editType": "none", - "valType": "string" - }, - "mode": { - "description": "Determines the drawing mode for this scatter trace. If the provided `mode` includes *text* then the `text` elements appear at the coordinates. Otherwise, the `text` elements appear on hover. If there are less than 20 points and the trace is not stacked then the default is *lines+markers*. Otherwise, *lines*.", - "dflt": "lines+markers", - "editType": "calc", - "extras": [ - "none" - ], - "flags": [ - "lines", - "markers", - "text" - ], - "valType": "flaglist" - }, - "name": { - "description": "Sets the trace name. The trace name appears as the legend item and on hover.", - "editType": "style", - "valType": "string" - }, - "opacity": { - "description": "Sets the opacity of the trace.", - "dflt": 1, - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - "projection": { - "editType": "calc", - "role": "object", - "x": { - "editType": "calc", - "opacity": { - "description": "Sets the projection color.", - "dflt": 1, - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" + "tickfont": { + "color": { + "editType": "colorbars", + "valType": "color" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "valType": "string" + }, + "size": { + "editType": "colorbars", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "colorbars", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } }, - "role": "object", - "scale": { - "description": "Sets the scale factor determining the size of the projection marker points.", - "dflt": 0.6666666666666666, - "editType": "calc", - "max": 10, - "min": 0, - "valType": "number" + "tickformat": { + "description": "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*", + "dflt": "", + "editType": "colorbars", + "valType": "string" }, - "show": { - "description": "Sets whether or not projections are shown along the x axis.", - "dflt": false, - "editType": "calc", - "valType": "boolean" - } - }, - "y": { - "editType": "calc", - "opacity": { - "description": "Sets the projection color.", - "dflt": 1, - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" + "tickformatstops": { + "items": { + "tickformatstop": { + "dtickrange": { + "description": "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*", + "editType": "colorbars", + "items": [ + { + "editType": "colorbars", + "valType": "any" + }, + { + "editType": "colorbars", + "valType": "any" + } + ], + "valType": "info_array" + }, + "editType": "colorbars", + "enabled": { + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", + "dflt": true, + "editType": "colorbars", + "valType": "boolean" + }, + "name": { + "description": "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.", + "editType": "colorbars", + "valType": "string" + }, + "role": "object", + "templateitemname": { + "description": "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`.", + "editType": "colorbars", + "valType": "string" + }, + "value": { + "description": "string - dtickformat for described zoom level, the same as *tickformat*", + "dflt": "", + "editType": "colorbars", + "valType": "string" + } + } + }, + "role": "object" }, - "role": "object", - "scale": { - "description": "Sets the scale factor determining the size of the projection marker points.", - "dflt": 0.6666666666666666, - "editType": "calc", - "max": 10, - "min": 0, - "valType": "number" + "ticklabeloverflow": { + "description": "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*.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ] }, - "show": { - "description": "Sets whether or not projections are shown along the y axis.", - "dflt": false, - "editType": "calc", - "valType": "boolean" - } - }, - "z": { - "editType": "calc", - "opacity": { - "description": "Sets the projection color.", + "ticklabelposition": { + "description": "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*.", + "dflt": "outside", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside left", + "inside left", + "outside right", + "inside right", + "outside bottom", + "inside bottom" + ] + }, + "ticklabelstep": { + "description": "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*.", "dflt": 1, - "editType": "calc", - "max": 1, + "editType": "colorbars", + "min": 1, + "valType": "integer" + }, + "ticklen": { + "description": "Sets the tick length (in px).", + "dflt": 5, + "editType": "colorbars", "min": 0, "valType": "number" }, - "role": "object", - "scale": { - "description": "Sets the scale factor determining the size of the projection marker points.", - "dflt": 0.6666666666666666, - "editType": "calc", - "max": 10, + "tickmode": { + "description": "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).", + "editType": "colorbars", + "impliedEdits": {}, + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ] + }, + "tickprefix": { + "description": "Sets a tick label prefix.", + "dflt": "", + "editType": "colorbars", + "valType": "string" + }, + "ticks": { + "description": "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.", + "dflt": "", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ] + }, + "ticksuffix": { + "description": "Sets a tick label suffix.", + "dflt": "", + "editType": "colorbars", + "valType": "string" + }, + "ticktext": { + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", + "editType": "colorbars", + "valType": "data_array" + }, + "ticktextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", + "editType": "none", + "valType": "string" + }, + "tickvals": { + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", + "editType": "colorbars", + "valType": "data_array" + }, + "tickvalssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", + "editType": "none", + "valType": "string" + }, + "tickwidth": { + "description": "Sets the tick width (in px).", + "dflt": 1, + "editType": "colorbars", "min": 0, "valType": "number" }, - "show": { - "description": "Sets whether or not projections are shown along the z axis.", - "dflt": false, - "editType": "calc", - "valType": "boolean" - } - } - }, - "scene": { - "description": "Sets a reference between this trace's 3D coordinate system and a 3D scene. If *scene* (the default value), the (x,y,z) coordinates refer to `layout.scene`. If *scene2*, the (x,y,z) coordinates refer to `layout.scene2`, and so on.", - "dflt": "scene", - "editType": "calc+clearAxisTypes", - "valType": "subplotid" - }, - "showlegend": { - "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", - "dflt": true, - "editType": "style", - "valType": "boolean" - }, - "stream": { - "editType": "calc", - "maxpoints": { - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot.", - "dflt": 500, - "editType": "calc", - "max": 10000, - "min": 0, - "valType": "number" - }, - "role": "object", - "token": { - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details.", - "editType": "calc", - "noBlank": true, - "strict": true, - "valType": "string" - } - }, - "surfaceaxis": { - "description": "If *-1*, the scatter points are not fill with a surface If *0*, *1*, *2*, the scatter points are filled with a Delaunay surface about the x, y, z respectively.", - "dflt": -1, - "editType": "calc", - "valType": "enumerated", - "values": [ - -1, - 0, - 1, - 2 - ] - }, - "surfacecolor": { - "description": "Sets the surface fill color.", - "editType": "calc", - "valType": "color" - }, - "text": { - "arrayOk": true, - "description": "Sets text elements associated with each (x,y,z) triplet. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y,z) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "textfont": { - "color": { - "arrayOk": true, - "editType": "calc", - "valType": "color" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "description": "Sets the text font.", - "editType": "calc", - "family": { - "arrayOk": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" - }, - "role": "object", - "size": { - "arrayOk": true, + "title": { + "editType": "colorbars", + "font": { + "color": { + "editType": "colorbars", + "valType": "color" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "colorbars", + "valType": "string" + }, + "size": { + "editType": "colorbars", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "colorbars", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "role": "object", + "side": { + "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ] + }, + "text": { + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars", + "valType": "string" + } + }, + "x": { + "description": "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*.", + "editType": "colorbars", + "valType": "number" + }, + "xanchor": { + "description": "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*.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ] + }, + "xpad": { + "description": "Sets the amount of padding (in px) along the x direction.", + "dflt": 10, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, + "y": { + "description": "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*.", + "editType": "colorbars", + "valType": "number" + }, + "yanchor": { + "description": "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*.", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ] + }, + "ypad": { + "description": "Sets the amount of padding (in px) along the y direction.", + "dflt": 10, + "editType": "colorbars", + "min": 0, + "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "colorbars", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + } + }, + "colorscale": { + "description": "Sets the colorscale. Has an effect only if in `marker.color` is set to a numerical array. 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 `marker.cmin` and `marker.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.", + "dflt": null, "editType": "calc", - "min": 1, - "valType": "number" + "impliedEdits": { + "autocolorscale": false + }, + "valType": "colorscale" }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", "editType": "none", "valType": "string" }, - "style": { - "arrayOk": true, - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", + "editType": "calc", + "gradient": { + "color": { + "arrayOk": true, + "description": "Sets the final color of the gradient fill: the center color for radial, the right for horizontal, or the bottom for vertical.", + "editType": "calc", + "valType": "color" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] + "role": "object", + "type": { + "arrayOk": true, + "description": "Sets the type of gradient used to fill the markers", + "dflt": "none", + "editType": "calc", + "valType": "enumerated", + "values": [ + "radial", + "horizontal", + "vertical", + "none" + ] + }, + "typesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `type`.", + "editType": "none", + "valType": "string" + } }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "line": { + "autocolorscale": { + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color` is set to a numerical array. 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.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "cauto": { + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color` is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "cmax": { + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well.", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "valType": "number" + }, + "cmid": { + "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`.", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "valType": "number" + }, + "cmin": { + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well.", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "valType": "number" + }, + "color": { + "anim": true, + "arrayOk": true, + "description": "Sets the marker.line color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set.", + "editType": "style", + "valType": "color" + }, + "coloraxis": { + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", + "dflt": null, + "editType": "calc", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "valType": "subplotid" + }, + "colorscale": { + "description": "Sets the colorscale. Has an effect only if in `marker.line.color` is set to a numerical array. 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 `marker.line.cmin` and `marker.line.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.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "autocolorscale": false + }, + "valType": "colorscale" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "editType": "calc", + "reversescale": { + "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color` is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color.", + "dflt": false, + "editType": "plot", + "valType": "boolean" + }, + "role": "object", + "width": { + "anim": true, + "arrayOk": true, + "description": "Sets the width (in px) of the lines bounding the marker points.", + "editType": "style", + "min": 0, + "valType": "number" + }, + "widthsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `width`.", + "editType": "none", + "valType": "string" + } + }, + "maxdisplayed": { + "description": "Sets a maximum number of points to be drawn on the graph. *0* corresponds to no limit.", + "dflt": 0, + "editType": "plot", + "min": 0, + "valType": "number" + }, + "opacity": { + "anim": true, + "arrayOk": true, + "description": "Sets the marker opacity.", + "editType": "style", + "max": 1, + "min": 0, + "valType": "number" + }, + "opacitysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `opacity`.", "editType": "none", "valType": "string" }, - "variant": { + "reversescale": { + "description": "Reverses the color mapping if true. Has an effect only if in `marker.color` is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color.", + "dflt": false, + "editType": "plot", + "valType": "boolean" + }, + "role": "object", + "showscale": { + "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color` is set to a numerical array.", + "dflt": false, + "editType": "calc", + "valType": "boolean" + }, + "size": { + "anim": true, "arrayOk": true, - "description": "Sets the variant of the font.", - "dflt": "normal", + "description": "Sets the marker size (in px).", + "dflt": 6, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "sizemin": { + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the minimum size (in px) of the rendered marker points.", + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "sizemode": { + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the rule for which the data in `size` is converted to pixels.", + "dflt": "diameter", "editType": "calc", "valType": "enumerated", "values": [ - "normal", - "small-caps" + "diameter", + "area" ] }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "sizeref": { + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the scale factor used to determine the rendered size of marker points. Use with `sizemin` and `sizemode`.", + "dflt": 1, + "editType": "calc", + "valType": "number" + }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", "editType": "none", "valType": "string" }, - "weight": { + "standoff": { + "anim": true, "arrayOk": true, - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "calc", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" + "description": "Moves the marker away from the data point in the direction of `angle` (in px). This can be useful for example if you have another marker at this location and you want to point an arrowhead marker at it.", + "dflt": 0, + "editType": "plot", + "min": 0, + "valType": "number" }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "standoffsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `standoff`.", "editType": "none", "valType": "string" - } - }, - "textposition": { - "arrayOk": true, - "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates.", - "dflt": "top center", - "editType": "calc", - "valType": "enumerated", - "values": [ - "top left", - "top center", - "top right", - "middle left", - "middle center", - "middle right", - "bottom left", - "bottom center", - "bottom right" - ] - }, - "textpositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textposition`.", - "editType": "none", - "valType": "string" - }, - "textsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `text`.", - "editType": "none", - "valType": "string" - }, - "texttemplate": { - "arrayOk": true, - "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". 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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. ", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "texttemplatesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `texttemplate`.", - "editType": "none", - "valType": "string" - }, - "transforms": { - "items": { - "transform": { - "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "editType": "calc", - "role": "object" - } }, - "role": "object" - }, - "type": "scatter3d", - "uid": { - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", - "editType": "plot", - "valType": "string" - }, - "uirevision": { - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.", - "editType": "none", - "valType": "any" - }, - "visible": { - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", - "dflt": true, - "editType": "calc", - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ] - }, - "x": { - "description": "Sets the x coordinates.", - "editType": "calc+clearAxisTypes", - "valType": "data_array" - }, - "xcalendar": { - "description": "Sets the calendar system to use with `x` date data.", - "dflt": "gregorian", - "editType": "calc", - "valType": "enumerated", - "values": [ - "chinese", - "coptic", - "discworld", - "ethiopian", - "gregorian", - "hebrew", - "islamic", - "jalali", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "taiwan", - "thai", - "ummalqura" - ] - }, - "xhoverformat": { - "description": "Sets the hover text formatting rulefor `x` 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*By default the values are formatted using `xaxis.hoverformat`.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "xsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `x`.", - "editType": "none", - "valType": "string" - }, - "y": { - "description": "Sets the y coordinates.", - "editType": "calc+clearAxisTypes", - "valType": "data_array" - }, - "ycalendar": { - "description": "Sets the calendar system to use with `y` date data.", - "dflt": "gregorian", - "editType": "calc", - "valType": "enumerated", - "values": [ - "chinese", - "coptic", - "discworld", - "ethiopian", - "gregorian", - "hebrew", - "islamic", - "jalali", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "taiwan", - "thai", - "ummalqura" - ] - }, - "yhoverformat": { - "description": "Sets the hover text formatting rulefor `y` 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*By default the values are formatted using `yaxis.hoverformat`.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "ysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `y`.", - "editType": "none", - "valType": "string" - }, - "z": { - "description": "Sets the z coordinates.", - "editType": "calc+clearAxisTypes", - "valType": "data_array" - }, - "zcalendar": { - "description": "Sets the calendar system to use with `z` date data.", - "dflt": "gregorian", - "editType": "calc", - "valType": "enumerated", - "values": [ - "chinese", - "coptic", - "discworld", - "ethiopian", - "gregorian", - "hebrew", - "islamic", - "jalali", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "taiwan", - "thai", - "ummalqura" - ] - }, - "zhoverformat": { - "description": "Sets the hover text formatting rulefor `z` 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*By default the values are formatted using `zaxis.hoverformat`.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "zsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `z`.", - "editType": "none", - "valType": "string" - } - }, - "categories": [ - "gl3d", - "symbols", - "showLegend", - "scatter-like" - ], - "meta": { - "description": "The data visualized as scatter point or lines in 3D dimension is set in `x`, `y`, `z`. Text (appearing either on the chart or on hover only) is via `text`. Bubble charts are achieved by setting `marker.size` and/or `marker.color` Projections are achieved via `projection`. Surface fills are achieved via `surfaceaxis`.", - "hrName": "scatter_3d" - }, - "type": "scatter3d" - }, - "scattercarpet": { - "animatable": false, - "attributes": { - "a": { - "description": "Sets the a-axis coordinates.", - "editType": "calc", - "valType": "data_array" - }, - "asrc": { - "description": "Sets the source reference on Chart Studio Cloud for `a`.", - "editType": "none", - "valType": "string" - }, - "b": { - "description": "Sets the b-axis coordinates.", - "editType": "calc", - "valType": "data_array" - }, - "bsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `b`.", - "editType": "none", - "valType": "string" - }, - "carpet": { - "description": "An identifier for this carpet, so that `scattercarpet` and `contourcarpet` traces can specify a carpet plot on which they lie", - "editType": "calc", - "valType": "string" - }, - "connectgaps": { - "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the provided data arrays are connected.", - "dflt": false, - "editType": "calc", - "valType": "boolean" - }, - "customdata": { - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "editType": "calc", - "valType": "data_array" - }, - "customdatasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", - "editType": "none", - "valType": "string" - }, - "fill": { - "description": "Sets the area to fill with a solid color. Use with `fillcolor` if not *none*. scatterternary has a subset of the options available to scatter. *toself* connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape. *tonext* fills the space between two traces if one completely encloses the other (eg consecutive contour lines), and behaves like *toself* if there is no trace before it. *tonext* should not be used if one trace does not enclose the other.", - "dflt": "none", - "editType": "calc", - "valType": "enumerated", - "values": [ - "none", - "toself", - "tonext" - ] - }, - "fillcolor": { - "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available.", - "editType": "style", - "valType": "color" - }, - "hoverinfo": { - "arrayOk": true, - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", - "dflt": "all", - "editType": "none", - "extras": [ - "all", - "none", - "skip" - ], - "flags": [ - "a", - "b", - "text", - "name" - ], - "valType": "flaglist" - }, - "hoverinfosrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", - "editType": "none", - "valType": "string" - }, - "hoverlabel": { - "align": { + "symbol": { "arrayOk": true, - "description": "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", - "dflt": "auto", - "editType": "none", + "description": "Sets the marker symbol type. Adding 100 is equivalent to appending *-open* to a symbol name. Adding 200 is equivalent to appending *-dot* to a symbol name. Adding 300 is equivalent to appending *-open-dot* or *dot-open* to a symbol name.", + "dflt": "circle", + "editType": "style", "valType": "enumerated", "values": [ - "left", - "right", - "auto" - ] - }, - "alignsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `align`.", - "editType": "none", - "valType": "string" - }, - "bgcolor": { - "arrayOk": true, - "description": "Sets the background color of the hover labels for this trace", - "editType": "none", - "valType": "color" - }, - "bgcolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", - "editType": "none", - "valType": "string" - }, - "bordercolor": { - "arrayOk": true, - "description": "Sets the border color of the hover labels for this trace.", - "editType": "none", - "valType": "color" - }, - "bordercolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", - "editType": "none", - "valType": "string" - }, - "editType": "none", - "font": { - "color": { - "arrayOk": true, - "editType": "none", - "valType": "color" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "description": "Sets the font used in hover labels.", - "editType": "none", - "family": { - "arrayOk": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "none", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" - }, - "lineposition": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "none", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", - "valType": "string" - }, - "role": "object", - "shadow": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "none", - "valType": "string" - }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", - "editType": "none", - "valType": "string" - }, - "size": { - "arrayOk": true, - "editType": "none", - "min": 1, - "valType": "number" - }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" - }, - "style": { - "arrayOk": true, - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "none", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" - }, - "textcase": { - "arrayOk": true, - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "none", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" - }, - "variant": { - "arrayOk": true, - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "none", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" - }, - "weight": { - "arrayOk": true, - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "none", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", - "valType": "string" - } - }, - "namelength": { - "arrayOk": true, - "description": "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.", - "dflt": 15, - "editType": "none", - "min": -1, - "valType": "integer" - }, - "namelengthsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", - "editType": "none", - "valType": "string" - }, - "role": "object" - }, - "hoveron": { - "description": "Do the hover effects highlight individual points (markers or line points) or do they highlight filled regions? If the fill is *toself* or *tonext* and there are no markers or text, then the default is *fills*, otherwise it is *points*.", - "editType": "style", - "flags": [ - "points", - "fills" - ], - "valType": "flaglist" - }, - "hovertemplate": { - "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "dflt": "", - "editType": "none", - "valType": "string" - }, - "hovertemplatesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", - "editType": "none", - "valType": "string" - }, - "hovertext": { - "arrayOk": true, - "description": "Sets hover text elements associated with each (a,b) point. If a single string, the same string appears over all the data points. If an array of strings, the items are mapped in order to the the data points in (a,b). To be seen, trace `hoverinfo` must contain a *text* flag.", - "dflt": "", - "editType": "style", - "valType": "string" - }, - "hovertextsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hovertext`.", - "editType": "none", - "valType": "string" - }, - "ids": { - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "editType": "calc", - "valType": "data_array" - }, - "idssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ids`.", - "editType": "none", - "valType": "string" - }, - "legend": { - "description": "Sets the reference to a legend to show this trace 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.", - "dflt": "legend", - "editType": "style", - "valType": "subplotid" - }, - "legendgroup": { - "description": "Sets the legend group for this trace. Traces and shapes part of the same legend group hide/show at the same time when toggling legend items.", - "dflt": "", - "editType": "style", - "valType": "string" - }, - "legendgrouptitle": { - "editType": "style", - "font": { - "color": { - "editType": "style", - "valType": "color" - }, - "description": "Sets this legend group's title font.", - "editType": "style", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "style", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "style", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "style", - "valType": "string" - }, - "size": { - "editType": "style", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "style", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "style", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "style", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "style", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } + 0, + "0", + "circle", + 100, + "100", + "circle-open", + 200, + "200", + "circle-dot", + 300, + "300", + "circle-open-dot", + 1, + "1", + "square", + 101, + "101", + "square-open", + 201, + "201", + "square-dot", + 301, + "301", + "square-open-dot", + 2, + "2", + "diamond", + 102, + "102", + "diamond-open", + 202, + "202", + "diamond-dot", + 302, + "302", + "diamond-open-dot", + 3, + "3", + "cross", + 103, + "103", + "cross-open", + 203, + "203", + "cross-dot", + 303, + "303", + "cross-open-dot", + 4, + "4", + "x", + 104, + "104", + "x-open", + 204, + "204", + "x-dot", + 304, + "304", + "x-open-dot", + 5, + "5", + "triangle-up", + 105, + "105", + "triangle-up-open", + 205, + "205", + "triangle-up-dot", + 305, + "305", + "triangle-up-open-dot", + 6, + "6", + "triangle-down", + 106, + "106", + "triangle-down-open", + 206, + "206", + "triangle-down-dot", + 306, + "306", + "triangle-down-open-dot", + 7, + "7", + "triangle-left", + 107, + "107", + "triangle-left-open", + 207, + "207", + "triangle-left-dot", + 307, + "307", + "triangle-left-open-dot", + 8, + "8", + "triangle-right", + 108, + "108", + "triangle-right-open", + 208, + "208", + "triangle-right-dot", + 308, + "308", + "triangle-right-open-dot", + 9, + "9", + "triangle-ne", + 109, + "109", + "triangle-ne-open", + 209, + "209", + "triangle-ne-dot", + 309, + "309", + "triangle-ne-open-dot", + 10, + "10", + "triangle-se", + 110, + "110", + "triangle-se-open", + 210, + "210", + "triangle-se-dot", + 310, + "310", + "triangle-se-open-dot", + 11, + "11", + "triangle-sw", + 111, + "111", + "triangle-sw-open", + 211, + "211", + "triangle-sw-dot", + 311, + "311", + "triangle-sw-open-dot", + 12, + "12", + "triangle-nw", + 112, + "112", + "triangle-nw-open", + 212, + "212", + "triangle-nw-dot", + 312, + "312", + "triangle-nw-open-dot", + 13, + "13", + "pentagon", + 113, + "113", + "pentagon-open", + 213, + "213", + "pentagon-dot", + 313, + "313", + "pentagon-open-dot", + 14, + "14", + "hexagon", + 114, + "114", + "hexagon-open", + 214, + "214", + "hexagon-dot", + 314, + "314", + "hexagon-open-dot", + 15, + "15", + "hexagon2", + 115, + "115", + "hexagon2-open", + 215, + "215", + "hexagon2-dot", + 315, + "315", + "hexagon2-open-dot", + 16, + "16", + "octagon", + 116, + "116", + "octagon-open", + 216, + "216", + "octagon-dot", + 316, + "316", + "octagon-open-dot", + 17, + "17", + "star", + 117, + "117", + "star-open", + 217, + "217", + "star-dot", + 317, + "317", + "star-open-dot", + 18, + "18", + "hexagram", + 118, + "118", + "hexagram-open", + 218, + "218", + "hexagram-dot", + 318, + "318", + "hexagram-open-dot", + 19, + "19", + "star-triangle-up", + 119, + "119", + "star-triangle-up-open", + 219, + "219", + "star-triangle-up-dot", + 319, + "319", + "star-triangle-up-open-dot", + 20, + "20", + "star-triangle-down", + 120, + "120", + "star-triangle-down-open", + 220, + "220", + "star-triangle-down-dot", + 320, + "320", + "star-triangle-down-open-dot", + 21, + "21", + "star-square", + 121, + "121", + "star-square-open", + 221, + "221", + "star-square-dot", + 321, + "321", + "star-square-open-dot", + 22, + "22", + "star-diamond", + 122, + "122", + "star-diamond-open", + 222, + "222", + "star-diamond-dot", + 322, + "322", + "star-diamond-open-dot", + 23, + "23", + "diamond-tall", + 123, + "123", + "diamond-tall-open", + 223, + "223", + "diamond-tall-dot", + 323, + "323", + "diamond-tall-open-dot", + 24, + "24", + "diamond-wide", + 124, + "124", + "diamond-wide-open", + 224, + "224", + "diamond-wide-dot", + 324, + "324", + "diamond-wide-open-dot", + 25, + "25", + "hourglass", + 125, + "125", + "hourglass-open", + 26, + "26", + "bowtie", + 126, + "126", + "bowtie-open", + 27, + "27", + "circle-cross", + 127, + "127", + "circle-cross-open", + 28, + "28", + "circle-x", + 128, + "128", + "circle-x-open", + 29, + "29", + "square-cross", + 129, + "129", + "square-cross-open", + 30, + "30", + "square-x", + 130, + "130", + "square-x-open", + 31, + "31", + "diamond-cross", + 131, + "131", + "diamond-cross-open", + 32, + "32", + "diamond-x", + 132, + "132", + "diamond-x-open", + 33, + "33", + "cross-thin", + 133, + "133", + "cross-thin-open", + 34, + "34", + "x-thin", + 134, + "134", + "x-thin-open", + 35, + "35", + "asterisk", + 135, + "135", + "asterisk-open", + 36, + "36", + "hash", + 136, + "136", + "hash-open", + 236, + "236", + "hash-dot", + 336, + "336", + "hash-open-dot", + 37, + "37", + "y-up", + 137, + "137", + "y-up-open", + 38, + "38", + "y-down", + 138, + "138", + "y-down-open", + 39, + "39", + "y-left", + 139, + "139", + "y-left-open", + 40, + "40", + "y-right", + 140, + "140", + "y-right-open", + 41, + "41", + "line-ew", + 141, + "141", + "line-ew-open", + 42, + "42", + "line-ns", + 142, + "142", + "line-ns-open", + 43, + "43", + "line-ne", + 143, + "143", + "line-ne-open", + 44, + "44", + "line-nw", + 144, + "144", + "line-nw-open", + 45, + "45", + "arrow-up", + 145, + "145", + "arrow-up-open", + 46, + "46", + "arrow-down", + 146, + "146", + "arrow-down-open", + 47, + "47", + "arrow-left", + 147, + "147", + "arrow-left-open", + 48, + "48", + "arrow-right", + 148, + "148", + "arrow-right-open", + 49, + "49", + "arrow-bar-up", + 149, + "149", + "arrow-bar-up-open", + 50, + "50", + "arrow-bar-down", + 150, + "150", + "arrow-bar-down-open", + 51, + "51", + "arrow-bar-left", + 151, + "151", + "arrow-bar-left-open", + 52, + "52", + "arrow-bar-right", + 152, + "152", + "arrow-bar-right-open", + 53, + "53", + "arrow", + 153, + "153", + "arrow-open", + 54, + "54", + "arrow-wide", + 154, + "154", + "arrow-wide-open" + ] }, - "role": "object", - "text": { - "description": "Sets the title of the legend group.", - "dflt": "", - "editType": "style", - "valType": "string" + "symbolsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `symbol`.", + "editType": "none", + "valType": "string" } }, - "legendrank": { - "description": "Sets the legend rank for this trace. 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.", - "dflt": 1000, + "meta": { + "arrayOk": true, + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", + "editType": "plot", + "valType": "any" + }, + "metasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `meta`.", + "editType": "none", + "valType": "string" + }, + "mode": { + "description": "Determines the drawing mode for this scatter trace. If the provided `mode` includes *text* then the `text` elements appear at the coordinates. Otherwise, the `text` elements appear on hover. If there are less than 20 points and the trace is not stacked then the default is *lines+markers*. Otherwise, *lines*.", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "lines", + "markers", + "text" + ], + "valType": "flaglist" + }, + "name": { + "description": "Sets the trace name. The trace name appears as the legend item and on hover.", "editType": "style", - "valType": "number" + "valType": "string" }, - "legendwidth": { - "description": "Sets the width (in px or fraction) of the legend for this trace.", + "offsetgroup": { + "description": "Set several traces linked to the same position axis or matching axes to the same offsetgroup where bars of the same position coordinate will line up.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "opacity": { + "description": "Sets the opacity of the trace.", + "dflt": 1, "editType": "style", + "max": 1, "min": 0, "valType": "number" }, - "line": { - "backoff": { - "arrayOk": true, - "description": "Sets the line back off from the end point of the nth line segment (in px). This option is useful e.g. to avoid overlap with arrowhead markers. With *auto* the lines would trim before markers if `marker.angleref` is set to *previous*.", - "dflt": "auto", - "editType": "plot", + "orientation": { + "description": "Only relevant in the following cases: 1. when `scattermode` is set to *group*. 2. when `stackgroup` is used, and only the first `orientation` found in the `stackgroup` will be used - including if `visible` is *legendonly* but not if it is `false`. Sets the stacking direction. With *v* (*h*), the y (x) values of subsequent traces are added. Also affects the default value of `fill`.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "v", + "h" + ] + }, + "selected": { + "editType": "style", + "marker": { + "color": { + "description": "Sets the marker color of selected points.", + "editType": "style", + "valType": "color" + }, + "editType": "style", + "opacity": { + "description": "Sets the marker opacity of selected points.", + "editType": "style", + "max": 1, + "min": 0, + "valType": "number" + }, + "role": "object", + "size": { + "description": "Sets the marker size of selected points.", + "editType": "style", + "min": 0, + "valType": "number" + } + }, + "role": "object", + "textfont": { + "color": { + "description": "Sets the text font color of selected points.", + "editType": "style", + "valType": "color" + }, + "editType": "style", + "role": "object" + } + }, + "selectedpoints": { + "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect.", + "editType": "calc", + "valType": "any" + }, + "showlegend": { + "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", + "dflt": true, + "editType": "style", + "valType": "boolean" + }, + "stackgaps": { + "description": "Only relevant when `stackgroup` is used, and only the first `stackgaps` found in the `stackgroup` will be used - including if `visible` is *legendonly* but not if it is `false`. Determines how we handle locations at which other traces in this group have data but this one does not. With *infer zero* we insert a zero at these locations. With *interpolate* we linearly interpolate between existing values, and extrapolate a constant beyond the existing values.", + "dflt": "infer zero", + "editType": "calc", + "valType": "enumerated", + "values": [ + "infer zero", + "interpolate" + ] + }, + "stackgroup": { + "description": "Set several scatter traces (on the same subplot) to the same stackgroup in order to add their y values (or their x values if `orientation` is *h*). If blank or omitted this trace will not be stacked. Stacking also turns `fill` on by default, using *tonexty* (*tonextx*) if `orientation` is *h* (*v*) and sets the default `mode` to *lines* irrespective of point count. You can only stack on a numeric (linear or log) axis. Traces in a `stackgroup` will only fill to (or be filled to) other traces in the same group. With multiple `stackgroup`s or some traces stacked and some not, if fill-linked traces are not already consecutive, the later ones will be pushed down in the drawing order.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "stream": { + "editType": "calc", + "maxpoints": { + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot.", + "dflt": 500, + "editType": "calc", + "max": 10000, "min": 0, "valType": "number" }, - "backoffsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `backoff`.", - "editType": "none", + "role": "object", + "token": { + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details.", + "editType": "calc", + "noBlank": true, + "strict": true, "valType": "string" - }, + } + }, + "text": { + "arrayOk": true, + "description": "Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "textfont": { "color": { - "description": "Sets the line color.", + "arrayOk": true, "editType": "style", "valType": "color" }, - "dash": { - "description": "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*).", - "dflt": "solid", - "editType": "style", - "valType": "string", - "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" - ] + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" }, + "description": "Sets the text font.", "editType": "calc", + "family": { + "arrayOk": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" + }, + "lineposition": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", + "editType": "none", + "valType": "string" + }, "role": "object", - "shape": { - "description": "Determines the line shape. With *spline* the lines are drawn using spline interpolation. The other available values correspond to step-wise line shapes.", - "dflt": "linear", - "editType": "plot", - "valType": "enumerated", - "values": [ - "linear", - "spline" - ] + "shadow": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "calc", + "valType": "string" }, - "smoothing": { - "description": "Has an effect only if `shape` is set to *spline* Sets the amount of smoothing. *0* corresponds to no smoothing (equivalent to a *linear* shape).", - "dflt": 1, - "editType": "plot", - "max": 1.3, - "min": 0, - "valType": "number" + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", + "valType": "string" }, - "width": { - "description": "Sets the line width (in px).", - "dflt": 2, - "editType": "style", - "min": 0, - "valType": "number" - } - }, - "marker": { - "angle": { + "size": { "arrayOk": true, - "description": "Sets the marker angle in respect to `angleref`.", - "dflt": 0, - "editType": "plot", - "valType": "angle" + "editType": "calc", + "min": 1, + "valType": "number" }, - "angleref": { - "description": "Sets the reference for marker angle. With *previous*, angle 0 points along the line from the previous point to this one. With *up*, angle 0 points toward the top of the screen.", - "dflt": "up", - "editType": "plot", + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, + "style": { + "arrayOk": true, + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "calc", "valType": "enumerated", "values": [ - "previous", - "up" + "normal", + "italic" ] }, - "anglesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `angle`.", + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", "editType": "none", "valType": "string" }, - "autocolorscale": { - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color` is set to a numerical array. 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.", - "dflt": true, + "textcase": { + "arrayOk": true, + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] }, - "cauto": { - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color` is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user.", - "dflt": true, + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", + "valType": "string" + }, + "variant": { + "arrayOk": true, + "description": "Sets the variant of the font.", + "dflt": "normal", "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] }, - "cmax": { - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well.", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "valType": "number" + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" }, - "cmid": { - "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`.", - "dflt": null, + "weight": { + "arrayOk": true, + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", "editType": "calc", - "impliedEdits": {}, - "valType": "number" + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" }, - "cmin": { - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well.", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "valType": "number" + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" + } + }, + "textposition": { + "arrayOk": true, + "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates.", + "dflt": "middle center", + "editType": "calc", + "valType": "enumerated", + "values": [ + "top left", + "top center", + "top right", + "middle left", + "middle center", + "middle right", + "bottom left", + "bottom center", + "bottom right" + ] + }, + "textpositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textposition`.", + "editType": "none", + "valType": "string" + }, + "textsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `text`.", + "editType": "none", + "valType": "string" + }, + "texttemplate": { + "arrayOk": true, + "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". 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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. ", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "texttemplatesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `texttemplate`.", + "editType": "none", + "valType": "string" + }, + "transforms": { + "items": { + "transform": { + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "editType": "calc", + "role": "object" + } }, - "color": { - "arrayOk": true, - "description": "Sets the marker color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set.", + "role": "object" + }, + "type": "scatter", + "uid": { + "anim": true, + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", + "editType": "plot", + "valType": "string" + }, + "uirevision": { + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.", + "editType": "none", + "valType": "any" + }, + "unselected": { + "editType": "style", + "marker": { + "color": { + "description": "Sets the marker color of unselected points, applied only when a selection exists.", + "editType": "style", + "valType": "color" + }, "editType": "style", - "valType": "color" - }, - "coloraxis": { - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", - "dflt": null, - "editType": "calc", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "valType": "subplotid" + "opacity": { + "description": "Sets the marker opacity of unselected points, applied only when a selection exists.", + "editType": "style", + "max": 1, + "min": 0, + "valType": "number" + }, + "role": "object", + "size": { + "description": "Sets the marker size of unselected points, applied only when a selection exists.", + "editType": "style", + "min": 0, + "valType": "number" + } }, - "colorbar": { - "_deprecated": { - "title": { - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars", - "valType": "string" - }, - "titlefont": { - "color": { - "editType": "colorbars", - "valType": "color" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "valType": "string" - }, - "size": { - "editType": "colorbars", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "colorbars", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "titleside": { - "description": "Deprecated in favor of color bar's `title.side`.", - "dflt": "top", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ] - } - }, - "bgcolor": { - "description": "Sets the color of padded area.", - "dflt": "rgba(0,0,0,0)", - "editType": "colorbars", - "valType": "color" - }, - "bordercolor": { - "description": "Sets the axis line color.", - "dflt": "#444", - "editType": "colorbars", + "role": "object", + "textfont": { + "color": { + "description": "Sets the text font color of unselected points, applied only when a selection exists.", + "editType": "style", "valType": "color" }, - "borderwidth": { - "description": "Sets the width (in px) or the border enclosing this color bar.", - "dflt": 0, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "dtick": { - "description": "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*, 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* 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*", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "valType": "any" - }, - "editType": "colorbars", - "exponentformat": { - "description": "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.", - "dflt": "B", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ] - }, - "labelalias": { - "description": "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.", - "dflt": false, - "editType": "colorbars", - "valType": "any" - }, - "len": { - "description": "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.", - "dflt": 1, - "editType": "colorbars", - "min": 0, - "valType": "number" - }, - "lenmode": { - "description": "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.", - "dflt": "fraction", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ] - }, - "minexponent": { - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", - "dflt": 3, - "editType": "colorbars", - "min": 0, + "editType": "style", + "role": "object" + } + }, + "visible": { + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", + "dflt": true, + "editType": "calc", + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ] + }, + "x": { + "anim": true, + "description": "Sets the x coordinates.", + "editType": "calc+clearAxisTypes", + "valType": "data_array" + }, + "x0": { + "anim": true, + "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step.", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "valType": "any" + }, + "xaxis": { + "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on.", + "dflt": "x", + "editType": "calc+clearAxisTypes", + "valType": "subplotid" + }, + "xcalendar": { + "description": "Sets the calendar system to use with `x` date data.", + "dflt": "gregorian", + "editType": "calc", + "valType": "enumerated", + "values": [ + "chinese", + "coptic", + "discworld", + "ethiopian", + "gregorian", + "hebrew", + "islamic", + "jalali", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "taiwan", + "thai", + "ummalqura" + ] + }, + "xhoverformat": { + "description": "Sets the hover text formatting rulefor `x` 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*By default the values are formatted using `xaxis.hoverformat`.", + "dflt": "", + "editType": "none", + "valType": "string" + }, + "xperiod": { + "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer.", + "dflt": 0, + "editType": "calc", + "valType": "any" + }, + "xperiod0": { + "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01.", + "editType": "calc", + "valType": "any" + }, + "xperiodalignment": { + "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis.", + "dflt": "middle", + "editType": "calc", + "valType": "enumerated", + "values": [ + "start", + "middle", + "end" + ] + }, + "xsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `x`.", + "editType": "none", + "valType": "string" + }, + "y": { + "anim": true, + "description": "Sets the y coordinates.", + "editType": "calc+clearAxisTypes", + "valType": "data_array" + }, + "y0": { + "anim": true, + "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step.", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "valType": "any" + }, + "yaxis": { + "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on.", + "dflt": "y", + "editType": "calc+clearAxisTypes", + "valType": "subplotid" + }, + "ycalendar": { + "description": "Sets the calendar system to use with `y` date data.", + "dflt": "gregorian", + "editType": "calc", + "valType": "enumerated", + "values": [ + "chinese", + "coptic", + "discworld", + "ethiopian", + "gregorian", + "hebrew", + "islamic", + "jalali", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "taiwan", + "thai", + "ummalqura" + ] + }, + "yhoverformat": { + "description": "Sets the hover text formatting rulefor `y` 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*By default the values are formatted using `yaxis.hoverformat`.", + "dflt": "", + "editType": "none", + "valType": "string" + }, + "yperiod": { + "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the y axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer.", + "dflt": 0, + "editType": "calc", + "valType": "any" + }, + "yperiod0": { + "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the y0 axis. When `y0period` is round number of weeks, the `y0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01.", + "editType": "calc", + "valType": "any" + }, + "yperiodalignment": { + "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the y axis.", + "dflt": "middle", + "editType": "calc", + "valType": "enumerated", + "values": [ + "start", + "middle", + "end" + ] + }, + "ysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `y`.", + "editType": "none", + "valType": "string" + }, + "zorder": { + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", + "dflt": 0, + "editType": "plot", + "valType": "integer" + } + }, + "categories": [ + "cartesian", + "svg", + "symbols", + "errorBarsOK", + "showLegend", + "scatter-like", + "zoomScale" + ], + "layoutAttributes": { + "scattergap": { + "description": "Sets the gap (in plot fraction) between scatter points of adjacent location coordinates. Defaults to `bargap`.", + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + }, + "scattermode": { + "description": "Determines how scatter points at the same location coordinate are displayed on the graph. With *group*, the scatter points are plotted next to one another centered around the shared location. With *overlay*, the scatter points are plotted over one another, you might need to reduce *opacity* to see multiple scatter points.", + "dflt": "overlay", + "editType": "calc", + "valType": "enumerated", + "values": [ + "group", + "overlay" + ] + } + }, + "meta": { + "description": "The scatter trace type encompasses line charts, scatter charts, text charts, and bubble charts. The data visualized as scatter point or lines is set in `x` and `y`. Text (appearing either on the chart or on hover only) is via `text`. Bubble charts are achieved by setting `marker.size` and/or `marker.color` to numerical arrays." + }, + "type": "scatter" + }, + "scatter3d": { + "animatable": false, + "attributes": { + "connectgaps": { + "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the provided data arrays are connected.", + "dflt": false, + "editType": "calc", + "valType": "boolean" + }, + "customdata": { + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", + "editType": "calc", + "valType": "data_array" + }, + "customdatasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", + "editType": "none", + "valType": "string" + }, + "error_x": { + "_deprecated": { + "opacity": { + "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity.", + "editType": "calc", "valType": "number" - }, - "nticks": { - "description": "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*.", - "dflt": 0, - "editType": "colorbars", - "min": 0, - "valType": "integer" - }, - "orientation": { - "description": "Sets the orientation of the colorbar.", - "dflt": "v", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "h", - "v" - ] - }, - "outlinecolor": { - "description": "Sets the axis line color.", - "dflt": "#444", - "editType": "colorbars", - "valType": "color" - }, - "outlinewidth": { - "description": "Sets the width (in px) of the axis line.", - "dflt": 1, - "editType": "colorbars", - "min": 0, + } + }, + "array": { + "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data.", + "editType": "calc", + "valType": "data_array" + }, + "arrayminus": { + "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data.", + "editType": "calc", + "valType": "data_array" + }, + "arrayminussrc": { + "description": "Sets the source reference on Chart Studio Cloud for `arrayminus`.", + "editType": "none", + "valType": "string" + }, + "arraysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `array`.", + "editType": "none", + "valType": "string" + }, + "color": { + "description": "Sets the stoke color of the error bars.", + "editType": "calc", + "valType": "color" + }, + "copy_zstyle": { + "editType": "calc", + "valType": "boolean" + }, + "editType": "calc", + "role": "object", + "symmetric": { + "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars.", + "editType": "calc", + "valType": "boolean" + }, + "thickness": { + "description": "Sets the thickness (in px) of the error bars.", + "dflt": 2, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "traceref": { + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "integer" + }, + "tracerefminus": { + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "integer" + }, + "type": { + "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "percent", + "constant", + "sqrt", + "data" + ] + }, + "value": { + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars.", + "dflt": 10, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "valueminus": { + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars", + "dflt": 10, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "visible": { + "description": "Determines whether or not this set of error bars is visible.", + "editType": "calc", + "valType": "boolean" + }, + "width": { + "description": "Sets the width (in px) of the cross-bar at both ends of the error bars.", + "editType": "calc", + "min": 0, + "valType": "number" + } + }, + "error_y": { + "_deprecated": { + "opacity": { + "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity.", + "editType": "calc", "valType": "number" - }, - "role": "object", - "separatethousands": { - "description": "If \"true\", even 4-digit integers are separated", - "dflt": false, - "editType": "colorbars", - "valType": "boolean" - }, - "showexponent": { - "description": "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.", - "dflt": "all", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] - }, - "showticklabels": { - "description": "Determines whether or not the tick labels are drawn.", - "dflt": true, - "editType": "colorbars", - "valType": "boolean" - }, - "showtickprefix": { - "description": "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.", - "dflt": "all", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] - }, - "showticksuffix": { - "description": "Same as `showtickprefix` but for tick suffixes.", - "dflt": "all", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] - }, - "thickness": { - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "dflt": 30, - "editType": "colorbars", - "min": 0, + } + }, + "array": { + "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data.", + "editType": "calc", + "valType": "data_array" + }, + "arrayminus": { + "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data.", + "editType": "calc", + "valType": "data_array" + }, + "arrayminussrc": { + "description": "Sets the source reference on Chart Studio Cloud for `arrayminus`.", + "editType": "none", + "valType": "string" + }, + "arraysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `array`.", + "editType": "none", + "valType": "string" + }, + "color": { + "description": "Sets the stoke color of the error bars.", + "editType": "calc", + "valType": "color" + }, + "copy_zstyle": { + "editType": "calc", + "valType": "boolean" + }, + "editType": "calc", + "role": "object", + "symmetric": { + "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars.", + "editType": "calc", + "valType": "boolean" + }, + "thickness": { + "description": "Sets the thickness (in px) of the error bars.", + "dflt": 2, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "traceref": { + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "integer" + }, + "tracerefminus": { + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "integer" + }, + "type": { + "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "percent", + "constant", + "sqrt", + "data" + ] + }, + "value": { + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars.", + "dflt": 10, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "valueminus": { + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars", + "dflt": 10, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "visible": { + "description": "Determines whether or not this set of error bars is visible.", + "editType": "calc", + "valType": "boolean" + }, + "width": { + "description": "Sets the width (in px) of the cross-bar at both ends of the error bars.", + "editType": "calc", + "min": 0, + "valType": "number" + } + }, + "error_z": { + "_deprecated": { + "opacity": { + "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity.", + "editType": "calc", "valType": "number" + } + }, + "array": { + "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data.", + "editType": "calc", + "valType": "data_array" + }, + "arrayminus": { + "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data.", + "editType": "calc", + "valType": "data_array" + }, + "arrayminussrc": { + "description": "Sets the source reference on Chart Studio Cloud for `arrayminus`.", + "editType": "none", + "valType": "string" + }, + "arraysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `array`.", + "editType": "none", + "valType": "string" + }, + "color": { + "description": "Sets the stoke color of the error bars.", + "editType": "calc", + "valType": "color" + }, + "editType": "calc", + "role": "object", + "symmetric": { + "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars.", + "editType": "calc", + "valType": "boolean" + }, + "thickness": { + "description": "Sets the thickness (in px) of the error bars.", + "dflt": 2, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "traceref": { + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "integer" + }, + "tracerefminus": { + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "integer" + }, + "type": { + "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "percent", + "constant", + "sqrt", + "data" + ] + }, + "value": { + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars.", + "dflt": 10, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "valueminus": { + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars", + "dflt": 10, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "visible": { + "description": "Determines whether or not this set of error bars is visible.", + "editType": "calc", + "valType": "boolean" + }, + "width": { + "description": "Sets the width (in px) of the cross-bar at both ends of the error bars.", + "editType": "calc", + "min": 0, + "valType": "number" + } + }, + "hoverinfo": { + "arrayOk": true, + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", + "dflt": "all", + "editType": "calc", + "extras": [ + "all", + "none", + "skip" + ], + "flags": [ + "x", + "y", + "z", + "text", + "name" + ], + "valType": "flaglist" + }, + "hoverinfosrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", + "editType": "none", + "valType": "string" + }, + "hoverlabel": { + "align": { + "arrayOk": true, + "description": "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", + "dflt": "auto", + "editType": "none", + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ] + }, + "alignsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `align`.", + "editType": "none", + "valType": "string" + }, + "bgcolor": { + "arrayOk": true, + "description": "Sets the background color of the hover labels for this trace", + "editType": "none", + "valType": "color" + }, + "bgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", + "editType": "none", + "valType": "string" + }, + "bordercolor": { + "arrayOk": true, + "description": "Sets the border color of the hover labels for this trace.", + "editType": "none", + "valType": "color" + }, + "bordercolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", + "editType": "none", + "valType": "string" + }, + "editType": "none", + "font": { + "color": { + "arrayOk": true, + "editType": "none", + "valType": "color" }, - "thicknessmode": { - "description": "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.", - "dflt": "pixels", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ] + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" }, - "tick0": { - "description": "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* (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.", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "valType": "any" + "description": "Sets the font used in hover labels.", + "editType": "none", + "family": { + "arrayOk": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "none", + "noBlank": true, + "strict": true, + "valType": "string" }, - "tickangle": { - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", - "dflt": "auto", - "editType": "colorbars", - "valType": "angle" + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" }, - "tickcolor": { - "description": "Sets the tick color.", - "dflt": "#444", - "editType": "colorbars", - "valType": "color" + "lineposition": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "none", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" }, - "tickfont": { - "color": { - "editType": "colorbars", - "valType": "color" - }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "colorbars", - "valType": "string" - }, - "size": { - "editType": "colorbars", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "colorbars", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", + "editType": "none", + "valType": "string" }, - "tickformat": { - "description": "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*", - "dflt": "", - "editType": "colorbars", + "role": "object", + "shadow": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "none", "valType": "string" }, - "tickformatstops": { - "items": { - "tickformatstop": { - "dtickrange": { - "description": "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*", - "editType": "colorbars", - "items": [ - { - "editType": "colorbars", - "valType": "any" - }, - { - "editType": "colorbars", - "valType": "any" - } - ], - "valType": "info_array" - }, - "editType": "colorbars", - "enabled": { - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", - "dflt": true, - "editType": "colorbars", - "valType": "boolean" - }, - "name": { - "description": "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.", - "editType": "colorbars", - "valType": "string" - }, - "role": "object", - "templateitemname": { - "description": "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`.", - "editType": "colorbars", - "valType": "string" - }, - "value": { - "description": "string - dtickformat for described zoom level, the same as *tickformat*", - "dflt": "", - "editType": "colorbars", - "valType": "string" - } - } - }, - "role": "object" + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", + "valType": "string" }, - "ticklabeloverflow": { - "description": "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*.", - "editType": "colorbars", + "size": { + "arrayOk": true, + "editType": "none", + "min": 1, + "valType": "number" + }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, + "style": { + "arrayOk": true, + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "none", "valType": "enumerated", "values": [ - "allow", - "hide past div", - "hide past domain" + "normal", + "italic" ] }, - "ticklabelposition": { - "description": "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*.", - "dflt": "outside", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside left", - "inside left", - "outside right", - "inside right", - "outside bottom", - "inside bottom" - ] - }, - "ticklabelstep": { - "description": "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*.", - "dflt": 1, - "editType": "colorbars", - "min": 1, - "valType": "integer" - }, - "ticklen": { - "description": "Sets the tick length (in px).", - "dflt": 5, - "editType": "colorbars", - "min": 0, - "valType": "number" + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", + "valType": "string" }, - "tickmode": { - "description": "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).", - "editType": "colorbars", - "impliedEdits": {}, + "textcase": { + "arrayOk": true, + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "none", "valType": "enumerated", "values": [ - "auto", - "linear", - "array" + "normal", + "word caps", + "upper", + "lower" ] }, - "tickprefix": { - "description": "Sets a tick label prefix.", - "dflt": "", - "editType": "colorbars", + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", "valType": "string" }, - "ticks": { - "description": "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.", - "dflt": "", - "editType": "colorbars", + "variant": { + "arrayOk": true, + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "none", "valType": "enumerated", "values": [ - "outside", - "inside", - "" + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" ] }, - "ticksuffix": { - "description": "Sets a tick label suffix.", - "dflt": "", - "editType": "colorbars", + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", "valType": "string" }, - "ticktext": { - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "editType": "colorbars", - "valType": "data_array" + "weight": { + "arrayOk": true, + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "none", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" }, - "ticktextsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", "editType": "none", "valType": "string" + } + }, + "namelength": { + "arrayOk": true, + "description": "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.", + "dflt": 15, + "editType": "none", + "min": -1, + "valType": "integer" + }, + "namelengthsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", + "editType": "none", + "valType": "string" + }, + "role": "object" + }, + "hovertemplate": { + "arrayOk": true, + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "hovertemplatesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", + "editType": "none", + "valType": "string" + }, + "hovertext": { + "arrayOk": true, + "description": "Sets text elements associated with each (x,y,z) triplet. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y,z) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "hovertextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertext`.", + "editType": "none", + "valType": "string" + }, + "ids": { + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", + "editType": "calc", + "valType": "data_array" + }, + "idssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ids`.", + "editType": "none", + "valType": "string" + }, + "legend": { + "description": "Sets the reference to a legend to show this trace 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.", + "dflt": "legend", + "editType": "style", + "valType": "subplotid" + }, + "legendgroup": { + "description": "Sets the legend group for this trace. Traces and shapes part of the same legend group hide/show at the same time when toggling legend items.", + "dflt": "", + "editType": "style", + "valType": "string" + }, + "legendgrouptitle": { + "editType": "style", + "font": { + "color": { + "editType": "style", + "valType": "color" + }, + "description": "Sets this legend group's title font.", + "editType": "style", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "style", + "noBlank": true, + "strict": true, + "valType": "string" }, - "tickvals": { - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "editType": "colorbars", - "valType": "data_array" + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "style", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" }, - "tickvalssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", - "editType": "none", + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "style", "valType": "string" }, - "tickwidth": { - "description": "Sets the tick width (in px).", - "dflt": 1, - "editType": "colorbars", - "min": 0, + "size": { + "editType": "style", + "min": 1, "valType": "number" }, - "title": { - "editType": "colorbars", - "font": { + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "style", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "style", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "style", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "style", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "role": "object", + "text": { + "description": "Sets the title of the legend group.", + "dflt": "", + "editType": "style", + "valType": "string" + } + }, + "legendrank": { + "description": "Sets the legend rank for this trace. 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.", + "dflt": 1000, + "editType": "style", + "valType": "number" + }, + "legendwidth": { + "description": "Sets the width (in px or fraction) of the legend for this trace.", + "editType": "style", + "min": 0, + "valType": "number" + }, + "line": { + "autocolorscale": { + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `line.colorscale`. Has an effect only if in `line.color` is set to a numerical array. 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.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "cauto": { + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `line.color`) or the bounds set in `line.cmin` and `line.cmax` Has an effect only if in `line.color` is set to a numerical array. Defaults to `false` when `line.cmin` and `line.cmax` are set by the user.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "cmax": { + "description": "Sets the upper bound of the color domain. Has an effect only if in `line.color` is set to a numerical array. Value should have the same units as in `line.color` and if set, `line.cmin` must be set as well.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "valType": "number" + }, + "cmid": { + "description": "Sets the mid-point of the color domain by scaling `line.cmin` and/or `line.cmax` to be equidistant to this point. Has an effect only if in `line.color` is set to a numerical array. Value should have the same units as in `line.color`. Has no effect when `line.cauto` is `false`.", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "valType": "number" + }, + "cmin": { + "description": "Sets the lower bound of the color domain. Has an effect only if in `line.color` is set to a numerical array. Value should have the same units as in `line.color` and if set, `line.cmax` must be set as well.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "valType": "number" + }, + "color": { + "arrayOk": true, + "description": "Sets the line color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `line.cmin` and `line.cmax` if set.", + "editType": "calc", + "valType": "color" + }, + "coloraxis": { + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", + "dflt": null, + "editType": "calc", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "valType": "subplotid" + }, + "colorbar": { + "_deprecated": { + "title": { + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "calc", + "valType": "string" + }, + "titlefont": { "color": { - "editType": "colorbars", + "editType": "calc", "valType": "color" }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "calc", "family": { "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars", + "editType": "calc", "noBlank": true, "strict": true, "valType": "string" @@ -67933,7 +67768,7 @@ "lineposition": { "description": "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.", "dflt": "none", - "editType": "colorbars", + "editType": "calc", "extras": [ "none" ], @@ -67944,22 +67779,21 @@ ], "valType": "flaglist" }, - "role": "object", "shadow": { "description": "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.", "dflt": "none", - "editType": "colorbars", + "editType": "calc", "valType": "string" }, "size": { - "editType": "colorbars", + "editType": "calc", "min": 1, "valType": "number" }, "style": { "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "normal", @@ -67969,7 +67803,7 @@ "textcase": { "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "normal", @@ -67981,7 +67815,7 @@ "variant": { "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "colorbars", + "editType": "calc", "valType": "enumerated", "values": [ "normal", @@ -67995,7 +67829,7 @@ "weight": { "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "colorbars", + "editType": "calc", "extras": [ "normal", "bold" @@ -68005,3579 +67839,2113 @@ "valType": "integer" } }, - "role": "object", - "side": { - "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars", + "titleside": { + "description": "Deprecated in favor of color bar's `title.side`.", + "dflt": "top", + "editType": "calc", "valType": "enumerated", "values": [ "right", "top", "bottom" ] - }, - "text": { - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars", - "valType": "string" } }, - "x": { - "description": "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*.", - "editType": "colorbars", - "valType": "number" + "bgcolor": { + "description": "Sets the color of padded area.", + "dflt": "rgba(0,0,0,0)", + "editType": "calc", + "valType": "color" }, - "xanchor": { - "description": "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*.", - "editType": "colorbars", - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ] + "bordercolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "calc", + "valType": "color" }, - "xpad": { - "description": "Sets the amount of padding (in px) along the x direction.", - "dflt": 10, - "editType": "colorbars", + "borderwidth": { + "description": "Sets the width (in px) or the border enclosing this color bar.", + "dflt": 0, + "editType": "calc", "min": 0, "valType": "number" }, - "xref": { - "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", - "dflt": "paper", - "editType": "colorbars", + "dtick": { + "description": "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*, 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* 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*", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" + }, + "editType": "calc", + "exponentformat": { + "description": "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.", + "dflt": "B", + "editType": "calc", "valType": "enumerated", "values": [ - "container", - "paper" + "none", + "e", + "E", + "power", + "SI", + "B" ] }, - "y": { - "description": "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*.", - "editType": "colorbars", + "labelalias": { + "description": "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.", + "dflt": false, + "editType": "calc", + "valType": "any" + }, + "len": { + "description": "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.", + "dflt": 1, + "editType": "calc", + "min": 0, "valType": "number" }, - "yanchor": { - "description": "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*.", - "editType": "colorbars", + "lenmode": { + "description": "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.", + "dflt": "fraction", + "editType": "calc", "valType": "enumerated", "values": [ - "top", - "middle", - "bottom" + "fraction", + "pixels" ] }, - "ypad": { - "description": "Sets the amount of padding (in px) along the y direction.", - "dflt": 10, - "editType": "colorbars", + "minexponent": { + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", + "dflt": 3, + "editType": "calc", "min": 0, "valType": "number" }, - "yref": { - "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", - "dflt": "paper", - "editType": "colorbars", + "nticks": { + "description": "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*.", + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "integer" + }, + "orientation": { + "description": "Sets the orientation of the colorbar.", + "dflt": "v", + "editType": "calc", "valType": "enumerated", "values": [ - "container", - "paper" + "h", + "v" ] - } - }, - "colorscale": { - "description": "Sets the colorscale. Has an effect only if in `marker.color` is set to a numerical array. 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 `marker.cmin` and `marker.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.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "autocolorscale": false }, - "valType": "colorscale" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "editType": "calc", - "gradient": { - "color": { - "arrayOk": true, - "description": "Sets the final color of the gradient fill: the center color for radial, the right for horizontal, or the bottom for vertical.", + "outlinecolor": { + "description": "Sets the axis line color.", + "dflt": "#444", "editType": "calc", "valType": "color" }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" + "outlinewidth": { + "description": "Sets the width (in px) of the axis line.", + "dflt": 1, + "editType": "calc", + "min": 0, + "valType": "number" }, - "editType": "calc", "role": "object", - "type": { - "arrayOk": true, - "description": "Sets the type of gradient used to fill the markers", - "dflt": "none", + "separatethousands": { + "description": "If \"true\", even 4-digit integers are separated", + "dflt": false, + "editType": "calc", + "valType": "boolean" + }, + "showexponent": { + "description": "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.", + "dflt": "all", "editType": "calc", "valType": "enumerated", "values": [ - "radial", - "horizontal", - "vertical", + "all", + "first", + "last", "none" ] }, - "typesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `type`.", - "editType": "none", - "valType": "string" - } - }, - "line": { - "autocolorscale": { - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color` is set to a numerical array. 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.", + "showticklabels": { + "description": "Determines whether or not the tick labels are drawn.", "dflt": true, "editType": "calc", - "impliedEdits": {}, "valType": "boolean" }, - "cauto": { - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color` is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user.", - "dflt": true, + "showtickprefix": { + "description": "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.", + "dflt": "all", "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] }, - "cmax": { - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well.", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "valType": "number" + "showticksuffix": { + "description": "Same as `showtickprefix` but for tick suffixes.", + "dflt": "all", + "editType": "calc", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] }, - "cmid": { - "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`.", - "dflt": null, + "thickness": { + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "dflt": 30, "editType": "calc", - "impliedEdits": {}, + "min": 0, "valType": "number" }, - "cmin": { - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well.", - "dflt": null, - "editType": "plot", + "thicknessmode": { + "description": "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.", + "dflt": "pixels", + "editType": "calc", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] + }, + "tick0": { + "description": "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* (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.", + "editType": "calc", "impliedEdits": { - "cauto": false + "tickmode": "linear" }, - "valType": "number" + "valType": "any" }, - "color": { - "arrayOk": true, - "description": "Sets the marker.line color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set.", - "editType": "style", - "valType": "color" + "tickangle": { + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", + "dflt": "auto", + "editType": "calc", + "valType": "angle" }, - "coloraxis": { - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", - "dflt": null, + "tickcolor": { + "description": "Sets the tick color.", + "dflt": "#444", "editType": "calc", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "valType": "subplotid" + "valType": "color" }, - "colorscale": { - "description": "Sets the colorscale. Has an effect only if in `marker.line.color` is set to a numerical array. 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 `marker.line.cmin` and `marker.line.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.", - "dflt": null, + "tickfont": { + "color": { + "editType": "calc", + "valType": "color" + }, + "description": "Sets the color bar's tick label font", "editType": "calc", - "impliedEdits": { - "autocolorscale": false + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" }, - "valType": "colorscale" + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "valType": "string" + }, + "size": { + "editType": "calc", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "calc", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", + "tickformat": { + "description": "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*", + "dflt": "", + "editType": "calc", "valType": "string" }, - "editType": "calc", - "reversescale": { - "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color` is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color.", - "dflt": false, - "editType": "plot", - "valType": "boolean" + "tickformatstops": { + "items": { + "tickformatstop": { + "dtickrange": { + "description": "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*", + "editType": "calc", + "items": [ + { + "editType": "calc", + "valType": "any" + }, + { + "editType": "calc", + "valType": "any" + } + ], + "valType": "info_array" + }, + "editType": "calc", + "enabled": { + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", + "dflt": true, + "editType": "calc", + "valType": "boolean" + }, + "name": { + "description": "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.", + "editType": "calc", + "valType": "string" + }, + "role": "object", + "templateitemname": { + "description": "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`.", + "editType": "calc", + "valType": "string" + }, + "value": { + "description": "string - dtickformat for described zoom level, the same as *tickformat*", + "dflt": "", + "editType": "calc", + "valType": "string" + } + } + }, + "role": "object" }, - "role": "object", - "width": { - "arrayOk": true, - "description": "Sets the width (in px) of the lines bounding the marker points.", - "editType": "style", + "ticklabeloverflow": { + "description": "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*.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ] + }, + "ticklabelposition": { + "description": "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*.", + "dflt": "outside", + "editType": "calc", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside left", + "inside left", + "outside right", + "inside right", + "outside bottom", + "inside bottom" + ] + }, + "ticklabelstep": { + "description": "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*.", + "dflt": 1, + "editType": "calc", + "min": 1, + "valType": "integer" + }, + "ticklen": { + "description": "Sets the tick length (in px).", + "dflt": 5, + "editType": "calc", "min": 0, "valType": "number" }, - "widthsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `width`.", + "tickmode": { + "description": "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).", + "editType": "calc", + "impliedEdits": {}, + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ] + }, + "tickprefix": { + "description": "Sets a tick label prefix.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "ticks": { + "description": "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.", + "dflt": "", + "editType": "calc", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ] + }, + "ticksuffix": { + "description": "Sets a tick label suffix.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "ticktext": { + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", + "editType": "calc", + "valType": "data_array" + }, + "ticktextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", "editType": "none", "valType": "string" - } - }, - "maxdisplayed": { - "description": "Sets a maximum number of points to be drawn on the graph. *0* corresponds to no limit.", - "dflt": 0, - "editType": "plot", - "min": 0, - "valType": "number" - }, - "opacity": { - "arrayOk": true, - "description": "Sets the marker opacity.", - "editType": "style", - "max": 1, - "min": 0, - "valType": "number" - }, - "opacitysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `opacity`.", - "editType": "none", - "valType": "string" - }, - "reversescale": { - "description": "Reverses the color mapping if true. Has an effect only if in `marker.color` is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color.", - "dflt": false, - "editType": "plot", - "valType": "boolean" - }, - "role": "object", - "showscale": { - "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color` is set to a numerical array.", - "dflt": false, - "editType": "calc", - "valType": "boolean" - }, - "size": { - "arrayOk": true, - "description": "Sets the marker size (in px).", - "dflt": 6, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "sizemin": { - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the minimum size (in px) of the rendered marker points.", - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "sizemode": { - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the rule for which the data in `size` is converted to pixels.", - "dflt": "diameter", - "editType": "calc", - "valType": "enumerated", - "values": [ - "diameter", - "area" - ] - }, - "sizeref": { - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the scale factor used to determine the rendered size of marker points. Use with `sizemin` and `sizemode`.", - "dflt": 1, - "editType": "calc", - "valType": "number" - }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" - }, - "standoff": { - "arrayOk": true, - "description": "Moves the marker away from the data point in the direction of `angle` (in px). This can be useful for example if you have another marker at this location and you want to point an arrowhead marker at it.", - "dflt": 0, - "editType": "plot", - "min": 0, - "valType": "number" - }, - "standoffsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `standoff`.", - "editType": "none", - "valType": "string" - }, - "symbol": { - "arrayOk": true, - "description": "Sets the marker symbol type. Adding 100 is equivalent to appending *-open* to a symbol name. Adding 200 is equivalent to appending *-dot* to a symbol name. Adding 300 is equivalent to appending *-open-dot* or *dot-open* to a symbol name.", - "dflt": "circle", - "editType": "style", - "valType": "enumerated", - "values": [ - 0, - "0", - "circle", - 100, - "100", - "circle-open", - 200, - "200", - "circle-dot", - 300, - "300", - "circle-open-dot", - 1, - "1", - "square", - 101, - "101", - "square-open", - 201, - "201", - "square-dot", - 301, - "301", - "square-open-dot", - 2, - "2", - "diamond", - 102, - "102", - "diamond-open", - 202, - "202", - "diamond-dot", - 302, - "302", - "diamond-open-dot", - 3, - "3", - "cross", - 103, - "103", - "cross-open", - 203, - "203", - "cross-dot", - 303, - "303", - "cross-open-dot", - 4, - "4", - "x", - 104, - "104", - "x-open", - 204, - "204", - "x-dot", - 304, - "304", - "x-open-dot", - 5, - "5", - "triangle-up", - 105, - "105", - "triangle-up-open", - 205, - "205", - "triangle-up-dot", - 305, - "305", - "triangle-up-open-dot", - 6, - "6", - "triangle-down", - 106, - "106", - "triangle-down-open", - 206, - "206", - "triangle-down-dot", - 306, - "306", - "triangle-down-open-dot", - 7, - "7", - "triangle-left", - 107, - "107", - "triangle-left-open", - 207, - "207", - "triangle-left-dot", - 307, - "307", - "triangle-left-open-dot", - 8, - "8", - "triangle-right", - 108, - "108", - "triangle-right-open", - 208, - "208", - "triangle-right-dot", - 308, - "308", - "triangle-right-open-dot", - 9, - "9", - "triangle-ne", - 109, - "109", - "triangle-ne-open", - 209, - "209", - "triangle-ne-dot", - 309, - "309", - "triangle-ne-open-dot", - 10, - "10", - "triangle-se", - 110, - "110", - "triangle-se-open", - 210, - "210", - "triangle-se-dot", - 310, - "310", - "triangle-se-open-dot", - 11, - "11", - "triangle-sw", - 111, - "111", - "triangle-sw-open", - 211, - "211", - "triangle-sw-dot", - 311, - "311", - "triangle-sw-open-dot", - 12, - "12", - "triangle-nw", - 112, - "112", - "triangle-nw-open", - 212, - "212", - "triangle-nw-dot", - 312, - "312", - "triangle-nw-open-dot", - 13, - "13", - "pentagon", - 113, - "113", - "pentagon-open", - 213, - "213", - "pentagon-dot", - 313, - "313", - "pentagon-open-dot", - 14, - "14", - "hexagon", - 114, - "114", - "hexagon-open", - 214, - "214", - "hexagon-dot", - 314, - "314", - "hexagon-open-dot", - 15, - "15", - "hexagon2", - 115, - "115", - "hexagon2-open", - 215, - "215", - "hexagon2-dot", - 315, - "315", - "hexagon2-open-dot", - 16, - "16", - "octagon", - 116, - "116", - "octagon-open", - 216, - "216", - "octagon-dot", - 316, - "316", - "octagon-open-dot", - 17, - "17", - "star", - 117, - "117", - "star-open", - 217, - "217", - "star-dot", - 317, - "317", - "star-open-dot", - 18, - "18", - "hexagram", - 118, - "118", - "hexagram-open", - 218, - "218", - "hexagram-dot", - 318, - "318", - "hexagram-open-dot", - 19, - "19", - "star-triangle-up", - 119, - "119", - "star-triangle-up-open", - 219, - "219", - "star-triangle-up-dot", - 319, - "319", - "star-triangle-up-open-dot", - 20, - "20", - "star-triangle-down", - 120, - "120", - "star-triangle-down-open", - 220, - "220", - "star-triangle-down-dot", - 320, - "320", - "star-triangle-down-open-dot", - 21, - "21", - "star-square", - 121, - "121", - "star-square-open", - 221, - "221", - "star-square-dot", - 321, - "321", - "star-square-open-dot", - 22, - "22", - "star-diamond", - 122, - "122", - "star-diamond-open", - 222, - "222", - "star-diamond-dot", - 322, - "322", - "star-diamond-open-dot", - 23, - "23", - "diamond-tall", - 123, - "123", - "diamond-tall-open", - 223, - "223", - "diamond-tall-dot", - 323, - "323", - "diamond-tall-open-dot", - 24, - "24", - "diamond-wide", - 124, - "124", - "diamond-wide-open", - 224, - "224", - "diamond-wide-dot", - 324, - "324", - "diamond-wide-open-dot", - 25, - "25", - "hourglass", - 125, - "125", - "hourglass-open", - 26, - "26", - "bowtie", - 126, - "126", - "bowtie-open", - 27, - "27", - "circle-cross", - 127, - "127", - "circle-cross-open", - 28, - "28", - "circle-x", - 128, - "128", - "circle-x-open", - 29, - "29", - "square-cross", - 129, - "129", - "square-cross-open", - 30, - "30", - "square-x", - 130, - "130", - "square-x-open", - 31, - "31", - "diamond-cross", - 131, - "131", - "diamond-cross-open", - 32, - "32", - "diamond-x", - 132, - "132", - "diamond-x-open", - 33, - "33", - "cross-thin", - 133, - "133", - "cross-thin-open", - 34, - "34", - "x-thin", - 134, - "134", - "x-thin-open", - 35, - "35", - "asterisk", - 135, - "135", - "asterisk-open", - 36, - "36", - "hash", - 136, - "136", - "hash-open", - 236, - "236", - "hash-dot", - 336, - "336", - "hash-open-dot", - 37, - "37", - "y-up", - 137, - "137", - "y-up-open", - 38, - "38", - "y-down", - 138, - "138", - "y-down-open", - 39, - "39", - "y-left", - 139, - "139", - "y-left-open", - 40, - "40", - "y-right", - 140, - "140", - "y-right-open", - 41, - "41", - "line-ew", - 141, - "141", - "line-ew-open", - 42, - "42", - "line-ns", - 142, - "142", - "line-ns-open", - 43, - "43", - "line-ne", - 143, - "143", - "line-ne-open", - 44, - "44", - "line-nw", - 144, - "144", - "line-nw-open", - 45, - "45", - "arrow-up", - 145, - "145", - "arrow-up-open", - 46, - "46", - "arrow-down", - 146, - "146", - "arrow-down-open", - 47, - "47", - "arrow-left", - 147, - "147", - "arrow-left-open", - 48, - "48", - "arrow-right", - 148, - "148", - "arrow-right-open", - 49, - "49", - "arrow-bar-up", - 149, - "149", - "arrow-bar-up-open", - 50, - "50", - "arrow-bar-down", - 150, - "150", - "arrow-bar-down-open", - 51, - "51", - "arrow-bar-left", - 151, - "151", - "arrow-bar-left-open", - 52, - "52", - "arrow-bar-right", - 152, - "152", - "arrow-bar-right-open", - 53, - "53", - "arrow", - 153, - "153", - "arrow-open", - 54, - "54", - "arrow-wide", - 154, - "154", - "arrow-wide-open" - ] - }, - "symbolsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `symbol`.", - "editType": "none", - "valType": "string" - } - }, - "meta": { - "arrayOk": true, - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", - "editType": "plot", - "valType": "any" - }, - "metasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `meta`.", - "editType": "none", - "valType": "string" - }, - "mode": { - "description": "Determines the drawing mode for this scatter trace. If the provided `mode` includes *text* then the `text` elements appear at the coordinates. Otherwise, the `text` elements appear on hover. If there are less than 20 points and the trace is not stacked then the default is *lines+markers*. Otherwise, *lines*.", - "dflt": "markers", - "editType": "calc", - "extras": [ - "none" - ], - "flags": [ - "lines", - "markers", - "text" - ], - "valType": "flaglist" - }, - "name": { - "description": "Sets the trace name. The trace name appears as the legend item and on hover.", - "editType": "style", - "valType": "string" - }, - "opacity": { - "description": "Sets the opacity of the trace.", - "dflt": 1, - "editType": "style", - "max": 1, - "min": 0, - "valType": "number" - }, - "selected": { - "editType": "style", - "marker": { - "color": { - "description": "Sets the marker color of selected points.", - "editType": "style", - "valType": "color" }, - "editType": "style", - "opacity": { - "description": "Sets the marker opacity of selected points.", - "editType": "style", - "max": 1, - "min": 0, - "valType": "number" + "tickvals": { + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", + "editType": "calc", + "valType": "data_array" }, - "role": "object", - "size": { - "description": "Sets the marker size of selected points.", - "editType": "style", + "tickvalssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", + "editType": "none", + "valType": "string" + }, + "tickwidth": { + "description": "Sets the tick width (in px).", + "dflt": 1, + "editType": "calc", "min": 0, "valType": "number" - } - }, - "role": "object", - "textfont": { - "color": { - "description": "Sets the text font color of selected points.", - "editType": "style", - "valType": "color" }, - "editType": "style", - "role": "object" - } - }, - "selectedpoints": { - "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect.", - "editType": "calc", - "valType": "any" - }, - "showlegend": { - "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", - "dflt": true, - "editType": "style", - "valType": "boolean" - }, - "stream": { - "editType": "calc", - "maxpoints": { - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot.", - "dflt": 500, - "editType": "calc", - "max": 10000, - "min": 0, - "valType": "number" + "title": { + "editType": "calc", + "font": { + "color": { + "editType": "calc", + "valType": "color" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "calc", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "valType": "string" + }, + "size": { + "editType": "calc", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "calc", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "role": "object", + "side": { + "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ] + }, + "text": { + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "calc", + "valType": "string" + } + }, + "x": { + "description": "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*.", + "editType": "calc", + "valType": "number" + }, + "xanchor": { + "description": "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*.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ] + }, + "xpad": { + "description": "Sets the amount of padding (in px) along the x direction.", + "dflt": 10, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "calc", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, + "y": { + "description": "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*.", + "editType": "calc", + "valType": "number" + }, + "yanchor": { + "description": "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*.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ] + }, + "ypad": { + "description": "Sets the amount of padding (in px) along the y direction.", + "dflt": 10, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "calc", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + } }, - "role": "object", - "token": { - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details.", + "colorscale": { + "description": "Sets the colorscale. Has an effect only if in `line.color` is set to a numerical array. 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 `line.cmin` and `line.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.", + "dflt": null, "editType": "calc", - "noBlank": true, - "strict": true, - "valType": "string" - } - }, - "text": { - "arrayOk": true, - "description": "Sets text elements associated with each (a,b) point. If a single string, the same string appears over all the data points. If an array of strings, the items are mapped in order to the the data points in (a,b). If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "textfont": { - "color": { - "arrayOk": true, - "editType": "style", - "valType": "color" + "impliedEdits": { + "autocolorscale": false + }, + "valType": "colorscale" }, "colorsrc": { "description": "Sets the source reference on Chart Studio Cloud for `color`.", "editType": "none", "valType": "string" }, - "description": "Sets the text font.", - "editType": "calc", - "family": { - "arrayOk": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "dash": { + "description": "Sets the dash style of the lines.", + "dflt": "solid", "editType": "calc", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" + "valType": "enumerated", + "values": [ + "dash", + "dashdot", + "dot", + "longdash", + "longdashdot", + "solid" + ] }, - "lineposition": { - "arrayOk": true, - "description": "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.", - "dflt": "none", + "editType": "calc", + "reversescale": { + "description": "Reverses the color mapping if true. Has an effect only if in `line.color` is set to a numerical array. If true, `line.cmin` will correspond to the last color in the array and `line.cmax` will correspond to the first color.", + "dflt": false, "editType": "calc", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", - "valType": "string" + "valType": "boolean" }, "role": "object", - "shadow": { - "arrayOk": true, - "description": "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.", - "dflt": "none", + "showscale": { + "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `line.color` is set to a numerical array.", + "dflt": false, "editType": "calc", - "valType": "string" - }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", - "editType": "none", - "valType": "string" + "valType": "boolean" }, - "size": { - "arrayOk": true, + "width": { + "description": "Sets the line width (in px).", + "dflt": 2, "editType": "calc", - "min": 1, + "min": 0, "valType": "number" - }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" - }, - "style": { - "arrayOk": true, - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", + } + }, + "marker": { + "autocolorscale": { + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color` is set to a numerical array. 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.", + "dflt": true, "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" + "impliedEdits": {}, + "valType": "boolean" }, - "textcase": { - "arrayOk": true, - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", + "cauto": { + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color` is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user.", + "dflt": true, "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] + "impliedEdits": {}, + "valType": "boolean" }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" + "cmax": { + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "valType": "number" }, - "variant": { - "arrayOk": true, - "description": "Sets the variant of the font.", - "dflt": "normal", + "cmid": { + "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`.", + "dflt": null, "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] + "impliedEdits": {}, + "valType": "number" }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" + "cmin": { + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "valType": "number" }, - "weight": { + "color": { "arrayOk": true, - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", + "description": "Sets the marker color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set.", "editType": "calc", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", - "valType": "string" - } - }, - "textposition": { - "arrayOk": true, - "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates.", - "dflt": "middle center", - "editType": "calc", - "valType": "enumerated", - "values": [ - "top left", - "top center", - "top right", - "middle left", - "middle center", - "middle right", - "bottom left", - "bottom center", - "bottom right" - ] - }, - "textpositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textposition`.", - "editType": "none", - "valType": "string" - }, - "textsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `text`.", - "editType": "none", - "valType": "string" - }, - "texttemplate": { - "arrayOk": true, - "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". 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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `a`, `b` and `text`.", - "dflt": "", - "editType": "plot", - "valType": "string" - }, - "texttemplatesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `texttemplate`.", - "editType": "none", - "valType": "string" - }, - "transforms": { - "items": { - "transform": { - "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "editType": "calc", - "role": "object" - } + "valType": "color" }, - "role": "object" - }, - "type": "scattercarpet", - "uid": { - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", - "editType": "plot", - "valType": "string" - }, - "uirevision": { - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.", - "editType": "none", - "valType": "any" - }, - "unselected": { - "editType": "style", - "marker": { - "color": { - "description": "Sets the marker color of unselected points, applied only when a selection exists.", - "editType": "style", - "valType": "color" - }, - "editType": "style", - "opacity": { - "description": "Sets the marker opacity of unselected points, applied only when a selection exists.", - "editType": "style", - "max": 1, - "min": 0, - "valType": "number" - }, - "role": "object", - "size": { - "description": "Sets the marker size of unselected points, applied only when a selection exists.", - "editType": "style", - "min": 0, - "valType": "number" - } + "coloraxis": { + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", + "dflt": null, + "editType": "calc", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "valType": "subplotid" }, - "role": "object", - "textfont": { - "color": { - "description": "Sets the text font color of unselected points, applied only when a selection exists.", - "editType": "style", - "valType": "color" - }, - "editType": "style", - "role": "object" - } - }, - "visible": { - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", - "dflt": true, - "editType": "calc", - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ] - }, - "xaxis": { - "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on.", - "dflt": "x", - "editType": "calc+clearAxisTypes", - "valType": "subplotid" - }, - "yaxis": { - "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on.", - "dflt": "y", - "editType": "calc+clearAxisTypes", - "valType": "subplotid" - }, - "zorder": { - "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", - "dflt": 0, - "editType": "plot", - "valType": "integer" - } - }, - "categories": [ - "svg", - "carpet", - "symbols", - "showLegend", - "carpetDependent", - "zoomScale" - ], - "meta": { - "description": "Plots a scatter trace on either the first carpet axis or the carpet axis with a matching `carpet` attribute.", - "hrName": "scatter_carpet" - }, - "type": "scattercarpet" - }, - "scattergeo": { - "animatable": false, - "attributes": { - "connectgaps": { - "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the provided data arrays are connected.", - "dflt": false, - "editType": "calc", - "valType": "boolean" - }, - "customdata": { - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "editType": "calc", - "valType": "data_array" - }, - "customdatasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", - "editType": "none", - "valType": "string" - }, - "featureidkey": { - "description": "Sets the key in GeoJSON features which is used as id to match the items included in the `locations` array. Only has an effect when `geojson` is set. Support nested property, for example *properties.name*.", - "dflt": "id", - "editType": "calc", - "valType": "string" - }, - "fill": { - "description": "Sets the area to fill with a solid color. Use with `fillcolor` if not *none*. *toself* connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape.", - "dflt": "none", - "editType": "calc", - "valType": "enumerated", - "values": [ - "none", - "toself" - ] - }, - "fillcolor": { - "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available.", - "editType": "calc", - "valType": "color" - }, - "geo": { - "description": "Sets a reference between this trace's geospatial coordinates and a geographic map. If *geo* (the default value), the geospatial coordinates refer to `layout.geo`. If *geo2*, the geospatial coordinates refer to `layout.geo2`, and so on.", - "dflt": "geo", - "editType": "calc", - "valType": "subplotid" - }, - "geojson": { - "description": "Sets optional GeoJSON data associated with this trace. If not given, the features on the base map are used when `locations` is set. It can be set as a valid GeoJSON object or as a URL string. Note that we only accept GeoJSONs of type *FeatureCollection* or *Feature* with geometries of type *Polygon* or *MultiPolygon*.", - "editType": "calc", - "valType": "any" - }, - "hoverinfo": { - "arrayOk": true, - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", - "dflt": "all", - "editType": "calc", - "extras": [ - "all", - "none", - "skip" - ], - "flags": [ - "lon", - "lat", - "location", - "text", - "name" - ], - "valType": "flaglist" - }, - "hoverinfosrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", - "editType": "none", - "valType": "string" - }, - "hoverlabel": { - "align": { - "arrayOk": true, - "description": "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", - "dflt": "auto", - "editType": "none", - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ] - }, - "alignsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `align`.", - "editType": "none", - "valType": "string" - }, - "bgcolor": { - "arrayOk": true, - "description": "Sets the background color of the hover labels for this trace", - "editType": "none", - "valType": "color" - }, - "bgcolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", - "editType": "none", - "valType": "string" - }, - "bordercolor": { - "arrayOk": true, - "description": "Sets the border color of the hover labels for this trace.", - "editType": "none", - "valType": "color" - }, - "bordercolorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", - "editType": "none", - "valType": "string" - }, - "editType": "none", - "font": { - "color": { - "arrayOk": true, - "editType": "none", + "colorbar": { + "_deprecated": { + "title": { + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "calc", + "valType": "string" + }, + "titlefont": { + "color": { + "editType": "calc", + "valType": "color" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "calc", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "valType": "string" + }, + "size": { + "editType": "calc", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "calc", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "titleside": { + "description": "Deprecated in favor of color bar's `title.side`.", + "dflt": "top", + "editType": "calc", + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ] + } + }, + "bgcolor": { + "description": "Sets the color of padded area.", + "dflt": "rgba(0,0,0,0)", + "editType": "calc", "valType": "color" }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" + "bordercolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "calc", + "valType": "color" }, - "description": "Sets the font used in hover labels.", - "editType": "none", - "family": { - "arrayOk": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "none", - "noBlank": true, - "strict": true, - "valType": "string" + "borderwidth": { + "description": "Sets the width (in px) or the border enclosing this color bar.", + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "number" }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" + "dtick": { + "description": "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*, 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* 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*", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" }, - "lineposition": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "none", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" + "editType": "calc", + "exponentformat": { + "description": "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.", + "dflt": "B", + "editType": "calc", + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ] }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", - "valType": "string" + "labelalias": { + "description": "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.", + "dflt": false, + "editType": "calc", + "valType": "any" }, - "role": "object", - "shadow": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "none", - "valType": "string" + "len": { + "description": "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.", + "dflt": 1, + "editType": "calc", + "min": 0, + "valType": "number" }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", - "editType": "none", - "valType": "string" + "lenmode": { + "description": "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.", + "dflt": "fraction", + "editType": "calc", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] }, - "size": { - "arrayOk": true, - "editType": "none", - "min": 1, + "minexponent": { + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", + "dflt": 3, + "editType": "calc", + "min": 0, "valType": "number" }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" + "nticks": { + "description": "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*.", + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "integer" }, - "style": { - "arrayOk": true, - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "none", + "orientation": { + "description": "Sets the orientation of the colorbar.", + "dflt": "v", + "editType": "calc", "valType": "enumerated", "values": [ - "normal", - "italic" + "h", + "v" ] }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" + "outlinecolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "calc", + "valType": "color" }, - "textcase": { - "arrayOk": true, - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "none", + "outlinewidth": { + "description": "Sets the width (in px) of the axis line.", + "dflt": 1, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "role": "object", + "separatethousands": { + "description": "If \"true\", even 4-digit integers are separated", + "dflt": false, + "editType": "calc", + "valType": "boolean" + }, + "showexponent": { + "description": "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.", + "dflt": "all", + "editType": "calc", "valType": "enumerated", "values": [ - "normal", - "word caps", - "upper", - "lower" + "all", + "first", + "last", + "none" ] }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" + "showticklabels": { + "description": "Determines whether or not the tick labels are drawn.", + "dflt": true, + "editType": "calc", + "valType": "boolean" }, - "variant": { - "arrayOk": true, - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "none", + "showtickprefix": { + "description": "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.", + "dflt": "all", + "editType": "calc", "valType": "enumerated", "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" + "all", + "first", + "last", + "none" ] }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" + "showticksuffix": { + "description": "Same as `showtickprefix` but for tick suffixes.", + "dflt": "all", + "editType": "calc", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] }, - "weight": { - "arrayOk": true, - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "none", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" + "thickness": { + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "dflt": 30, + "editType": "calc", + "min": 0, + "valType": "number" }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", - "valType": "string" - } - }, - "namelength": { - "arrayOk": true, - "description": "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.", - "dflt": 15, - "editType": "none", - "min": -1, - "valType": "integer" - }, - "namelengthsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", - "editType": "none", - "valType": "string" - }, - "role": "object" - }, - "hovertemplate": { - "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "hovertemplatesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", - "editType": "none", - "valType": "string" - }, - "hovertext": { - "arrayOk": true, - "description": "Sets hover text elements associated with each (lon,lat) pair or item in `locations`. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (lon,lat) or `locations` coordinates. To be seen, trace `hoverinfo` must contain a *text* flag.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "hovertextsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `hovertext`.", - "editType": "none", - "valType": "string" - }, - "ids": { - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "editType": "calc", - "valType": "data_array" - }, - "idssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ids`.", - "editType": "none", - "valType": "string" - }, - "lat": { - "description": "Sets the latitude coordinates (in degrees North).", - "editType": "calc", - "valType": "data_array" - }, - "latsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lat`.", - "editType": "none", - "valType": "string" - }, - "legend": { - "description": "Sets the reference to a legend to show this trace 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.", - "dflt": "legend", - "editType": "style", - "valType": "subplotid" - }, - "legendgroup": { - "description": "Sets the legend group for this trace. Traces and shapes part of the same legend group hide/show at the same time when toggling legend items.", - "dflt": "", - "editType": "style", - "valType": "string" - }, - "legendgrouptitle": { - "editType": "style", - "font": { - "color": { - "editType": "style", + "thicknessmode": { + "description": "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.", + "dflt": "pixels", + "editType": "calc", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] + }, + "tick0": { + "description": "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* (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.", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" + }, + "tickangle": { + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", + "dflt": "auto", + "editType": "calc", + "valType": "angle" + }, + "tickcolor": { + "description": "Sets the tick color.", + "dflt": "#444", + "editType": "calc", "valType": "color" }, - "description": "Sets this legend group's title font.", - "editType": "style", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "style", - "noBlank": true, - "strict": true, + "tickfont": { + "color": { + "editType": "calc", + "valType": "color" + }, + "description": "Sets the color bar's tick label font", + "editType": "calc", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "valType": "string" + }, + "size": { + "editType": "calc", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "calc", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "tickformat": { + "description": "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*", + "dflt": "", + "editType": "calc", "valType": "string" }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "style", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" + "tickformatstops": { + "items": { + "tickformatstop": { + "dtickrange": { + "description": "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*", + "editType": "calc", + "items": [ + { + "editType": "calc", + "valType": "any" + }, + { + "editType": "calc", + "valType": "any" + } + ], + "valType": "info_array" + }, + "editType": "calc", + "enabled": { + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", + "dflt": true, + "editType": "calc", + "valType": "boolean" + }, + "name": { + "description": "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.", + "editType": "calc", + "valType": "string" + }, + "role": "object", + "templateitemname": { + "description": "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`.", + "editType": "calc", + "valType": "string" + }, + "value": { + "description": "string - dtickformat for described zoom level, the same as *tickformat*", + "dflt": "", + "editType": "calc", + "valType": "string" + } + } + }, + "role": "object" }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "style", - "valType": "string" + "ticklabeloverflow": { + "description": "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*.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ] }, - "size": { - "editType": "style", + "ticklabelposition": { + "description": "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*.", + "dflt": "outside", + "editType": "calc", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside left", + "inside left", + "outside right", + "inside right", + "outside bottom", + "inside bottom" + ] + }, + "ticklabelstep": { + "description": "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*.", + "dflt": 1, + "editType": "calc", "min": 1, + "valType": "integer" + }, + "ticklen": { + "description": "Sets the tick length (in px).", + "dflt": 5, + "editType": "calc", + "min": 0, "valType": "number" }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "style", + "tickmode": { + "description": "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).", + "editType": "calc", + "impliedEdits": {}, "valType": "enumerated", "values": [ - "normal", - "italic" + "auto", + "linear", + "array" ] }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "style", + "tickprefix": { + "description": "Sets a tick label prefix.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "ticks": { + "description": "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.", + "dflt": "", + "editType": "calc", "valType": "enumerated", "values": [ - "normal", - "word caps", - "upper", - "lower" + "outside", + "inside", + "" ] }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "style", + "ticksuffix": { + "description": "Sets a tick label suffix.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "ticktext": { + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", + "editType": "calc", + "valType": "data_array" + }, + "ticktextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", + "editType": "none", + "valType": "string" + }, + "tickvals": { + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", + "editType": "calc", + "valType": "data_array" + }, + "tickvalssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", + "editType": "none", + "valType": "string" + }, + "tickwidth": { + "description": "Sets the tick width (in px).", + "dflt": 1, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "title": { + "editType": "calc", + "font": { + "color": { + "editType": "calc", + "valType": "color" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "calc", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "valType": "string" + }, + "size": { + "editType": "calc", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "calc", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "role": "object", + "side": { + "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ] + }, + "text": { + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "calc", + "valType": "string" + } + }, + "x": { + "description": "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*.", + "editType": "calc", + "valType": "number" + }, + "xanchor": { + "description": "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*.", + "editType": "calc", "valType": "enumerated", "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" + "left", + "center", + "right" ] }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "style", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "role": "object", - "text": { - "description": "Sets the title of the legend group.", - "dflt": "", - "editType": "style", - "valType": "string" - } - }, - "legendrank": { - "description": "Sets the legend rank for this trace. 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.", - "dflt": 1000, - "editType": "style", - "valType": "number" - }, - "legendwidth": { - "description": "Sets the width (in px or fraction) of the legend for this trace.", - "editType": "style", - "min": 0, - "valType": "number" - }, - "line": { - "color": { - "description": "Sets the line color.", - "editType": "calc", - "valType": "color" - }, - "dash": { - "description": "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*).", - "dflt": "solid", - "editType": "calc", - "valType": "string", - "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" - ] - }, - "editType": "calc", - "role": "object", - "width": { - "description": "Sets the line width (in px).", - "dflt": 2, - "editType": "calc", - "min": 0, - "valType": "number" - } - }, - "locationmode": { - "description": "Determines the set of locations used to match entries in `locations` to regions on the map. Values *ISO-3*, *USA-states*, *country names* correspond to features on the base map and value *geojson-id* corresponds to features from a custom GeoJSON linked to the `geojson` attribute.", - "dflt": "ISO-3", - "editType": "calc", - "valType": "enumerated", - "values": [ - "ISO-3", - "USA-states", - "country names", - "geojson-id" - ] - }, - "locations": { - "description": "Sets the coordinates via location IDs or names. Coordinates correspond to the centroid of each location given. See `locationmode` for more info.", - "editType": "calc", - "valType": "data_array" - }, - "locationssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `locations`.", - "editType": "none", - "valType": "string" - }, - "lon": { - "description": "Sets the longitude coordinates (in degrees East).", - "editType": "calc", - "valType": "data_array" - }, - "lonsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lon`.", - "editType": "none", - "valType": "string" - }, - "marker": { - "angle": { - "arrayOk": true, - "description": "Sets the marker angle in respect to `angleref`.", - "dflt": 0, - "editType": "calc", - "valType": "angle" - }, - "angleref": { - "description": "Sets the reference for marker angle. With *previous*, angle 0 points along the line from the previous point to this one. With *up*, angle 0 points toward the top of the screen. With *north*, angle 0 points north based on the current map projection.", - "dflt": "up", - "editType": "calc", - "valType": "enumerated", - "values": [ - "previous", - "up", - "north" - ] - }, - "anglesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `angle`.", - "editType": "none", - "valType": "string" - }, - "autocolorscale": { - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color` is set to a numerical array. 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.", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" - }, - "cauto": { - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color` is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user.", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" - }, - "cmax": { - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "valType": "number" - }, - "cmid": { - "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`.", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "valType": "number" - }, - "cmin": { - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "valType": "number" - }, - "color": { - "arrayOk": true, - "description": "Sets the marker color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set.", - "editType": "calc", - "valType": "color" - }, - "coloraxis": { - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", - "dflt": null, - "editType": "calc", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "valType": "subplotid" - }, - "colorbar": { - "_deprecated": { - "title": { - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "calc", - "valType": "string" - }, - "titlefont": { - "color": { - "editType": "calc", - "valType": "color" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "calc", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "calc", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "calc", - "valType": "string" - }, - "size": { - "editType": "calc", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "calc", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "titleside": { - "description": "Deprecated in favor of color bar's `title.side`.", - "dflt": "top", - "editType": "calc", - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ] - } - }, - "bgcolor": { - "description": "Sets the color of padded area.", - "dflt": "rgba(0,0,0,0)", - "editType": "calc", - "valType": "color" - }, - "bordercolor": { - "description": "Sets the axis line color.", - "dflt": "#444", - "editType": "calc", - "valType": "color" - }, - "borderwidth": { - "description": "Sets the width (in px) or the border enclosing this color bar.", - "dflt": 0, + "xpad": { + "description": "Sets the amount of padding (in px) along the x direction.", + "dflt": 10, "editType": "calc", "min": 0, "valType": "number" }, - "dtick": { - "description": "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*, 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* 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*", - "editType": "calc", - "impliedEdits": { - "tickmode": "linear" - }, - "valType": "any" - }, - "editType": "calc", - "exponentformat": { - "description": "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.", - "dflt": "B", + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", "editType": "calc", "valType": "enumerated", "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" + "container", + "paper" ] }, - "labelalias": { - "description": "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.", - "dflt": false, - "editType": "calc", - "valType": "any" - }, - "len": { - "description": "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.", - "dflt": 1, + "y": { + "description": "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*.", "editType": "calc", - "min": 0, "valType": "number" }, - "lenmode": { - "description": "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.", - "dflt": "fraction", + "yanchor": { + "description": "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*.", "editType": "calc", "valType": "enumerated", "values": [ - "fraction", - "pixels" + "top", + "middle", + "bottom" ] }, - "minexponent": { - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", - "dflt": 3, + "ypad": { + "description": "Sets the amount of padding (in px) along the y direction.", + "dflt": 10, "editType": "calc", "min": 0, "valType": "number" }, - "nticks": { - "description": "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*.", - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "integer" - }, - "orientation": { - "description": "Sets the orientation of the colorbar.", - "dflt": "v", + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", "editType": "calc", "valType": "enumerated", "values": [ - "h", - "v" + "container", + "paper" ] + } + }, + "colorscale": { + "description": "Sets the colorscale. Has an effect only if in `marker.color` is set to a numerical array. 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 `marker.cmin` and `marker.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.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "autocolorscale": false }, - "outlinecolor": { - "description": "Sets the axis line color.", - "dflt": "#444", - "editType": "calc", - "valType": "color" - }, - "outlinewidth": { - "description": "Sets the width (in px) of the axis line.", - "dflt": 1, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "role": "object", - "separatethousands": { - "description": "If \"true\", even 4-digit integers are separated", - "dflt": false, + "valType": "colorscale" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "editType": "calc", + "line": { + "autocolorscale": { + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color` is set to a numerical array. 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.", + "dflt": true, "editType": "calc", + "impliedEdits": {}, "valType": "boolean" }, - "showexponent": { - "description": "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.", - "dflt": "all", - "editType": "calc", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] - }, - "showticklabels": { - "description": "Determines whether or not the tick labels are drawn.", + "cauto": { + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color` is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user.", "dflt": true, "editType": "calc", + "impliedEdits": {}, "valType": "boolean" }, - "showtickprefix": { - "description": "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.", - "dflt": "all", + "cmax": { + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well.", + "dflt": null, "editType": "calc", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] + "impliedEdits": { + "cauto": false + }, + "valType": "number" }, - "showticksuffix": { - "description": "Same as `showtickprefix` but for tick suffixes.", - "dflt": "all", + "cmid": { + "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`.", + "dflt": null, "editType": "calc", - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ] + "impliedEdits": {}, + "valType": "number" }, - "thickness": { - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "dflt": 30, + "cmin": { + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well.", + "dflt": null, "editType": "calc", - "min": 0, + "impliedEdits": { + "cauto": false + }, "valType": "number" }, - "thicknessmode": { - "description": "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.", - "dflt": "pixels", + "color": { + "arrayOk": true, + "description": "Sets the marker.line color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set.", "editType": "calc", - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ] + "valType": "color" }, - "tick0": { - "description": "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* (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.", + "coloraxis": { + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", + "dflt": null, + "editType": "calc", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "valType": "subplotid" + }, + "colorscale": { + "description": "Sets the colorscale. Has an effect only if in `marker.line.color` is set to a numerical array. 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 `marker.line.cmin` and `marker.line.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.", + "dflt": null, "editType": "calc", "impliedEdits": { - "tickmode": "linear" + "autocolorscale": false }, - "valType": "any" + "valType": "colorscale" }, - "tickangle": { - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", - "dflt": "auto", - "editType": "calc", - "valType": "angle" + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" }, - "tickcolor": { - "description": "Sets the tick color.", - "dflt": "#444", + "editType": "calc", + "reversescale": { + "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color` is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color.", + "dflt": false, "editType": "calc", - "valType": "color" + "valType": "boolean" }, - "tickfont": { - "color": { - "editType": "calc", - "valType": "color" - }, - "description": "Sets the color bar's tick label font", + "role": "object", + "width": { + "arrayOk": false, + "description": "Sets the width (in px) of the lines bounding the marker points.", "editType": "calc", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "calc", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "calc", - "valType": "string" - }, - "size": { - "editType": "calc", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "calc", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "tickformat": { - "description": "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*", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "dtickrange": { - "description": "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*", - "editType": "calc", - "items": [ - { - "editType": "calc", - "valType": "any" - }, - { - "editType": "calc", - "valType": "any" - } - ], - "valType": "info_array" - }, - "editType": "calc", - "enabled": { - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", - "dflt": true, - "editType": "calc", - "valType": "boolean" - }, - "name": { - "description": "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.", - "editType": "calc", - "valType": "string" - }, - "role": "object", - "templateitemname": { - "description": "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`.", - "editType": "calc", - "valType": "string" - }, - "value": { - "description": "string - dtickformat for described zoom level, the same as *tickformat*", - "dflt": "", - "editType": "calc", - "valType": "string" - } - } - }, - "role": "object" - }, - "ticklabeloverflow": { - "description": "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*.", - "editType": "calc", - "valType": "enumerated", - "values": [ - "allow", - "hide past div", - "hide past domain" - ] - }, - "ticklabelposition": { - "description": "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*.", - "dflt": "outside", - "editType": "calc", - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside left", - "inside left", - "outside right", - "inside right", - "outside bottom", - "inside bottom" - ] - }, - "ticklabelstep": { - "description": "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*.", + "min": 0, + "valType": "number" + } + }, + "opacity": { + "arrayOk": false, + "description": "Sets the marker opacity. Note that the marker opacity for scatter3d traces must be a scalar value for performance reasons. To set a blending opacity value (i.e. which is not transparent), set *marker.color* to an rgba color and use its alpha channel.", + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + }, + "reversescale": { + "description": "Reverses the color mapping if true. Has an effect only if in `marker.color` is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color.", + "dflt": false, + "editType": "calc", + "valType": "boolean" + }, + "role": "object", + "showscale": { + "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color` is set to a numerical array.", + "dflt": false, + "editType": "calc", + "valType": "boolean" + }, + "size": { + "arrayOk": true, + "description": "Sets the marker size (in px).", + "dflt": 8, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "sizemin": { + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the minimum size (in px) of the rendered marker points.", + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "sizemode": { + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the rule for which the data in `size` is converted to pixels.", + "dflt": "diameter", + "editType": "calc", + "valType": "enumerated", + "values": [ + "diameter", + "area" + ] + }, + "sizeref": { + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the scale factor used to determine the rendered size of marker points. Use with `sizemin` and `sizemode`.", + "dflt": 1, + "editType": "calc", + "valType": "number" + }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, + "symbol": { + "arrayOk": true, + "description": "Sets the marker symbol type.", + "dflt": "circle", + "editType": "calc", + "valType": "enumerated", + "values": [ + "circle", + "circle-open", + "cross", + "diamond", + "diamond-open", + "square", + "square-open", + "x" + ] + }, + "symbolsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `symbol`.", + "editType": "none", + "valType": "string" + } + }, + "meta": { + "arrayOk": true, + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", + "editType": "plot", + "valType": "any" + }, + "metasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `meta`.", + "editType": "none", + "valType": "string" + }, + "mode": { + "description": "Determines the drawing mode for this scatter trace. If the provided `mode` includes *text* then the `text` elements appear at the coordinates. Otherwise, the `text` elements appear on hover. If there are less than 20 points and the trace is not stacked then the default is *lines+markers*. Otherwise, *lines*.", + "dflt": "lines+markers", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "lines", + "markers", + "text" + ], + "valType": "flaglist" + }, + "name": { + "description": "Sets the trace name. The trace name appears as the legend item and on hover.", + "editType": "style", + "valType": "string" + }, + "opacity": { + "description": "Sets the opacity of the trace.", + "dflt": 1, + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + }, + "projection": { + "editType": "calc", + "role": "object", + "x": { + "editType": "calc", + "opacity": { + "description": "Sets the projection color.", "dflt": 1, "editType": "calc", - "min": 1, - "valType": "integer" - }, - "ticklen": { - "description": "Sets the tick length (in px).", - "dflt": 5, - "editType": "calc", + "max": 1, "min": 0, "valType": "number" }, - "tickmode": { - "description": "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).", - "editType": "calc", - "impliedEdits": {}, - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ] - }, - "tickprefix": { - "description": "Sets a tick label prefix.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "ticks": { - "description": "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.", - "dflt": "", - "editType": "calc", - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ] - }, - "ticksuffix": { - "description": "Sets a tick label suffix.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "ticktext": { - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", + "role": "object", + "scale": { + "description": "Sets the scale factor determining the size of the projection marker points.", + "dflt": 0.6666666666666666, "editType": "calc", - "valType": "data_array" - }, - "ticktextsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", - "editType": "none", - "valType": "string" + "max": 10, + "min": 0, + "valType": "number" }, - "tickvals": { - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", + "show": { + "description": "Sets whether or not projections are shown along the x axis.", + "dflt": false, "editType": "calc", - "valType": "data_array" - }, - "tickvalssrc": { - "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", - "editType": "none", - "valType": "string" - }, - "tickwidth": { - "description": "Sets the tick width (in px).", + "valType": "boolean" + } + }, + "y": { + "editType": "calc", + "opacity": { + "description": "Sets the projection color.", "dflt": 1, "editType": "calc", + "max": 1, "min": 0, "valType": "number" }, - "title": { - "editType": "calc", - "font": { - "color": { - "editType": "calc", - "valType": "color" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "calc", - "family": { - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "lineposition": { - "description": "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.", - "dflt": "none", - "editType": "calc", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "role": "object", - "shadow": { - "description": "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.", - "dflt": "none", - "editType": "calc", - "valType": "string" - }, - "size": { - "editType": "calc", - "min": 1, - "valType": "number" - }, - "style": { - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "textcase": { - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "variant": { - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "weight": { - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "calc", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - } - }, - "role": "object", - "side": { - "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "calc", - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ] - }, - "text": { - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "calc", - "valType": "string" - } - }, - "x": { - "description": "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*.", + "role": "object", + "scale": { + "description": "Sets the scale factor determining the size of the projection marker points.", + "dflt": 0.6666666666666666, "editType": "calc", + "max": 10, + "min": 0, "valType": "number" }, - "xanchor": { - "description": "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*.", + "show": { + "description": "Sets whether or not projections are shown along the y axis.", + "dflt": false, "editType": "calc", - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ] - }, - "xpad": { - "description": "Sets the amount of padding (in px) along the x direction.", - "dflt": 10, + "valType": "boolean" + } + }, + "z": { + "editType": "calc", + "opacity": { + "description": "Sets the projection color.", + "dflt": 1, "editType": "calc", + "max": 1, "min": 0, "valType": "number" }, - "xref": { - "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", - "dflt": "paper", - "editType": "calc", - "valType": "enumerated", - "values": [ - "container", - "paper" - ] - }, - "y": { - "description": "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*.", + "role": "object", + "scale": { + "description": "Sets the scale factor determining the size of the projection marker points.", + "dflt": 0.6666666666666666, "editType": "calc", + "max": 10, + "min": 0, "valType": "number" }, - "yanchor": { - "description": "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*.", - "editType": "calc", - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ] - }, - "ypad": { - "description": "Sets the amount of padding (in px) along the y direction.", - "dflt": 10, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "yref": { - "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", - "dflt": "paper", + "show": { + "description": "Sets whether or not projections are shown along the z axis.", + "dflt": false, "editType": "calc", - "valType": "enumerated", - "values": [ - "container", - "paper" - ] + "valType": "boolean" } + } + }, + "scene": { + "description": "Sets a reference between this trace's 3D coordinate system and a 3D scene. If *scene* (the default value), the (x,y,z) coordinates refer to `layout.scene`. If *scene2*, the (x,y,z) coordinates refer to `layout.scene2`, and so on.", + "dflt": "scene", + "editType": "calc+clearAxisTypes", + "valType": "subplotid" + }, + "showlegend": { + "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", + "dflt": true, + "editType": "style", + "valType": "boolean" + }, + "stream": { + "editType": "calc", + "maxpoints": { + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot.", + "dflt": 500, + "editType": "calc", + "max": 10000, + "min": 0, + "valType": "number" }, - "colorscale": { - "description": "Sets the colorscale. Has an effect only if in `marker.color` is set to a numerical array. 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 `marker.cmin` and `marker.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.", - "dflt": null, + "role": "object", + "token": { + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details.", "editType": "calc", - "impliedEdits": { - "autocolorscale": false - }, - "valType": "colorscale" + "noBlank": true, + "strict": true, + "valType": "string" + } + }, + "surfaceaxis": { + "description": "If *-1*, the scatter points are not fill with a surface If *0*, *1*, *2*, the scatter points are filled with a Delaunay surface about the x, y, z respectively.", + "dflt": -1, + "editType": "calc", + "valType": "enumerated", + "values": [ + -1, + 0, + 1, + 2 + ] + }, + "surfacecolor": { + "description": "Sets the surface fill color.", + "editType": "calc", + "valType": "color" + }, + "text": { + "arrayOk": true, + "description": "Sets text elements associated with each (x,y,z) triplet. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y,z) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "textfont": { + "color": { + "arrayOk": true, + "editType": "calc", + "valType": "color" }, "colorsrc": { "description": "Sets the source reference on Chart Studio Cloud for `color`.", "editType": "none", "valType": "string" }, + "description": "Sets the text font.", "editType": "calc", - "gradient": { - "color": { - "arrayOk": true, - "description": "Sets the final color of the gradient fill: the center color for radial, the right for horizontal, or the bottom for vertical.", - "editType": "calc", - "valType": "color" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "editType": "calc", - "role": "object", - "type": { - "arrayOk": true, - "description": "Sets the type of gradient used to fill the markers", - "dflt": "none", - "editType": "calc", - "valType": "enumerated", - "values": [ - "radial", - "horizontal", - "vertical", - "none" - ] - }, - "typesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `type`.", - "editType": "none", - "valType": "string" - } - }, - "line": { - "autocolorscale": { - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color` is set to a numerical array. 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.", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" - }, - "cauto": { - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color` is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user.", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "valType": "boolean" - }, - "cmax": { - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "valType": "number" - }, - "cmid": { - "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`.", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "valType": "number" - }, - "cmin": { - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "valType": "number" - }, - "color": { - "arrayOk": true, - "description": "Sets the marker.line color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set.", - "editType": "calc", - "valType": "color" - }, - "coloraxis": { - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", - "dflt": null, - "editType": "calc", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "valType": "subplotid" - }, - "colorscale": { - "description": "Sets the colorscale. Has an effect only if in `marker.line.color` is set to a numerical array. 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 `marker.line.cmin` and `marker.line.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.", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "autocolorscale": false - }, - "valType": "colorscale" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "editType": "calc", - "reversescale": { - "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color` is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color.", - "dflt": false, - "editType": "calc", - "valType": "boolean" - }, - "role": "object", - "width": { - "arrayOk": true, - "description": "Sets the width (in px) of the lines bounding the marker points.", - "editType": "calc", - "min": 0, - "valType": "number" - }, - "widthsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `width`.", - "editType": "none", - "valType": "string" - } - }, - "opacity": { + "family": { "arrayOk": true, - "description": "Sets the marker opacity.", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" + "noBlank": true, + "strict": true, + "valType": "string" }, - "opacitysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `opacity`.", + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", "editType": "none", "valType": "string" }, - "reversescale": { - "description": "Reverses the color mapping if true. Has an effect only if in `marker.color` is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color.", - "dflt": false, - "editType": "calc", - "valType": "boolean" - }, "role": "object", - "showscale": { - "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color` is set to a numerical array.", - "dflt": false, - "editType": "calc", - "valType": "boolean" - }, "size": { "arrayOk": true, - "description": "Sets the marker size (in px).", - "dflt": 6, "editType": "calc", - "min": 0, + "min": 1, "valType": "number" }, - "sizemin": { - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the minimum size (in px) of the rendered marker points.", - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "number" + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" }, - "sizemode": { - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the rule for which the data in `size` is converted to pixels.", - "dflt": "diameter", + "style": { + "arrayOk": true, + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", "editType": "calc", "valType": "enumerated", "values": [ - "diameter", - "area" + "normal", + "italic" ] }, - "sizeref": { - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the scale factor used to determine the rendered size of marker points. Use with `sizemin` and `sizemode`.", - "dflt": 1, - "editType": "calc", - "valType": "number" - }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", "editType": "none", "valType": "string" }, - "standoff": { + "variant": { "arrayOk": true, - "description": "Moves the marker away from the data point in the direction of `angle` (in px). This can be useful for example if you have another marker at this location and you want to point an arrowhead marker at it.", - "dflt": 0, + "description": "Sets the variant of the font.", + "dflt": "normal", "editType": "calc", - "min": 0, - "valType": "number" + "valType": "enumerated", + "values": [ + "normal", + "small-caps" + ] }, - "standoffsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `standoff`.", + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", "editType": "none", "valType": "string" }, - "symbol": { + "weight": { "arrayOk": true, - "description": "Sets the marker symbol type. Adding 100 is equivalent to appending *-open* to a symbol name. Adding 200 is equivalent to appending *-dot* to a symbol name. Adding 300 is equivalent to appending *-open-dot* or *dot-open* to a symbol name.", - "dflt": "circle", + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", "editType": "calc", - "valType": "enumerated", - "values": [ - 0, - "0", - "circle", - 100, - "100", - "circle-open", - 200, - "200", - "circle-dot", - 300, - "300", - "circle-open-dot", - 1, - "1", - "square", - 101, - "101", - "square-open", - 201, - "201", - "square-dot", - 301, - "301", - "square-open-dot", - 2, - "2", - "diamond", - 102, - "102", - "diamond-open", - 202, - "202", - "diamond-dot", - 302, - "302", - "diamond-open-dot", - 3, - "3", - "cross", - 103, - "103", - "cross-open", - 203, - "203", - "cross-dot", - 303, - "303", - "cross-open-dot", - 4, - "4", - "x", - 104, - "104", - "x-open", - 204, - "204", - "x-dot", - 304, - "304", - "x-open-dot", - 5, - "5", - "triangle-up", - 105, - "105", - "triangle-up-open", - 205, - "205", - "triangle-up-dot", - 305, - "305", - "triangle-up-open-dot", - 6, - "6", - "triangle-down", - 106, - "106", - "triangle-down-open", - 206, - "206", - "triangle-down-dot", - 306, - "306", - "triangle-down-open-dot", - 7, - "7", - "triangle-left", - 107, - "107", - "triangle-left-open", - 207, - "207", - "triangle-left-dot", - 307, - "307", - "triangle-left-open-dot", - 8, - "8", - "triangle-right", - 108, - "108", - "triangle-right-open", - 208, - "208", - "triangle-right-dot", - 308, - "308", - "triangle-right-open-dot", - 9, - "9", - "triangle-ne", - 109, - "109", - "triangle-ne-open", - 209, - "209", - "triangle-ne-dot", - 309, - "309", - "triangle-ne-open-dot", - 10, - "10", - "triangle-se", - 110, - "110", - "triangle-se-open", - 210, - "210", - "triangle-se-dot", - 310, - "310", - "triangle-se-open-dot", - 11, - "11", - "triangle-sw", - 111, - "111", - "triangle-sw-open", - 211, - "211", - "triangle-sw-dot", - 311, - "311", - "triangle-sw-open-dot", - 12, - "12", - "triangle-nw", - 112, - "112", - "triangle-nw-open", - 212, - "212", - "triangle-nw-dot", - 312, - "312", - "triangle-nw-open-dot", - 13, - "13", - "pentagon", - 113, - "113", - "pentagon-open", - 213, - "213", - "pentagon-dot", - 313, - "313", - "pentagon-open-dot", - 14, - "14", - "hexagon", - 114, - "114", - "hexagon-open", - 214, - "214", - "hexagon-dot", - 314, - "314", - "hexagon-open-dot", - 15, - "15", - "hexagon2", - 115, - "115", - "hexagon2-open", - 215, - "215", - "hexagon2-dot", - 315, - "315", - "hexagon2-open-dot", - 16, - "16", - "octagon", - 116, - "116", - "octagon-open", - 216, - "216", - "octagon-dot", - 316, - "316", - "octagon-open-dot", - 17, - "17", - "star", - 117, - "117", - "star-open", - 217, - "217", - "star-dot", - 317, - "317", - "star-open-dot", - 18, - "18", - "hexagram", - 118, - "118", - "hexagram-open", - 218, - "218", - "hexagram-dot", - 318, - "318", - "hexagram-open-dot", - 19, - "19", - "star-triangle-up", - 119, - "119", - "star-triangle-up-open", - 219, - "219", - "star-triangle-up-dot", - 319, - "319", - "star-triangle-up-open-dot", - 20, - "20", - "star-triangle-down", - 120, - "120", - "star-triangle-down-open", - 220, - "220", - "star-triangle-down-dot", - 320, - "320", - "star-triangle-down-open-dot", - 21, - "21", - "star-square", - 121, - "121", - "star-square-open", - 221, - "221", - "star-square-dot", - 321, - "321", - "star-square-open-dot", - 22, - "22", - "star-diamond", - 122, - "122", - "star-diamond-open", - 222, - "222", - "star-diamond-dot", - 322, - "322", - "star-diamond-open-dot", - 23, - "23", - "diamond-tall", - 123, - "123", - "diamond-tall-open", - 223, - "223", - "diamond-tall-dot", - 323, - "323", - "diamond-tall-open-dot", - 24, - "24", - "diamond-wide", - 124, - "124", - "diamond-wide-open", - 224, - "224", - "diamond-wide-dot", - 324, - "324", - "diamond-wide-open-dot", - 25, - "25", - "hourglass", - 125, - "125", - "hourglass-open", - 26, - "26", - "bowtie", - 126, - "126", - "bowtie-open", - 27, - "27", - "circle-cross", - 127, - "127", - "circle-cross-open", - 28, - "28", - "circle-x", - 128, - "128", - "circle-x-open", - 29, - "29", - "square-cross", - 129, - "129", - "square-cross-open", - 30, - "30", - "square-x", - 130, - "130", - "square-x-open", - 31, - "31", - "diamond-cross", - 131, - "131", - "diamond-cross-open", - 32, - "32", - "diamond-x", - 132, - "132", - "diamond-x-open", - 33, - "33", - "cross-thin", - 133, - "133", - "cross-thin-open", - 34, - "34", - "x-thin", - 134, - "134", - "x-thin-open", - 35, - "35", - "asterisk", - 135, - "135", - "asterisk-open", - 36, - "36", - "hash", - 136, - "136", - "hash-open", - 236, - "236", - "hash-dot", - 336, - "336", - "hash-open-dot", - 37, - "37", - "y-up", - 137, - "137", - "y-up-open", - 38, - "38", - "y-down", - 138, - "138", - "y-down-open", - 39, - "39", - "y-left", - 139, - "139", - "y-left-open", - 40, - "40", - "y-right", - 140, - "140", - "y-right-open", - 41, - "41", - "line-ew", - 141, - "141", - "line-ew-open", - 42, - "42", - "line-ns", - 142, - "142", - "line-ns-open", - 43, - "43", - "line-ne", - 143, - "143", - "line-ne-open", - 44, - "44", - "line-nw", - 144, - "144", - "line-nw-open", - 45, - "45", - "arrow-up", - 145, - "145", - "arrow-up-open", - 46, - "46", - "arrow-down", - 146, - "146", - "arrow-down-open", - 47, - "47", - "arrow-left", - 147, - "147", - "arrow-left-open", - 48, - "48", - "arrow-right", - 148, - "148", - "arrow-right-open", - 49, - "49", - "arrow-bar-up", - 149, - "149", - "arrow-bar-up-open", - 50, - "50", - "arrow-bar-down", - 150, - "150", - "arrow-bar-down-open", - 51, - "51", - "arrow-bar-left", - 151, - "151", - "arrow-bar-left-open", - 52, - "52", - "arrow-bar-right", - 152, - "152", - "arrow-bar-right-open", - 53, - "53", - "arrow", - 153, - "153", - "arrow-open", - 54, - "54", - "arrow-wide", - 154, - "154", - "arrow-wide-open" - ] + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" }, - "symbolsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `symbol`.", + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", "editType": "none", "valType": "string" } }, - "meta": { + "textposition": { "arrayOk": true, - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", - "editType": "plot", - "valType": "any" + "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates.", + "dflt": "top center", + "editType": "calc", + "valType": "enumerated", + "values": [ + "top left", + "top center", + "top right", + "middle left", + "middle center", + "middle right", + "bottom left", + "bottom center", + "bottom right" + ] }, - "metasrc": { - "description": "Sets the source reference on Chart Studio Cloud for `meta`.", + "textpositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textposition`.", "editType": "none", "valType": "string" }, - "mode": { - "description": "Determines the drawing mode for this scatter trace. If the provided `mode` includes *text* then the `text` elements appear at the coordinates. Otherwise, the `text` elements appear on hover. If there are less than 20 points and the trace is not stacked then the default is *lines+markers*. Otherwise, *lines*.", - "dflt": "markers", - "editType": "calc", - "extras": [ - "none" - ], - "flags": [ - "lines", - "markers", - "text" - ], - "valType": "flaglist" + "textsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `text`.", + "editType": "none", + "valType": "string" }, - "name": { - "description": "Sets the trace name. The trace name appears as the legend item and on hover.", - "editType": "style", + "texttemplate": { + "arrayOk": true, + "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". 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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. ", + "dflt": "", + "editType": "calc", "valType": "string" }, - "opacity": { - "description": "Sets the opacity of the trace.", - "dflt": 1, - "editType": "style", - "max": 1, - "min": 0, - "valType": "number" + "texttemplatesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `texttemplate`.", + "editType": "none", + "valType": "string" }, - "selected": { - "editType": "calc", - "marker": { - "color": { - "description": "Sets the marker color of selected points.", - "editType": "calc", - "valType": "color" - }, - "editType": "calc", - "opacity": { - "description": "Sets the marker opacity of selected points.", - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - "role": "object", - "size": { - "description": "Sets the marker size of selected points.", + "transforms": { + "items": { + "transform": { + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", "editType": "calc", - "min": 0, - "valType": "number" + "role": "object" } }, - "role": "object", - "textfont": { - "color": { - "description": "Sets the text font color of selected points.", - "editType": "calc", - "valType": "color" - }, - "editType": "calc", - "role": "object" - } + "role": "object" }, - "selectedpoints": { - "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect.", - "editType": "calc", + "type": "scatter3d", + "uid": { + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", + "editType": "plot", + "valType": "string" + }, + "uirevision": { + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.", + "editType": "none", "valType": "any" }, - "showlegend": { - "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", + "visible": { + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", "dflt": true, - "editType": "style", - "valType": "boolean" + "editType": "calc", + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ] }, - "stream": { + "x": { + "description": "Sets the x coordinates.", + "editType": "calc+clearAxisTypes", + "valType": "data_array" + }, + "xcalendar": { + "description": "Sets the calendar system to use with `x` date data.", + "dflt": "gregorian", "editType": "calc", - "maxpoints": { - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot.", - "dflt": 500, - "editType": "calc", - "max": 10000, - "min": 0, - "valType": "number" - }, - "role": "object", - "token": { - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details.", - "editType": "calc", - "noBlank": true, - "strict": true, - "valType": "string" - } + "valType": "enumerated", + "values": [ + "chinese", + "coptic", + "discworld", + "ethiopian", + "gregorian", + "hebrew", + "islamic", + "jalali", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "taiwan", + "thai", + "ummalqura" + ] }, - "text": { - "arrayOk": true, - "description": "Sets text elements associated with each (lon,lat) pair or item in `locations`. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (lon,lat) or `locations` coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", + "xhoverformat": { + "description": "Sets the hover text formatting rulefor `x` 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*By default the values are formatted using `xaxis.hoverformat`.", "dflt": "", "editType": "calc", "valType": "string" }, - "textfont": { - "color": { - "arrayOk": true, - "editType": "calc", - "valType": "color" - }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "description": "Sets the text font.", - "editType": "calc", - "family": { - "arrayOk": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc", - "noBlank": true, - "strict": true, - "valType": "string" - }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" - }, - "lineposition": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "calc", - "extras": [ - "none" - ], - "flags": [ - "under", - "over", - "through" - ], - "valType": "flaglist" - }, - "linepositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", - "editType": "none", - "valType": "string" - }, - "role": "object", - "shadow": { - "arrayOk": true, - "description": "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.", - "dflt": "none", - "editType": "calc", - "valType": "string" - }, - "shadowsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", - "editType": "none", - "valType": "string" - }, - "size": { - "arrayOk": true, - "editType": "calc", - "min": 1, - "valType": "number" - }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" - }, - "style": { - "arrayOk": true, - "description": "Sets whether a font should be styled with a normal or italic face from its family.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "italic" - ] - }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" - }, - "textcase": { - "arrayOk": true, - "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "word caps", - "upper", - "lower" - ] - }, - "textcasesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", - "editType": "none", - "valType": "string" - }, - "variant": { - "arrayOk": true, - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "small-caps", - "all-small-caps", - "all-petite-caps", - "petite-caps", - "unicase" - ] - }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" - }, - "weight": { - "arrayOk": true, - "description": "Sets the weight (or boldness) of the font.", - "dflt": "normal", - "editType": "calc", - "extras": [ - "normal", - "bold" - ], - "max": 1000, - "min": 1, - "valType": "integer" - }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", - "valType": "string" - } - }, - "textposition": { - "arrayOk": true, - "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates.", - "dflt": "middle center", + "xsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `x`.", + "editType": "none", + "valType": "string" + }, + "y": { + "description": "Sets the y coordinates.", + "editType": "calc+clearAxisTypes", + "valType": "data_array" + }, + "ycalendar": { + "description": "Sets the calendar system to use with `y` date data.", + "dflt": "gregorian", "editType": "calc", "valType": "enumerated", "values": [ - "top left", - "top center", - "top right", - "middle left", - "middle center", - "middle right", - "bottom left", - "bottom center", - "bottom right" + "chinese", + "coptic", + "discworld", + "ethiopian", + "gregorian", + "hebrew", + "islamic", + "jalali", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "taiwan", + "thai", + "ummalqura" ] }, - "textpositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textposition`.", - "editType": "none", - "valType": "string" - }, - "textsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `text`.", - "editType": "none", - "valType": "string" - }, - "texttemplate": { - "arrayOk": true, - "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". 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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `lat`, `lon`, `location` and `text`.", + "yhoverformat": { + "description": "Sets the hover text formatting rulefor `y` 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*By default the values are formatted using `yaxis.hoverformat`.", "dflt": "", "editType": "calc", "valType": "string" }, - "texttemplatesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `texttemplate`.", + "ysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `y`.", "editType": "none", "valType": "string" }, - "transforms": { - "items": { - "transform": { - "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "editType": "calc", - "role": "object" - } - }, - "role": "object" - }, - "type": "scattergeo", - "uid": { - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", - "editType": "plot", - "valType": "string" - }, - "uirevision": { - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.", - "editType": "none", - "valType": "any" - }, - "unselected": { - "editType": "calc", - "marker": { - "color": { - "description": "Sets the marker color of unselected points, applied only when a selection exists.", - "editType": "calc", - "valType": "color" - }, - "editType": "calc", - "opacity": { - "description": "Sets the marker opacity of unselected points, applied only when a selection exists.", - "editType": "calc", - "max": 1, - "min": 0, - "valType": "number" - }, - "role": "object", - "size": { - "description": "Sets the marker size of unselected points, applied only when a selection exists.", - "editType": "calc", - "min": 0, - "valType": "number" - } - }, - "role": "object", - "textfont": { - "color": { - "description": "Sets the text font color of unselected points, applied only when a selection exists.", - "editType": "calc", - "valType": "color" - }, - "editType": "calc", - "role": "object" - } + "z": { + "description": "Sets the z coordinates.", + "editType": "calc+clearAxisTypes", + "valType": "data_array" }, - "visible": { - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", - "dflt": true, + "zcalendar": { + "description": "Sets the calendar system to use with `z` date data.", + "dflt": "gregorian", "editType": "calc", "valType": "enumerated", "values": [ - true, - false, - "legendonly" + "chinese", + "coptic", + "discworld", + "ethiopian", + "gregorian", + "hebrew", + "islamic", + "jalali", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "taiwan", + "thai", + "ummalqura" ] + }, + "zhoverformat": { + "description": "Sets the hover text formatting rulefor `z` 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*By default the values are formatted using `zaxis.hoverformat`.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "zsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `z`.", + "editType": "none", + "valType": "string" } }, "categories": [ - "geo", + "gl3d", "symbols", "showLegend", "scatter-like" ], "meta": { - "description": "The data visualized as scatter point or lines on a geographic map is provided either by longitude/latitude pairs in `lon` and `lat` respectively or by geographic location IDs or names in `locations`.", - "hrName": "scatter_geo" + "description": "The data visualized as scatter point or lines in 3D dimension is set in `x`, `y`, `z`. Text (appearing either on the chart or on hover only) is via `text`. Bubble charts are achieved by setting `marker.size` and/or `marker.color` Projections are achieved via `projection`. Surface fills are achieved via `surfaceaxis`.", + "hrName": "scatter_3d" }, - "type": "scattergeo" + "type": "scatter3d" }, - "scattergl": { + "scattercarpet": { "animatable": false, "attributes": { + "a": { + "description": "Sets the a-axis coordinates.", + "editType": "calc", + "valType": "data_array" + }, + "asrc": { + "description": "Sets the source reference on Chart Studio Cloud for `a`.", + "editType": "none", + "valType": "string" + }, + "b": { + "description": "Sets the b-axis coordinates.", + "editType": "calc", + "valType": "data_array" + }, + "bsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `b`.", + "editType": "none", + "valType": "string" + }, + "carpet": { + "description": "An identifier for this carpet, so that `scattercarpet` and `contourcarpet` traces can specify a carpet plot on which they lie", + "editType": "calc", + "valType": "string" + }, "connectgaps": { "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the provided data arrays are connected.", "dflt": false, @@ -71594,232 +69962,20 @@ "editType": "none", "valType": "string" }, - "dx": { - "description": "Sets the x coordinate step. See `x0` for more info.", - "dflt": 1, - "editType": "calc", - "valType": "number" - }, - "dy": { - "description": "Sets the y coordinate step. See `y0` for more info.", - "dflt": 1, - "editType": "calc", - "valType": "number" - }, - "error_x": { - "_deprecated": { - "opacity": { - "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity.", - "editType": "calc", - "valType": "number" - } - }, - "array": { - "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data.", - "editType": "calc", - "valType": "data_array" - }, - "arrayminus": { - "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data.", - "editType": "calc", - "valType": "data_array" - }, - "arrayminussrc": { - "description": "Sets the source reference on Chart Studio Cloud for `arrayminus`.", - "editType": "none", - "valType": "string" - }, - "arraysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `array`.", - "editType": "none", - "valType": "string" - }, - "color": { - "description": "Sets the stoke color of the error bars.", - "editType": "calc", - "valType": "color" - }, - "copy_ystyle": { - "editType": "calc", - "valType": "boolean" - }, - "editType": "calc", - "role": "object", - "symmetric": { - "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars.", - "editType": "calc", - "valType": "boolean" - }, - "thickness": { - "description": "Sets the thickness (in px) of the error bars.", - "dflt": 2, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "traceref": { - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "integer" - }, - "tracerefminus": { - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "integer" - }, - "type": { - "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`.", - "editType": "calc", - "valType": "enumerated", - "values": [ - "percent", - "constant", - "sqrt", - "data" - ] - }, - "value": { - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars.", - "dflt": 10, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "valueminus": { - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars", - "dflt": 10, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "visible": { - "description": "Determines whether or not this set of error bars is visible.", - "editType": "calc", - "valType": "boolean" - }, - "width": { - "description": "Sets the width (in px) of the cross-bar at both ends of the error bars.", - "editType": "calc", - "min": 0, - "valType": "number" - } - }, - "error_y": { - "_deprecated": { - "opacity": { - "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity.", - "editType": "calc", - "valType": "number" - } - }, - "array": { - "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data.", - "editType": "calc", - "valType": "data_array" - }, - "arrayminus": { - "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data.", - "editType": "calc", - "valType": "data_array" - }, - "arrayminussrc": { - "description": "Sets the source reference on Chart Studio Cloud for `arrayminus`.", - "editType": "none", - "valType": "string" - }, - "arraysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `array`.", - "editType": "none", - "valType": "string" - }, - "color": { - "description": "Sets the stoke color of the error bars.", - "editType": "calc", - "valType": "color" - }, - "editType": "calc", - "role": "object", - "symmetric": { - "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars.", - "editType": "calc", - "valType": "boolean" - }, - "thickness": { - "description": "Sets the thickness (in px) of the error bars.", - "dflt": 2, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "traceref": { - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "integer" - }, - "tracerefminus": { - "dflt": 0, - "editType": "calc", - "min": 0, - "valType": "integer" - }, - "type": { - "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`.", - "editType": "calc", - "valType": "enumerated", - "values": [ - "percent", - "constant", - "sqrt", - "data" - ] - }, - "value": { - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars.", - "dflt": 10, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "valueminus": { - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars", - "dflt": 10, - "editType": "calc", - "min": 0, - "valType": "number" - }, - "visible": { - "description": "Determines whether or not this set of error bars is visible.", - "editType": "calc", - "valType": "boolean" - }, - "width": { - "description": "Sets the width (in px) of the cross-bar at both ends of the error bars.", - "editType": "calc", - "min": 0, - "valType": "number" - } - }, "fill": { - "description": "Sets the area to fill with a solid color. Defaults to *none* unless this trace is stacked, then it gets *tonexty* (*tonextx*) if `orientation` is *v* (*h*) Use with `fillcolor` if not *none*. *tozerox* and *tozeroy* fill to x=0 and y=0 respectively. *tonextx* and *tonexty* fill between the endpoints of this trace and the endpoints of the trace before it, connecting those endpoints with straight lines (to make a stacked area graph); if there is no trace before it, they behave like *tozerox* and *tozeroy*. *toself* connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape. *tonext* fills the space between two traces if one completely encloses the other (eg consecutive contour lines), and behaves like *toself* if there is no trace before it. *tonext* should not be used if one trace does not enclose the other. Traces in a `stackgroup` will only fill to (or be filled to) other traces in the same group. With multiple `stackgroup`s or some traces stacked and some not, if fill-linked traces are not already consecutive, the later ones will be pushed down in the drawing order.", + "description": "Sets the area to fill with a solid color. Use with `fillcolor` if not *none*. scatterternary has a subset of the options available to scatter. *toself* connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape. *tonext* fills the space between two traces if one completely encloses the other (eg consecutive contour lines), and behaves like *toself* if there is no trace before it. *tonext* should not be used if one trace does not enclose the other.", "dflt": "none", "editType": "calc", "valType": "enumerated", "values": [ "none", - "tozeroy", - "tozerox", - "tonexty", - "tonextx", "toself", "tonext" ] }, "fillcolor": { "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available.", - "editType": "calc", + "editType": "style", "valType": "color" }, "hoverinfo": { @@ -71833,9 +69989,8 @@ "skip" ], "flags": [ - "x", - "y", - "z", + "a", + "b", "text", "name" ], @@ -72045,6 +70200,15 @@ }, "role": "object" }, + "hoveron": { + "description": "Do the hover effects highlight individual points (markers or line points) or do they highlight filled regions? If the fill is *toself* or *tonext* and there are no markers or text, then the default is *fills*, otherwise it is *points*.", + "editType": "style", + "flags": [ + "points", + "fills" + ], + "valType": "flaglist" + }, "hovertemplate": { "arrayOk": true, "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", @@ -72059,9 +70223,9 @@ }, "hovertext": { "arrayOk": true, - "description": "Sets hover text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag.", + "description": "Sets hover text elements associated with each (a,b) point. If a single string, the same string appears over all the data points. If an array of strings, the items are mapped in order to the the data points in (a,b). To be seen, trace `hoverinfo` must contain a *text* flag.", "dflt": "", - "editType": "calc", + "editType": "style", "valType": "string" }, "hovertextsrc": { @@ -72203,44 +70367,62 @@ "valType": "number" }, "line": { + "backoff": { + "arrayOk": true, + "description": "Sets the line back off from the end point of the nth line segment (in px). This option is useful e.g. to avoid overlap with arrowhead markers. With *auto* the lines would trim before markers if `marker.angleref` is set to *previous*.", + "dflt": "auto", + "editType": "plot", + "min": 0, + "valType": "number" + }, + "backoffsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `backoff`.", + "editType": "none", + "valType": "string" + }, "color": { "description": "Sets the line color.", - "editType": "calc", + "editType": "style", "valType": "color" }, "dash": { - "description": "Sets the style of the lines.", + "description": "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*).", "dflt": "solid", - "editType": "calc", - "valType": "enumerated", + "editType": "style", + "valType": "string", "values": [ - "dash", - "dashdot", + "solid", "dot", + "dash", "longdash", - "longdashdot", - "solid" + "dashdot", + "longdashdot" ] }, "editType": "calc", "role": "object", "shape": { - "description": "Determines the line shape. The values correspond to step-wise line shapes.", + "description": "Determines the line shape. With *spline* the lines are drawn using spline interpolation. The other available values correspond to step-wise line shapes.", "dflt": "linear", - "editType": "calc", + "editType": "plot", "valType": "enumerated", "values": [ "linear", - "hv", - "vh", - "hvh", - "vhv" + "spline" ] }, + "smoothing": { + "description": "Has an effect only if `shape` is set to *spline* Sets the amount of smoothing. *0* corresponds to no smoothing (equivalent to a *linear* shape).", + "dflt": 1, + "editType": "plot", + "max": 1.3, + "min": 0, + "valType": "number" + }, "width": { "description": "Sets the line width (in px).", "dflt": 2, - "editType": "calc", + "editType": "style", "min": 0, "valType": "number" } @@ -72250,9 +70432,19 @@ "arrayOk": true, "description": "Sets the marker angle in respect to `angleref`.", "dflt": 0, - "editType": "calc", + "editType": "plot", "valType": "angle" }, + "angleref": { + "description": "Sets the reference for marker angle. With *previous*, angle 0 points along the line from the previous point to this one. With *up*, angle 0 points toward the top of the screen.", + "dflt": "up", + "editType": "plot", + "valType": "enumerated", + "values": [ + "previous", + "up" + ] + }, "anglesrc": { "description": "Sets the source reference on Chart Studio Cloud for `angle`.", "editType": "none", @@ -72275,7 +70467,7 @@ "cmax": { "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well.", "dflt": null, - "editType": "calc", + "editType": "plot", "impliedEdits": { "cauto": false }, @@ -72291,7 +70483,7 @@ "cmin": { "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well.", "dflt": null, - "editType": "calc", + "editType": "plot", "impliedEdits": { "cauto": false }, @@ -72300,7 +70492,7 @@ "color": { "arrayOk": true, "description": "Sets the marker color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set.", - "editType": "calc", + "editType": "style", "valType": "color" }, "coloraxis": { @@ -72314,19 +70506,19 @@ "_deprecated": { "title": { "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "calc", + "editType": "colorbars", "valType": "string" }, "titlefont": { "color": { - "editType": "calc", + "editType": "colorbars", "valType": "color" }, "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "calc", + "editType": "colorbars", "family": { "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc", + "editType": "colorbars", "noBlank": true, "strict": true, "valType": "string" @@ -72334,7 +70526,7 @@ "lineposition": { "description": "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.", "dflt": "none", - "editType": "calc", + "editType": "colorbars", "extras": [ "none" ], @@ -72348,18 +70540,18 @@ "shadow": { "description": "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.", "dflt": "none", - "editType": "calc", + "editType": "colorbars", "valType": "string" }, "size": { - "editType": "calc", + "editType": "colorbars", "min": 1, "valType": "number" }, "style": { "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -72369,7 +70561,7 @@ "textcase": { "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -72381,7 +70573,7 @@ "variant": { "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -72395,7 +70587,7 @@ "weight": { "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "calc", + "editType": "colorbars", "extras": [ "normal", "bold" @@ -72408,7 +70600,7 @@ "titleside": { "description": "Deprecated in favor of color bar's `title.side`.", "dflt": "top", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "right", @@ -72420,35 +70612,35 @@ "bgcolor": { "description": "Sets the color of padded area.", "dflt": "rgba(0,0,0,0)", - "editType": "calc", + "editType": "colorbars", "valType": "color" }, "bordercolor": { "description": "Sets the axis line color.", "dflt": "#444", - "editType": "calc", + "editType": "colorbars", "valType": "color" }, "borderwidth": { "description": "Sets the width (in px) or the border enclosing this color bar.", "dflt": 0, - "editType": "calc", + "editType": "colorbars", "min": 0, "valType": "number" }, "dtick": { "description": "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*, 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* 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*", - "editType": "calc", + "editType": "colorbars", "impliedEdits": { "tickmode": "linear" }, "valType": "any" }, - "editType": "calc", + "editType": "colorbars", "exponentformat": { "description": "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.", "dflt": "B", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "none", @@ -72462,20 +70654,20 @@ "labelalias": { "description": "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.", "dflt": false, - "editType": "calc", + "editType": "colorbars", "valType": "any" }, "len": { "description": "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.", "dflt": 1, - "editType": "calc", + "editType": "colorbars", "min": 0, "valType": "number" }, "lenmode": { "description": "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.", "dflt": "fraction", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "fraction", @@ -72485,21 +70677,21 @@ "minexponent": { "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", "dflt": 3, - "editType": "calc", + "editType": "colorbars", "min": 0, "valType": "number" }, "nticks": { "description": "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*.", "dflt": 0, - "editType": "calc", + "editType": "colorbars", "min": 0, "valType": "integer" }, "orientation": { "description": "Sets the orientation of the colorbar.", "dflt": "v", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "h", @@ -72509,13 +70701,13 @@ "outlinecolor": { "description": "Sets the axis line color.", "dflt": "#444", - "editType": "calc", + "editType": "colorbars", "valType": "color" }, "outlinewidth": { "description": "Sets the width (in px) of the axis line.", "dflt": 1, - "editType": "calc", + "editType": "colorbars", "min": 0, "valType": "number" }, @@ -72523,13 +70715,13 @@ "separatethousands": { "description": "If \"true\", even 4-digit integers are separated", "dflt": false, - "editType": "calc", + "editType": "colorbars", "valType": "boolean" }, "showexponent": { "description": "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.", "dflt": "all", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "all", @@ -72541,13 +70733,13 @@ "showticklabels": { "description": "Determines whether or not the tick labels are drawn.", "dflt": true, - "editType": "calc", + "editType": "colorbars", "valType": "boolean" }, "showtickprefix": { "description": "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.", "dflt": "all", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "all", @@ -72559,7 +70751,7 @@ "showticksuffix": { "description": "Same as `showtickprefix` but for tick suffixes.", "dflt": "all", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "all", @@ -72571,14 +70763,14 @@ "thickness": { "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", "dflt": 30, - "editType": "calc", + "editType": "colorbars", "min": 0, "valType": "number" }, "thicknessmode": { "description": "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.", "dflt": "pixels", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "fraction", @@ -72587,7 +70779,7 @@ }, "tick0": { "description": "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* (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.", - "editType": "calc", + "editType": "colorbars", "impliedEdits": { "tickmode": "linear" }, @@ -72596,25 +70788,25 @@ "tickangle": { "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", "dflt": "auto", - "editType": "calc", + "editType": "colorbars", "valType": "angle" }, "tickcolor": { "description": "Sets the tick color.", "dflt": "#444", - "editType": "calc", + "editType": "colorbars", "valType": "color" }, "tickfont": { "color": { - "editType": "calc", + "editType": "colorbars", "valType": "color" }, "description": "Sets the color bar's tick label font", - "editType": "calc", + "editType": "colorbars", "family": { "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc", + "editType": "colorbars", "noBlank": true, "strict": true, "valType": "string" @@ -72622,7 +70814,7 @@ "lineposition": { "description": "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.", "dflt": "none", - "editType": "calc", + "editType": "colorbars", "extras": [ "none" ], @@ -72637,18 +70829,18 @@ "shadow": { "description": "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.", "dflt": "none", - "editType": "calc", + "editType": "colorbars", "valType": "string" }, "size": { - "editType": "calc", + "editType": "colorbars", "min": 1, "valType": "number" }, "style": { "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -72658,7 +70850,7 @@ "textcase": { "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -72670,7 +70862,7 @@ "variant": { "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -72684,7 +70876,7 @@ "weight": { "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "calc", + "editType": "colorbars", "extras": [ "normal", "bold" @@ -72697,7 +70889,7 @@ "tickformat": { "description": "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*", "dflt": "", - "editType": "calc", + "editType": "colorbars", "valType": "string" }, "tickformatstops": { @@ -72705,41 +70897,41 @@ "tickformatstop": { "dtickrange": { "description": "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*", - "editType": "calc", + "editType": "colorbars", "items": [ { - "editType": "calc", + "editType": "colorbars", "valType": "any" }, { - "editType": "calc", + "editType": "colorbars", "valType": "any" } ], "valType": "info_array" }, - "editType": "calc", + "editType": "colorbars", "enabled": { "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", "dflt": true, - "editType": "calc", + "editType": "colorbars", "valType": "boolean" }, "name": { "description": "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.", - "editType": "calc", + "editType": "colorbars", "valType": "string" }, "role": "object", "templateitemname": { "description": "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`.", - "editType": "calc", + "editType": "colorbars", "valType": "string" }, "value": { "description": "string - dtickformat for described zoom level, the same as *tickformat*", "dflt": "", - "editType": "calc", + "editType": "colorbars", "valType": "string" } } @@ -72748,7 +70940,7 @@ }, "ticklabeloverflow": { "description": "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*.", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "allow", @@ -72759,7 +70951,7 @@ "ticklabelposition": { "description": "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*.", "dflt": "outside", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "outside", @@ -72777,20 +70969,20 @@ "ticklabelstep": { "description": "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*.", "dflt": 1, - "editType": "calc", + "editType": "colorbars", "min": 1, "valType": "integer" }, "ticklen": { "description": "Sets the tick length (in px).", "dflt": 5, - "editType": "calc", + "editType": "colorbars", "min": 0, "valType": "number" }, "tickmode": { "description": "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).", - "editType": "calc", + "editType": "colorbars", "impliedEdits": {}, "valType": "enumerated", "values": [ @@ -72802,13 +70994,13 @@ "tickprefix": { "description": "Sets a tick label prefix.", "dflt": "", - "editType": "calc", + "editType": "colorbars", "valType": "string" }, "ticks": { "description": "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.", "dflt": "", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "outside", @@ -72819,12 +71011,12 @@ "ticksuffix": { "description": "Sets a tick label suffix.", "dflt": "", - "editType": "calc", + "editType": "colorbars", "valType": "string" }, "ticktext": { "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "editType": "calc", + "editType": "colorbars", "valType": "data_array" }, "ticktextsrc": { @@ -72834,7 +71026,7 @@ }, "tickvals": { "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "editType": "calc", + "editType": "colorbars", "valType": "data_array" }, "tickvalssrc": { @@ -72845,22 +71037,22 @@ "tickwidth": { "description": "Sets the tick width (in px).", "dflt": 1, - "editType": "calc", + "editType": "colorbars", "min": 0, "valType": "number" }, "title": { - "editType": "calc", + "editType": "colorbars", "font": { "color": { - "editType": "calc", + "editType": "colorbars", "valType": "color" }, "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "calc", + "editType": "colorbars", "family": { "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc", + "editType": "colorbars", "noBlank": true, "strict": true, "valType": "string" @@ -72868,7 +71060,7 @@ "lineposition": { "description": "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.", "dflt": "none", - "editType": "calc", + "editType": "colorbars", "extras": [ "none" ], @@ -72883,18 +71075,18 @@ "shadow": { "description": "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.", "dflt": "none", - "editType": "calc", + "editType": "colorbars", "valType": "string" }, "size": { - "editType": "calc", + "editType": "colorbars", "min": 1, "valType": "number" }, "style": { "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -72904,7 +71096,7 @@ "textcase": { "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", "dflt": "normal", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -72916,7 +71108,7 @@ "variant": { "description": "Sets the variant of the font.", "dflt": "normal", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "normal", @@ -72930,7 +71122,7 @@ "weight": { "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", - "editType": "calc", + "editType": "colorbars", "extras": [ "normal", "bold" @@ -72943,7 +71135,7 @@ "role": "object", "side": { "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "right", @@ -72953,18 +71145,18 @@ }, "text": { "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "calc", + "editType": "colorbars", "valType": "string" } }, "x": { "description": "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*.", - "editType": "calc", + "editType": "colorbars", "valType": "number" }, "xanchor": { "description": "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*.", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "left", @@ -72975,14 +71167,14 @@ "xpad": { "description": "Sets the amount of padding (in px) along the x direction.", "dflt": 10, - "editType": "calc", + "editType": "colorbars", "min": 0, "valType": "number" }, "xref": { "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", "dflt": "paper", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "container", @@ -72991,12 +71183,12 @@ }, "y": { "description": "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*.", - "editType": "calc", + "editType": "colorbars", "valType": "number" }, "yanchor": { "description": "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*.", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "top", @@ -73007,14 +71199,14 @@ "ypad": { "description": "Sets the amount of padding (in px) along the y direction.", "dflt": 10, - "editType": "calc", + "editType": "colorbars", "min": 0, "valType": "number" }, "yref": { "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", "dflt": "paper", - "editType": "calc", + "editType": "colorbars", "valType": "enumerated", "values": [ "container", @@ -73037,6 +71229,39 @@ "valType": "string" }, "editType": "calc", + "gradient": { + "color": { + "arrayOk": true, + "description": "Sets the final color of the gradient fill: the center color for radial, the right for horizontal, or the bottom for vertical.", + "editType": "calc", + "valType": "color" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "editType": "calc", + "role": "object", + "type": { + "arrayOk": true, + "description": "Sets the type of gradient used to fill the markers", + "dflt": "none", + "editType": "calc", + "valType": "enumerated", + "values": [ + "radial", + "horizontal", + "vertical", + "none" + ] + }, + "typesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `type`.", + "editType": "none", + "valType": "string" + } + }, "line": { "autocolorscale": { "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color` is set to a numerical array. 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.", @@ -73055,7 +71280,7 @@ "cmax": { "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well.", "dflt": null, - "editType": "calc", + "editType": "plot", "impliedEdits": { "cauto": false }, @@ -73071,7 +71296,7 @@ "cmin": { "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well.", "dflt": null, - "editType": "calc", + "editType": "plot", "impliedEdits": { "cauto": false }, @@ -73080,7 +71305,7 @@ "color": { "arrayOk": true, "description": "Sets the marker.line color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set.", - "editType": "calc", + "editType": "style", "valType": "color" }, "coloraxis": { @@ -73108,14 +71333,14 @@ "reversescale": { "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color` is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color.", "dflt": false, - "editType": "calc", + "editType": "plot", "valType": "boolean" }, "role": "object", "width": { "arrayOk": true, "description": "Sets the width (in px) of the lines bounding the marker points.", - "editType": "calc", + "editType": "style", "min": 0, "valType": "number" }, @@ -73125,10 +71350,17 @@ "valType": "string" } }, + "maxdisplayed": { + "description": "Sets a maximum number of points to be drawn on the graph. *0* corresponds to no limit.", + "dflt": 0, + "editType": "plot", + "min": 0, + "valType": "number" + }, "opacity": { "arrayOk": true, "description": "Sets the marker opacity.", - "editType": "calc", + "editType": "style", "max": 1, "min": 0, "valType": "number" @@ -73141,7 +71373,7 @@ "reversescale": { "description": "Reverses the color mapping if true. Has an effect only if in `marker.color` is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color.", "dflt": false, - "editType": "calc", + "editType": "plot", "valType": "boolean" }, "role": "object", @@ -73187,11 +71419,24 @@ "editType": "none", "valType": "string" }, + "standoff": { + "arrayOk": true, + "description": "Moves the marker away from the data point in the direction of `angle` (in px). This can be useful for example if you have another marker at this location and you want to point an arrowhead marker at it.", + "dflt": 0, + "editType": "plot", + "min": 0, + "valType": "number" + }, + "standoffsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `standoff`.", + "editType": "none", + "valType": "string" + }, "symbol": { "arrayOk": true, "description": "Sets the marker symbol type. Adding 100 is equivalent to appending *-open* to a symbol name. Adding 200 is equivalent to appending *-dot* to a symbol name. Adding 300 is equivalent to appending *-open-dot* or *dot-open* to a symbol name.", "dflt": "circle", - "editType": "calc", + "editType": "style", "valType": "enumerated", "values": [ 0, @@ -73700,7 +71945,6752 @@ "valType": "string" }, "mode": { - "description": "Determines the drawing mode for this scatter trace.", + "description": "Determines the drawing mode for this scatter trace. If the provided `mode` includes *text* then the `text` elements appear at the coordinates. Otherwise, the `text` elements appear on hover. If there are less than 20 points and the trace is not stacked then the default is *lines+markers*. Otherwise, *lines*.", + "dflt": "markers", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "lines", + "markers", + "text" + ], + "valType": "flaglist" + }, + "name": { + "description": "Sets the trace name. The trace name appears as the legend item and on hover.", + "editType": "style", + "valType": "string" + }, + "opacity": { + "description": "Sets the opacity of the trace.", + "dflt": 1, + "editType": "style", + "max": 1, + "min": 0, + "valType": "number" + }, + "selected": { + "editType": "style", + "marker": { + "color": { + "description": "Sets the marker color of selected points.", + "editType": "style", + "valType": "color" + }, + "editType": "style", + "opacity": { + "description": "Sets the marker opacity of selected points.", + "editType": "style", + "max": 1, + "min": 0, + "valType": "number" + }, + "role": "object", + "size": { + "description": "Sets the marker size of selected points.", + "editType": "style", + "min": 0, + "valType": "number" + } + }, + "role": "object", + "textfont": { + "color": { + "description": "Sets the text font color of selected points.", + "editType": "style", + "valType": "color" + }, + "editType": "style", + "role": "object" + } + }, + "selectedpoints": { + "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect.", + "editType": "calc", + "valType": "any" + }, + "showlegend": { + "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", + "dflt": true, + "editType": "style", + "valType": "boolean" + }, + "stream": { + "editType": "calc", + "maxpoints": { + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot.", + "dflt": 500, + "editType": "calc", + "max": 10000, + "min": 0, + "valType": "number" + }, + "role": "object", + "token": { + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" + } + }, + "text": { + "arrayOk": true, + "description": "Sets text elements associated with each (a,b) point. If a single string, the same string appears over all the data points. If an array of strings, the items are mapped in order to the the data points in (a,b). If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "textfont": { + "color": { + "arrayOk": true, + "editType": "style", + "valType": "color" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "description": "Sets the text font.", + "editType": "calc", + "family": { + "arrayOk": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" + }, + "lineposition": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", + "editType": "none", + "valType": "string" + }, + "role": "object", + "shadow": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "calc", + "valType": "string" + }, + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", + "valType": "string" + }, + "size": { + "arrayOk": true, + "editType": "calc", + "min": 1, + "valType": "number" + }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, + "style": { + "arrayOk": true, + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", + "valType": "string" + }, + "textcase": { + "arrayOk": true, + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", + "valType": "string" + }, + "variant": { + "arrayOk": true, + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" + }, + "weight": { + "arrayOk": true, + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "calc", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + }, + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" + } + }, + "textposition": { + "arrayOk": true, + "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates.", + "dflt": "middle center", + "editType": "calc", + "valType": "enumerated", + "values": [ + "top left", + "top center", + "top right", + "middle left", + "middle center", + "middle right", + "bottom left", + "bottom center", + "bottom right" + ] + }, + "textpositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textposition`.", + "editType": "none", + "valType": "string" + }, + "textsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `text`.", + "editType": "none", + "valType": "string" + }, + "texttemplate": { + "arrayOk": true, + "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". 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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `a`, `b` and `text`.", + "dflt": "", + "editType": "plot", + "valType": "string" + }, + "texttemplatesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `texttemplate`.", + "editType": "none", + "valType": "string" + }, + "transforms": { + "items": { + "transform": { + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "editType": "calc", + "role": "object" + } + }, + "role": "object" + }, + "type": "scattercarpet", + "uid": { + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", + "editType": "plot", + "valType": "string" + }, + "uirevision": { + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.", + "editType": "none", + "valType": "any" + }, + "unselected": { + "editType": "style", + "marker": { + "color": { + "description": "Sets the marker color of unselected points, applied only when a selection exists.", + "editType": "style", + "valType": "color" + }, + "editType": "style", + "opacity": { + "description": "Sets the marker opacity of unselected points, applied only when a selection exists.", + "editType": "style", + "max": 1, + "min": 0, + "valType": "number" + }, + "role": "object", + "size": { + "description": "Sets the marker size of unselected points, applied only when a selection exists.", + "editType": "style", + "min": 0, + "valType": "number" + } + }, + "role": "object", + "textfont": { + "color": { + "description": "Sets the text font color of unselected points, applied only when a selection exists.", + "editType": "style", + "valType": "color" + }, + "editType": "style", + "role": "object" + } + }, + "visible": { + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", + "dflt": true, + "editType": "calc", + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ] + }, + "xaxis": { + "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on.", + "dflt": "x", + "editType": "calc+clearAxisTypes", + "valType": "subplotid" + }, + "yaxis": { + "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on.", + "dflt": "y", + "editType": "calc+clearAxisTypes", + "valType": "subplotid" + }, + "zorder": { + "description": "Sets the layer on which this trace is displayed, relative to other SVG traces on the same subplot. SVG traces with higher `zorder` appear in front of those with lower `zorder`.", + "dflt": 0, + "editType": "plot", + "valType": "integer" + } + }, + "categories": [ + "svg", + "carpet", + "symbols", + "showLegend", + "carpetDependent", + "zoomScale" + ], + "meta": { + "description": "Plots a scatter trace on either the first carpet axis or the carpet axis with a matching `carpet` attribute.", + "hrName": "scatter_carpet" + }, + "type": "scattercarpet" + }, + "scattergeo": { + "animatable": false, + "attributes": { + "connectgaps": { + "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the provided data arrays are connected.", + "dflt": false, + "editType": "calc", + "valType": "boolean" + }, + "customdata": { + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", + "editType": "calc", + "valType": "data_array" + }, + "customdatasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", + "editType": "none", + "valType": "string" + }, + "featureidkey": { + "description": "Sets the key in GeoJSON features which is used as id to match the items included in the `locations` array. Only has an effect when `geojson` is set. Support nested property, for example *properties.name*.", + "dflt": "id", + "editType": "calc", + "valType": "string" + }, + "fill": { + "description": "Sets the area to fill with a solid color. Use with `fillcolor` if not *none*. *toself* connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape.", + "dflt": "none", + "editType": "calc", + "valType": "enumerated", + "values": [ + "none", + "toself" + ] + }, + "fillcolor": { + "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available.", + "editType": "calc", + "valType": "color" + }, + "geo": { + "description": "Sets a reference between this trace's geospatial coordinates and a geographic map. If *geo* (the default value), the geospatial coordinates refer to `layout.geo`. If *geo2*, the geospatial coordinates refer to `layout.geo2`, and so on.", + "dflt": "geo", + "editType": "calc", + "valType": "subplotid" + }, + "geojson": { + "description": "Sets optional GeoJSON data associated with this trace. If not given, the features on the base map are used when `locations` is set. It can be set as a valid GeoJSON object or as a URL string. Note that we only accept GeoJSONs of type *FeatureCollection* or *Feature* with geometries of type *Polygon* or *MultiPolygon*.", + "editType": "calc", + "valType": "any" + }, + "hoverinfo": { + "arrayOk": true, + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", + "dflt": "all", + "editType": "calc", + "extras": [ + "all", + "none", + "skip" + ], + "flags": [ + "lon", + "lat", + "location", + "text", + "name" + ], + "valType": "flaglist" + }, + "hoverinfosrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", + "editType": "none", + "valType": "string" + }, + "hoverlabel": { + "align": { + "arrayOk": true, + "description": "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", + "dflt": "auto", + "editType": "none", + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ] + }, + "alignsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `align`.", + "editType": "none", + "valType": "string" + }, + "bgcolor": { + "arrayOk": true, + "description": "Sets the background color of the hover labels for this trace", + "editType": "none", + "valType": "color" + }, + "bgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", + "editType": "none", + "valType": "string" + }, + "bordercolor": { + "arrayOk": true, + "description": "Sets the border color of the hover labels for this trace.", + "editType": "none", + "valType": "color" + }, + "bordercolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", + "editType": "none", + "valType": "string" + }, + "editType": "none", + "font": { + "color": { + "arrayOk": true, + "editType": "none", + "valType": "color" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "description": "Sets the font used in hover labels.", + "editType": "none", + "family": { + "arrayOk": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "none", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" + }, + "lineposition": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "none", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", + "editType": "none", + "valType": "string" + }, + "role": "object", + "shadow": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "none", + "valType": "string" + }, + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", + "valType": "string" + }, + "size": { + "arrayOk": true, + "editType": "none", + "min": 1, + "valType": "number" + }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, + "style": { + "arrayOk": true, + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "none", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", + "valType": "string" + }, + "textcase": { + "arrayOk": true, + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "none", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", + "valType": "string" + }, + "variant": { + "arrayOk": true, + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "none", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" + }, + "weight": { + "arrayOk": true, + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "none", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + }, + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" + } + }, + "namelength": { + "arrayOk": true, + "description": "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.", + "dflt": 15, + "editType": "none", + "min": -1, + "valType": "integer" + }, + "namelengthsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", + "editType": "none", + "valType": "string" + }, + "role": "object" + }, + "hovertemplate": { + "arrayOk": true, + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "hovertemplatesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", + "editType": "none", + "valType": "string" + }, + "hovertext": { + "arrayOk": true, + "description": "Sets hover text elements associated with each (lon,lat) pair or item in `locations`. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (lon,lat) or `locations` coordinates. To be seen, trace `hoverinfo` must contain a *text* flag.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "hovertextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertext`.", + "editType": "none", + "valType": "string" + }, + "ids": { + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", + "editType": "calc", + "valType": "data_array" + }, + "idssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ids`.", + "editType": "none", + "valType": "string" + }, + "lat": { + "description": "Sets the latitude coordinates (in degrees North).", + "editType": "calc", + "valType": "data_array" + }, + "latsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lat`.", + "editType": "none", + "valType": "string" + }, + "legend": { + "description": "Sets the reference to a legend to show this trace 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.", + "dflt": "legend", + "editType": "style", + "valType": "subplotid" + }, + "legendgroup": { + "description": "Sets the legend group for this trace. Traces and shapes part of the same legend group hide/show at the same time when toggling legend items.", + "dflt": "", + "editType": "style", + "valType": "string" + }, + "legendgrouptitle": { + "editType": "style", + "font": { + "color": { + "editType": "style", + "valType": "color" + }, + "description": "Sets this legend group's title font.", + "editType": "style", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "style", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "style", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "style", + "valType": "string" + }, + "size": { + "editType": "style", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "style", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "style", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "style", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "style", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "role": "object", + "text": { + "description": "Sets the title of the legend group.", + "dflt": "", + "editType": "style", + "valType": "string" + } + }, + "legendrank": { + "description": "Sets the legend rank for this trace. 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.", + "dflt": 1000, + "editType": "style", + "valType": "number" + }, + "legendwidth": { + "description": "Sets the width (in px or fraction) of the legend for this trace.", + "editType": "style", + "min": 0, + "valType": "number" + }, + "line": { + "color": { + "description": "Sets the line color.", + "editType": "calc", + "valType": "color" + }, + "dash": { + "description": "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*).", + "dflt": "solid", + "editType": "calc", + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ] + }, + "editType": "calc", + "role": "object", + "width": { + "description": "Sets the line width (in px).", + "dflt": 2, + "editType": "calc", + "min": 0, + "valType": "number" + } + }, + "locationmode": { + "description": "Determines the set of locations used to match entries in `locations` to regions on the map. Values *ISO-3*, *USA-states*, *country names* correspond to features on the base map and value *geojson-id* corresponds to features from a custom GeoJSON linked to the `geojson` attribute.", + "dflt": "ISO-3", + "editType": "calc", + "valType": "enumerated", + "values": [ + "ISO-3", + "USA-states", + "country names", + "geojson-id" + ] + }, + "locations": { + "description": "Sets the coordinates via location IDs or names. Coordinates correspond to the centroid of each location given. See `locationmode` for more info.", + "editType": "calc", + "valType": "data_array" + }, + "locationssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `locations`.", + "editType": "none", + "valType": "string" + }, + "lon": { + "description": "Sets the longitude coordinates (in degrees East).", + "editType": "calc", + "valType": "data_array" + }, + "lonsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lon`.", + "editType": "none", + "valType": "string" + }, + "marker": { + "angle": { + "arrayOk": true, + "description": "Sets the marker angle in respect to `angleref`.", + "dflt": 0, + "editType": "calc", + "valType": "angle" + }, + "angleref": { + "description": "Sets the reference for marker angle. With *previous*, angle 0 points along the line from the previous point to this one. With *up*, angle 0 points toward the top of the screen. With *north*, angle 0 points north based on the current map projection.", + "dflt": "up", + "editType": "calc", + "valType": "enumerated", + "values": [ + "previous", + "up", + "north" + ] + }, + "anglesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `angle`.", + "editType": "none", + "valType": "string" + }, + "autocolorscale": { + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color` is set to a numerical array. 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.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "cauto": { + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color` is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "cmax": { + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "valType": "number" + }, + "cmid": { + "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`.", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "valType": "number" + }, + "cmin": { + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "valType": "number" + }, + "color": { + "arrayOk": true, + "description": "Sets the marker color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set.", + "editType": "calc", + "valType": "color" + }, + "coloraxis": { + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", + "dflt": null, + "editType": "calc", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "valType": "subplotid" + }, + "colorbar": { + "_deprecated": { + "title": { + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "calc", + "valType": "string" + }, + "titlefont": { + "color": { + "editType": "calc", + "valType": "color" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "calc", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "valType": "string" + }, + "size": { + "editType": "calc", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "calc", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "titleside": { + "description": "Deprecated in favor of color bar's `title.side`.", + "dflt": "top", + "editType": "calc", + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ] + } + }, + "bgcolor": { + "description": "Sets the color of padded area.", + "dflt": "rgba(0,0,0,0)", + "editType": "calc", + "valType": "color" + }, + "bordercolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "calc", + "valType": "color" + }, + "borderwidth": { + "description": "Sets the width (in px) or the border enclosing this color bar.", + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "dtick": { + "description": "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*, 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* 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*", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" + }, + "editType": "calc", + "exponentformat": { + "description": "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.", + "dflt": "B", + "editType": "calc", + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ] + }, + "labelalias": { + "description": "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.", + "dflt": false, + "editType": "calc", + "valType": "any" + }, + "len": { + "description": "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.", + "dflt": 1, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "lenmode": { + "description": "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.", + "dflt": "fraction", + "editType": "calc", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] + }, + "minexponent": { + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", + "dflt": 3, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "nticks": { + "description": "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*.", + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "integer" + }, + "orientation": { + "description": "Sets the orientation of the colorbar.", + "dflt": "v", + "editType": "calc", + "valType": "enumerated", + "values": [ + "h", + "v" + ] + }, + "outlinecolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "calc", + "valType": "color" + }, + "outlinewidth": { + "description": "Sets the width (in px) of the axis line.", + "dflt": 1, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "role": "object", + "separatethousands": { + "description": "If \"true\", even 4-digit integers are separated", + "dflt": false, + "editType": "calc", + "valType": "boolean" + }, + "showexponent": { + "description": "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.", + "dflt": "all", + "editType": "calc", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] + }, + "showticklabels": { + "description": "Determines whether or not the tick labels are drawn.", + "dflt": true, + "editType": "calc", + "valType": "boolean" + }, + "showtickprefix": { + "description": "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.", + "dflt": "all", + "editType": "calc", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] + }, + "showticksuffix": { + "description": "Same as `showtickprefix` but for tick suffixes.", + "dflt": "all", + "editType": "calc", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] + }, + "thickness": { + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "dflt": 30, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "thicknessmode": { + "description": "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.", + "dflt": "pixels", + "editType": "calc", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] + }, + "tick0": { + "description": "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* (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.", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" + }, + "tickangle": { + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", + "dflt": "auto", + "editType": "calc", + "valType": "angle" + }, + "tickcolor": { + "description": "Sets the tick color.", + "dflt": "#444", + "editType": "calc", + "valType": "color" + }, + "tickfont": { + "color": { + "editType": "calc", + "valType": "color" + }, + "description": "Sets the color bar's tick label font", + "editType": "calc", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "valType": "string" + }, + "size": { + "editType": "calc", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "calc", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "tickformat": { + "description": "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*", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "dtickrange": { + "description": "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*", + "editType": "calc", + "items": [ + { + "editType": "calc", + "valType": "any" + }, + { + "editType": "calc", + "valType": "any" + } + ], + "valType": "info_array" + }, + "editType": "calc", + "enabled": { + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", + "dflt": true, + "editType": "calc", + "valType": "boolean" + }, + "name": { + "description": "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.", + "editType": "calc", + "valType": "string" + }, + "role": "object", + "templateitemname": { + "description": "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`.", + "editType": "calc", + "valType": "string" + }, + "value": { + "description": "string - dtickformat for described zoom level, the same as *tickformat*", + "dflt": "", + "editType": "calc", + "valType": "string" + } + } + }, + "role": "object" + }, + "ticklabeloverflow": { + "description": "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*.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ] + }, + "ticklabelposition": { + "description": "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*.", + "dflt": "outside", + "editType": "calc", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside left", + "inside left", + "outside right", + "inside right", + "outside bottom", + "inside bottom" + ] + }, + "ticklabelstep": { + "description": "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*.", + "dflt": 1, + "editType": "calc", + "min": 1, + "valType": "integer" + }, + "ticklen": { + "description": "Sets the tick length (in px).", + "dflt": 5, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "tickmode": { + "description": "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).", + "editType": "calc", + "impliedEdits": {}, + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ] + }, + "tickprefix": { + "description": "Sets a tick label prefix.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "ticks": { + "description": "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.", + "dflt": "", + "editType": "calc", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ] + }, + "ticksuffix": { + "description": "Sets a tick label suffix.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "ticktext": { + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", + "editType": "calc", + "valType": "data_array" + }, + "ticktextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", + "editType": "none", + "valType": "string" + }, + "tickvals": { + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", + "editType": "calc", + "valType": "data_array" + }, + "tickvalssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", + "editType": "none", + "valType": "string" + }, + "tickwidth": { + "description": "Sets the tick width (in px).", + "dflt": 1, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "title": { + "editType": "calc", + "font": { + "color": { + "editType": "calc", + "valType": "color" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "calc", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "valType": "string" + }, + "size": { + "editType": "calc", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "calc", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "role": "object", + "side": { + "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ] + }, + "text": { + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "calc", + "valType": "string" + } + }, + "x": { + "description": "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*.", + "editType": "calc", + "valType": "number" + }, + "xanchor": { + "description": "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*.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ] + }, + "xpad": { + "description": "Sets the amount of padding (in px) along the x direction.", + "dflt": 10, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "calc", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, + "y": { + "description": "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*.", + "editType": "calc", + "valType": "number" + }, + "yanchor": { + "description": "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*.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ] + }, + "ypad": { + "description": "Sets the amount of padding (in px) along the y direction.", + "dflt": 10, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "calc", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + } + }, + "colorscale": { + "description": "Sets the colorscale. Has an effect only if in `marker.color` is set to a numerical array. 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 `marker.cmin` and `marker.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.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "autocolorscale": false + }, + "valType": "colorscale" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "editType": "calc", + "gradient": { + "color": { + "arrayOk": true, + "description": "Sets the final color of the gradient fill: the center color for radial, the right for horizontal, or the bottom for vertical.", + "editType": "calc", + "valType": "color" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "editType": "calc", + "role": "object", + "type": { + "arrayOk": true, + "description": "Sets the type of gradient used to fill the markers", + "dflt": "none", + "editType": "calc", + "valType": "enumerated", + "values": [ + "radial", + "horizontal", + "vertical", + "none" + ] + }, + "typesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `type`.", + "editType": "none", + "valType": "string" + } + }, + "line": { + "autocolorscale": { + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color` is set to a numerical array. 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.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "cauto": { + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color` is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "cmax": { + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "valType": "number" + }, + "cmid": { + "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`.", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "valType": "number" + }, + "cmin": { + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "valType": "number" + }, + "color": { + "arrayOk": true, + "description": "Sets the marker.line color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set.", + "editType": "calc", + "valType": "color" + }, + "coloraxis": { + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", + "dflt": null, + "editType": "calc", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "valType": "subplotid" + }, + "colorscale": { + "description": "Sets the colorscale. Has an effect only if in `marker.line.color` is set to a numerical array. 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 `marker.line.cmin` and `marker.line.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.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "autocolorscale": false + }, + "valType": "colorscale" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "editType": "calc", + "reversescale": { + "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color` is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color.", + "dflt": false, + "editType": "calc", + "valType": "boolean" + }, + "role": "object", + "width": { + "arrayOk": true, + "description": "Sets the width (in px) of the lines bounding the marker points.", + "editType": "calc", + "min": 0, + "valType": "number" + }, + "widthsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `width`.", + "editType": "none", + "valType": "string" + } + }, + "opacity": { + "arrayOk": true, + "description": "Sets the marker opacity.", + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + }, + "opacitysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `opacity`.", + "editType": "none", + "valType": "string" + }, + "reversescale": { + "description": "Reverses the color mapping if true. Has an effect only if in `marker.color` is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color.", + "dflt": false, + "editType": "calc", + "valType": "boolean" + }, + "role": "object", + "showscale": { + "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color` is set to a numerical array.", + "dflt": false, + "editType": "calc", + "valType": "boolean" + }, + "size": { + "arrayOk": true, + "description": "Sets the marker size (in px).", + "dflt": 6, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "sizemin": { + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the minimum size (in px) of the rendered marker points.", + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "sizemode": { + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the rule for which the data in `size` is converted to pixels.", + "dflt": "diameter", + "editType": "calc", + "valType": "enumerated", + "values": [ + "diameter", + "area" + ] + }, + "sizeref": { + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the scale factor used to determine the rendered size of marker points. Use with `sizemin` and `sizemode`.", + "dflt": 1, + "editType": "calc", + "valType": "number" + }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, + "standoff": { + "arrayOk": true, + "description": "Moves the marker away from the data point in the direction of `angle` (in px). This can be useful for example if you have another marker at this location and you want to point an arrowhead marker at it.", + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "standoffsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `standoff`.", + "editType": "none", + "valType": "string" + }, + "symbol": { + "arrayOk": true, + "description": "Sets the marker symbol type. Adding 100 is equivalent to appending *-open* to a symbol name. Adding 200 is equivalent to appending *-dot* to a symbol name. Adding 300 is equivalent to appending *-open-dot* or *dot-open* to a symbol name.", + "dflt": "circle", + "editType": "calc", + "valType": "enumerated", + "values": [ + 0, + "0", + "circle", + 100, + "100", + "circle-open", + 200, + "200", + "circle-dot", + 300, + "300", + "circle-open-dot", + 1, + "1", + "square", + 101, + "101", + "square-open", + 201, + "201", + "square-dot", + 301, + "301", + "square-open-dot", + 2, + "2", + "diamond", + 102, + "102", + "diamond-open", + 202, + "202", + "diamond-dot", + 302, + "302", + "diamond-open-dot", + 3, + "3", + "cross", + 103, + "103", + "cross-open", + 203, + "203", + "cross-dot", + 303, + "303", + "cross-open-dot", + 4, + "4", + "x", + 104, + "104", + "x-open", + 204, + "204", + "x-dot", + 304, + "304", + "x-open-dot", + 5, + "5", + "triangle-up", + 105, + "105", + "triangle-up-open", + 205, + "205", + "triangle-up-dot", + 305, + "305", + "triangle-up-open-dot", + 6, + "6", + "triangle-down", + 106, + "106", + "triangle-down-open", + 206, + "206", + "triangle-down-dot", + 306, + "306", + "triangle-down-open-dot", + 7, + "7", + "triangle-left", + 107, + "107", + "triangle-left-open", + 207, + "207", + "triangle-left-dot", + 307, + "307", + "triangle-left-open-dot", + 8, + "8", + "triangle-right", + 108, + "108", + "triangle-right-open", + 208, + "208", + "triangle-right-dot", + 308, + "308", + "triangle-right-open-dot", + 9, + "9", + "triangle-ne", + 109, + "109", + "triangle-ne-open", + 209, + "209", + "triangle-ne-dot", + 309, + "309", + "triangle-ne-open-dot", + 10, + "10", + "triangle-se", + 110, + "110", + "triangle-se-open", + 210, + "210", + "triangle-se-dot", + 310, + "310", + "triangle-se-open-dot", + 11, + "11", + "triangle-sw", + 111, + "111", + "triangle-sw-open", + 211, + "211", + "triangle-sw-dot", + 311, + "311", + "triangle-sw-open-dot", + 12, + "12", + "triangle-nw", + 112, + "112", + "triangle-nw-open", + 212, + "212", + "triangle-nw-dot", + 312, + "312", + "triangle-nw-open-dot", + 13, + "13", + "pentagon", + 113, + "113", + "pentagon-open", + 213, + "213", + "pentagon-dot", + 313, + "313", + "pentagon-open-dot", + 14, + "14", + "hexagon", + 114, + "114", + "hexagon-open", + 214, + "214", + "hexagon-dot", + 314, + "314", + "hexagon-open-dot", + 15, + "15", + "hexagon2", + 115, + "115", + "hexagon2-open", + 215, + "215", + "hexagon2-dot", + 315, + "315", + "hexagon2-open-dot", + 16, + "16", + "octagon", + 116, + "116", + "octagon-open", + 216, + "216", + "octagon-dot", + 316, + "316", + "octagon-open-dot", + 17, + "17", + "star", + 117, + "117", + "star-open", + 217, + "217", + "star-dot", + 317, + "317", + "star-open-dot", + 18, + "18", + "hexagram", + 118, + "118", + "hexagram-open", + 218, + "218", + "hexagram-dot", + 318, + "318", + "hexagram-open-dot", + 19, + "19", + "star-triangle-up", + 119, + "119", + "star-triangle-up-open", + 219, + "219", + "star-triangle-up-dot", + 319, + "319", + "star-triangle-up-open-dot", + 20, + "20", + "star-triangle-down", + 120, + "120", + "star-triangle-down-open", + 220, + "220", + "star-triangle-down-dot", + 320, + "320", + "star-triangle-down-open-dot", + 21, + "21", + "star-square", + 121, + "121", + "star-square-open", + 221, + "221", + "star-square-dot", + 321, + "321", + "star-square-open-dot", + 22, + "22", + "star-diamond", + 122, + "122", + "star-diamond-open", + 222, + "222", + "star-diamond-dot", + 322, + "322", + "star-diamond-open-dot", + 23, + "23", + "diamond-tall", + 123, + "123", + "diamond-tall-open", + 223, + "223", + "diamond-tall-dot", + 323, + "323", + "diamond-tall-open-dot", + 24, + "24", + "diamond-wide", + 124, + "124", + "diamond-wide-open", + 224, + "224", + "diamond-wide-dot", + 324, + "324", + "diamond-wide-open-dot", + 25, + "25", + "hourglass", + 125, + "125", + "hourglass-open", + 26, + "26", + "bowtie", + 126, + "126", + "bowtie-open", + 27, + "27", + "circle-cross", + 127, + "127", + "circle-cross-open", + 28, + "28", + "circle-x", + 128, + "128", + "circle-x-open", + 29, + "29", + "square-cross", + 129, + "129", + "square-cross-open", + 30, + "30", + "square-x", + 130, + "130", + "square-x-open", + 31, + "31", + "diamond-cross", + 131, + "131", + "diamond-cross-open", + 32, + "32", + "diamond-x", + 132, + "132", + "diamond-x-open", + 33, + "33", + "cross-thin", + 133, + "133", + "cross-thin-open", + 34, + "34", + "x-thin", + 134, + "134", + "x-thin-open", + 35, + "35", + "asterisk", + 135, + "135", + "asterisk-open", + 36, + "36", + "hash", + 136, + "136", + "hash-open", + 236, + "236", + "hash-dot", + 336, + "336", + "hash-open-dot", + 37, + "37", + "y-up", + 137, + "137", + "y-up-open", + 38, + "38", + "y-down", + 138, + "138", + "y-down-open", + 39, + "39", + "y-left", + 139, + "139", + "y-left-open", + 40, + "40", + "y-right", + 140, + "140", + "y-right-open", + 41, + "41", + "line-ew", + 141, + "141", + "line-ew-open", + 42, + "42", + "line-ns", + 142, + "142", + "line-ns-open", + 43, + "43", + "line-ne", + 143, + "143", + "line-ne-open", + 44, + "44", + "line-nw", + 144, + "144", + "line-nw-open", + 45, + "45", + "arrow-up", + 145, + "145", + "arrow-up-open", + 46, + "46", + "arrow-down", + 146, + "146", + "arrow-down-open", + 47, + "47", + "arrow-left", + 147, + "147", + "arrow-left-open", + 48, + "48", + "arrow-right", + 148, + "148", + "arrow-right-open", + 49, + "49", + "arrow-bar-up", + 149, + "149", + "arrow-bar-up-open", + 50, + "50", + "arrow-bar-down", + 150, + "150", + "arrow-bar-down-open", + 51, + "51", + "arrow-bar-left", + 151, + "151", + "arrow-bar-left-open", + 52, + "52", + "arrow-bar-right", + 152, + "152", + "arrow-bar-right-open", + 53, + "53", + "arrow", + 153, + "153", + "arrow-open", + 54, + "54", + "arrow-wide", + 154, + "154", + "arrow-wide-open" + ] + }, + "symbolsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `symbol`.", + "editType": "none", + "valType": "string" + } + }, + "meta": { + "arrayOk": true, + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", + "editType": "plot", + "valType": "any" + }, + "metasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `meta`.", + "editType": "none", + "valType": "string" + }, + "mode": { + "description": "Determines the drawing mode for this scatter trace. If the provided `mode` includes *text* then the `text` elements appear at the coordinates. Otherwise, the `text` elements appear on hover. If there are less than 20 points and the trace is not stacked then the default is *lines+markers*. Otherwise, *lines*.", + "dflt": "markers", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "lines", + "markers", + "text" + ], + "valType": "flaglist" + }, + "name": { + "description": "Sets the trace name. The trace name appears as the legend item and on hover.", + "editType": "style", + "valType": "string" + }, + "opacity": { + "description": "Sets the opacity of the trace.", + "dflt": 1, + "editType": "style", + "max": 1, + "min": 0, + "valType": "number" + }, + "selected": { + "editType": "calc", + "marker": { + "color": { + "description": "Sets the marker color of selected points.", + "editType": "calc", + "valType": "color" + }, + "editType": "calc", + "opacity": { + "description": "Sets the marker opacity of selected points.", + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + }, + "role": "object", + "size": { + "description": "Sets the marker size of selected points.", + "editType": "calc", + "min": 0, + "valType": "number" + } + }, + "role": "object", + "textfont": { + "color": { + "description": "Sets the text font color of selected points.", + "editType": "calc", + "valType": "color" + }, + "editType": "calc", + "role": "object" + } + }, + "selectedpoints": { + "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect.", + "editType": "calc", + "valType": "any" + }, + "showlegend": { + "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", + "dflt": true, + "editType": "style", + "valType": "boolean" + }, + "stream": { + "editType": "calc", + "maxpoints": { + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot.", + "dflt": 500, + "editType": "calc", + "max": 10000, + "min": 0, + "valType": "number" + }, + "role": "object", + "token": { + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" + } + }, + "text": { + "arrayOk": true, + "description": "Sets text elements associated with each (lon,lat) pair or item in `locations`. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (lon,lat) or `locations` coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "textfont": { + "color": { + "arrayOk": true, + "editType": "calc", + "valType": "color" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "description": "Sets the text font.", + "editType": "calc", + "family": { + "arrayOk": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" + }, + "lineposition": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", + "editType": "none", + "valType": "string" + }, + "role": "object", + "shadow": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "calc", + "valType": "string" + }, + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", + "valType": "string" + }, + "size": { + "arrayOk": true, + "editType": "calc", + "min": 1, + "valType": "number" + }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, + "style": { + "arrayOk": true, + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", + "valType": "string" + }, + "textcase": { + "arrayOk": true, + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", + "valType": "string" + }, + "variant": { + "arrayOk": true, + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" + }, + "weight": { + "arrayOk": true, + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "calc", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + }, + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" + } + }, + "textposition": { + "arrayOk": true, + "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates.", + "dflt": "middle center", + "editType": "calc", + "valType": "enumerated", + "values": [ + "top left", + "top center", + "top right", + "middle left", + "middle center", + "middle right", + "bottom left", + "bottom center", + "bottom right" + ] + }, + "textpositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textposition`.", + "editType": "none", + "valType": "string" + }, + "textsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `text`.", + "editType": "none", + "valType": "string" + }, + "texttemplate": { + "arrayOk": true, + "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". 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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `lat`, `lon`, `location` and `text`.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "texttemplatesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `texttemplate`.", + "editType": "none", + "valType": "string" + }, + "transforms": { + "items": { + "transform": { + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "editType": "calc", + "role": "object" + } + }, + "role": "object" + }, + "type": "scattergeo", + "uid": { + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", + "editType": "plot", + "valType": "string" + }, + "uirevision": { + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.", + "editType": "none", + "valType": "any" + }, + "unselected": { + "editType": "calc", + "marker": { + "color": { + "description": "Sets the marker color of unselected points, applied only when a selection exists.", + "editType": "calc", + "valType": "color" + }, + "editType": "calc", + "opacity": { + "description": "Sets the marker opacity of unselected points, applied only when a selection exists.", + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + }, + "role": "object", + "size": { + "description": "Sets the marker size of unselected points, applied only when a selection exists.", + "editType": "calc", + "min": 0, + "valType": "number" + } + }, + "role": "object", + "textfont": { + "color": { + "description": "Sets the text font color of unselected points, applied only when a selection exists.", + "editType": "calc", + "valType": "color" + }, + "editType": "calc", + "role": "object" + } + }, + "visible": { + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", + "dflt": true, + "editType": "calc", + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ] + } + }, + "categories": [ + "geo", + "symbols", + "showLegend", + "scatter-like" + ], + "meta": { + "description": "The data visualized as scatter point or lines on a geographic map is provided either by longitude/latitude pairs in `lon` and `lat` respectively or by geographic location IDs or names in `locations`.", + "hrName": "scatter_geo" + }, + "type": "scattergeo" + }, + "scattergl": { + "animatable": false, + "attributes": { + "connectgaps": { + "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the provided data arrays are connected.", + "dflt": false, + "editType": "calc", + "valType": "boolean" + }, + "customdata": { + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", + "editType": "calc", + "valType": "data_array" + }, + "customdatasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", + "editType": "none", + "valType": "string" + }, + "dx": { + "description": "Sets the x coordinate step. See `x0` for more info.", + "dflt": 1, + "editType": "calc", + "valType": "number" + }, + "dy": { + "description": "Sets the y coordinate step. See `y0` for more info.", + "dflt": 1, + "editType": "calc", + "valType": "number" + }, + "error_x": { + "_deprecated": { + "opacity": { + "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity.", + "editType": "calc", + "valType": "number" + } + }, + "array": { + "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data.", + "editType": "calc", + "valType": "data_array" + }, + "arrayminus": { + "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data.", + "editType": "calc", + "valType": "data_array" + }, + "arrayminussrc": { + "description": "Sets the source reference on Chart Studio Cloud for `arrayminus`.", + "editType": "none", + "valType": "string" + }, + "arraysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `array`.", + "editType": "none", + "valType": "string" + }, + "color": { + "description": "Sets the stoke color of the error bars.", + "editType": "calc", + "valType": "color" + }, + "copy_ystyle": { + "editType": "calc", + "valType": "boolean" + }, + "editType": "calc", + "role": "object", + "symmetric": { + "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars.", + "editType": "calc", + "valType": "boolean" + }, + "thickness": { + "description": "Sets the thickness (in px) of the error bars.", + "dflt": 2, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "traceref": { + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "integer" + }, + "tracerefminus": { + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "integer" + }, + "type": { + "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "percent", + "constant", + "sqrt", + "data" + ] + }, + "value": { + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars.", + "dflt": 10, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "valueminus": { + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars", + "dflt": 10, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "visible": { + "description": "Determines whether or not this set of error bars is visible.", + "editType": "calc", + "valType": "boolean" + }, + "width": { + "description": "Sets the width (in px) of the cross-bar at both ends of the error bars.", + "editType": "calc", + "min": 0, + "valType": "number" + } + }, + "error_y": { + "_deprecated": { + "opacity": { + "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity.", + "editType": "calc", + "valType": "number" + } + }, + "array": { + "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data.", + "editType": "calc", + "valType": "data_array" + }, + "arrayminus": { + "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data.", + "editType": "calc", + "valType": "data_array" + }, + "arrayminussrc": { + "description": "Sets the source reference on Chart Studio Cloud for `arrayminus`.", + "editType": "none", + "valType": "string" + }, + "arraysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `array`.", + "editType": "none", + "valType": "string" + }, + "color": { + "description": "Sets the stoke color of the error bars.", + "editType": "calc", + "valType": "color" + }, + "editType": "calc", + "role": "object", + "symmetric": { + "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars.", + "editType": "calc", + "valType": "boolean" + }, + "thickness": { + "description": "Sets the thickness (in px) of the error bars.", + "dflt": 2, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "traceref": { + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "integer" + }, + "tracerefminus": { + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "integer" + }, + "type": { + "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "percent", + "constant", + "sqrt", + "data" + ] + }, + "value": { + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars.", + "dflt": 10, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "valueminus": { + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars", + "dflt": 10, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "visible": { + "description": "Determines whether or not this set of error bars is visible.", + "editType": "calc", + "valType": "boolean" + }, + "width": { + "description": "Sets the width (in px) of the cross-bar at both ends of the error bars.", + "editType": "calc", + "min": 0, + "valType": "number" + } + }, + "fill": { + "description": "Sets the area to fill with a solid color. Defaults to *none* unless this trace is stacked, then it gets *tonexty* (*tonextx*) if `orientation` is *v* (*h*) Use with `fillcolor` if not *none*. *tozerox* and *tozeroy* fill to x=0 and y=0 respectively. *tonextx* and *tonexty* fill between the endpoints of this trace and the endpoints of the trace before it, connecting those endpoints with straight lines (to make a stacked area graph); if there is no trace before it, they behave like *tozerox* and *tozeroy*. *toself* connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape. *tonext* fills the space between two traces if one completely encloses the other (eg consecutive contour lines), and behaves like *toself* if there is no trace before it. *tonext* should not be used if one trace does not enclose the other. Traces in a `stackgroup` will only fill to (or be filled to) other traces in the same group. With multiple `stackgroup`s or some traces stacked and some not, if fill-linked traces are not already consecutive, the later ones will be pushed down in the drawing order.", + "dflt": "none", + "editType": "calc", + "valType": "enumerated", + "values": [ + "none", + "tozeroy", + "tozerox", + "tonexty", + "tonextx", + "toself", + "tonext" + ] + }, + "fillcolor": { + "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available.", + "editType": "calc", + "valType": "color" + }, + "hoverinfo": { + "arrayOk": true, + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", + "dflt": "all", + "editType": "none", + "extras": [ + "all", + "none", + "skip" + ], + "flags": [ + "x", + "y", + "z", + "text", + "name" + ], + "valType": "flaglist" + }, + "hoverinfosrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", + "editType": "none", + "valType": "string" + }, + "hoverlabel": { + "align": { + "arrayOk": true, + "description": "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", + "dflt": "auto", + "editType": "none", + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ] + }, + "alignsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `align`.", + "editType": "none", + "valType": "string" + }, + "bgcolor": { + "arrayOk": true, + "description": "Sets the background color of the hover labels for this trace", + "editType": "none", + "valType": "color" + }, + "bgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", + "editType": "none", + "valType": "string" + }, + "bordercolor": { + "arrayOk": true, + "description": "Sets the border color of the hover labels for this trace.", + "editType": "none", + "valType": "color" + }, + "bordercolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", + "editType": "none", + "valType": "string" + }, + "editType": "none", + "font": { + "color": { + "arrayOk": true, + "editType": "none", + "valType": "color" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "description": "Sets the font used in hover labels.", + "editType": "none", + "family": { + "arrayOk": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "none", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" + }, + "lineposition": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "none", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", + "editType": "none", + "valType": "string" + }, + "role": "object", + "shadow": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "none", + "valType": "string" + }, + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", + "valType": "string" + }, + "size": { + "arrayOk": true, + "editType": "none", + "min": 1, + "valType": "number" + }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, + "style": { + "arrayOk": true, + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "none", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", + "valType": "string" + }, + "textcase": { + "arrayOk": true, + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "none", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", + "valType": "string" + }, + "variant": { + "arrayOk": true, + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "none", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" + }, + "weight": { + "arrayOk": true, + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "none", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + }, + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" + } + }, + "namelength": { + "arrayOk": true, + "description": "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.", + "dflt": 15, + "editType": "none", + "min": -1, + "valType": "integer" + }, + "namelengthsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", + "editType": "none", + "valType": "string" + }, + "role": "object" + }, + "hovertemplate": { + "arrayOk": true, + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "dflt": "", + "editType": "none", + "valType": "string" + }, + "hovertemplatesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", + "editType": "none", + "valType": "string" + }, + "hovertext": { + "arrayOk": true, + "description": "Sets hover text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "hovertextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertext`.", + "editType": "none", + "valType": "string" + }, + "ids": { + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", + "editType": "calc", + "valType": "data_array" + }, + "idssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ids`.", + "editType": "none", + "valType": "string" + }, + "legend": { + "description": "Sets the reference to a legend to show this trace 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.", + "dflt": "legend", + "editType": "style", + "valType": "subplotid" + }, + "legendgroup": { + "description": "Sets the legend group for this trace. Traces and shapes part of the same legend group hide/show at the same time when toggling legend items.", + "dflt": "", + "editType": "style", + "valType": "string" + }, + "legendgrouptitle": { + "editType": "style", + "font": { + "color": { + "editType": "style", + "valType": "color" + }, + "description": "Sets this legend group's title font.", + "editType": "style", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "style", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "style", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "style", + "valType": "string" + }, + "size": { + "editType": "style", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "style", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "style", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "style", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "style", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "role": "object", + "text": { + "description": "Sets the title of the legend group.", + "dflt": "", + "editType": "style", + "valType": "string" + } + }, + "legendrank": { + "description": "Sets the legend rank for this trace. 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.", + "dflt": 1000, + "editType": "style", + "valType": "number" + }, + "legendwidth": { + "description": "Sets the width (in px or fraction) of the legend for this trace.", + "editType": "style", + "min": 0, + "valType": "number" + }, + "line": { + "color": { + "description": "Sets the line color.", + "editType": "calc", + "valType": "color" + }, + "dash": { + "description": "Sets the style of the lines.", + "dflt": "solid", + "editType": "calc", + "valType": "enumerated", + "values": [ + "dash", + "dashdot", + "dot", + "longdash", + "longdashdot", + "solid" + ] + }, + "editType": "calc", + "role": "object", + "shape": { + "description": "Determines the line shape. The values correspond to step-wise line shapes.", + "dflt": "linear", + "editType": "calc", + "valType": "enumerated", + "values": [ + "linear", + "hv", + "vh", + "hvh", + "vhv" + ] + }, + "width": { + "description": "Sets the line width (in px).", + "dflt": 2, + "editType": "calc", + "min": 0, + "valType": "number" + } + }, + "marker": { + "angle": { + "arrayOk": true, + "description": "Sets the marker angle in respect to `angleref`.", + "dflt": 0, + "editType": "calc", + "valType": "angle" + }, + "anglesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `angle`.", + "editType": "none", + "valType": "string" + }, + "autocolorscale": { + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color` is set to a numerical array. 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.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "cauto": { + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color` is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "cmax": { + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "valType": "number" + }, + "cmid": { + "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`.", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "valType": "number" + }, + "cmin": { + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "valType": "number" + }, + "color": { + "arrayOk": true, + "description": "Sets the marker color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set.", + "editType": "calc", + "valType": "color" + }, + "coloraxis": { + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", + "dflt": null, + "editType": "calc", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "valType": "subplotid" + }, + "colorbar": { + "_deprecated": { + "title": { + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "calc", + "valType": "string" + }, + "titlefont": { + "color": { + "editType": "calc", + "valType": "color" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "calc", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "valType": "string" + }, + "size": { + "editType": "calc", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "calc", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "titleside": { + "description": "Deprecated in favor of color bar's `title.side`.", + "dflt": "top", + "editType": "calc", + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ] + } + }, + "bgcolor": { + "description": "Sets the color of padded area.", + "dflt": "rgba(0,0,0,0)", + "editType": "calc", + "valType": "color" + }, + "bordercolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "calc", + "valType": "color" + }, + "borderwidth": { + "description": "Sets the width (in px) or the border enclosing this color bar.", + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "dtick": { + "description": "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*, 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* 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*", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" + }, + "editType": "calc", + "exponentformat": { + "description": "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.", + "dflt": "B", + "editType": "calc", + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ] + }, + "labelalias": { + "description": "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.", + "dflt": false, + "editType": "calc", + "valType": "any" + }, + "len": { + "description": "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.", + "dflt": 1, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "lenmode": { + "description": "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.", + "dflt": "fraction", + "editType": "calc", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] + }, + "minexponent": { + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", + "dflt": 3, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "nticks": { + "description": "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*.", + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "integer" + }, + "orientation": { + "description": "Sets the orientation of the colorbar.", + "dflt": "v", + "editType": "calc", + "valType": "enumerated", + "values": [ + "h", + "v" + ] + }, + "outlinecolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "calc", + "valType": "color" + }, + "outlinewidth": { + "description": "Sets the width (in px) of the axis line.", + "dflt": 1, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "role": "object", + "separatethousands": { + "description": "If \"true\", even 4-digit integers are separated", + "dflt": false, + "editType": "calc", + "valType": "boolean" + }, + "showexponent": { + "description": "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.", + "dflt": "all", + "editType": "calc", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] + }, + "showticklabels": { + "description": "Determines whether or not the tick labels are drawn.", + "dflt": true, + "editType": "calc", + "valType": "boolean" + }, + "showtickprefix": { + "description": "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.", + "dflt": "all", + "editType": "calc", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] + }, + "showticksuffix": { + "description": "Same as `showtickprefix` but for tick suffixes.", + "dflt": "all", + "editType": "calc", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] + }, + "thickness": { + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "dflt": 30, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "thicknessmode": { + "description": "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.", + "dflt": "pixels", + "editType": "calc", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] + }, + "tick0": { + "description": "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* (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.", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" + }, + "tickangle": { + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", + "dflt": "auto", + "editType": "calc", + "valType": "angle" + }, + "tickcolor": { + "description": "Sets the tick color.", + "dflt": "#444", + "editType": "calc", + "valType": "color" + }, + "tickfont": { + "color": { + "editType": "calc", + "valType": "color" + }, + "description": "Sets the color bar's tick label font", + "editType": "calc", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "valType": "string" + }, + "size": { + "editType": "calc", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "calc", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "tickformat": { + "description": "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*", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "dtickrange": { + "description": "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*", + "editType": "calc", + "items": [ + { + "editType": "calc", + "valType": "any" + }, + { + "editType": "calc", + "valType": "any" + } + ], + "valType": "info_array" + }, + "editType": "calc", + "enabled": { + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", + "dflt": true, + "editType": "calc", + "valType": "boolean" + }, + "name": { + "description": "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.", + "editType": "calc", + "valType": "string" + }, + "role": "object", + "templateitemname": { + "description": "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`.", + "editType": "calc", + "valType": "string" + }, + "value": { + "description": "string - dtickformat for described zoom level, the same as *tickformat*", + "dflt": "", + "editType": "calc", + "valType": "string" + } + } + }, + "role": "object" + }, + "ticklabeloverflow": { + "description": "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*.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ] + }, + "ticklabelposition": { + "description": "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*.", + "dflt": "outside", + "editType": "calc", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside left", + "inside left", + "outside right", + "inside right", + "outside bottom", + "inside bottom" + ] + }, + "ticklabelstep": { + "description": "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*.", + "dflt": 1, + "editType": "calc", + "min": 1, + "valType": "integer" + }, + "ticklen": { + "description": "Sets the tick length (in px).", + "dflt": 5, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "tickmode": { + "description": "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).", + "editType": "calc", + "impliedEdits": {}, + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ] + }, + "tickprefix": { + "description": "Sets a tick label prefix.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "ticks": { + "description": "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.", + "dflt": "", + "editType": "calc", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ] + }, + "ticksuffix": { + "description": "Sets a tick label suffix.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "ticktext": { + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", + "editType": "calc", + "valType": "data_array" + }, + "ticktextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", + "editType": "none", + "valType": "string" + }, + "tickvals": { + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", + "editType": "calc", + "valType": "data_array" + }, + "tickvalssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", + "editType": "none", + "valType": "string" + }, + "tickwidth": { + "description": "Sets the tick width (in px).", + "dflt": 1, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "title": { + "editType": "calc", + "font": { + "color": { + "editType": "calc", + "valType": "color" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "calc", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "valType": "string" + }, + "size": { + "editType": "calc", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "calc", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "role": "object", + "side": { + "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ] + }, + "text": { + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "calc", + "valType": "string" + } + }, + "x": { + "description": "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*.", + "editType": "calc", + "valType": "number" + }, + "xanchor": { + "description": "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*.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ] + }, + "xpad": { + "description": "Sets the amount of padding (in px) along the x direction.", + "dflt": 10, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "calc", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, + "y": { + "description": "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*.", + "editType": "calc", + "valType": "number" + }, + "yanchor": { + "description": "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*.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ] + }, + "ypad": { + "description": "Sets the amount of padding (in px) along the y direction.", + "dflt": 10, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "calc", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + } + }, + "colorscale": { + "description": "Sets the colorscale. Has an effect only if in `marker.color` is set to a numerical array. 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 `marker.cmin` and `marker.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.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "autocolorscale": false + }, + "valType": "colorscale" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "editType": "calc", + "line": { + "autocolorscale": { + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color` is set to a numerical array. 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.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "cauto": { + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color` is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "cmax": { + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "valType": "number" + }, + "cmid": { + "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`.", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "valType": "number" + }, + "cmin": { + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color` is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "valType": "number" + }, + "color": { + "arrayOk": true, + "description": "Sets the marker.line color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set.", + "editType": "calc", + "valType": "color" + }, + "coloraxis": { + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", + "dflt": null, + "editType": "calc", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "valType": "subplotid" + }, + "colorscale": { + "description": "Sets the colorscale. Has an effect only if in `marker.line.color` is set to a numerical array. 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 `marker.line.cmin` and `marker.line.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.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "autocolorscale": false + }, + "valType": "colorscale" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "editType": "calc", + "reversescale": { + "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color` is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color.", + "dflt": false, + "editType": "calc", + "valType": "boolean" + }, + "role": "object", + "width": { + "arrayOk": true, + "description": "Sets the width (in px) of the lines bounding the marker points.", + "editType": "calc", + "min": 0, + "valType": "number" + }, + "widthsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `width`.", + "editType": "none", + "valType": "string" + } + }, + "opacity": { + "arrayOk": true, + "description": "Sets the marker opacity.", + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + }, + "opacitysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `opacity`.", + "editType": "none", + "valType": "string" + }, + "reversescale": { + "description": "Reverses the color mapping if true. Has an effect only if in `marker.color` is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color.", + "dflt": false, + "editType": "calc", + "valType": "boolean" + }, + "role": "object", + "showscale": { + "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color` is set to a numerical array.", + "dflt": false, + "editType": "calc", + "valType": "boolean" + }, + "size": { + "arrayOk": true, + "description": "Sets the marker size (in px).", + "dflt": 6, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "sizemin": { + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the minimum size (in px) of the rendered marker points.", + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "sizemode": { + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the rule for which the data in `size` is converted to pixels.", + "dflt": "diameter", + "editType": "calc", + "valType": "enumerated", + "values": [ + "diameter", + "area" + ] + }, + "sizeref": { + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the scale factor used to determine the rendered size of marker points. Use with `sizemin` and `sizemode`.", + "dflt": 1, + "editType": "calc", + "valType": "number" + }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, + "symbol": { + "arrayOk": true, + "description": "Sets the marker symbol type. Adding 100 is equivalent to appending *-open* to a symbol name. Adding 200 is equivalent to appending *-dot* to a symbol name. Adding 300 is equivalent to appending *-open-dot* or *dot-open* to a symbol name.", + "dflt": "circle", + "editType": "calc", + "valType": "enumerated", + "values": [ + 0, + "0", + "circle", + 100, + "100", + "circle-open", + 200, + "200", + "circle-dot", + 300, + "300", + "circle-open-dot", + 1, + "1", + "square", + 101, + "101", + "square-open", + 201, + "201", + "square-dot", + 301, + "301", + "square-open-dot", + 2, + "2", + "diamond", + 102, + "102", + "diamond-open", + 202, + "202", + "diamond-dot", + 302, + "302", + "diamond-open-dot", + 3, + "3", + "cross", + 103, + "103", + "cross-open", + 203, + "203", + "cross-dot", + 303, + "303", + "cross-open-dot", + 4, + "4", + "x", + 104, + "104", + "x-open", + 204, + "204", + "x-dot", + 304, + "304", + "x-open-dot", + 5, + "5", + "triangle-up", + 105, + "105", + "triangle-up-open", + 205, + "205", + "triangle-up-dot", + 305, + "305", + "triangle-up-open-dot", + 6, + "6", + "triangle-down", + 106, + "106", + "triangle-down-open", + 206, + "206", + "triangle-down-dot", + 306, + "306", + "triangle-down-open-dot", + 7, + "7", + "triangle-left", + 107, + "107", + "triangle-left-open", + 207, + "207", + "triangle-left-dot", + 307, + "307", + "triangle-left-open-dot", + 8, + "8", + "triangle-right", + 108, + "108", + "triangle-right-open", + 208, + "208", + "triangle-right-dot", + 308, + "308", + "triangle-right-open-dot", + 9, + "9", + "triangle-ne", + 109, + "109", + "triangle-ne-open", + 209, + "209", + "triangle-ne-dot", + 309, + "309", + "triangle-ne-open-dot", + 10, + "10", + "triangle-se", + 110, + "110", + "triangle-se-open", + 210, + "210", + "triangle-se-dot", + 310, + "310", + "triangle-se-open-dot", + 11, + "11", + "triangle-sw", + 111, + "111", + "triangle-sw-open", + 211, + "211", + "triangle-sw-dot", + 311, + "311", + "triangle-sw-open-dot", + 12, + "12", + "triangle-nw", + 112, + "112", + "triangle-nw-open", + 212, + "212", + "triangle-nw-dot", + 312, + "312", + "triangle-nw-open-dot", + 13, + "13", + "pentagon", + 113, + "113", + "pentagon-open", + 213, + "213", + "pentagon-dot", + 313, + "313", + "pentagon-open-dot", + 14, + "14", + "hexagon", + 114, + "114", + "hexagon-open", + 214, + "214", + "hexagon-dot", + 314, + "314", + "hexagon-open-dot", + 15, + "15", + "hexagon2", + 115, + "115", + "hexagon2-open", + 215, + "215", + "hexagon2-dot", + 315, + "315", + "hexagon2-open-dot", + 16, + "16", + "octagon", + 116, + "116", + "octagon-open", + 216, + "216", + "octagon-dot", + 316, + "316", + "octagon-open-dot", + 17, + "17", + "star", + 117, + "117", + "star-open", + 217, + "217", + "star-dot", + 317, + "317", + "star-open-dot", + 18, + "18", + "hexagram", + 118, + "118", + "hexagram-open", + 218, + "218", + "hexagram-dot", + 318, + "318", + "hexagram-open-dot", + 19, + "19", + "star-triangle-up", + 119, + "119", + "star-triangle-up-open", + 219, + "219", + "star-triangle-up-dot", + 319, + "319", + "star-triangle-up-open-dot", + 20, + "20", + "star-triangle-down", + 120, + "120", + "star-triangle-down-open", + 220, + "220", + "star-triangle-down-dot", + 320, + "320", + "star-triangle-down-open-dot", + 21, + "21", + "star-square", + 121, + "121", + "star-square-open", + 221, + "221", + "star-square-dot", + 321, + "321", + "star-square-open-dot", + 22, + "22", + "star-diamond", + 122, + "122", + "star-diamond-open", + 222, + "222", + "star-diamond-dot", + 322, + "322", + "star-diamond-open-dot", + 23, + "23", + "diamond-tall", + 123, + "123", + "diamond-tall-open", + 223, + "223", + "diamond-tall-dot", + 323, + "323", + "diamond-tall-open-dot", + 24, + "24", + "diamond-wide", + 124, + "124", + "diamond-wide-open", + 224, + "224", + "diamond-wide-dot", + 324, + "324", + "diamond-wide-open-dot", + 25, + "25", + "hourglass", + 125, + "125", + "hourglass-open", + 26, + "26", + "bowtie", + 126, + "126", + "bowtie-open", + 27, + "27", + "circle-cross", + 127, + "127", + "circle-cross-open", + 28, + "28", + "circle-x", + 128, + "128", + "circle-x-open", + 29, + "29", + "square-cross", + 129, + "129", + "square-cross-open", + 30, + "30", + "square-x", + 130, + "130", + "square-x-open", + 31, + "31", + "diamond-cross", + 131, + "131", + "diamond-cross-open", + 32, + "32", + "diamond-x", + 132, + "132", + "diamond-x-open", + 33, + "33", + "cross-thin", + 133, + "133", + "cross-thin-open", + 34, + "34", + "x-thin", + 134, + "134", + "x-thin-open", + 35, + "35", + "asterisk", + 135, + "135", + "asterisk-open", + 36, + "36", + "hash", + 136, + "136", + "hash-open", + 236, + "236", + "hash-dot", + 336, + "336", + "hash-open-dot", + 37, + "37", + "y-up", + 137, + "137", + "y-up-open", + 38, + "38", + "y-down", + 138, + "138", + "y-down-open", + 39, + "39", + "y-left", + 139, + "139", + "y-left-open", + 40, + "40", + "y-right", + 140, + "140", + "y-right-open", + 41, + "41", + "line-ew", + 141, + "141", + "line-ew-open", + 42, + "42", + "line-ns", + 142, + "142", + "line-ns-open", + 43, + "43", + "line-ne", + 143, + "143", + "line-ne-open", + 44, + "44", + "line-nw", + 144, + "144", + "line-nw-open", + 45, + "45", + "arrow-up", + 145, + "145", + "arrow-up-open", + 46, + "46", + "arrow-down", + 146, + "146", + "arrow-down-open", + 47, + "47", + "arrow-left", + 147, + "147", + "arrow-left-open", + 48, + "48", + "arrow-right", + 148, + "148", + "arrow-right-open", + 49, + "49", + "arrow-bar-up", + 149, + "149", + "arrow-bar-up-open", + 50, + "50", + "arrow-bar-down", + 150, + "150", + "arrow-bar-down-open", + 51, + "51", + "arrow-bar-left", + 151, + "151", + "arrow-bar-left-open", + 52, + "52", + "arrow-bar-right", + 152, + "152", + "arrow-bar-right-open", + 53, + "53", + "arrow", + 153, + "153", + "arrow-open", + 54, + "54", + "arrow-wide", + 154, + "154", + "arrow-wide-open" + ] + }, + "symbolsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `symbol`.", + "editType": "none", + "valType": "string" + } + }, + "meta": { + "arrayOk": true, + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", + "editType": "plot", + "valType": "any" + }, + "metasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `meta`.", + "editType": "none", + "valType": "string" + }, + "mode": { + "description": "Determines the drawing mode for this scatter trace.", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "lines", + "markers", + "text" + ], + "valType": "flaglist" + }, + "name": { + "description": "Sets the trace name. The trace name appears as the legend item and on hover.", + "editType": "style", + "valType": "string" + }, + "opacity": { + "description": "Sets the opacity of the trace.", + "dflt": 1, + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + }, + "selected": { + "editType": "calc", + "marker": { + "color": { + "description": "Sets the marker color of selected points.", + "editType": "calc", + "valType": "color" + }, + "editType": "calc", + "opacity": { + "description": "Sets the marker opacity of selected points.", + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + }, + "role": "object", + "size": { + "description": "Sets the marker size of selected points.", + "editType": "calc", + "min": 0, + "valType": "number" + } + }, + "role": "object", + "textfont": { + "color": { + "description": "Sets the text font color of selected points.", + "editType": "calc", + "valType": "color" + }, + "editType": "calc", + "role": "object" + } + }, + "selectedpoints": { + "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect.", + "editType": "calc", + "valType": "any" + }, + "showlegend": { + "description": "Determines whether or not an item corresponding to this trace is shown in the legend.", + "dflt": true, + "editType": "style", + "valType": "boolean" + }, + "stream": { + "editType": "calc", + "maxpoints": { + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot.", + "dflt": 500, + "editType": "calc", + "max": 10000, + "min": 0, + "valType": "number" + }, + "role": "object", + "token": { + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" + } + }, + "text": { + "arrayOk": true, + "description": "Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "textfont": { + "color": { + "arrayOk": true, + "editType": "calc", + "valType": "color" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "description": "Sets the text font.", + "editType": "calc", + "family": { + "arrayOk": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" + }, + "role": "object", + "size": { + "arrayOk": true, + "editType": "calc", + "min": 1, + "valType": "number" + }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, + "style": { + "arrayOk": true, + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", + "valType": "string" + }, + "variant": { + "arrayOk": true, + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "small-caps" + ] + }, + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" + }, + "weight": { + "arrayOk": true, + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "bold" + ] + }, + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" + } + }, + "textposition": { + "arrayOk": true, + "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates.", + "dflt": "middle center", + "editType": "calc", + "valType": "enumerated", + "values": [ + "top left", + "top center", + "top right", + "middle left", + "middle center", + "middle right", + "bottom left", + "bottom center", + "bottom right" + ] + }, + "textpositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textposition`.", + "editType": "none", + "valType": "string" + }, + "textsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `text`.", + "editType": "none", + "valType": "string" + }, + "texttemplate": { + "arrayOk": true, + "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". 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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. ", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "texttemplatesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `texttemplate`.", + "editType": "none", + "valType": "string" + }, + "transforms": { + "items": { + "transform": { + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "editType": "calc", + "role": "object" + } + }, + "role": "object" + }, + "type": "scattergl", + "uid": { + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", + "editType": "plot", + "valType": "string" + }, + "uirevision": { + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.", + "editType": "none", + "valType": "any" + }, + "unselected": { + "editType": "calc", + "marker": { + "color": { + "description": "Sets the marker color of unselected points, applied only when a selection exists.", + "editType": "calc", + "valType": "color" + }, + "editType": "calc", + "opacity": { + "description": "Sets the marker opacity of unselected points, applied only when a selection exists.", + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + }, + "role": "object", + "size": { + "description": "Sets the marker size of unselected points, applied only when a selection exists.", + "editType": "calc", + "min": 0, + "valType": "number" + } + }, + "role": "object", + "textfont": { + "color": { + "description": "Sets the text font color of unselected points, applied only when a selection exists.", + "editType": "calc", + "valType": "color" + }, + "editType": "calc", + "role": "object" + } + }, + "visible": { + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", + "dflt": true, + "editType": "calc", + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ] + }, + "x": { + "description": "Sets the x coordinates.", + "editType": "calc+clearAxisTypes", + "valType": "data_array" + }, + "x0": { + "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step.", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "valType": "any" + }, + "xaxis": { + "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on.", + "dflt": "x", + "editType": "calc+clearAxisTypes", + "valType": "subplotid" + }, + "xcalendar": { + "description": "Sets the calendar system to use with `x` date data.", + "dflt": "gregorian", + "editType": "calc", + "valType": "enumerated", + "values": [ + "chinese", + "coptic", + "discworld", + "ethiopian", + "gregorian", + "hebrew", + "islamic", + "jalali", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "taiwan", + "thai", + "ummalqura" + ] + }, + "xhoverformat": { + "description": "Sets the hover text formatting rulefor `x` 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*By default the values are formatted using `xaxis.hoverformat`.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "xperiod": { + "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer.", + "dflt": 0, + "editType": "calc", + "valType": "any" + }, + "xperiod0": { + "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01.", + "editType": "calc", + "valType": "any" + }, + "xperiodalignment": { + "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis.", + "dflt": "middle", + "editType": "calc", + "valType": "enumerated", + "values": [ + "start", + "middle", + "end" + ] + }, + "xsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `x`.", + "editType": "none", + "valType": "string" + }, + "y": { + "description": "Sets the y coordinates.", + "editType": "calc+clearAxisTypes", + "valType": "data_array" + }, + "y0": { + "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step.", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "valType": "any" + }, + "yaxis": { + "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on.", + "dflt": "y", + "editType": "calc+clearAxisTypes", + "valType": "subplotid" + }, + "ycalendar": { + "description": "Sets the calendar system to use with `y` date data.", + "dflt": "gregorian", + "editType": "calc", + "valType": "enumerated", + "values": [ + "chinese", + "coptic", + "discworld", + "ethiopian", + "gregorian", + "hebrew", + "islamic", + "jalali", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "taiwan", + "thai", + "ummalqura" + ] + }, + "yhoverformat": { + "description": "Sets the hover text formatting rulefor `y` 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*By default the values are formatted using `yaxis.hoverformat`.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "yperiod": { + "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the y axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer.", + "dflt": 0, + "editType": "calc", + "valType": "any" + }, + "yperiod0": { + "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the y0 axis. When `y0period` is round number of weeks, the `y0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01.", + "editType": "calc", + "valType": "any" + }, + "yperiodalignment": { + "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the y axis.", + "dflt": "middle", + "editType": "calc", + "valType": "enumerated", + "values": [ + "start", + "middle", + "end" + ] + }, + "ysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `y`.", + "editType": "none", + "valType": "string" + } + }, + "categories": [ + "gl", + "regl", + "cartesian", + "symbols", + "errorBarsOK", + "showLegend", + "scatter-like" + ], + "meta": { + "description": "The data visualized as scatter point or lines is set in `x` and `y` using the WebGL plotting engine. Bubble charts are achieved by setting `marker.size` and/or `marker.color` to a numerical arrays.", + "hrName": "scatter_gl" + }, + "type": "scattergl" + }, + "scattermap": { + "animatable": false, + "attributes": { + "below": { + "description": "Determines if this scattermap trace's layers are to be inserted before the layer with the specified ID. By default, scattermap layers are inserted above all the base layers. To place the scattermap layers above every other layer, set `below` to *''*.", + "editType": "calc", + "valType": "string" + }, + "cluster": { + "color": { + "arrayOk": true, + "description": "Sets the color for each cluster step.", + "editType": "calc", + "valType": "color" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "editType": "calc", + "enabled": { + "description": "Determines whether clustering is enabled or disabled.", + "editType": "calc", + "valType": "boolean" + }, + "maxzoom": { + "description": "Sets the maximum zoom level. At zoom levels equal to or greater than this, points will never be clustered.", + "dflt": 24, + "editType": "calc", + "max": 24, + "min": 0, + "valType": "number" + }, + "opacity": { + "arrayOk": true, + "description": "Sets the marker opacity.", + "dflt": 1, + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + }, + "opacitysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `opacity`.", + "editType": "none", + "valType": "string" + }, + "role": "object", + "size": { + "arrayOk": true, + "description": "Sets the size for each cluster step.", + "dflt": 20, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, + "step": { + "arrayOk": true, + "description": "Sets how many points it takes to create a cluster or advance to the next cluster step. Use this in conjunction with arrays for `size` and / or `color`. If an integer, steps start at multiples of this number. If an array, each step extends from the given value until one less than the next value.", + "dflt": -1, + "editType": "calc", + "min": -1, + "valType": "number" + }, + "stepsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `step`.", + "editType": "none", + "valType": "string" + } + }, + "connectgaps": { + "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the provided data arrays are connected.", + "dflt": false, + "editType": "calc", + "valType": "boolean" + }, + "customdata": { + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", + "editType": "calc", + "valType": "data_array" + }, + "customdatasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `customdata`.", + "editType": "none", + "valType": "string" + }, + "fill": { + "description": "Sets the area to fill with a solid color. Use with `fillcolor` if not *none*. *toself* connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape.", + "dflt": "none", + "editType": "calc", + "valType": "enumerated", + "values": [ + "none", + "toself" + ] + }, + "fillcolor": { + "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available.", + "editType": "calc", + "valType": "color" + }, + "hoverinfo": { + "arrayOk": true, + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", + "dflt": "all", + "editType": "calc", + "extras": [ + "all", + "none", + "skip" + ], + "flags": [ + "lon", + "lat", + "text", + "name" + ], + "valType": "flaglist" + }, + "hoverinfosrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hoverinfo`.", + "editType": "none", + "valType": "string" + }, + "hoverlabel": { + "align": { + "arrayOk": true, + "description": "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", + "dflt": "auto", + "editType": "none", + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ] + }, + "alignsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `align`.", + "editType": "none", + "valType": "string" + }, + "bgcolor": { + "arrayOk": true, + "description": "Sets the background color of the hover labels for this trace", + "editType": "none", + "valType": "color" + }, + "bgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", + "editType": "none", + "valType": "string" + }, + "bordercolor": { + "arrayOk": true, + "description": "Sets the border color of the hover labels for this trace.", + "editType": "none", + "valType": "color" + }, + "bordercolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bordercolor`.", + "editType": "none", + "valType": "string" + }, + "editType": "none", + "font": { + "color": { + "arrayOk": true, + "editType": "none", + "valType": "color" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "description": "Sets the font used in hover labels.", + "editType": "none", + "family": { + "arrayOk": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "none", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "familysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `family`.", + "editType": "none", + "valType": "string" + }, + "lineposition": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "none", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "linepositionsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lineposition`.", + "editType": "none", + "valType": "string" + }, + "role": "object", + "shadow": { + "arrayOk": true, + "description": "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.", + "dflt": "none", + "editType": "none", + "valType": "string" + }, + "shadowsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shadow`.", + "editType": "none", + "valType": "string" + }, + "size": { + "arrayOk": true, + "editType": "none", + "min": 1, + "valType": "number" + }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, + "style": { + "arrayOk": true, + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "none", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "stylesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `style`.", + "editType": "none", + "valType": "string" + }, + "textcase": { + "arrayOk": true, + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "none", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "textcasesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `textcase`.", + "editType": "none", + "valType": "string" + }, + "variant": { + "arrayOk": true, + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "none", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "variantsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `variant`.", + "editType": "none", + "valType": "string" + }, + "weight": { + "arrayOk": true, + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "none", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + }, + "weightsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `weight`.", + "editType": "none", + "valType": "string" + } + }, + "namelength": { + "arrayOk": true, + "description": "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.", + "dflt": 15, + "editType": "none", + "min": -1, + "valType": "integer" + }, + "namelengthsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `namelength`.", + "editType": "none", + "valType": "string" + }, + "role": "object" + }, + "hovertemplate": { + "arrayOk": true, + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "hovertemplatesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertemplate`.", + "editType": "none", + "valType": "string" + }, + "hovertext": { + "arrayOk": true, + "description": "Sets hover text elements associated with each (lon,lat) pair If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (lon,lat) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "hovertextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `hovertext`.", + "editType": "none", + "valType": "string" + }, + "ids": { + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", + "editType": "calc", + "valType": "data_array" + }, + "idssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ids`.", + "editType": "none", + "valType": "string" + }, + "lat": { + "description": "Sets the latitude coordinates (in degrees North).", + "editType": "calc", + "valType": "data_array" + }, + "latsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lat`.", + "editType": "none", + "valType": "string" + }, + "legend": { + "description": "Sets the reference to a legend to show this trace 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.", + "dflt": "legend", + "editType": "style", + "valType": "subplotid" + }, + "legendgroup": { + "description": "Sets the legend group for this trace. Traces and shapes part of the same legend group hide/show at the same time when toggling legend items.", + "dflt": "", + "editType": "style", + "valType": "string" + }, + "legendgrouptitle": { + "editType": "style", + "font": { + "color": { + "editType": "style", + "valType": "color" + }, + "description": "Sets this legend group's title font.", + "editType": "style", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "style", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "style", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "style", + "valType": "string" + }, + "size": { + "editType": "style", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "style", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "style", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "style", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "style", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "role": "object", + "text": { + "description": "Sets the title of the legend group.", + "dflt": "", + "editType": "style", + "valType": "string" + } + }, + "legendrank": { + "description": "Sets the legend rank for this trace. 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.", + "dflt": 1000, + "editType": "style", + "valType": "number" + }, + "legendwidth": { + "description": "Sets the width (in px or fraction) of the legend for this trace.", + "editType": "style", + "min": 0, + "valType": "number" + }, + "line": { + "color": { + "description": "Sets the line color.", + "editType": "calc", + "valType": "color" + }, + "editType": "calc", + "role": "object", + "width": { + "description": "Sets the line width (in px).", + "dflt": 2, + "editType": "calc", + "min": 0, + "valType": "number" + } + }, + "lon": { + "description": "Sets the longitude coordinates (in degrees East).", + "editType": "calc", + "valType": "data_array" + }, + "lonsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `lon`.", + "editType": "none", + "valType": "string" + }, + "marker": { + "allowoverlap": { + "description": "Flag to draw all symbols, even if they overlap.", + "dflt": false, + "editType": "calc", + "valType": "boolean" + }, + "angle": { + "arrayOk": true, + "description": "Sets the marker orientation from true North, in degrees clockwise. When using the *auto* default, no rotation would be applied in perspective views which is different from using a zero angle.", + "dflt": "auto", + "editType": "calc", + "valType": "number" + }, + "anglesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `angle`.", + "editType": "none", + "valType": "string" + }, + "autocolorscale": { + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color` is set to a numerical array. 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.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "cauto": { + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color` is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user.", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "valType": "boolean" + }, + "cmax": { + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "valType": "number" + }, + "cmid": { + "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`.", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "valType": "number" + }, + "cmin": { + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color` is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "valType": "number" + }, + "color": { + "arrayOk": true, + "description": "Sets the marker color. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set.", + "editType": "calc", + "valType": "color" + }, + "coloraxis": { + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis.", + "dflt": null, + "editType": "calc", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "valType": "subplotid" + }, + "colorbar": { + "_deprecated": { + "title": { + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "calc", + "valType": "string" + }, + "titlefont": { + "color": { + "editType": "calc", + "valType": "color" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "calc", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "valType": "string" + }, + "size": { + "editType": "calc", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "calc", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "titleside": { + "description": "Deprecated in favor of color bar's `title.side`.", + "dflt": "top", + "editType": "calc", + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ] + } + }, + "bgcolor": { + "description": "Sets the color of padded area.", + "dflt": "rgba(0,0,0,0)", + "editType": "calc", + "valType": "color" + }, + "bordercolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "calc", + "valType": "color" + }, + "borderwidth": { + "description": "Sets the width (in px) or the border enclosing this color bar.", + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "dtick": { + "description": "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*, 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* 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*", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" + }, + "editType": "calc", + "exponentformat": { + "description": "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.", + "dflt": "B", + "editType": "calc", + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ] + }, + "labelalias": { + "description": "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.", + "dflt": false, + "editType": "calc", + "valType": "any" + }, + "len": { + "description": "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.", + "dflt": 1, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "lenmode": { + "description": "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.", + "dflt": "fraction", + "editType": "calc", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] + }, + "minexponent": { + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*.", + "dflt": 3, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "nticks": { + "description": "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*.", + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "integer" + }, + "orientation": { + "description": "Sets the orientation of the colorbar.", + "dflt": "v", + "editType": "calc", + "valType": "enumerated", + "values": [ + "h", + "v" + ] + }, + "outlinecolor": { + "description": "Sets the axis line color.", + "dflt": "#444", + "editType": "calc", + "valType": "color" + }, + "outlinewidth": { + "description": "Sets the width (in px) of the axis line.", + "dflt": 1, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "role": "object", + "separatethousands": { + "description": "If \"true\", even 4-digit integers are separated", + "dflt": false, + "editType": "calc", + "valType": "boolean" + }, + "showexponent": { + "description": "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.", + "dflt": "all", + "editType": "calc", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] + }, + "showticklabels": { + "description": "Determines whether or not the tick labels are drawn.", + "dflt": true, + "editType": "calc", + "valType": "boolean" + }, + "showtickprefix": { + "description": "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.", + "dflt": "all", + "editType": "calc", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] + }, + "showticksuffix": { + "description": "Same as `showtickprefix` but for tick suffixes.", + "dflt": "all", + "editType": "calc", + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ] + }, + "thickness": { + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "dflt": 30, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "thicknessmode": { + "description": "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.", + "dflt": "pixels", + "editType": "calc", + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ] + }, + "tick0": { + "description": "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* (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.", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" + }, + "valType": "any" + }, + "tickangle": { + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically.", + "dflt": "auto", + "editType": "calc", + "valType": "angle" + }, + "tickcolor": { + "description": "Sets the tick color.", + "dflt": "#444", + "editType": "calc", + "valType": "color" + }, + "tickfont": { + "color": { + "editType": "calc", + "valType": "color" + }, + "description": "Sets the color bar's tick label font", + "editType": "calc", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "valType": "string" + }, + "size": { + "editType": "calc", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "calc", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "tickformat": { + "description": "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*", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "dtickrange": { + "description": "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*", + "editType": "calc", + "items": [ + { + "editType": "calc", + "valType": "any" + }, + { + "editType": "calc", + "valType": "any" + } + ], + "valType": "info_array" + }, + "editType": "calc", + "enabled": { + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`.", + "dflt": true, + "editType": "calc", + "valType": "boolean" + }, + "name": { + "description": "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.", + "editType": "calc", + "valType": "string" + }, + "role": "object", + "templateitemname": { + "description": "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`.", + "editType": "calc", + "valType": "string" + }, + "value": { + "description": "string - dtickformat for described zoom level, the same as *tickformat*", + "dflt": "", + "editType": "calc", + "valType": "string" + } + } + }, + "role": "object" + }, + "ticklabeloverflow": { + "description": "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*.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ] + }, + "ticklabelposition": { + "description": "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*.", + "dflt": "outside", + "editType": "calc", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside left", + "inside left", + "outside right", + "inside right", + "outside bottom", + "inside bottom" + ] + }, + "ticklabelstep": { + "description": "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*.", + "dflt": 1, + "editType": "calc", + "min": 1, + "valType": "integer" + }, + "ticklen": { + "description": "Sets the tick length (in px).", + "dflt": 5, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "tickmode": { + "description": "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).", + "editType": "calc", + "impliedEdits": {}, + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ] + }, + "tickprefix": { + "description": "Sets a tick label prefix.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "ticks": { + "description": "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.", + "dflt": "", + "editType": "calc", + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ] + }, + "ticksuffix": { + "description": "Sets a tick label suffix.", + "dflt": "", + "editType": "calc", + "valType": "string" + }, + "ticktext": { + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", + "editType": "calc", + "valType": "data_array" + }, + "ticktextsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `ticktext`.", + "editType": "none", + "valType": "string" + }, + "tickvals": { + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", + "editType": "calc", + "valType": "data_array" + }, + "tickvalssrc": { + "description": "Sets the source reference on Chart Studio Cloud for `tickvals`.", + "editType": "none", + "valType": "string" + }, + "tickwidth": { + "description": "Sets the tick width (in px).", + "dflt": 1, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "title": { + "editType": "calc", + "font": { + "color": { + "editType": "calc", + "valType": "color" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "calc", + "family": { + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc", + "noBlank": true, + "strict": true, + "valType": "string" + }, + "lineposition": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "extras": [ + "none" + ], + "flags": [ + "under", + "over", + "through" + ], + "valType": "flaglist" + }, + "role": "object", + "shadow": { + "description": "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.", + "dflt": "none", + "editType": "calc", + "valType": "string" + }, + "size": { + "editType": "calc", + "min": 1, + "valType": "number" + }, + "style": { + "description": "Sets whether a font should be styled with a normal or italic face from its family.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "italic" + ] + }, + "textcase": { + "description": "Sets capitalization of text. It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "word caps", + "upper", + "lower" + ] + }, + "variant": { + "description": "Sets the variant of the font.", + "dflt": "normal", + "editType": "calc", + "valType": "enumerated", + "values": [ + "normal", + "small-caps", + "all-small-caps", + "all-petite-caps", + "petite-caps", + "unicase" + ] + }, + "weight": { + "description": "Sets the weight (or boldness) of the font.", + "dflt": "normal", + "editType": "calc", + "extras": [ + "normal", + "bold" + ], + "max": 1000, + "min": 1, + "valType": "integer" + } + }, + "role": "object", + "side": { + "description": "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*. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ] + }, + "text": { + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "calc", + "valType": "string" + } + }, + "x": { + "description": "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*.", + "editType": "calc", + "valType": "number" + }, + "xanchor": { + "description": "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*.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ] + }, + "xpad": { + "description": "Sets the amount of padding (in px) along the x direction.", + "dflt": 10, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "xref": { + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only.", + "dflt": "paper", + "editType": "calc", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + }, + "y": { + "description": "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*.", + "editType": "calc", + "valType": "number" + }, + "yanchor": { + "description": "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*.", + "editType": "calc", + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ] + }, + "ypad": { + "description": "Sets the amount of padding (in px) along the y direction.", + "dflt": 10, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "yref": { + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only.", + "dflt": "paper", + "editType": "calc", + "valType": "enumerated", + "values": [ + "container", + "paper" + ] + } + }, + "colorscale": { + "description": "Sets the colorscale. Has an effect only if in `marker.color` is set to a numerical array. 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 `marker.cmin` and `marker.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.", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "autocolorscale": false + }, + "valType": "colorscale" + }, + "colorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `color`.", + "editType": "none", + "valType": "string" + }, + "editType": "calc", + "opacity": { + "arrayOk": true, + "description": "Sets the marker opacity.", + "editType": "calc", + "max": 1, + "min": 0, + "valType": "number" + }, + "opacitysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `opacity`.", + "editType": "none", + "valType": "string" + }, + "reversescale": { + "description": "Reverses the color mapping if true. Has an effect only if in `marker.color` is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color.", + "dflt": false, + "editType": "calc", + "valType": "boolean" + }, + "role": "object", + "showscale": { + "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color` is set to a numerical array.", + "dflt": false, + "editType": "calc", + "valType": "boolean" + }, + "size": { + "arrayOk": true, + "description": "Sets the marker size (in px).", + "dflt": 6, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "sizemin": { + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the minimum size (in px) of the rendered marker points.", + "dflt": 0, + "editType": "calc", + "min": 0, + "valType": "number" + }, + "sizemode": { + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the rule for which the data in `size` is converted to pixels.", + "dflt": "diameter", + "editType": "calc", + "valType": "enumerated", + "values": [ + "diameter", + "area" + ] + }, + "sizeref": { + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the scale factor used to determine the rendered size of marker points. Use with `sizemin` and `sizemode`.", + "dflt": 1, + "editType": "calc", + "valType": "number" + }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, + "symbol": { + "arrayOk": true, + "description": "Sets the marker symbol. Full list: https://www.map.com/maki-icons/ Note that the array `marker.color` and `marker.size` are only available for *circle* symbols.", + "dflt": "circle", + "editType": "calc", + "valType": "string" + }, + "symbolsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `symbol`.", + "editType": "none", + "valType": "string" + } + }, + "meta": { + "arrayOk": true, + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index.", + "editType": "plot", + "valType": "any" + }, + "metasrc": { + "description": "Sets the source reference on Chart Studio Cloud for `meta`.", + "editType": "none", + "valType": "string" + }, + "mode": { + "description": "Determines the drawing mode for this scatter trace. If the provided `mode` includes *text* then the `text` elements appear at the coordinates. Otherwise, the `text` elements appear on hover.", + "dflt": "markers", "editType": "calc", "extras": [ "none" @@ -73720,7 +78710,7 @@ "opacity": { "description": "Sets the opacity of the trace.", "dflt": 1, - "editType": "calc", + "editType": "style", "max": 1, "min": 0, "valType": "number" @@ -73749,16 +78739,7 @@ "valType": "number" } }, - "role": "object", - "textfont": { - "color": { - "description": "Sets the text font color of selected points.", - "editType": "calc", - "valType": "color" - }, - "editType": "calc", - "role": "object" - } + "role": "object" }, "selectedpoints": { "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect.", @@ -73790,53 +78771,41 @@ "valType": "string" } }, + "subplot": { + "description": "Sets a reference between this trace's data coordinates and a map subplot. If *map* (the default value), the data refer to `layout.map`. If *map2*, the data refer to `layout.map2`, and so on.", + "dflt": "map", + "editType": "calc", + "valType": "subplotid" + }, "text": { "arrayOk": true, - "description": "Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", + "description": "Sets text elements associated with each (lon,lat) pair If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (lon,lat) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", "dflt": "", "editType": "calc", "valType": "string" }, "textfont": { "color": { - "arrayOk": true, "editType": "calc", "valType": "color" }, - "colorsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `color`.", - "editType": "none", - "valType": "string" - }, - "description": "Sets the text font.", + "description": "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*.", "editType": "calc", "family": { - "arrayOk": true, "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "dflt": "Open Sans Regular, Arial Unicode MS Regular", "editType": "calc", "noBlank": true, "strict": true, "valType": "string" }, - "familysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `family`.", - "editType": "none", - "valType": "string" - }, "role": "object", "size": { - "arrayOk": true, "editType": "calc", "min": 1, "valType": "number" }, - "sizesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `size`.", - "editType": "none", - "valType": "string" - }, "style": { - "arrayOk": true, "description": "Sets whether a font should be styled with a normal or italic face from its family.", "dflt": "normal", "editType": "calc", @@ -73846,46 +78815,21 @@ "italic" ] }, - "stylesrc": { - "description": "Sets the source reference on Chart Studio Cloud for `style`.", - "editType": "none", - "valType": "string" - }, - "variant": { - "arrayOk": true, - "description": "Sets the variant of the font.", - "dflt": "normal", - "editType": "calc", - "valType": "enumerated", - "values": [ - "normal", - "small-caps" - ] - }, - "variantsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `variant`.", - "editType": "none", - "valType": "string" - }, "weight": { - "arrayOk": true, "description": "Sets the weight (or boldness) of the font.", "dflt": "normal", "editType": "calc", - "valType": "enumerated", - "values": [ + "extras": [ "normal", "bold" - ] - }, - "weightsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `weight`.", - "editType": "none", - "valType": "string" + ], + "max": 1000, + "min": 1, + "valType": "integer" } }, "textposition": { - "arrayOk": true, + "arrayOk": false, "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates.", "dflt": "middle center", "editType": "calc", @@ -73902,11 +78846,6 @@ "bottom right" ] }, - "textpositionsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `textposition`.", - "editType": "none", - "valType": "string" - }, "textsrc": { "description": "Sets the source reference on Chart Studio Cloud for `text`.", "editType": "none", @@ -73914,7 +78853,7 @@ }, "texttemplate": { "arrayOk": true, - "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". 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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. ", + "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". 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: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `lat`, `lon` and `text`.", "dflt": "", "editType": "calc", "valType": "string" @@ -73934,7 +78873,7 @@ }, "role": "object" }, - "type": "scattergl", + "type": "scattermap", "uid": { "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.", "editType": "plot", @@ -73969,16 +78908,7 @@ "valType": "number" } }, - "role": "object", - "textfont": { - "color": { - "description": "Sets the text font color of unselected points, applied only when a selection exists.", - "editType": "calc", - "valType": "color" - }, - "editType": "calc", - "role": "object" - } + "role": "object" }, "visible": { "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).", @@ -73990,170 +78920,20 @@ false, "legendonly" ] - }, - "x": { - "description": "Sets the x coordinates.", - "editType": "calc+clearAxisTypes", - "valType": "data_array" - }, - "x0": { - "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step.", - "dflt": 0, - "editType": "calc+clearAxisTypes", - "valType": "any" - }, - "xaxis": { - "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on.", - "dflt": "x", - "editType": "calc+clearAxisTypes", - "valType": "subplotid" - }, - "xcalendar": { - "description": "Sets the calendar system to use with `x` date data.", - "dflt": "gregorian", - "editType": "calc", - "valType": "enumerated", - "values": [ - "chinese", - "coptic", - "discworld", - "ethiopian", - "gregorian", - "hebrew", - "islamic", - "jalali", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "taiwan", - "thai", - "ummalqura" - ] - }, - "xhoverformat": { - "description": "Sets the hover text formatting rulefor `x` 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*By default the values are formatted using `xaxis.hoverformat`.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "xperiod": { - "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer.", - "dflt": 0, - "editType": "calc", - "valType": "any" - }, - "xperiod0": { - "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01.", - "editType": "calc", - "valType": "any" - }, - "xperiodalignment": { - "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis.", - "dflt": "middle", - "editType": "calc", - "valType": "enumerated", - "values": [ - "start", - "middle", - "end" - ] - }, - "xsrc": { - "description": "Sets the source reference on Chart Studio Cloud for `x`.", - "editType": "none", - "valType": "string" - }, - "y": { - "description": "Sets the y coordinates.", - "editType": "calc+clearAxisTypes", - "valType": "data_array" - }, - "y0": { - "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step.", - "dflt": 0, - "editType": "calc+clearAxisTypes", - "valType": "any" - }, - "yaxis": { - "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on.", - "dflt": "y", - "editType": "calc+clearAxisTypes", - "valType": "subplotid" - }, - "ycalendar": { - "description": "Sets the calendar system to use with `y` date data.", - "dflt": "gregorian", - "editType": "calc", - "valType": "enumerated", - "values": [ - "chinese", - "coptic", - "discworld", - "ethiopian", - "gregorian", - "hebrew", - "islamic", - "jalali", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "taiwan", - "thai", - "ummalqura" - ] - }, - "yhoverformat": { - "description": "Sets the hover text formatting rulefor `y` 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*By default the values are formatted using `yaxis.hoverformat`.", - "dflt": "", - "editType": "calc", - "valType": "string" - }, - "yperiod": { - "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the y axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer.", - "dflt": 0, - "editType": "calc", - "valType": "any" - }, - "yperiod0": { - "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the y0 axis. When `y0period` is round number of weeks, the `y0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01.", - "editType": "calc", - "valType": "any" - }, - "yperiodalignment": { - "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the y axis.", - "dflt": "middle", - "editType": "calc", - "valType": "enumerated", - "values": [ - "start", - "middle", - "end" - ] - }, - "ysrc": { - "description": "Sets the source reference on Chart Studio Cloud for `y`.", - "editType": "none", - "valType": "string" } }, "categories": [ + "map", "gl", - "regl", - "cartesian", "symbols", - "errorBarsOK", "showLegend", "scatter-like" ], "meta": { - "description": "The data visualized as scatter point or lines is set in `x` and `y` using the WebGL plotting engine. Bubble charts are achieved by setting `marker.size` and/or `marker.color` to a numerical arrays.", - "hrName": "scatter_gl" + "description": "The data visualized as scatter point, lines or marker symbols on a MapLibre GL geographic map is provided by longitude/latitude pairs in `lon` and `lat`.", + "hrName": "scatter_map" }, - "type": "scattergl" + "type": "scattermap" }, "scattermapbox": { "animatable": false,