diff --git a/package-lock.json b/package-lock.json index 4cc24650b6d..0142e768fb7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -428,8 +428,7 @@ "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" }, "arr-union": { "version": "3.1.0", @@ -1852,6 +1851,18 @@ "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", "dev": true }, + "compute-dims": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/compute-dims/-/compute-dims-1.1.0.tgz", + "integrity": "sha512-YHMiIKjH/8Eom8zATk3g8/lH3HxGCZcVQyEfEoVrfWI7od/WRpTgRGShnei3jArYSx77mQqPxZNokjGHCdLfxg==", + "requires": { + "utils-copy": "^1.0.0", + "validate.io-array": "^1.0.6", + "validate.io-matrix-like": "^1.0.2", + "validate.io-ndarray-like": "^1.0.0", + "validate.io-positive-integer": "^1.0.0" + } + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1935,6 +1946,16 @@ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "dev": true }, + "const-max-uint32": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/const-max-uint32/-/const-max-uint32-1.0.2.tgz", + "integrity": "sha1-8Am7YjDmeO2HTdLWqc2ePL+rtnY=" + }, + "const-pinf-float64": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/const-pinf-float64/-/const-pinf-float64-1.0.0.tgz", + "integrity": "sha1-9u+w15+cCYbT558pI6v5twtj1yY=" + }, "constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", @@ -3681,6 +3702,11 @@ "dtype": "^2.0.0" } }, + "flip-pixels": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/flip-pixels/-/flip-pixels-1.0.2.tgz", + "integrity": "sha512-oXbJGbjDnfJRWPC7Va38EFhd+A8JWE5/hCiKcK8qjCdbLj9DTpsq6MEudwpRTH+V4qq+Jw7d3pUgQdSr3x3mTA==" + }, "follow-redirects": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", @@ -5550,6 +5576,16 @@ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, + "image-palette": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/image-palette/-/image-palette-2.1.0.tgz", + "integrity": "sha512-3ImSEWD26+xuQFdP0RWR4WSXadZwvgrFhjGNpMEapTG1tf2XrBFS2dlKK5hNgH4UIaSQlSUFRn1NeA+zULIWbQ==", + "requires": { + "color-id": "^1.1.0", + "pxls": "^2.0.0", + "quantize": "^1.0.2" + } + }, "image-size": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.6.3.tgz", @@ -5756,6 +5792,11 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, + "is-base64": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-base64/-/is-base64-0.1.0.tgz", + "integrity": "sha512-WRRyllsGXJM7ZN7gPTCCQ/6wNPTRDwiWdPK66l5sJzcU/oOzcIcRRf0Rux8bkpox/1yjt0F6VJRsQOIG2qz5sg==" + }, "is-binary-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", @@ -5765,6 +5806,11 @@ "binary-extensions": "^1.0.0" } }, + "is-blob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-blob/-/is-blob-2.0.1.tgz", + "integrity": "sha512-SmqVJYMnAeqrKLcwq6TXu1rpAg3yipVlMZIqR5u510rxoOzJGW9GQY6g+WtWkcc44pjbWAuxzZDCkbgf5e6r0Q==" + }, "is-browser": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-browser/-/is-browser-2.0.1.tgz", @@ -5861,6 +5907,11 @@ "resolved": "https://registry.npmjs.org/is-firefox/-/is-firefox-1.0.3.tgz", "integrity": "sha1-KioVZ3g6QX9uFYMjEI84YbCRhWI=" }, + "is-float-array": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-float-array/-/is-float-array-1.0.0.tgz", + "integrity": "sha512-4ew1Sx6B6kEAl3T3NOM0yB94J3NZnBdNt4paw0e8nY73yHHTeTEhyQ3Lj7EQEnv5LD+GxNTaT4L46jcKjjpLiQ==" + }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", @@ -8357,6 +8408,25 @@ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true }, + "pxls": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/pxls/-/pxls-2.3.1.tgz", + "integrity": "sha512-942Z8pHA2TLje4NM34Y0Zb6SqvkXq8s+IOM50J1wsYvHdPZfnUNu6U2Qld95dy50HtC9aKi8ZpHcc/iQjsQmeQ==", + "requires": { + "arr-flatten": "^1.1.0", + "compute-dims": "^1.1.0", + "flip-pixels": "^1.0.2", + "is-buffer": "^2.0.3", + "to-uint8": "^1.4.1" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", + "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==" + } + } + }, "qjobs": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", @@ -8369,6 +8439,11 @@ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", "dev": true }, + "quantize": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/quantize/-/quantize-1.0.2.tgz", + "integrity": "sha1-0lrCAKd7bXD0ASfKFxoQ4zyFRt4=" + }, "quat-slerp": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/quat-slerp/-/quat-slerp-1.0.1.tgz", @@ -8433,9 +8508,9 @@ } }, "raf": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.0.tgz", - "integrity": "sha512-pDP/NMRAXoTfrhCfyfSEwJAKLaxBU9eApMeBPB1TkDouZmvPerIClV8lTAd+uF8ZiTaVl69e1FCxQrAd/VTjGw==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", "requires": { "performance-now": "^2.1.0" } @@ -8734,6 +8809,11 @@ } } }, + "regex-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regex-regex/-/regex-regex-1.0.0.tgz", + "integrity": "sha1-kEih6uuHD01IDavHb8Qs3MC8OnI=" + }, "regexpp": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", @@ -8780,18 +8860,19 @@ } }, "regl-scatter2d": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/regl-scatter2d/-/regl-scatter2d-3.0.6.tgz", - "integrity": "sha512-l2/OcCRKTxsCtrGtb2TKUKYnDHzI07qOm2eK2kiRYKyDwiWiGyiLC6p3SlOxDoqhQ/8gbIue9BABPXuCJ0lpRQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regl-scatter2d/-/regl-scatter2d-3.1.0.tgz", + "integrity": "sha512-xpjFdNrauLF/343XbAY1Hy0GnCkrOixH4iwNYp2ZpiqMxqnBjIY4vPhfK95YuyNqCXm7sQrjI5dSASyX2nXyPw==", "requires": { "array-range": "^1.0.1", "array-rearrange": "^2.2.2", - "bubleify": "^1.0.0", "clamp": "^1.0.1", "color-id": "^1.1.0", - "color-normalize": "^1.0.3", + "color-normalize": "^1.3.0", + "color-rgba": "^2.1.0", "flatten-vertex-data": "^1.0.0", - "glslify": "^6.1.1", + "glslify": "^7.0.0", + "image-palette": "^2.1.0", "is-iexplorer": "^1.0.0", "object-assign": "^4.1.1", "parse-rect": "^1.1.0", @@ -8799,12 +8880,36 @@ "point-cluster": "^3.1.2", "to-float32": "^1.0.0", "update-diff": "^1.1.0" + }, + "dependencies": { + "glslify": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/glslify/-/glslify-7.0.0.tgz", + "integrity": "sha512-yw8jDQIe9FlSH5NiZEqSAsCPj9HI7nhXgXLAgSv2Nm9eBPsFJmyN9+rNwbiozJapcj9xtc/71rMYlN9cxp1B8Q==", + "requires": { + "bl": "^1.0.0", + "concat-stream": "^1.5.2", + "duplexify": "^3.4.5", + "falafel": "^2.1.0", + "from2": "^2.3.0", + "glsl-resolve": "0.0.1", + "glsl-token-whitespace-trim": "^1.0.0", + "glslify-bundle": "^5.0.0", + "glslify-deps": "^1.2.5", + "minimist": "^1.2.0", + "resolve": "^1.1.5", + "stack-trace": "0.0.9", + "static-eval": "^2.0.0", + "through2": "^2.0.1", + "xtend": "^4.0.0" + } + } } }, "regl-splom": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/regl-splom/-/regl-splom-1.0.4.tgz", - "integrity": "sha512-+iq/RJAJdHCp48wPbEGQ5qw29OXFVF/m7CzcuLZxwptjdkB/FHGKiMuyqclOSNQcEKFxQTvRRJMJJ6brd8VvrA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/regl-splom/-/regl-splom-1.0.5.tgz", + "integrity": "sha512-DBn0a7+1f9apdWzCPpQG+2xaOwqqWxzoPapq+VRq7XnryWfFMblb6jKgowtGJdsi7uReHUTn2cooOfQx/cVKow==", "requires": { "array-bounds": "^1.0.1", "array-range": "^1.0.1", @@ -10348,6 +10453,22 @@ "parenthesis": "^3.1.5" } }, + "string-to-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-to-arraybuffer/-/string-to-arraybuffer-1.0.2.tgz", + "integrity": "sha512-DaGZidzi93dwjQen5I2osxR9ERS/R7B1PFyufNMnzhj+fmlDQAc1DSDIJVJhgI8Oq221efIMbABUBdPHDRt43Q==", + "requires": { + "atob-lite": "^2.0.0", + "is-base64": "^0.1.0" + }, + "dependencies": { + "atob-lite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz", + "integrity": "sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY=" + } + } + }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -10752,6 +10873,16 @@ "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", "dev": true }, + "to-array-buffer": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/to-array-buffer/-/to-array-buffer-3.1.1.tgz", + "integrity": "sha512-tkmIT5W7XuQ1aEoSbeyRWAXMAdhSEnJCIdI+xOvlaF4/qktSYtQprVly9bcI+UqdAkQ/q/4UBbRgXO6IUcviJw==", + "requires": { + "flatten-vertex-data": "^1.0.2", + "is-blob": "^2.0.1", + "string-to-arraybuffer": "^1.0.0" + } + }, "to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", @@ -10823,6 +10954,18 @@ "repeat-string": "^1.6.1" } }, + "to-uint8": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/to-uint8/-/to-uint8-1.4.1.tgz", + "integrity": "sha512-o+ochsMlTZyucbww8It401FC2Rx+OP2RpDeYbA6h+y9HgedDl1UjdsJ9CmzKEG7AFP9es5PmJ4eDWeeeXihESg==", + "requires": { + "arr-flatten": "^1.1.0", + "clamp": "^1.0.1", + "is-base64": "^0.1.0", + "is-float-array": "^1.0.0", + "to-array-buffer": "^3.0.0" + } + }, "topojson-client": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-2.1.0.tgz", @@ -10963,6 +11106,11 @@ "mime-types": "~2.1.18" } }, + "type-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/type-name/-/type-name-2.0.2.tgz", + "integrity": "sha1-7+fUEj2KxSr/9/QMfk3sUmYAj7Q=" + }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", @@ -11235,12 +11383,55 @@ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, + "utils-copy": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/utils-copy/-/utils-copy-1.1.1.tgz", + "integrity": "sha1-biuXmCqozXPhGCo+b4vsPA9AWKc=", + "requires": { + "const-pinf-float64": "^1.0.0", + "object-keys": "^1.0.9", + "type-name": "^2.0.0", + "utils-copy-error": "^1.0.0", + "utils-indexof": "^1.0.0", + "utils-regex-from-string": "^1.0.0", + "validate.io-array": "^1.0.3", + "validate.io-buffer": "^1.0.1", + "validate.io-nonnegative-integer": "^1.0.0" + } + }, + "utils-copy-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-copy-error/-/utils-copy-error-1.0.1.tgz", + "integrity": "sha1-eR3jk8DwmJCv1Z88vqY18HmpT6U=", + "requires": { + "object-keys": "^1.0.9", + "utils-copy": "^1.1.0" + } + }, + "utils-indexof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/utils-indexof/-/utils-indexof-1.0.0.tgz", + "integrity": "sha1-IP6r8J7xAYtSNkPoOA57yD7GG1w=", + "requires": { + "validate.io-array-like": "^1.0.1", + "validate.io-integer-primitive": "^1.0.0" + } + }, "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", "dev": true }, + "utils-regex-from-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/utils-regex-from-string/-/utils-regex-from-string-1.0.0.tgz", + "integrity": "sha1-/hopCfjeD/DVGCyA+8ZU1qaH0Yk=", + "requires": { + "regex-regex": "^1.0.0", + "validate.io-string-primitive": "^1.0.0" + } + }, "uuid": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", @@ -11257,6 +11448,82 @@ "spdx-expression-parse": "^3.0.0" } }, + "validate.io-array": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/validate.io-array/-/validate.io-array-1.0.6.tgz", + "integrity": "sha1-W1osr9j4uFq7L4hroVPy2Tond00=" + }, + "validate.io-array-like": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/validate.io-array-like/-/validate.io-array-like-1.0.2.tgz", + "integrity": "sha1-evn363tRcVvrIhVmjsXM5U+t21o=", + "requires": { + "const-max-uint32": "^1.0.2", + "validate.io-integer-primitive": "^1.0.0" + } + }, + "validate.io-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/validate.io-buffer/-/validate.io-buffer-1.0.2.tgz", + "integrity": "sha1-hS1nNAIZFNXROvwyUxdh43IO1E4=" + }, + "validate.io-integer": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/validate.io-integer/-/validate.io-integer-1.0.5.tgz", + "integrity": "sha1-FoSWSAuVviJH7EQ/IjPeT4mHgGg=", + "requires": { + "validate.io-number": "^1.0.3" + } + }, + "validate.io-integer-primitive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/validate.io-integer-primitive/-/validate.io-integer-primitive-1.0.0.tgz", + "integrity": "sha1-qaoBA1X+hoHA/qbBp0rSQZyt3cY=", + "requires": { + "validate.io-number-primitive": "^1.0.0" + } + }, + "validate.io-matrix-like": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/validate.io-matrix-like/-/validate.io-matrix-like-1.0.2.tgz", + "integrity": "sha1-XsMqddCInaxzbepovdYUWxVe38M=" + }, + "validate.io-ndarray-like": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/validate.io-ndarray-like/-/validate.io-ndarray-like-1.0.0.tgz", + "integrity": "sha1-2KOw7RZbvx0vwNAHMnDPpVIpWRk=" + }, + "validate.io-nonnegative-integer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/validate.io-nonnegative-integer/-/validate.io-nonnegative-integer-1.0.0.tgz", + "integrity": "sha1-gGkkOgjF+Y6VQTySnf17GPP28p8=", + "requires": { + "validate.io-integer": "^1.0.5" + } + }, + "validate.io-number": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/validate.io-number/-/validate.io-number-1.0.3.tgz", + "integrity": "sha1-9j/+2iSL8opnqNSODjtGGhZluvg=" + }, + "validate.io-number-primitive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/validate.io-number-primitive/-/validate.io-number-primitive-1.0.0.tgz", + "integrity": "sha1-0uAfICmJNp3PEVVElWQgOv5YTlU=" + }, + "validate.io-positive-integer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/validate.io-positive-integer/-/validate.io-positive-integer-1.0.0.tgz", + "integrity": "sha1-ftLQO0wnVYzGagCqsPDpIYFKZYI=", + "requires": { + "validate.io-integer": "^1.0.5" + } + }, + "validate.io-string-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/validate.io-string-primitive/-/validate.io-string-primitive-1.0.1.tgz", + "integrity": "sha1-uBNbn7E3K94C/dU60dDM1t55j+4=" + }, "vectorize-text": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/vectorize-text/-/vectorize-text-3.2.0.tgz", diff --git a/package.json b/package.json index ba09779f6fc..363d1b66258 100644 --- a/package.json +++ b/package.json @@ -103,8 +103,8 @@ "regl": "^1.3.7", "regl-error2d": "^2.0.5", "regl-line2d": "^3.0.12", - "regl-scatter2d": "^3.0.6", - "regl-splom": "^1.0.4", + "regl-scatter2d": "^3.1.0", + "regl-splom": "^1.0.5", "right-now": "^1.0.0", "robust-orientation": "^1.1.3", "sane-topojson": "^2.0.0", diff --git a/test/image/baselines/gl2d_scatter2d-multiple-colors.png b/test/image/baselines/gl2d_scatter2d-multiple-colors.png new file mode 100644 index 00000000000..7ccd6192eb5 Binary files /dev/null and b/test/image/baselines/gl2d_scatter2d-multiple-colors.png differ diff --git a/test/image/mocks/gl2d_scatter2d-multiple-colors.json b/test/image/mocks/gl2d_scatter2d-multiple-colors.json new file mode 100644 index 00000000000..6c93bfa20ab --- /dev/null +++ b/test/image/mocks/gl2d_scatter2d-multiple-colors.json @@ -0,0 +1,292 @@ +{ + "data": [ + { + "type":"scattergl", + "mode": "markers", + "x": [ + 938, 932, 919, 901, 876, 845, 808, 766, 719, 667, 611, 550, 486, 419, 350, 278, 205, 131, 56, -19, -93, -166, -237, -307, -374, -437, -498, -555, + -607, -655, -698, -736, -768, -795, -816, -831, -841, -844, -842, -833, -819, -799, -774, -743, -708, -667, -623, -574, -521, -465, -406, -345, + -281, -216, -150, -84, -17, 50, 116, 180, 243, 304, 363, 418, 470, 519, 563, 603, 639, 670, 697, 718, 734, 744, 750, 750, 745, 735, 719, 699, 674, + 644, 610, 572, 530, 485, 437, 386, 332, 277, 220, 162, 103, 44, -15, -73, -131, -187, -241, -294, -344, -391, -435, -476, -513, -546, -575, -600, + -621, -637, -648, -655, -657, -654, -647, -636, -620, -600, -575, -547, -516, -481, -443, -402, -358, -312, -265, -216, -166, -115, -64, -13, 38, + 88, 138, 185, 232, 276, 317, 357, 393, 426, 457, 483, 506, 525, 541, 552, 560, 563, 563, 558, 550, 538, 522, 502, 480, 454, 425, 394, 360, 323, 285, + 246, 204, 162, 119, 76, 32, -11, -54, -96, -136, -176, -214, -250, -284, -316, -345, -371, -394, -415, -432, -446, -457, -465, -469, -470, -467, -461, + -452, -440, -425, -408, -387, -364, -339, -311, -282, -251, -219, -185, -151, -116, -80, -44, -9, 26, 61, 95, 127, 159, 189, 217, 243, 268, 290, 310, + 327, 342, 354, 364, 370, 375, 376, 375, 371, 365, 356, 345, 331, 315, 298, 278, 257, 234, 210, 185, 159, 132, 104, 76, 49, 21, -7, -34, -60, -86, -111, -134, -156, -177, -196, -213, -229, -243, -254, -264, -272, -278, -281, -283, -282, -280, -275, -269, -261, -251, -240, -227, -212, -197, -180, -163, -144, -125, -105, -85, -65, -45, -25, -5, 15, 34, 52, 70, 86, 102, 117, 130, 142, 153, 163, 171, 177, 183, 187, 189, 190, 189], + "y": [0, 78, 156, 231, 305, 376, 444, 509, 570, 626, 678, 725, 766, 802, 832, 856, 874, 885, 891, 890, 883, 869, 850, 825, 794, 758, 716, 670, 620, 565, + 507, 446, 381, 315, 246, 177, 106, 35, -35, -105, -174, -241, -306, -369, -429, -485, -537, -586, -630, -669, -704, -733, -757, -775, -788, -796, + -797, -793, -784, -769, -749, -724, -693, -659, -619, -576, -529, -478, -425, -369, -310, -250, -188, -126, -63, 0, 63, 124, 185, 243, 300, 354, 405, + 453, 498, 539, 575, 608, 636, 659, 678, 691, 700, 704, 702, 696, 685, 669, 649, 624, 595, 562, 526, 486, 443, 397, 348, 298, 246, 192, 138, 83, 28, + -27, -82, -135, -187, -237, -286, -332, -375, -415, -452, -485, -515, -541, -563, -581, -595, -604, -609, -610, -606, -599, -587, -571, -551, -527, + -500, -470, -437, -400, -362, -321, -278, -234, -188, -142, -95, -47, 0, 47, 93, 138, 182, 224, 264, 302, 337, 370, 399, 426, 450, 470, 486, 499, 509, + 514, 516, 515, 510, 501, 489, 473, 455, 433, 409, 381, 352, 320, 287, 251, 215, 177, 138, 99, 59, 20, -20, -58, -96, -133, -168, -202, -234, -265, + -292, -318, -341, -361, -379, -394, -405, -414, -420, -423, -422, -419, -413, -404, -392, -378, -361, -342, -321, -297, -272, -245, -217, -188, -158, + -127, -95, -63, -32, 0, 31, 62, 91, 120, 147, 173, 198, 221, 241, 260, 277, 291, 304, 313, 321, 326, 329, 329, 327, 323, 317, 308, 298, 285, 271, 255, + 237, 218, 198, 176, 154, 131, 108, 84, 60, 36, 12, -12, -35, -57, -79, -99, -119, -137, -154, -170, -184, -196, -207, -217, -224, -230, -234, -236, + -236, -235, -232, -228, -221, -214, -205, -195, -184, -171, -158, -144, -129, -113, -98, -81, -65, -48, -32, -16 + ], + "marker": { + "size": 2, + "color": [ + 0, 0.00333, 0.00666, 0.01, 0.01333, 0.01666, 0.02, 0.02333, 0.02666, 0.03, 0.03333, 0.03666, 0.04, 0.04333, 0.04666, 0.05, 0.05333, 0.05666, + 0.06, 0.06333, 0.06666, 0.07, 0.07333, 0.07666, 0.08, 0.08333, 0.08666, 0.09, 0.09333, 0.09666, 0.10, 0.10333, 0.10666, 0.11, 0.11333, 0.11666, + 0.12, 0.12333, 0.12666, 0.13, 0.13333, 0.13666, 0.14, 0.14333, 0.14666, 0.15, 0.15333, 0.15666, 0.16, 0.16333, 0.16666, 0.17, 0.17333, 0.17666, + 0.18, 0.18333, 0.18666, 0.19, 0.19333, 0.19666, 0.20, 0.20333, 0.20666, 0.21, 0.21333, 0.21666, 0.22, 0.22333, 0.22666, 0.23, 0.23333, 0.23666, + 0.24, 0.24333, 0.24666, 0.25, 0.25333, 0.25666, 0.26, 0.26333, 0.26666, 0.27, 0.27333, 0.27666, 0.28, 0.28333, 0.28666, 0.29, 0.29333, 0.29666, + 0.30, 0.30333, 0.30666, 0.31, 0.31333, 0.31666, 0.32, 0.32333, 0.32666, 0.33, 0.33333, 0.33666, 0.34, 0.34333, 0.34666, 0.35, 0.35333, 0.35666, + 0.36, 0.36333, 0.36666, 0.37, 0.37333, 0.37666, 0.38, 0.38333, 0.38666, 0.39, 0.39333, 0.39666, 0.40, 0.40333, 0.40666, 0.41, 0.41333, 0.41666, + 0.42, 0.42333, 0.42666, 0.43, 0.43333, 0.43666, 0.44, 0.44333, 0.44666, 0.45, 0.45333, 0.45666, 0.46, 0.46333, 0.46666, 0.47, 0.47333, 0.47666, + 0.48, 0.48333, 0.48666, 0.49, 0.49333, 0.49666, 0.50, 0.50333, 0.50666, 0.51, 0.51333, 0.51666, 0.52, 0.52333, 0.52666, 0.53, 0.53333, 0.53666, + 0.54, 0.54333, 0.54666, 0.55, 0.55333, 0.55666, 0.56, 0.56333, 0.56666, 0.57, 0.57333, 0.57666, 0.58, 0.58333, 0.58666, 0.59, 0.59333, 0.59666, + 0.60, 0.60333, 0.60666, 0.61, 0.61333, 0.61666, 0.62, 0.62333, 0.62666, 0.63, 0.63333, 0.63666, 0.64, 0.64333, 0.64666, 0.65, 0.65333, 0.65666, + 0.66, 0.66333, 0.66666, 0.67, 0.67333, 0.67666, 0.68, 0.68333, 0.68666, 0.69, 0.69333, 0.69666, 0.70, 0.70333, 0.70666, 0.71, 0.71333, 0.71666, + 0.72, 0.72333, 0.72666, 0.73, 0.73333, 0.73666, 0.74, 0.74333, 0.74666, 0.75, 0.75333, 0.75666, 0.76, 0.76333, 0.76666, 0.77, 0.77333, 0.77666, + 0.78, 0.78333, 0.78666, 0.79, 0.79333, 0.79666, 0.80, 0.80333, 0.80666, 0.81, 0.81333, 0.81666, 0.82, 0.82333, 0.82666, 0.83, 0.83333, 0.83666, + 0.84, 0.84333, 0.84666, 0.85, 0.85333, 0.85666, 0.86, 0.86333, 0.86666, 0.87, 0.87333, 0.87666, 0.88, 0.88333, 0.88666, 0.89, 0.89333, 0.89666, + 0.90, 0.90333, 0.90666, 0.91, 0.91333, 0.91666, 0.92, 0.92333, 0.92666, 0.93, 0.93333, 0.93666, 0.94, 0.94333, 0.94666, 0.95, 0.95333, 0.95666, + 0.96, 0.96333, 0.96666, 0.97, 0.97333, 0.97666, 0.98, 0.98333, 0.98666, 0.99, 0.99333, 0.99666, 1 + ], + "colorscale": "Cividis" + } + }, + { + "type":"scattergl", + "mode": "markers", + "x": [ + 290, 362, 432, 498, 561, 619, 672, 721, 764, 802, 834, 859, 879, 892, 899, 900, 894, 882, 864, 840, 811, 776, 735, 690, 640, 585, 528, 466, 402, + 335, 267, 196, 125, 54, -18, -89, -159, -227, -294, -358, -419, -477, -531, -581, -626, -667, -704, -734, -760, -780, -795, -804, -807, -804, + -796, -783, -763, -739, -710, -676, -637, -594, -547, -497, -444, -387, -329, -268, -206, -143, -80, -16, 48, 110, 172, 232, 290, 345, 398, 447, + 493, 536, 574, 608, 638, 662, 682, 697, 707, 712, 713, 708, 698, 683, 663, 639, 611, 579, 543, 503, 460, 414, 366, 315, 263, 209, 154, 98, 42, + -14, -69, -124, -177, -228, -278, -325, -370, -411, -450, -484, -516, -543, -567, -586, -601, -611, -618, -619, -617, -610, -599, -584, -565, + -542, -515, -485, -452, -416, -378, -337, -294, -249, -203, -156, -108, -60, -12, 36, 83, 129, 174, 217, 258, 297, 334, 368, 399, 427, 452, 473, + 491, 505, 516, 523, 526, 525, 521, 513, 501, 486, 468, 447, 423, 396, 366, 335, 301, 265, 228, 190, 151, 111, 70, 30, -10, -50, -89, -126, -163, + -198, -231, -263, -292, -318, -343, -364, -383, -399, -411, -421, -428, -432, -432, -430, -424, -416, -404, -391, -374, -355, -334, -310, -285, + -258, -230, -200, -169, -138, -106, -73, -41, -8, 24, 56, 86, 116, 144, 171, 197, 221, 243, 262, 280, 296, 309, 320, 328, 334, 338, 339, 337, 334, + 328, 320, 309, 297, 283, 267, 249, 230, 209, 187, 165, 141, 117, 93, 68, 43, 18, -6, -30, -53, -76, -98, -118, -137, -156, -172, -187, -201, -212, + -222, -231, -237, -242, -245, -246, -245, -242, -238, -232, -225, -216, -206, -195, -182, -168, -154, -139, -123, -106, -89, -72, -55, -38, -21, + -4, 12, 28, 43 + ], + "y": [ + -892, -862, -826, -785, -739, -687, -631, -571, -508, -441, -371, -299, -226, -151, -76, 0, 75, 149, 222, 293, 361, 426, 488, 547, 601, 650, 695, + 735, 769, 797, 820, 837, 848, 853, 852, 845, 832, 814, 790, 760, 725, 686, 641, 593, 541, 485, 426, 365, 301, 236, 169, 102, 34, -34, -101, -166, + -231, -293, -352, -409, -463, -513, -559, -601, -638, -671, -699, -722, -739, -751, -758, -760, -756, -747, -733, -713, -689, -660, -627, -589, + -548, -503, -455, -404, -350, -295, -238, -179, -120, -60, 0, 59, 118, 175, 231, 285, 336, 385, 430, 472, 511, 546, 576, 603, 625, 642, 655, 663, + 666, 665, 659, 648, 633, 614, 590, 563, 532, 497, 459, 418, 375, 329, 281, 232, 181, 130, 78, 26, -26, -77, -127, -176, -224, -269, -312, -353, + -390, -425, -457, -484, -509, -529, -546, -559, -567, -572, -572, -569, -561, -550, -535, -516, -494, -469, -440, -409, -375, -339, -300, -260, + -219, -176, -132, -88, -44, 0, 44, 87, 129, 169, 208, 246, 281, 314, 344, 372, 396, 418, 436, 452, 464, 472, 477, 479, 477, 472, 464, 453, 438, + 421, 401, 378, 353, 325, 296, 265, 232, 198, 163, 127, 91, 55, 18, -18, -54, -88, -122, -155, -186, -215, -242, -268, -291, -312, -331, -346, -360, + -370, -378, -383, -385, -385, -382, -376, -368, -357, -343, -328, -310, -291, -269, -246, -222, -196, -170, -142, -114, -86, -57, -28, 0, 28, 55, + 82, 108, 132, 155, 177, 197, 216, 232, 247, 260, 270, 279, 285, 290, 292, 292, 290, 286, 280, 272, 262, 251, 238, 224, 208, 191, 173, 154, 135, 114, + 94, 73, 52, 31, 10, -10, -30, -49, -68, -86, -102, -118, -132, -145, -157, -168, -177, -184, -190, -194, -197, -199, -199, -197, -195, -190, -185 + ], + "marker": { + "size": 4, + "color": [ + 0, 0.00333, 0.00666, 0.01, 0.01333, 0.01666, 0.02, 0.02333, 0.02666, 0.03, 0.03333, 0.03666, 0.04, 0.04333, 0.04666, 0.05, 0.05333, 0.05666, + 0.06, 0.06333, 0.06666, 0.07, 0.07333, 0.07666, 0.08, 0.08333, 0.08666, 0.09, 0.09333, 0.09666, 0.10, 0.10333, 0.10666, 0.11, 0.11333, 0.11666, + 0.12, 0.12333, 0.12666, 0.13, 0.13333, 0.13666, 0.14, 0.14333, 0.14666, 0.15, 0.15333, 0.15666, 0.16, 0.16333, 0.16666, 0.17, 0.17333, 0.17666, + 0.18, 0.18333, 0.18666, 0.19, 0.19333, 0.19666, 0.20, 0.20333, 0.20666, 0.21, 0.21333, 0.21666, 0.22, 0.22333, 0.22666, 0.23, 0.23333, 0.23666, + 0.24, 0.24333, 0.24666, 0.25, 0.25333, 0.25666, 0.26, 0.26333, 0.26666, 0.27, 0.27333, 0.27666, 0.28, 0.28333, 0.28666, 0.29, 0.29333, 0.29666, + 0.30, 0.30333, 0.30666, 0.31, 0.31333, 0.31666, 0.32, 0.32333, 0.32666, 0.33, 0.33333, 0.33666, 0.34, 0.34333, 0.34666, 0.35, 0.35333, 0.35666, + 0.36, 0.36333, 0.36666, 0.37, 0.37333, 0.37666, 0.38, 0.38333, 0.38666, 0.39, 0.39333, 0.39666, 0.40, 0.40333, 0.40666, 0.41, 0.41333, 0.41666, + 0.42, 0.42333, 0.42666, 0.43, 0.43333, 0.43666, 0.44, 0.44333, 0.44666, 0.45, 0.45333, 0.45666, 0.46, 0.46333, 0.46666, 0.47, 0.47333, 0.47666, + 0.48, 0.48333, 0.48666, 0.49, 0.49333, 0.49666, 0.50, 0.50333, 0.50666, 0.51, 0.51333, 0.51666, 0.52, 0.52333, 0.52666, 0.53, 0.53333, 0.53666, + 0.54, 0.54333, 0.54666, 0.55, 0.55333, 0.55666, 0.56, 0.56333, 0.56666, 0.57, 0.57333, 0.57666, 0.58, 0.58333, 0.58666, 0.59, 0.59333, 0.59666, + 0.60, 0.60333, 0.60666, 0.61, 0.61333, 0.61666, 0.62, 0.62333, 0.62666, 0.63, 0.63333, 0.63666, 0.64, 0.64333, 0.64666, 0.65, 0.65333, 0.65666, + 0.66, 0.66333, 0.66666, 0.67, 0.67333, 0.67666, 0.68, 0.68333, 0.68666, 0.69, 0.69333, 0.69666, 0.70, 0.70333, 0.70666, 0.71, 0.71333, 0.71666, + 0.72, 0.72333, 0.72666, 0.73, 0.73333, 0.73666, 0.74, 0.74333, 0.74666, 0.75, 0.75333, 0.75666, 0.76, 0.76333, 0.76666, 0.77, 0.77333, 0.77666, + 0.78, 0.78333, 0.78666, 0.79, 0.79333, 0.79666, 0.80, 0.80333, 0.80666, 0.81, 0.81333, 0.81666, 0.82, 0.82333, 0.82666, 0.83, 0.83333, 0.83666, + 0.84, 0.84333, 0.84666, 0.85, 0.85333, 0.85666, 0.86, 0.86333, 0.86666, 0.87, 0.87333, 0.87666, 0.88, 0.88333, 0.88666, 0.89, 0.89333, 0.89666, + 0.90, 0.90333, 0.90666, 0.91, 0.91333, 0.91666, 0.92, 0.92333, 0.92666, 0.93, 0.93333, 0.93666, 0.94, 0.94333, 0.94666, 0.95, 0.95333, 0.95666, + 0.96, 0.96333, 0.96666, 0.97, 0.97333, 0.97666, 0.98, 0.98333, 0.98666, 0.99, 0.99333, 0.99666, 1 + ], + "colorscale": "Greens" + } + }, + { + "type":"scattergl", + "mode": "markers", + "x": [ + -758, -708, -652, -593, -529, -462, -393, -321, -247, -171, -95, -19, 57, 132, 206, 278, 348, 415, 478, 538, 594, 645, 692, 733, 769, 799, 824, + 843, 855, 862, 862, 857, 845, 828, 805, 777, 743, 704, 660, 612, 560, 505, 446, 385, 321, 255, 188, 120, 51, -17, -85, -152, -217, -281, -342, + -400, -455, -507, -554, -598, -637, -671, -701, -725, -744, -758, -766, -769, -767, -759, -746, -728, -704, -676, -644, -607, -566, -521, -473, + -422, -369, -313, -255, -196, -136, -76, -15, 45, 105, 163, 220, 275, 328, 378, 425, 468, 508, 545, 577, 605, 628, 647, 661, 670, 675, 675, 670, + 661, 647, 628, 605, 578, 548, 513, 476, 435, 391, 346, 298, 248, 197, 145, 92, 40, -13, -65, -117, -167, -215, -262, -306, -348, -387, -423, -456, + -485, -511, -533, -551, -565, -575, -580, -582, -579, -573, -562, -548, -530, -508, -483, -455, -424, -390, -354, -315, -275, -233, -190, -146, + -101, -56, -11, 33, 77, 120, 162, 202, 241, 277, 311, 343, 372, 398, 421, 440, 457, 470, 479, 486, 488, 488, 483, 476, 465, 451, 434, 414, 391, + 366, 339, 309, 278, 245, 211, 175, 139, 102, 65, 28, -9, -46, -82, -116, -150, -182, -213, -241, -268, -292, -314, -334, -351, -365, -377, -385, + -391, -394, -395, -392, -387, -379, -369, -356, -340, -323, -303, -282, -259, -234, -208, -181, -153, -125, -95, -66, -37, -7, 22, 50, 78, 104, + 130, 154, 177, 198, 217, 235, 251, 264, 276, 285, 293, 298, 301, 301, 300, 296, 291, 283, 274, 263, 250, 235, 219, 202, 184, 165, 145, 124, 103, + 81, 59, 38, 16, -5, -26, -46, -66, -85, -102, -119, -134, -148, -161, -172, -182, -190, -197, -202, -206, -208, -208, -207, -205, -201, -196, -189, + -181, -172, -163 + ], + "y": [ + -551, -611, -666, -717, -762, -801, -835, -862, -884, -899, -908, -910, -906, -895, -879, -856, -827, -793, -754, -709, -660, -606, -548, -487, + -423, -356, -287, -216, -145, -72, 0, 72, 143, 213, 280, 346, 408, 468, 523, 575, 622, 665, 703, 736, 763, 785, 801, 811, 816, 815, 808, 796, 778, + 755, 726, 693, 655, 613, 566, 516, 463, 407, 348, 287, 225, 161, 97, 32, -32, -96, -159, -220, -279, -336, -390, -441, -488, -532, -572, -608, -639, + -665, -687, -703, -715, -721, -722, -719, -710, -696, -678, -655, -627, -595, -560, -520, -477, -432, -383, -332, -280, -225, -170, -113, -57, 0, + 56, 112, 166, 219, 269, 318, 364, 407, 447, 483, 516, 545, 569, 590, 606, 618, 626, 629, 627, 622, 611, 597, 579, 556, 530, 501, 468, 432, 394, 353, + 310, 265, 218, 171, 122, 73, 24, -24, -72, -120, -165, -210, -252, -293, -331, -366, -398, -428, -454, -476, -495, -511, -523, -530, -535, -535, + -531, -524, -514, -499, -482, -461, -437, -410, -381, -349, -315, -279, -242, -203, -164, -123, -82, -41, 0, 41, 80, 119, 157, 193, 228, 260, 290, + 318, 344, 366, 386, 403, 417, 428, 436, 440, 442, 440, 435, 427, 417, 403, 387, 368, 347, 324, 298, 271, 242, 212, 181, 149, 116, 83, 50, 17, -16, + -49, -81, -111, -141, -169, -196, -220, -243, -264, -283, -300, -314, -326, -335, -342, -346, -348, -347, -344, -339, -331, -321, -309, -295, -279, + -261, -242, -221, -199, -176, -152, -127, -102, -76, -51, -25, 0, 25, 49, 73, 95, 117, 137, 156, 174, 190, 204, 217, 228, 237, 244, 250, 253, 255, + 254, 252, 249, 243, 236, 227, 217, 206, 193, 179, 164, 149, 132, 115, 98, 80, 62, 44, 26, 9, -9, -25, -42, -57, -72, -86, -98 + ], + "marker": { + "size": 6, + "color": [ + 0, 0.00333, 0.00666, 0.01, 0.01333, 0.01666, 0.02, 0.02333, 0.02666, 0.03, 0.03333, 0.03666, 0.04, 0.04333, 0.04666, 0.05, 0.05333, 0.05666, + 0.06, 0.06333, 0.06666, 0.07, 0.07333, 0.07666, 0.08, 0.08333, 0.08666, 0.09, 0.09333, 0.09666, 0.10, 0.10333, 0.10666, 0.11, 0.11333, 0.11666, + 0.12, 0.12333, 0.12666, 0.13, 0.13333, 0.13666, 0.14, 0.14333, 0.14666, 0.15, 0.15333, 0.15666, 0.16, 0.16333, 0.16666, 0.17, 0.17333, 0.17666, + 0.18, 0.18333, 0.18666, 0.19, 0.19333, 0.19666, 0.20, 0.20333, 0.20666, 0.21, 0.21333, 0.21666, 0.22, 0.22333, 0.22666, 0.23, 0.23333, 0.23666, + 0.24, 0.24333, 0.24666, 0.25, 0.25333, 0.25666, 0.26, 0.26333, 0.26666, 0.27, 0.27333, 0.27666, 0.28, 0.28333, 0.28666, 0.29, 0.29333, 0.29666, + 0.30, 0.30333, 0.30666, 0.31, 0.31333, 0.31666, 0.32, 0.32333, 0.32666, 0.33, 0.33333, 0.33666, 0.34, 0.34333, 0.34666, 0.35, 0.35333, 0.35666, + 0.36, 0.36333, 0.36666, 0.37, 0.37333, 0.37666, 0.38, 0.38333, 0.38666, 0.39, 0.39333, 0.39666, 0.40, 0.40333, 0.40666, 0.41, 0.41333, 0.41666, + 0.42, 0.42333, 0.42666, 0.43, 0.43333, 0.43666, 0.44, 0.44333, 0.44666, 0.45, 0.45333, 0.45666, 0.46, 0.46333, 0.46666, 0.47, 0.47333, 0.47666, + 0.48, 0.48333, 0.48666, 0.49, 0.49333, 0.49666, 0.50, 0.50333, 0.50666, 0.51, 0.51333, 0.51666, 0.52, 0.52333, 0.52666, 0.53, 0.53333, 0.53666, + 0.54, 0.54333, 0.54666, 0.55, 0.55333, 0.55666, 0.56, 0.56333, 0.56666, 0.57, 0.57333, 0.57666, 0.58, 0.58333, 0.58666, 0.59, 0.59333, 0.59666, + 0.60, 0.60333, 0.60666, 0.61, 0.61333, 0.61666, 0.62, 0.62333, 0.62666, 0.63, 0.63333, 0.63666, 0.64, 0.64333, 0.64666, 0.65, 0.65333, 0.65666, + 0.66, 0.66333, 0.66666, 0.67, 0.67333, 0.67666, 0.68, 0.68333, 0.68666, 0.69, 0.69333, 0.69666, 0.70, 0.70333, 0.70666, 0.71, 0.71333, 0.71666, + 0.72, 0.72333, 0.72666, 0.73, 0.73333, 0.73666, 0.74, 0.74333, 0.74666, 0.75, 0.75333, 0.75666, 0.76, 0.76333, 0.76666, 0.77, 0.77333, 0.77666, + 0.78, 0.78333, 0.78666, 0.79, 0.79333, 0.79666, 0.80, 0.80333, 0.80666, 0.81, 0.81333, 0.81666, 0.82, 0.82333, 0.82666, 0.83, 0.83333, 0.83666, + 0.84, 0.84333, 0.84666, 0.85, 0.85333, 0.85666, 0.86, 0.86333, 0.86666, 0.87, 0.87333, 0.87666, 0.88, 0.88333, 0.88666, 0.89, 0.89333, 0.89666, + 0.90, 0.90333, 0.90666, 0.91, 0.91333, 0.91666, 0.92, 0.92333, 0.92666, 0.93, 0.93333, 0.93666, 0.94, 0.94333, 0.94666, 0.95, 0.95333, 0.95666, + 0.96, 0.96333, 0.96666, 0.97, 0.97333, 0.97666, 0.98, 0.98333, 0.98666, 0.99, 0.99333, 0.99666, 1 + ], + "colorscale": "Blues" + } + }, + { + "type": "scattergl", + "x": [-1000, -1000, 1000, 1000, 0], + "y": [-1000, 1000, 1000, -1000, 0], + "mode": "markers", + "marker": { + "size": 20, + "color": "red" + } + }, + { + "type":"scattergl", + "mode": "markers", + "x": [ + -758, -800, -835, -865, -888, -905, -915, -919, -917, -908, -893, -871, -844, -811, -772, -728, -679, -626, -569, -508, -444, -377, -308, + -237, -164, -91, -18, 55, 127, 198, 267, 333, 397, 458, 515, 569, 618, 662, 702, 736, 765, 789, 806, 818, 825, 825, 820, 809, 792, 770, 742, + 710, 673, 631, 585, 535, 482, 426, 367, 306, 243, 179, 114, 49, -16, -81, -145, -207, -268, -326, -381, -434, -483, -528, -570, -607, -639, + -667, -690, -708, -721, -729, -732, -729, -722, -709, -692, -669, -643, -612, -576, -537, -495, -449, -401, -350, -297, -242, -186, -129, -72, + -14, 43, 99, 155, 209, 261, 310, 358, 402, 443, 481, 515, 546, 572, 594, 611, 625, 634, 638, 638, 633, 624, 610, 593, 571, 546, 516, 484, 448, + 410, 369, 326, 280, 233, 185, 136, 87, 37, -12, -61, -110, -157, -202, -246, -287, -327, -363, -397, -428, -455, -479, -499, -516, -529, -538, + -543, -545, -542, -536, -526, -512, -495, -475, -451, -425, -396, -364, -330, -294, -256, -217, -177, -136, -94, -52, -10, 31, 72, 112, 151, + 188, 224, 257, 289, 318, 344, 368, 389, 407, 423, 434, 443, 449, 451, 450, 446, 439, 429, 416, 400, 381, 360, 337, 312, 284, 255, 225, 193, + 161, 127, 94, 60, 25, -8, -42, -74, -106, -137, -166, -194, -220, -244, -266, -286, -303, -319, -331, -342, -349, -355, -357, -357, -355, -350, + -342, -333, -321, -307, -291, -273, -254, -233, -210, -187, -163, -137, -112, -85, -59, -33, -6, 19, 45, 69, 93, 115, 137, 157, 175, 192, 208, + 221, 233, 243, 251, 257, 262, 264, 264, 263, 259, 254, 247, 238, 228, 217, 204, 190, 175, 159, 142, 125, 107, 88, 70, 51, 32, 14, -5, -22, -39, + -56, -71, -86, -100, -113, -124, -135, -144 + ], + "y": [ + 551, 484, 415, 342, 268, 192, 116, 39, -38, -115, -190, -263, -334, -402, -468, -529, -586, -639, -688, -731, -769, -801, -827, -848, -862, + -870, -872, -868, -858, -842, -820, -793, -760, -722, -679, -632, -580, -525, -466, -405, -341, -275, -207, -138, -69, 0, 69, 137, 203, 268, + 330, 390, 447, 500, 549, 595, 635, 671, 702, 728, 749, 764, 774, 778, 777, 771, 759, 742, 719, 692, 660, 624, 584, 539, 492, 441, 387, 331, + 273, 214, 153, 92, 31, -31, -91, -151, -209, -265, -319, -370, -419, -464, -505, -543, -577, -606, -631, -651, -667, -678, -684, -685, -681, + -673, -660, -642, -620, -594, -564, -530, -492, -452, -408, -362, -314, -264, -213, -160, -107, -54, 0, 53, 105, 157, 206, 254, 300, 343, 384, + 421, 455, 486, 513, 536, 555, 571, 582, 589, 591, 590, 584, 575, 561, 544, 523, 498, 470, 439, 405, 369, 331, 290, 248, 204, 160, 114, 69, 23, + -23, -68, -112, -155, -196, -236, -273, -309, -341, -372, -399, -423, -444, -461, -476, -486, -494, -497, -497, -494, -487, -477, -464, -447, + -428, -405, -380, -353, -323, -292, -259, -224, -188, -151, -114, -76, -38, 0, 37, 74, 110, 145, 178, 210, 239, 267, 293, 316, 337, 355, 370, + 383, 392, 399, 403, 404, 402, 398, 390, 380, 368, 353, 336, 316, 295, 271, 247, 220, 193, 165, 135, 105, 75, 45, 15, -15, -44, -73, -100, -127, + -152, -176, -198, -219, -238, -254, -269, -281, -292, -300, -306, -309, -311, -310, -307, -302, -295, -285, -274, -261, -247, -231, -214, -195, + -175, -155, -134, -112, -90, -67, -45, -22, 0, 22, 43, 63, 83, 102, 119, 136, 151, 164, 176, 187, 196, 204, 210, 214, 217, 218, 217, 215, 211, + 206, 200, 192, 183, 173, 162, 150, 138, 124 + ], + "marker": { + "size": 8, + "color": [ + 0, 0.00333, 0.00666, 0.01, 0.01333, 0.01666, 0.02, 0.02333, 0.02666, 0.03, 0.03333, 0.03666, 0.04, 0.04333, 0.04666, 0.05, 0.05333, 0.05666, + 0.06, 0.06333, 0.06666, 0.07, 0.07333, 0.07666, 0.08, 0.08333, 0.08666, 0.09, 0.09333, 0.09666, 0.10, 0.10333, 0.10666, 0.11, 0.11333, 0.11666, + 0.12, 0.12333, 0.12666, 0.13, 0.13333, 0.13666, 0.14, 0.14333, 0.14666, 0.15, 0.15333, 0.15666, 0.16, 0.16333, 0.16666, 0.17, 0.17333, 0.17666, + 0.18, 0.18333, 0.18666, 0.19, 0.19333, 0.19666, 0.20, 0.20333, 0.20666, 0.21, 0.21333, 0.21666, 0.22, 0.22333, 0.22666, 0.23, 0.23333, 0.23666, + 0.24, 0.24333, 0.24666, 0.25, 0.25333, 0.25666, 0.26, 0.26333, 0.26666, 0.27, 0.27333, 0.27666, 0.28, 0.28333, 0.28666, 0.29, 0.29333, 0.29666, + 0.30, 0.30333, 0.30666, 0.31, 0.31333, 0.31666, 0.32, 0.32333, 0.32666, 0.33, 0.33333, 0.33666, 0.34, 0.34333, 0.34666, 0.35, 0.35333, 0.35666, + 0.36, 0.36333, 0.36666, 0.37, 0.37333, 0.37666, 0.38, 0.38333, 0.38666, 0.39, 0.39333, 0.39666, 0.40, 0.40333, 0.40666, 0.41, 0.41333, 0.41666, + 0.42, 0.42333, 0.42666, 0.43, 0.43333, 0.43666, 0.44, 0.44333, 0.44666, 0.45, 0.45333, 0.45666, 0.46, 0.46333, 0.46666, 0.47, 0.47333, 0.47666, + 0.48, 0.48333, 0.48666, 0.49, 0.49333, 0.49666, 0.50, 0.50333, 0.50666, 0.51, 0.51333, 0.51666, 0.52, 0.52333, 0.52666, 0.53, 0.53333, 0.53666, + 0.54, 0.54333, 0.54666, 0.55, 0.55333, 0.55666, 0.56, 0.56333, 0.56666, 0.57, 0.57333, 0.57666, 0.58, 0.58333, 0.58666, 0.59, 0.59333, 0.59666, + 0.60, 0.60333, 0.60666, 0.61, 0.61333, 0.61666, 0.62, 0.62333, 0.62666, 0.63, 0.63333, 0.63666, 0.64, 0.64333, 0.64666, 0.65, 0.65333, 0.65666, + 0.66, 0.66333, 0.66666, 0.67, 0.67333, 0.67666, 0.68, 0.68333, 0.68666, 0.69, 0.69333, 0.69666, 0.70, 0.70333, 0.70666, 0.71, 0.71333, 0.71666, + 0.72, 0.72333, 0.72666, 0.73, 0.73333, 0.73666, 0.74, 0.74333, 0.74666, 0.75, 0.75333, 0.75666, 0.76, 0.76333, 0.76666, 0.77, 0.77333, 0.77666, + 0.78, 0.78333, 0.78666, 0.79, 0.79333, 0.79666, 0.80, 0.80333, 0.80666, 0.81, 0.81333, 0.81666, 0.82, 0.82333, 0.82666, 0.83, 0.83333, 0.83666, + 0.84, 0.84333, 0.84666, 0.85, 0.85333, 0.85666, 0.86, 0.86333, 0.86666, 0.87, 0.87333, 0.87666, 0.88, 0.88333, 0.88666, 0.89, 0.89333, 0.89666, + 0.90, 0.90333, 0.90666, 0.91, 0.91333, 0.91666, 0.92, 0.92333, 0.92666, 0.93, 0.93333, 0.93666, 0.94, 0.94333, 0.94666, 0.95, 0.95333, 0.95666, + 0.96, 0.96333, 0.96666, 0.97, 0.97333, 0.97666, 0.98, 0.98333, 0.98666, 0.99, 0.99333, 0.99666, 1 + ], + "colorscale": "Viridis" + } + }, + { + "type":"scattergl", + "mode": "markers", + "x": [ + 290, 214, 136, 58, -19, -97, -173, -247, -320, -390, -456, -519, -578, -633, -683, -728, -768, -802, -830, -852, -868, -878, -882, -879, -871, + -856, -835, -809, -777, -740, -698, -651, -600, -545, -487, -425, -361, -295, -227, -157, -88, -17, 52, 121, 189, 255, 319, 380, 438, 493, 544, + 590, 633, 671, 703, 731, 753, 770, 781, 787, 788, 782, 772, 755, 734, 708, 677, 641, 601, 558, 510, 459, 406, 350, 292, 232, 171, 109, 47, -15, + -77, -138, -197, -254, -310, -363, -412, -459, -502, -541, -576, -607, -634, -655, -673, -685, -692, -694, -692, -685, -672, -656, -635, -609, + -580, -546, -509, -469, -425, -380, -331, -281, -229, -176, -122, -68, -14, 40, 94, 146, 197, 246, 293, 338, 379, 418, 454, 486, 514, 539, 560, + 576, 588, 597, 600, 600, 595, 587, 574, 557, 537, 513, 485, 455, 421, 385, 346, 305, 263, 219, 174, 128, 81, 35, -12, -57, -103, -147, -189, + -230, -269, -305, -339, -371, -399, -425, -447, -466, -481, -493, -501, -506, -507, -505, -499, -489, -476, -460, -441, -419, -394, -367, -338, + -306, -273, -237, -201, -164, -126, -87, -48, -10, 29, 66, 103, 139, 173, 206, 237, 266, 293, 317, 339, 358, 375, 388, 399, 407, 412, 414, 413, + 409, 402, 392, 380, 365, 348, 329, 308, 284, 259, 233, 205, 176, 146, 116, 85, 54, 23, -8, -38, -67, -96, -124, -150, -175, -198, -220, -240, + -257, -273, -287, -298, -307, -314, -318, -320, -320, -317, -313, -306, -297, -286, -273, -259, -243, -225, -206, -186, -166, -144, -121, -98, + -75, -52, -29, -6, 17, 39, 61, 81, 101, 119, 137, 153, 167, 180, 192, 202, 210, 217, 222, 225, 227, 227, 225, 222, 217, 211, 203, 194, 184, 173, + 161, 148, 134, 119, 104, 89, 74 + ], + "y": [ + 892, 910, 922, 928, 927, 920, 906, 886, 860, 828, 790, 747, 699, 647, 590, 529, 465, 398, 329, 257, 185, 111, 37, -37, -110, -182, -252, -320, + -386, -448, -507, -562, -613, -659, -700, -736, -767, -792, -811, -825, -833, -835, -831, -821, -806, -785, -758, -727, -690, -649, -604, -554, + -502, -445, -387, -325, -262, -198, -132, -66, 0, 66, 130, 194, 256, 315, 372, 426, 477, 524, 567, 605, 640, 669, 694, 713, 728, 737, 741, 740, + 733, 722, 706, 684, 658, 628, 593, 555, 513, 467, 419, 368, 315, 260, 203, 146, 87, 29, -29, -86, -143, -198, -251, -302, -351, -397, -439, -479, + -514, -546, -574, -597, -616, -631, -641, -646, -647, -644, -636, -623, -606, -585, -561, -532, -500, -464, -426, -385, -342, -296, -249, -201, + -151, -101, -50, 0, 50, 99, 147, 194, 239, 282, 322, 360, 395, 427, 456, 481, 503, 521, 535, 545, 552, 554, 552, 547, 538, 525, 508, 489, 465, + 439, 410, 379, 345, 309, 271, 231, 191, 149, 107, 64, 21, -21, -63, -104, -144, -182, -219, -254, -287, -317, -345, -370, -392, -411, -428, -441, + -450, -457, -460, -460, -457, -450, -441, -428, -413, -394, -374, -350, -325, -298, -269, -238, -206, -173, -139, -104, -70, -35, 0, 34, 68, 101, + 132, 163, 191, 219, 244, 267, 288, 307, 323, 337, 348, 357, 363, 366, 367, 365, 361, 354, 344, 333, 319, 303, 285, 266, 245, 222, 198, 174, 148, + 121, 95, 68, 40, 13, -13, -39, -65, -90, -113, -136, -157, -176, -194, -211, -225, -238, -249, -258, -265, -270, -273, -273, -272, -269, -265, + -258, -250, -240, -228, -215, -201, -186, -169, -152, -134, -116, -97, -77, -58, -38, -19, 0, 19, 37, 54, 71, 86, 101, 115, 127, 139, 149, 157, + 165, 171, 175 + ], + "marker": { + "size": 10, + "color": [ + 0, 0.00333, 0.00666, 0.01, 0.01333, 0.01666, 0.02, 0.02333, 0.02666, 0.03, 0.03333, 0.03666, 0.04, 0.04333, 0.04666, 0.05, 0.05333, 0.05666, + 0.06, 0.06333, 0.06666, 0.07, 0.07333, 0.07666, 0.08, 0.08333, 0.08666, 0.09, 0.09333, 0.09666, 0.10, 0.10333, 0.10666, 0.11, 0.11333, 0.11666, + 0.12, 0.12333, 0.12666, 0.13, 0.13333, 0.13666, 0.14, 0.14333, 0.14666, 0.15, 0.15333, 0.15666, 0.16, 0.16333, 0.16666, 0.17, 0.17333, 0.17666, + 0.18, 0.18333, 0.18666, 0.19, 0.19333, 0.19666, 0.20, 0.20333, 0.20666, 0.21, 0.21333, 0.21666, 0.22, 0.22333, 0.22666, 0.23, 0.23333, 0.23666, + 0.24, 0.24333, 0.24666, 0.25, 0.25333, 0.25666, 0.26, 0.26333, 0.26666, 0.27, 0.27333, 0.27666, 0.28, 0.28333, 0.28666, 0.29, 0.29333, 0.29666, + 0.30, 0.30333, 0.30666, 0.31, 0.31333, 0.31666, 0.32, 0.32333, 0.32666, 0.33, 0.33333, 0.33666, 0.34, 0.34333, 0.34666, 0.35, 0.35333, 0.35666, + 0.36, 0.36333, 0.36666, 0.37, 0.37333, 0.37666, 0.38, 0.38333, 0.38666, 0.39, 0.39333, 0.39666, 0.40, 0.40333, 0.40666, 0.41, 0.41333, 0.41666, + 0.42, 0.42333, 0.42666, 0.43, 0.43333, 0.43666, 0.44, 0.44333, 0.44666, 0.45, 0.45333, 0.45666, 0.46, 0.46333, 0.46666, 0.47, 0.47333, 0.47666, + 0.48, 0.48333, 0.48666, 0.49, 0.49333, 0.49666, 0.50, 0.50333, 0.50666, 0.51, 0.51333, 0.51666, 0.52, 0.52333, 0.52666, 0.53, 0.53333, 0.53666, + 0.54, 0.54333, 0.54666, 0.55, 0.55333, 0.55666, 0.56, 0.56333, 0.56666, 0.57, 0.57333, 0.57666, 0.58, 0.58333, 0.58666, 0.59, 0.59333, 0.59666, + 0.60, 0.60333, 0.60666, 0.61, 0.61333, 0.61666, 0.62, 0.62333, 0.62666, 0.63, 0.63333, 0.63666, 0.64, 0.64333, 0.64666, 0.65, 0.65333, 0.65666, + 0.66, 0.66333, 0.66666, 0.67, 0.67333, 0.67666, 0.68, 0.68333, 0.68666, 0.69, 0.69333, 0.69666, 0.70, 0.70333, 0.70666, 0.71, 0.71333, 0.71666, + 0.72, 0.72333, 0.72666, 0.73, 0.73333, 0.73666, 0.74, 0.74333, 0.74666, 0.75, 0.75333, 0.75666, 0.76, 0.76333, 0.76666, 0.77, 0.77333, 0.77666, + 0.78, 0.78333, 0.78666, 0.79, 0.79333, 0.79666, 0.80, 0.80333, 0.80666, 0.81, 0.81333, 0.81666, 0.82, 0.82333, 0.82666, 0.83, 0.83333, 0.83666, + 0.84, 0.84333, 0.84666, 0.85, 0.85333, 0.85666, 0.86, 0.86333, 0.86666, 0.87, 0.87333, 0.87666, 0.88, 0.88333, 0.88666, 0.89, 0.89333, 0.89666, + 0.90, 0.90333, 0.90666, 0.91, 0.91333, 0.91666, 0.92, 0.92333, 0.92666, 0.93, 0.93333, 0.93666, 0.94, 0.94333, 0.94666, 0.95, 0.95333, 0.95666, + 0.96, 0.96333, 0.96666, 0.97, 0.97333, 0.97666, 0.98, 0.98333, 0.98666, 0.99, 0.99333, 0.99666, 1 + ], + "colorscale": "Cividis" + } + } + ], + "layout": { + "width": 800, + "height": 800, + "showlegend": false, + "xaxis": { + "showticklabels": false + }, + "yaxis": { + "showticklabels": false + } + } +} diff --git a/test/jasmine/tests/gl2d_pointcloud_test.js b/test/jasmine/tests/gl2d_pointcloud_test.js index 4c1fd47c6cf..b83326824f0 100644 --- a/test/jasmine/tests/gl2d_pointcloud_test.js +++ b/test/jasmine/tests/gl2d_pointcloud_test.js @@ -1,11 +1,17 @@ 'use strict'; var Plotly = require('@lib/index'); +var Lib = require('@src/lib'); +var d3 = require('d3'); // Test utilities var createGraphDiv = require('../assets/create_graph_div'); var destroyGraphDiv = require('../assets/destroy_graph_div'); var failTest = require('../assets/fail_test'); +var delay = require('../assets/delay'); +var readPixel = require('../assets/read_pixel'); + +var multipleScatter2dMock = require('@mocks/gl2d_scatter2d-multiple-colors.json'); var plotData = { 'data': [ @@ -186,4 +192,22 @@ describe('pointcloud traces', function() { .catch(failTest) .then(done); }); + + it('@gl should not change other traces colors', function(done) { + var _mock = Lib.extendDeep({}, multipleScatter2dMock); + Plotly.plot(gd, _mock) + .then(delay(40)) + .then(function() { + var canvas = d3.select('.gl-canvas-context').node(); + + var RGBA = readPixel(canvas, canvas.width / 2 - 1, canvas.height / 2 - 1, 1, 1); + + expect(RGBA[0] === 255).toBe(true, 'be red'); + expect(RGBA[1] === 0).toBe(true, 'no green'); + expect(RGBA[2] === 0).toBe(true, 'no blue'); + expect(RGBA[3] === 255).toBe(true, 'no transparent'); + }) + .catch(failTest) + .then(done); + }); });