diff --git a/package.json b/package.json index e4df8b7987a..7fe52af4a17 100644 --- a/package.json +++ b/package.json @@ -64,6 +64,7 @@ "delaunay-triangulate": "^1.1.6", "es6-promise": "^3.0.2", "fast-isnumeric": "^1.1.1", + "font-atlas-sdf": "^1.3.3", "gl-contour2d": "^1.1.2", "gl-error2d": "^1.2.1", "gl-error3d": "^1.0.6", @@ -76,7 +77,7 @@ "gl-plot3d": "^1.5.4", "gl-pointcloud2d": "^1.0.0", "gl-scatter2d": "^1.2.2", - "gl-scatter2d-sdf": "^1.3.9", + "gl-scatter2d-sdf": "^1.3.10", "gl-scatter3d": "^1.0.4", "gl-select-box": "^1.0.1", "gl-shader": "4.2.0", diff --git a/src/constants/gl2d_markers.js b/src/constants/gl2d_markers.js new file mode 100644 index 00000000000..85b2b9cf3c7 --- /dev/null +++ b/src/constants/gl2d_markers.js @@ -0,0 +1,132 @@ +/** +* Copyright 2012-2017, Plotly, Inc. +* All rights reserved. +* +* This source code is licensed under the MIT license found in the +* LICENSE file in the root directory of this source tree. +*/ + + +'use strict'; + +var extendFlat = require('../lib/extend').extendFlat; + +var symbolsWithOpenSupport = { + 'circle': { + unicode: '●' + }, + 'square': { + unicode: '■' + }, + 'diamond': { + unicode: '◆' + }, + 'cross': { + unicode: '✚' + }, + 'x': { + unicode: '❌' + }, + 'triangle-up': { + unicode: '▲' + }, + 'triangle-down': { + unicode: '▼' + }, + 'triangle-left': { + unicode: '◄' + }, + 'triangle-right': { + unicode: '►' + }, + 'triangle-ne': { + unicode: '◥' + }, + 'triangle-nw': { + unicode: '◤' + }, + 'triangle-se': { + unicode: '◢' + }, + 'triangle-sw': { + unicode: '◣' + }, + 'pentagon': { + unicode: '⬟' + }, + 'hexagon': { + unicode: '⬢' + }, + 'hexagon2': { + unicode: '⬣' + }, + 'star': { + unicode: '★' + }, + 'diamond-tall': { + unicode: '♦' + }, + 'bowtie': { + unicode: '⧓' + }, + 'diamond-x': { + unicode: '❖' + }, + 'cross-thin': { + unicode: '+', + noBorder: true + }, + 'asterisk': { + unicode: '✳', + noBorder: true + }, + 'y-up': { + unicode: '⅄', + noBorder: true + }, + 'y-down': { + unicode: 'Y', + noBorder: true + }, + 'line-ew': { + unicode: '─', + noBorder: true + }, + 'line-ns': { + unicode: '│', + noBorder: true + } +}; + +var openSymbols = {}; +var keys = Object.keys(symbolsWithOpenSupport); + +for(var i = 0; i < keys.length; i++) { + var k = keys[i]; + openSymbols[k + '-open'] = extendFlat({}, symbolsWithOpenSupport[k]); +} + +var otherSymbols = { + 'circle-cross-open': { + unicode: '⨁', + noFill: true + }, + 'circle-x-open': { + unicode: '⨂', + noFill: true + }, + 'square-cross-open': { + unicode: '⊞', + noFill: true + }, + 'square-x-open': { + unicode: '⊠', + noFill: true + } +}; + +module.exports = extendFlat({}, + symbolsWithOpenSupport, + openSymbols, + otherSymbols +); diff --git a/src/constants/gl_markers.js b/src/constants/gl3d_markers.js similarity index 100% rename from src/constants/gl_markers.js rename to src/constants/gl3d_markers.js diff --git a/src/traces/scatter3d/attributes.js b/src/traces/scatter3d/attributes.js index 7a74fd5b256..fe082ee519f 100644 --- a/src/traces/scatter3d/attributes.js +++ b/src/traces/scatter3d/attributes.js @@ -13,7 +13,7 @@ var colorAttributes = require('../../components/colorscale/color_attributes'); var errorBarAttrs = require('../../components/errorbars/attributes'); var DASHES = require('../../constants/gl3d_dashes'); -var MARKER_SYMBOLS = require('../../constants/gl_markers'); +var MARKER_SYMBOLS = require('../../constants/gl3d_markers'); var extendFlat = require('../../lib/extend').extendFlat; var scatterLineAttrs = scatterAttrs.line, diff --git a/src/traces/scatter3d/convert.js b/src/traces/scatter3d/convert.js index 0048b841e1a..d6ffbc1b240 100644 --- a/src/traces/scatter3d/convert.js +++ b/src/traces/scatter3d/convert.js @@ -20,7 +20,7 @@ var str2RgbaArray = require('../../lib/str2rgbarray'); var formatColor = require('../../lib/gl_format_color'); var makeBubbleSizeFn = require('../scatter/make_bubble_size_func'); var DASH_PATTERNS = require('../../constants/gl3d_dashes'); -var MARKER_SYMBOLS = require('../../constants/gl_markers'); +var MARKER_SYMBOLS = require('../../constants/gl3d_markers'); var calculateError = require('./calc_errors'); diff --git a/src/traces/scatter3d/index.js b/src/traces/scatter3d/index.js index e1399198c77..0e77661748c 100644 --- a/src/traces/scatter3d/index.js +++ b/src/traces/scatter3d/index.js @@ -12,7 +12,7 @@ var Scatter3D = {}; Scatter3D.plot = require('./convert'); Scatter3D.attributes = require('./attributes'); -Scatter3D.markerSymbols = require('../../constants/gl_markers'); +Scatter3D.markerSymbols = require('../../constants/gl3d_markers'); Scatter3D.supplyDefaults = require('./defaults'); Scatter3D.colorbar = require('../scatter/colorbar'); Scatter3D.calc = require('./calc'); diff --git a/src/traces/scattergl/attributes.js b/src/traces/scattergl/attributes.js index 2764714a5a7..637b6812338 100644 --- a/src/traces/scattergl/attributes.js +++ b/src/traces/scattergl/attributes.js @@ -12,7 +12,7 @@ var scatterAttrs = require('../scatter/attributes'); var colorAttributes = require('../../components/colorscale/color_attributes'); var DASHES = require('../../constants/gl2d_dashes'); -var MARKERS = require('../../constants/gl_markers'); +var MARKERS = require('../../constants/gl2d_markers'); var extendFlat = require('../../lib/extend').extendFlat; var extendDeep = require('../../lib/extend').extendDeep; diff --git a/src/traces/scattergl/convert.js b/src/traces/scattergl/convert.js index 143f9295446..d2956864376 100644 --- a/src/traces/scattergl/convert.js +++ b/src/traces/scattergl/convert.js @@ -25,11 +25,11 @@ var formatColor = require('../../lib/gl_format_color'); var subTypes = require('../scatter/subtypes'); var makeBubbleSizeFn = require('../scatter/make_bubble_size_func'); var getTraceColor = require('../scatter/get_trace_color'); -var MARKER_SYMBOLS = require('../../constants/gl_markers'); +var MARKER_SYMBOLS = require('../../constants/gl2d_markers'); var DASHES = require('../../constants/gl2d_dashes'); var AXES = ['xaxis', 'yaxis']; - +var transparent = [0, 0, 0, 0]; function LineWithMarkers(scene, uid) { this.scene = scene; @@ -214,7 +214,7 @@ function _convertArray(convert, data, count) { var convertNumber = convertArray.bind(null, function(x) { return +x; }); var convertColorBase = convertArray.bind(null, str2RGBArray); var convertSymbol = convertArray.bind(null, function(x) { - return MARKER_SYMBOLS[x] || '●'; + return MARKER_SYMBOLS[x] ? x : 'circle'; }); function convertColor(color, opacity, count) { @@ -251,8 +251,17 @@ function _convertColor(colors, opacities, count) { return result; } -proto.update = function(options) { +function isSymbolOpen(symbol) { + return symbol.split('-open')[1] === ''; +} +function fillColor(colorIn, colorOut, offsetIn, offsetOut) { + for(var j = 0; j < 4; j++) { + colorIn[4 * offsetIn + j] = colorOut[4 * offsetOut + j]; + } +} + +proto.update = function(options) { if(options.visible !== true) { this.isVisible = false; this.hasLines = false; @@ -441,7 +450,7 @@ proto.updateFancy = function(options) { var getX = (xaxis.type === 'log') ? xaxis.d2l : function(x) { return x; }; var getY = (yaxis.type === 'log') ? yaxis.d2l : function(y) { return y; }; - var i, j, xx, yy, ex0, ex1, ey0, ey1; + var i, xx, yy, ex0, ex1, ey0, ey1; for(i = 0; i < len; ++i) { this.xData[i] = xx = getX(x[i]); @@ -491,29 +500,53 @@ proto.updateFancy = function(options) { this.scatter.options.colors = new Array(pId * 4); this.scatter.options.borderColors = new Array(pId * 4); - var markerSizeFunc = makeBubbleSizeFn(options), - markerOpts = options.marker, - markerOpacity = markerOpts.opacity, - traceOpacity = options.opacity, - colors = convertColorScale(markerOpts, markerOpacity, traceOpacity, len), - glyphs = convertSymbol(markerOpts.symbol, len), - borderWidths = convertNumber(markerOpts.line.width, len), - borderColors = convertColorScale(markerOpts.line, markerOpacity, traceOpacity, len), - index; + var markerSizeFunc = makeBubbleSizeFn(options); + var markerOpts = options.marker; + var markerOpacity = markerOpts.opacity; + var traceOpacity = options.opacity; + var symbols = convertSymbol(markerOpts.symbol, len); + var colors = convertColorScale(markerOpts, markerOpacity, traceOpacity, len); + var borderWidths = convertNumber(markerOpts.line.width, len); + var borderColors = convertColorScale(markerOpts.line, markerOpacity, traceOpacity, len); + var index, size, symbol, symbolSpec, isOpen, _colors, _borderColors, bw, minBorderWidth; sizes = convertArray(markerSizeFunc, markerOpts.size, len); for(i = 0; i < pId; ++i) { index = idToIndex[i]; - this.scatter.options.sizes[i] = 4.0 * sizes[index]; - this.scatter.options.glyphs[i] = glyphs[index]; - this.scatter.options.borderWidths[i] = 0.5 * borderWidths[index]; + symbol = symbols[index]; + symbolSpec = MARKER_SYMBOLS[symbol]; + isOpen = isSymbolOpen(symbol); + + if(symbolSpec.noBorder && !isOpen) { + _colors = borderColors; + } else { + _colors = colors; + } + + if(isOpen) { + _borderColors = colors; + } else { + _borderColors = borderColors; + } + + // See https://github.com/plotly/plotly.js/pull/1781#discussion_r121820798 + // for more info on this logic + size = sizes[index]; + bw = borderWidths[index]; + minBorderWidth = (symbolSpec.noBorder || symbolSpec.noFill) ? 0.1 * size : 0; + + this.scatter.options.sizes[i] = 4.0 * size; + this.scatter.options.glyphs[i] = symbolSpec.unicode; + this.scatter.options.borderWidths[i] = 0.5 * ((bw > minBorderWidth) ? bw - minBorderWidth : 0); - for(j = 0; j < 4; ++j) { - this.scatter.options.colors[4 * i + j] = colors[4 * index + j]; - this.scatter.options.borderColors[4 * i + j] = borderColors[4 * index + j]; + if(isOpen && !symbolSpec.noBorder && !symbolSpec.noFill) { + fillColor(this.scatter.options.colors, transparent, i, 0); + } else { + fillColor(this.scatter.options.colors, _colors, i, index); } + fillColor(this.scatter.options.borderColors, _borderColors, i, index); } this.fancyScatter.update(); diff --git a/test/image/baselines/gl2d_10.png b/test/image/baselines/gl2d_10.png index d822d650409..36932d9a204 100644 Binary files a/test/image/baselines/gl2d_10.png and b/test/image/baselines/gl2d_10.png differ diff --git a/test/image/baselines/gl2d_12.png b/test/image/baselines/gl2d_12.png index 730a8299a6c..dbda9d4c0bb 100644 Binary files a/test/image/baselines/gl2d_12.png and b/test/image/baselines/gl2d_12.png differ diff --git a/test/image/baselines/gl2d_14.png b/test/image/baselines/gl2d_14.png index e737ab88e45..a8ede620d7d 100644 Binary files a/test/image/baselines/gl2d_14.png and b/test/image/baselines/gl2d_14.png differ diff --git a/test/image/baselines/gl2d_17.png b/test/image/baselines/gl2d_17.png index 0539d429294..5797e3ce4a3 100644 Binary files a/test/image/baselines/gl2d_17.png and b/test/image/baselines/gl2d_17.png differ diff --git a/test/image/baselines/gl2d_axes_booleans.png b/test/image/baselines/gl2d_axes_booleans.png index 90ff2f77818..378d57d0226 100644 Binary files a/test/image/baselines/gl2d_axes_booleans.png and b/test/image/baselines/gl2d_axes_booleans.png differ diff --git a/test/image/baselines/gl2d_axes_labels.png b/test/image/baselines/gl2d_axes_labels.png index 05f36c528ac..79126e72024 100644 Binary files a/test/image/baselines/gl2d_axes_labels.png and b/test/image/baselines/gl2d_axes_labels.png differ diff --git a/test/image/baselines/gl2d_axes_lines.png b/test/image/baselines/gl2d_axes_lines.png index d13e0582e51..d6c1f079692 100644 Binary files a/test/image/baselines/gl2d_axes_lines.png and b/test/image/baselines/gl2d_axes_lines.png differ diff --git a/test/image/baselines/gl2d_axes_range_manual.png b/test/image/baselines/gl2d_axes_range_manual.png index 907f4e1112d..d11f89af02d 100644 Binary files a/test/image/baselines/gl2d_axes_range_manual.png and b/test/image/baselines/gl2d_axes_range_manual.png differ diff --git a/test/image/baselines/gl2d_axes_range_mode.png b/test/image/baselines/gl2d_axes_range_mode.png index 3de858812e7..18692d3c313 100644 Binary files a/test/image/baselines/gl2d_axes_range_mode.png and b/test/image/baselines/gl2d_axes_range_mode.png differ diff --git a/test/image/baselines/gl2d_axes_range_type.png b/test/image/baselines/gl2d_axes_range_type.png index 953f3b44c2b..a038b80cdda 100644 Binary files a/test/image/baselines/gl2d_axes_range_type.png and b/test/image/baselines/gl2d_axes_range_type.png differ diff --git a/test/image/baselines/gl2d_date_axes.png b/test/image/baselines/gl2d_date_axes.png index ba6e7d0b66b..a40439641a0 100644 Binary files a/test/image/baselines/gl2d_date_axes.png and b/test/image/baselines/gl2d_date_axes.png differ diff --git a/test/image/baselines/gl2d_error_bars.png b/test/image/baselines/gl2d_error_bars.png index 0adfdf78ca8..2ea2a53889c 100644 Binary files a/test/image/baselines/gl2d_error_bars.png and b/test/image/baselines/gl2d_error_bars.png differ diff --git a/test/image/baselines/gl2d_marker_line_width.png b/test/image/baselines/gl2d_marker_line_width.png new file mode 100644 index 00000000000..86431cb8663 Binary files /dev/null and b/test/image/baselines/gl2d_marker_line_width.png differ diff --git a/test/image/baselines/gl2d_marker_symbols.png b/test/image/baselines/gl2d_marker_symbols.png index 2c4908e389a..ab5da027992 100644 Binary files a/test/image/baselines/gl2d_marker_symbols.png and b/test/image/baselines/gl2d_marker_symbols.png differ diff --git a/test/image/baselines/gl2d_multiple_subplots.png b/test/image/baselines/gl2d_multiple_subplots.png index 5b514f69f29..058ce315bbb 100644 Binary files a/test/image/baselines/gl2d_multiple_subplots.png and b/test/image/baselines/gl2d_multiple_subplots.png differ diff --git a/test/image/baselines/gl2d_scatter-colorscale-colorbar.png b/test/image/baselines/gl2d_scatter-colorscale-colorbar.png index 055f36f6108..3564bdb23c2 100644 Binary files a/test/image/baselines/gl2d_scatter-colorscale-colorbar.png and b/test/image/baselines/gl2d_scatter-colorscale-colorbar.png differ diff --git a/test/image/baselines/gl2d_scatter-marker-line-colorscales.png b/test/image/baselines/gl2d_scatter-marker-line-colorscales.png index b077fd2f094..ead2030832c 100644 Binary files a/test/image/baselines/gl2d_scatter-marker-line-colorscales.png and b/test/image/baselines/gl2d_scatter-marker-line-colorscales.png differ diff --git a/test/image/baselines/gl2d_simple_inset.png b/test/image/baselines/gl2d_simple_inset.png index 88004d7eaba..b7d0f20651f 100644 Binary files a/test/image/baselines/gl2d_simple_inset.png and b/test/image/baselines/gl2d_simple_inset.png differ diff --git a/test/image/baselines/gl2d_size_margins.png b/test/image/baselines/gl2d_size_margins.png index 83e37357b78..700af178465 100644 Binary files a/test/image/baselines/gl2d_size_margins.png and b/test/image/baselines/gl2d_size_margins.png differ diff --git a/test/image/baselines/gl2d_stacked_coupled_subplots.png b/test/image/baselines/gl2d_stacked_coupled_subplots.png index a288fb16e0c..bda5a6a2f36 100644 Binary files a/test/image/baselines/gl2d_stacked_coupled_subplots.png and b/test/image/baselines/gl2d_stacked_coupled_subplots.png differ diff --git a/test/image/baselines/gl2d_stacked_subplots.png b/test/image/baselines/gl2d_stacked_subplots.png index fb750b40520..7734163777c 100644 Binary files a/test/image/baselines/gl2d_stacked_subplots.png and b/test/image/baselines/gl2d_stacked_subplots.png differ diff --git a/test/image/baselines/gl3d_marker_symbols.png b/test/image/baselines/gl3d_marker_symbols.png new file mode 100644 index 00000000000..e80deb94182 Binary files /dev/null and b/test/image/baselines/gl3d_marker_symbols.png differ diff --git a/test/image/baselines/marker_line_width.png b/test/image/baselines/marker_line_width.png new file mode 100644 index 00000000000..a9fa974dcdf Binary files /dev/null and b/test/image/baselines/marker_line_width.png differ diff --git a/test/image/baselines/marker_symbols.png b/test/image/baselines/marker_symbols.png new file mode 100644 index 00000000000..60646e31a2c Binary files /dev/null and b/test/image/baselines/marker_symbols.png differ diff --git a/test/image/mocks/gl2d_marker_line_width.json b/test/image/mocks/gl2d_marker_line_width.json new file mode 100644 index 00000000000..ad92cf3431d --- /dev/null +++ b/test/image/mocks/gl2d_marker_line_width.json @@ -0,0 +1,592 @@ +{ + "data": [ + { + "type": "scattergl", + "mode": "markers", + "x": [ + 0, + 1, + 2, + 3, + 4, + 5, + 0, + 1, + 2, + 3, + 4, + 5, + 0, + 1, + 2, + 3, + 4, + 5, + 0, + 1, + 2, + 3, + 4, + 5, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 6, + 7, + 8, + 9, + 10, + 11, + 6, + 7, + 8, + 9, + 10, + 11, + 6, + 7, + 8, + 9, + 10, + 11, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 12, + 13, + 14, + 15, + 16, + 17, + 12, + 13, + 14, + 15, + 16, + 17, + 12, + 13, + 14, + 15, + 16, + 17, + 12, + 13, + 14, + 15, + 16, + 17 + ], + "y": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 3, + 3, + 3, + 4, + 4, + 4, + 4, + 4, + 4, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 3, + 3, + 3, + 4, + 4, + 4, + 4, + 4, + 4, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 3, + 3, + 3, + 4, + 4, + 4, + 4, + 4, + 4 + ], + "marker": { + "color": "blue", + "size": [ + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40 + ], + "symbol": [ + "circle", + "diamond-x", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open", + "circle", + "diamond-x", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open", + "circle", + "diamond-x", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open", + "circle", + "diamond-x", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open", + "circle", + "diamond-x", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open", + "circle", + "diamond-x", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open", + "circle", + "diamond-x", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open", + "circle", + "diamond-x", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open", + "circle", + "diamond-x", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open", + "circle", + "diamond-x", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open", + "circle", + "diamond-x", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open", + "circle", + "diamond-x", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open", + "circle", + "diamond-x", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open", + "circle", + "diamond-x", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open", + "circle", + "diamond-x", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open" + ], + "line": { + "color": "orange", + "width": [ + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 1.5, + 1.5, + 1.5, + 1.5, + 1.5, + 1.5, + 3, + 3, + 3, + 3, + 3, + 3, + 5, + 5, + 5, + 5, + 5, + 5, + 10, + 10, + 10, + 10, + 10, + 10, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 1.5, + 1.5, + 1.5, + 1.5, + 1.5, + 1.5, + 3, + 3, + 3, + 3, + 3, + 3, + 5, + 5, + 5, + 5, + 5, + 5, + 10, + 10, + 10, + 10, + 10, + 10, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 1.5, + 1.5, + 1.5, + 1.5, + 1.5, + 1.5, + 3, + 3, + 3, + 3, + 3, + 3, + 5, + 5, + 5, + 5, + 5, + 5, + 10, + 10, + 10, + 10, + 10, + 10 + ] + } + }, + "text": [ + "marker.symbol: circle
marker.line.width: 0.5
marker.size: 5", + "marker.symbol: diamond-x
marker.line.width: 0.5
marker.size: 5", + "marker.symbol: circle-cross-open
marker.line.width: 0.5
marker.size: 5", + "marker.symbol: circle-x-open
marker.line.width: 0.5
marker.size: 5", + "marker.symbol: square-cross-open
marker.line.width: 0.5
marker.size: 5", + "marker.symbol: square-x-open
marker.line.width: 0.5
marker.size: 5", + "marker.symbol: circle
marker.line.width: 1.5
marker.size: 5", + "marker.symbol: diamond-x
marker.line.width: 1.5
marker.size: 5", + "marker.symbol: circle-cross-open
marker.line.width: 1.5
marker.size: 5", + "marker.symbol: circle-x-open
marker.line.width: 1.5
marker.size: 5", + "marker.symbol: square-cross-open
marker.line.width: 1.5
marker.size: 5", + "marker.symbol: square-x-open
marker.line.width: 1.5
marker.size: 5", + "marker.symbol: circle
marker.line.width: 3
marker.size: 5", + "marker.symbol: diamond-x
marker.line.width: 3
marker.size: 5", + "marker.symbol: circle-cross-open
marker.line.width: 3
marker.size: 5", + "marker.symbol: circle-x-open
marker.line.width: 3
marker.size: 5", + "marker.symbol: square-cross-open
marker.line.width: 3
marker.size: 5", + "marker.symbol: square-x-open
marker.line.width: 3
marker.size: 5", + "marker.symbol: circle
marker.line.width: 5
marker.size: 5", + "marker.symbol: diamond-x
marker.line.width: 5
marker.size: 5", + "marker.symbol: circle-cross-open
marker.line.width: 5
marker.size: 5", + "marker.symbol: circle-x-open
marker.line.width: 5
marker.size: 5", + "marker.symbol: square-cross-open
marker.line.width: 5
marker.size: 5", + "marker.symbol: square-x-open
marker.line.width: 5
marker.size: 5", + "marker.symbol: circle
marker.line.width: 10
marker.size: 5", + "marker.symbol: diamond-x
marker.line.width: 10
marker.size: 5", + "marker.symbol: circle-cross-open
marker.line.width: 10
marker.size: 5", + "marker.symbol: circle-x-open
marker.line.width: 10
marker.size: 5", + "marker.symbol: square-cross-open
marker.line.width: 10
marker.size: 5", + "marker.symbol: square-x-open
marker.line.width: 10
marker.size: 5", + "marker.symbol: circle
marker.line.width: 0.5
marker.size: 20", + "marker.symbol: diamond-x
marker.line.width: 0.5
marker.size: 20", + "marker.symbol: circle-cross-open
marker.line.width: 0.5
marker.size: 20", + "marker.symbol: circle-x-open
marker.line.width: 0.5
marker.size: 20", + "marker.symbol: square-cross-open
marker.line.width: 0.5
marker.size: 20", + "marker.symbol: square-x-open
marker.line.width: 0.5
marker.size: 20", + "marker.symbol: circle
marker.line.width: 1.5
marker.size: 20", + "marker.symbol: diamond-x
marker.line.width: 1.5
marker.size: 20", + "marker.symbol: circle-cross-open
marker.line.width: 1.5
marker.size: 20", + "marker.symbol: circle-x-open
marker.line.width: 1.5
marker.size: 20", + "marker.symbol: square-cross-open
marker.line.width: 1.5
marker.size: 20", + "marker.symbol: square-x-open
marker.line.width: 1.5
marker.size: 20", + "marker.symbol: circle
marker.line.width: 3
marker.size: 20", + "marker.symbol: diamond-x
marker.line.width: 3
marker.size: 20", + "marker.symbol: circle-cross-open
marker.line.width: 3
marker.size: 20", + "marker.symbol: circle-x-open
marker.line.width: 3
marker.size: 20", + "marker.symbol: square-cross-open
marker.line.width: 3
marker.size: 20", + "marker.symbol: square-x-open
marker.line.width: 3
marker.size: 20", + "marker.symbol: circle
marker.line.width: 5
marker.size: 20", + "marker.symbol: diamond-x
marker.line.width: 5
marker.size: 20", + "marker.symbol: circle-cross-open
marker.line.width: 5
marker.size: 20", + "marker.symbol: circle-x-open
marker.line.width: 5
marker.size: 20", + "marker.symbol: square-cross-open
marker.line.width: 5
marker.size: 20", + "marker.symbol: square-x-open
marker.line.width: 5
marker.size: 20", + "marker.symbol: circle
marker.line.width: 10
marker.size: 20", + "marker.symbol: diamond-x
marker.line.width: 10
marker.size: 20", + "marker.symbol: circle-cross-open
marker.line.width: 10
marker.size: 20", + "marker.symbol: circle-x-open
marker.line.width: 10
marker.size: 20", + "marker.symbol: square-cross-open
marker.line.width: 10
marker.size: 20", + "marker.symbol: square-x-open
marker.line.width: 10
marker.size: 20", + "marker.symbol: circle
marker.line.width: 0.5
marker.size: 40", + "marker.symbol: diamond-x
marker.line.width: 0.5
marker.size: 40", + "marker.symbol: circle-cross-open
marker.line.width: 0.5
marker.size: 40", + "marker.symbol: circle-x-open
marker.line.width: 0.5
marker.size: 40", + "marker.symbol: square-cross-open
marker.line.width: 0.5
marker.size: 40", + "marker.symbol: square-x-open
marker.line.width: 0.5
marker.size: 40", + "marker.symbol: circle
marker.line.width: 1.5
marker.size: 40", + "marker.symbol: diamond-x
marker.line.width: 1.5
marker.size: 40", + "marker.symbol: circle-cross-open
marker.line.width: 1.5
marker.size: 40", + "marker.symbol: circle-x-open
marker.line.width: 1.5
marker.size: 40", + "marker.symbol: square-cross-open
marker.line.width: 1.5
marker.size: 40", + "marker.symbol: square-x-open
marker.line.width: 1.5
marker.size: 40", + "marker.symbol: circle
marker.line.width: 3
marker.size: 40", + "marker.symbol: diamond-x
marker.line.width: 3
marker.size: 40", + "marker.symbol: circle-cross-open
marker.line.width: 3
marker.size: 40", + "marker.symbol: circle-x-open
marker.line.width: 3
marker.size: 40", + "marker.symbol: square-cross-open
marker.line.width: 3
marker.size: 40", + "marker.symbol: square-x-open
marker.line.width: 3
marker.size: 40", + "marker.symbol: circle
marker.line.width: 5
marker.size: 40", + "marker.symbol: diamond-x
marker.line.width: 5
marker.size: 40", + "marker.symbol: circle-cross-open
marker.line.width: 5
marker.size: 40", + "marker.symbol: circle-x-open
marker.line.width: 5
marker.size: 40", + "marker.symbol: square-cross-open
marker.line.width: 5
marker.size: 40", + "marker.symbol: square-x-open
marker.line.width: 5
marker.size: 40", + "marker.symbol: circle
marker.line.width: 10
marker.size: 40", + "marker.symbol: diamond-x
marker.line.width: 10
marker.size: 40", + "marker.symbol: circle-cross-open
marker.line.width: 10
marker.size: 40", + "marker.symbol: circle-x-open
marker.line.width: 10
marker.size: 40", + "marker.symbol: square-cross-open
marker.line.width: 10
marker.size: 40", + "marker.symbol: square-x-open
marker.line.width: 10
marker.size: 40" + ], + "hoverinfo": "text" + } + ], + "layout": { + "showlegend": false, + "margin": { + "l": 0, + "r": 0, + "t": 0, + "b": 0 + }, + "xaxis": { + "range": [-0.5, 18], + "showticklabels": false, + "showgrid": false, + "zeroline": false + }, + "yaxis": { + "range": [-0.5, 4.5], + "showticklabels": false, + "showgrid": false, + "zeroline": false + }, + "width": 800, + "height": 400, + "plot_bgcolor": "#d3d3d3", + "hovermode": "closest" + } +} diff --git a/test/image/mocks/gl2d_marker_symbols.json b/test/image/mocks/gl2d_marker_symbols.json index cdd44dbfbf4..a0026b59db1 100644 --- a/test/image/mocks/gl2d_marker_symbols.json +++ b/test/image/mocks/gl2d_marker_symbols.json @@ -2,52 +2,1028 @@ "data": [ { "type": "scattergl", - "x": [1, 2, 3, 4, 5, 6, 7], - "y": [1, 1, 1, 1, 1, 1, 1], "mode": "markers", - "text": [ - "marker symbol: 'circle'", - "marker symbol: 'circle-open'", - "marker symbol: 'square'", - "marker symbol: 'square-open'", - "marker symbol: 'diamond'", - "marker symbol: 'diamond-open'", - "marker symbol: 'cross'" + "x": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4 + ], + "y": [ + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1, + 0, + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1, + 0, + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1, + 0, + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1, + 0, + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1, + 0 ], "marker": { - "color": "blue", - "size": 20, "symbol": [ "circle", - "circle-open", "square", - "square-open", "diamond", + "cross", + "x", + "triangle-up", + "triangle-down", + "triangle-left", + "triangle-right", + "triangle-ne", + "triangle-se", + "triangle-sw", + "triangle-nw", + "pentagon", + "hexagon", + "hexagon2", + "octagon", + "star", + "hexagram", + "star-triangle-up", + "star-triangle-down", + "star-square", + "star-diamond", + "diamond-tall", + "diamond-wide", + "hourglass", + "bowtie", + "circle-cross", + "circle-x", + "square-cross", + "square-x", + "diamond-cross", + "diamond-x", + "cross-thin", + "x-thin", + "asterisk", + "hash", + "y-up", + "y-down", + "y-left", + "y-right", + "line-ew", + "line-ns", + "line-ne", + "line-nw" + ], + "color": "blue", + "size": [ + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 1, + 20, + 1, + 1, + 1, + 1, + 1, + 20, + 1, + 1, + 20, + 1, + 1, + 1, + 1, + 1, + 20, + 20, + 1, + 20, + 1, + 20, + 20, + 1, + 1, + 20, + 20, + 1, + 1 + ], + "line": { + "color": "orange", + "width": 1.5 + } + }, + "text": [ + "marker symbol: circle", + "marker symbol: square", + "marker symbol: diamond", + "marker symbol: cross", + "marker symbol: x", + "marker symbol: triangle-up", + "marker symbol: triangle-down", + "marker symbol: triangle-left", + "marker symbol: triangle-right", + "marker symbol: triangle-ne", + "marker symbol: triangle-se", + "marker symbol: triangle-sw", + "marker symbol: triangle-nw", + "marker symbol: pentagon", + "marker symbol: hexagon", + "marker symbol: hexagon2", + "marker symbol: octagon
NOT AVAILABLE", + "marker symbol: star", + "marker symbol: hexagram
NOT AVAILABLE", + "marker symbol: star-triangle-up
NOT AVAILABLE", + "marker symbol: star-triangle-down
NOT AVAILABLE", + "marker symbol: star-square
NOT AVAILABLE", + "marker symbol: star-diamond
NOT AVAILABLE", + "marker symbol: diamond-tall", + "marker symbol: diamond-wide
NOT AVAILABLE", + "marker symbol: hourglass
NOT AVAILABLE", + "marker symbol: bowtie", + "marker symbol: circle-cross
NOT AVAILABLE", + "marker symbol: circle-x
NOT AVAILABLE", + "marker symbol: square-cross
NOT AVAILABLE", + "marker symbol: square-x
NOT AVAILABLE", + "marker symbol: diamond-cross
NOT AVAILABLE", + "marker symbol: diamond-x", + "marker symbol: cross-thin", + "marker symbol: x-thin
NOT AVAILABLE", + "marker symbol: asterisk", + "marker symbol: hash
NOT AVAILABLE", + "marker symbol: y-up", + "marker symbol: y-down", + "marker symbol: y-left
NOT AVAILABLE", + "marker symbol: y-right
NOT AVAILABLE", + "marker symbol: line-ew", + "marker symbol: line-ns", + "marker symbol: line-ne
NOT AVAILABLE", + "marker symbol: line-nw
NOT AVAILABLE" + ], + "hoverinfo": "text" + }, + { + "type": "scattergl", + "mode": "markers", + "x": [ + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9 + ], + "y": [ + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1, + 0, + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1, + 0, + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1, + 0, + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1, + 0, + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1, + 0 + ], + "marker": { + "symbol": [ + "circle-open", + "square-open", "diamond-open", - "cross" + "cross-open", + "x-open", + "triangle-up-open", + "triangle-down-open", + "triangle-left-open", + "triangle-right-open", + "triangle-ne-open", + "triangle-se-open", + "triangle-sw-open", + "triangle-nw-open", + "pentagon-open", + "hexagon-open", + "hexagon2-open", + "octagon-open", + "star-open", + "hexagram-open", + "star-triangle-up-open", + "star-triangle-down-open", + "star-square-open", + "star-diamond-open", + "diamond-tall-open", + "diamond-wide-open", + "hourglass-open", + "bowtie-open", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open", + "diamond-cross-open", + "diamond-x-open", + "cross-thin-open", + "x-thin-open", + "asterisk-open", + "hash-open", + "y-up-open", + "y-down-open", + "y-left-open", + "y-right-open", + "line-ew-open", + "line-ns-open", + "line-ne-open", + "line-nw-open" + ], + "color": "blue", + "size": [ + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 1, + 20, + 1, + 1, + 1, + 1, + 1, + 20, + 1, + 1, + 20, + 20, + 20, + 20, + 20, + 1, + 1, + 20, + 1, + 20, + 1, + 20, + 20, + 1, + 1, + 20, + 20, + 1, + 1 ], "line": { "color": "orange", "width": 1.5 } - } + }, + "text": [ + "marker symbol: circle-open", + "marker symbol: square-open", + "marker symbol: diamond-open", + "marker symbol: cross-open", + "marker symbol: x-open", + "marker symbol: triangle-up-open", + "marker symbol: triangle-down-open", + "marker symbol: triangle-left-open", + "marker symbol: triangle-right-open", + "marker symbol: triangle-ne-open", + "marker symbol: triangle-se-open", + "marker symbol: triangle-sw-open", + "marker symbol: triangle-nw-open", + "marker symbol: pentagon-open", + "marker symbol: hexagon-open", + "marker symbol: hexagon2-open", + "marker symbol: octagon-open
NOT AVAILABLE", + "marker symbol: star-open", + "marker symbol: hexagram-open
NOT AVAILABLE", + "marker symbol: star-triangle-up-open
NOT AVAILABLE", + "marker symbol: star-triangle-down-open
NOT AVAILABLE", + "marker symbol: star-square-open
NOT AVAILABLE", + "marker symbol: star-diamond-open
NOT AVAILABLE", + "marker symbol: diamond-tall-open", + "marker symbol: diamond-wide-open
NOT AVAILABLE", + "marker symbol: hourglass-open
NOT AVAILABLE", + "marker symbol: bowtie-open", + "marker symbol: circle-cross-open", + "marker symbol: circle-x-open", + "marker symbol: square-cross-open", + "marker symbol: square-x-open", + "marker symbol: diamond-cross-open
NOT AVAILABLE", + "marker symbol: diamond-x-open
NOT AVAILABLE", + "marker symbol: cross-thin-open", + "marker symbol: x-thin-open
NOT AVAILABLE", + "marker symbol: asterisk-open", + "marker symbol: hash-open
NOT AVAILABLE", + "marker symbol: y-up-open", + "marker symbol: y-down-open", + "marker symbol: y-left-open
NOT AVAILABLE", + "marker symbol: y-right-open
NOT AVAILABLE", + "marker symbol: line-ew-open", + "marker symbol: line-ns-open", + "marker symbol: line-ne-open
NOT AVAILABLE", + "marker symbol: line-nw-open
NOT AVAILABLE" + ], + "hoverinfo": "text" + }, + { + "type": "scattergl", + "mode": "markers", + "x": [ + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 12, + 12, + 12, + 12, + 12, + 12, + 12, + 12, + 12, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14 + ], + "y": [ + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1, + 0, + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1, + 0, + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1, + 0, + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1, + 0, + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1, + 0 + ], + "marker": { + "symbol": [ + "circle-dot", + "square-dot", + "diamond-dot", + "cross-dot", + "x-dot", + "triangle-up-dot", + "triangle-down-dot", + "triangle-left-dot", + "triangle-right-dot", + "triangle-ne-dot", + "triangle-se-dot", + "triangle-sw-dot", + "triangle-nw-dot", + "pentagon-dot", + "hexagon-dot", + "hexagon2-dot", + "octagon-dot", + "star-dot", + "hexagram-dot", + "star-triangle-up-dot", + "star-triangle-down-dot", + "star-square-dot", + "star-diamond-dot", + "diamond-tall-dot", + "diamond-wide-dot", + "hourglass-dot", + "bowtie-dot", + "circle-cross-dot", + "circle-x-dot", + "square-cross-dot", + "square-x-dot", + "diamond-cross-dot", + "diamond-x-dot", + "cross-thin-dot", + "x-thin-dot", + "asterisk-dot", + "hash-dot", + "y-up-dot", + "y-down-dot", + "y-left-dot", + "y-right-dot", + "line-ew-dot", + "line-ns-dot", + "line-ne-dot", + "line-nw-dot" + ], + "color": "blue", + "size": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ], + "line": { + "color": "orange", + "width": 1.5 + } + }, + "text": [ + "marker symbol: circle-dot
NOT AVAILABLE", + "marker symbol: square-dot
NOT AVAILABLE", + "marker symbol: diamond-dot
NOT AVAILABLE", + "marker symbol: cross-dot
NOT AVAILABLE", + "marker symbol: x-dot
NOT AVAILABLE", + "marker symbol: triangle-up-dot
NOT AVAILABLE", + "marker symbol: triangle-down-dot
NOT AVAILABLE", + "marker symbol: triangle-left-dot
NOT AVAILABLE", + "marker symbol: triangle-right-dot
NOT AVAILABLE", + "marker symbol: triangle-ne-dot
NOT AVAILABLE", + "marker symbol: triangle-se-dot
NOT AVAILABLE", + "marker symbol: triangle-sw-dot
NOT AVAILABLE", + "marker symbol: triangle-nw-dot
NOT AVAILABLE", + "marker symbol: pentagon-dot
NOT AVAILABLE", + "marker symbol: hexagon-dot
NOT AVAILABLE", + "marker symbol: hexagon2-dot
NOT AVAILABLE", + "marker symbol: octagon-dot
NOT AVAILABLE", + "marker symbol: star-dot
NOT AVAILABLE", + "marker symbol: hexagram-dot
NOT AVAILABLE", + "marker symbol: star-triangle-up-dot
NOT AVAILABLE", + "marker symbol: star-triangle-down-dot
NOT AVAILABLE", + "marker symbol: star-square-dot
NOT AVAILABLE", + "marker symbol: star-diamond-dot
NOT AVAILABLE", + "marker symbol: diamond-tall-dot
NOT AVAILABLE", + "marker symbol: diamond-wide-dot
NOT AVAILABLE", + "marker symbol: hourglass-dot
NOT AVAILABLE", + "marker symbol: bowtie-dot
NOT AVAILABLE", + "marker symbol: circle-cross-dot
NOT AVAILABLE", + "marker symbol: circle-x-dot
NOT AVAILABLE", + "marker symbol: square-cross-dot
NOT AVAILABLE", + "marker symbol: square-x-dot
NOT AVAILABLE", + "marker symbol: diamond-cross-dot
NOT AVAILABLE", + "marker symbol: diamond-x-dot
NOT AVAILABLE", + "marker symbol: cross-thin-dot
NOT AVAILABLE", + "marker symbol: x-thin-dot
NOT AVAILABLE", + "marker symbol: asterisk-dot
NOT AVAILABLE", + "marker symbol: hash-dot
NOT AVAILABLE", + "marker symbol: y-up-dot
NOT AVAILABLE", + "marker symbol: y-down-dot
NOT AVAILABLE", + "marker symbol: y-left-dot
NOT AVAILABLE", + "marker symbol: y-right-dot
NOT AVAILABLE", + "marker symbol: line-ew-dot
NOT AVAILABLE", + "marker symbol: line-ns-dot
NOT AVAILABLE", + "marker symbol: line-ne-dot
NOT AVAILABLE", + "marker symbol: line-nw-dot
NOT AVAILABLE" + ], + "hoverinfo": "text" + }, + { + "type": "scattergl", + "mode": "markers", + "x": [ + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 19, + 19, + 19, + 19, + 19, + 19, + 19, + 19, + 19 + ], + "y": [ + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1, + 0, + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1, + 0, + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1, + 0, + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1, + 0, + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1, + 0 + ], + "marker": { + "symbol": [ + "circle-open-dot", + "square-open-dot", + "diamond-open-dot", + "cross-open-dot", + "x-open-dot", + "triangle-up-open-dot", + "triangle-down-open-dot", + "triangle-left-open-dot", + "triangle-right-open-dot", + "triangle-ne-open-dot", + "triangle-se-open-dot", + "triangle-sw-open-dot", + "triangle-nw-open-dot", + "pentagon-open-dot", + "hexagon-open-dot", + "hexagon2-open-dot", + "octagon-open-dot", + "star-open-dot", + "hexagram-open-dot", + "star-triangle-up-open-dot", + "star-triangle-down-open-dot", + "star-square-open-dot", + "star-diamond-open-dot", + "diamond-tall-open-dot", + "diamond-wide-open-dot", + "hourglass-open-dot", + "bowtie-open-dot", + "circle-cross-open-dot", + "circle-x-open-dot", + "square-cross-open-dot", + "square-x-open-dot", + "diamond-cross-open-dot", + "diamond-x-open-dot", + "cross-thin-open-dot", + "x-thin-open-dot", + "asterisk-open-dot", + "hash-open-dot", + "y-up-open-dot", + "y-down-open-dot", + "y-left-open-dot", + "y-right-open-dot", + "line-ew-open-dot", + "line-ns-open-dot", + "line-ne-open-dot", + "line-nw-open-dot" + ], + "color": "blue", + "size": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ], + "line": { + "color": "orange", + "width": 1.5 + } + }, + "text": [ + "marker symbol: circle-open-dot
NOT AVAILABLE", + "marker symbol: square-open-dot
NOT AVAILABLE", + "marker symbol: diamond-open-dot
NOT AVAILABLE", + "marker symbol: cross-open-dot
NOT AVAILABLE", + "marker symbol: x-open-dot
NOT AVAILABLE", + "marker symbol: triangle-up-open-dot
NOT AVAILABLE", + "marker symbol: triangle-down-open-dot
NOT AVAILABLE", + "marker symbol: triangle-left-open-dot
NOT AVAILABLE", + "marker symbol: triangle-right-open-dot
NOT AVAILABLE", + "marker symbol: triangle-ne-open-dot
NOT AVAILABLE", + "marker symbol: triangle-se-open-dot
NOT AVAILABLE", + "marker symbol: triangle-sw-open-dot
NOT AVAILABLE", + "marker symbol: triangle-nw-open-dot
NOT AVAILABLE", + "marker symbol: pentagon-open-dot
NOT AVAILABLE", + "marker symbol: hexagon-open-dot
NOT AVAILABLE", + "marker symbol: hexagon2-open-dot
NOT AVAILABLE", + "marker symbol: octagon-open-dot
NOT AVAILABLE", + "marker symbol: star-open-dot
NOT AVAILABLE", + "marker symbol: hexagram-open-dot
NOT AVAILABLE", + "marker symbol: star-triangle-up-open-dot
NOT AVAILABLE", + "marker symbol: star-triangle-down-open-dot
NOT AVAILABLE", + "marker symbol: star-square-open-dot
NOT AVAILABLE", + "marker symbol: star-diamond-open-dot
NOT AVAILABLE", + "marker symbol: diamond-tall-open-dot
NOT AVAILABLE", + "marker symbol: diamond-wide-open-dot
NOT AVAILABLE", + "marker symbol: hourglass-open-dot
NOT AVAILABLE", + "marker symbol: bowtie-open-dot
NOT AVAILABLE", + "marker symbol: circle-cross-open-dot
NOT AVAILABLE", + "marker symbol: circle-x-open-dot
NOT AVAILABLE", + "marker symbol: square-cross-open-dot
NOT AVAILABLE", + "marker symbol: square-x-open-dot
NOT AVAILABLE", + "marker symbol: diamond-cross-open-dot
NOT AVAILABLE", + "marker symbol: diamond-x-open-dot
NOT AVAILABLE", + "marker symbol: cross-thin-open-dot
NOT AVAILABLE", + "marker symbol: x-thin-open-dot
NOT AVAILABLE", + "marker symbol: asterisk-open-dot
NOT AVAILABLE", + "marker symbol: hash-open-dot
NOT AVAILABLE", + "marker symbol: y-up-open-dot
NOT AVAILABLE", + "marker symbol: y-down-open-dot
NOT AVAILABLE", + "marker symbol: y-left-open-dot
NOT AVAILABLE", + "marker symbol: y-right-open-dot
NOT AVAILABLE", + "marker symbol: line-ew-open-dot
NOT AVAILABLE", + "marker symbol: line-ns-open-dot
NOT AVAILABLE", + "marker symbol: line-ne-open-dot
NOT AVAILABLE", + "marker symbol: line-nw-open-dot
NOT AVAILABLE" + ], + "hoverinfo": "text" } ], "layout": { - "width": 500, + "margin": { + "l": 0, + "r": 0, + "b": 0, + "t": 0 + }, + "width": 800, "height": 500, "xaxis": { - "zeroline": false, - "showline": false, - "showticklabels": false, - "range": [0, 10] + "showgrid": false, + "zeroline": false }, "yaxis": { - "zeroline": false, - "showline": false, - "showticklabels": false, - "range": [0, 6] + "showgrid": false, + "zeroline": false }, - "hovermode": "closest" + "showlegend": false, + "hovermode": "closest", + "plot_bgcolor": "#d3d3d3", + "annotations": [ + { + "showarrow": false, + "xref": "paper", + "yref": "paper", + "x": 1, + "xanchor": "right", + "y": 0.5, + "yanchor": "middle", + "xshift": -15, + "text": "IMPORTANT: marker symbol 'x' and 'x-open'
do not render in the imagetest container", + "font": { + "size": 16 + } + } + ] } } diff --git a/test/image/mocks/gl3d_marker_symbols.json b/test/image/mocks/gl3d_marker_symbols.json new file mode 100644 index 00000000000..805f931d8ef --- /dev/null +++ b/test/image/mocks/gl3d_marker_symbols.json @@ -0,0 +1,77 @@ +{ + "data": [ + { + "type": "scatter3d", + "x": [1, 2, 3, 4, 5, 6, 7, 8], + "y": [1, 1, 1, 1, 1, 1, 1, 1], + "z": [1, 1, 1, 1, 1, 1, 1, 1], + "mode": "markers", + "text": [ + "marker symbol: 'circle'", + "marker symbol: 'circle-open'", + "marker symbol: 'square'", + "marker symbol: 'square-open'", + "marker symbol: 'diamond'", + "marker symbol: 'diamond-open'", + "marker symbol: 'cross'" + ], + "marker": { + "color": "blue", + "size": 8, + "symbol": [ + "circle", + "circle-open", + "square", + "square-open", + "diamond", + "diamond-open", + "cross" + ], + "line": { + "color": "orange", + "width": 1.5 + } + }, + "hovertext": "text" + } + ], + "layout": { + "width": 500, + "height": 500, + "margin": {"l": 0, "r": 0, "b": 0, "t": 0}, + "scene": { + "camera": { + "eye": { + "x": 0.1, + "y": 0.1, + "z": 2.1 + } + }, + "xaxis": { + "showgrid": false, + "zeroline": false, + "showline": false, + "showticklabels": false, + "title": "", + "range": [0, 10] + }, + "yaxis": { + "showgrid": false, + "zeroline": false, + "showline": false, + "showticklabels": false, + "title": "", + "range": [0, 6] + }, + "zaxis": { + "showgrid": false, + "zeroline": false, + "showline": false, + "showticklabels": false, + "title": "", + "range": [0, 2] + } + }, + "hovermode": "closest" + } +} diff --git a/test/image/mocks/marker_line_width.json b/test/image/mocks/marker_line_width.json new file mode 100644 index 00000000000..eeaa857c611 --- /dev/null +++ b/test/image/mocks/marker_line_width.json @@ -0,0 +1,591 @@ +{ + "data": [ + { + "mode": "markers", + "x": [ + 0, + 1, + 2, + 3, + 4, + 5, + 0, + 1, + 2, + 3, + 4, + 5, + 0, + 1, + 2, + 3, + 4, + 5, + 0, + 1, + 2, + 3, + 4, + 5, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 6, + 7, + 8, + 9, + 10, + 11, + 6, + 7, + 8, + 9, + 10, + 11, + 6, + 7, + 8, + 9, + 10, + 11, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 12, + 13, + 14, + 15, + 16, + 17, + 12, + 13, + 14, + 15, + 16, + 17, + 12, + 13, + 14, + 15, + 16, + 17, + 12, + 13, + 14, + 15, + 16, + 17 + ], + "y": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 3, + 3, + 3, + 4, + 4, + 4, + 4, + 4, + 4, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 3, + 3, + 3, + 4, + 4, + 4, + 4, + 4, + 4, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 3, + 3, + 3, + 4, + 4, + 4, + 4, + 4, + 4 + ], + "marker": { + "color": "blue", + "size": [ + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 20, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40 + ], + "symbol": [ + "circle", + "diamond-x", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open", + "circle", + "diamond-x", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open", + "circle", + "diamond-x", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open", + "circle", + "diamond-x", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open", + "circle", + "diamond-x", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open", + "circle", + "diamond-x", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open", + "circle", + "diamond-x", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open", + "circle", + "diamond-x", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open", + "circle", + "diamond-x", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open", + "circle", + "diamond-x", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open", + "circle", + "diamond-x", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open", + "circle", + "diamond-x", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open", + "circle", + "diamond-x", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open", + "circle", + "diamond-x", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open", + "circle", + "diamond-x", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open" + ], + "line": { + "color": "orange", + "width": [ + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 1.5, + 1.5, + 1.5, + 1.5, + 1.5, + 1.5, + 3, + 3, + 3, + 3, + 3, + 3, + 5, + 5, + 5, + 5, + 5, + 5, + 10, + 10, + 10, + 10, + 10, + 10, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 1.5, + 1.5, + 1.5, + 1.5, + 1.5, + 1.5, + 3, + 3, + 3, + 3, + 3, + 3, + 5, + 5, + 5, + 5, + 5, + 5, + 10, + 10, + 10, + 10, + 10, + 10, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 1.5, + 1.5, + 1.5, + 1.5, + 1.5, + 1.5, + 3, + 3, + 3, + 3, + 3, + 3, + 5, + 5, + 5, + 5, + 5, + 5, + 10, + 10, + 10, + 10, + 10, + 10 + ] + } + }, + "text": [ + "marker.symbol: circle
marker.line.width: 0.5
marker.size: 5", + "marker.symbol: diamond-x
marker.line.width: 0.5
marker.size: 5", + "marker.symbol: circle-cross-open
marker.line.width: 0.5
marker.size: 5", + "marker.symbol: circle-x-open
marker.line.width: 0.5
marker.size: 5", + "marker.symbol: square-cross-open
marker.line.width: 0.5
marker.size: 5", + "marker.symbol: square-x-open
marker.line.width: 0.5
marker.size: 5", + "marker.symbol: circle
marker.line.width: 1.5
marker.size: 5", + "marker.symbol: diamond-x
marker.line.width: 1.5
marker.size: 5", + "marker.symbol: circle-cross-open
marker.line.width: 1.5
marker.size: 5", + "marker.symbol: circle-x-open
marker.line.width: 1.5
marker.size: 5", + "marker.symbol: square-cross-open
marker.line.width: 1.5
marker.size: 5", + "marker.symbol: square-x-open
marker.line.width: 1.5
marker.size: 5", + "marker.symbol: circle
marker.line.width: 3
marker.size: 5", + "marker.symbol: diamond-x
marker.line.width: 3
marker.size: 5", + "marker.symbol: circle-cross-open
marker.line.width: 3
marker.size: 5", + "marker.symbol: circle-x-open
marker.line.width: 3
marker.size: 5", + "marker.symbol: square-cross-open
marker.line.width: 3
marker.size: 5", + "marker.symbol: square-x-open
marker.line.width: 3
marker.size: 5", + "marker.symbol: circle
marker.line.width: 5
marker.size: 5", + "marker.symbol: diamond-x
marker.line.width: 5
marker.size: 5", + "marker.symbol: circle-cross-open
marker.line.width: 5
marker.size: 5", + "marker.symbol: circle-x-open
marker.line.width: 5
marker.size: 5", + "marker.symbol: square-cross-open
marker.line.width: 5
marker.size: 5", + "marker.symbol: square-x-open
marker.line.width: 5
marker.size: 5", + "marker.symbol: circle
marker.line.width: 10
marker.size: 5", + "marker.symbol: diamond-x
marker.line.width: 10
marker.size: 5", + "marker.symbol: circle-cross-open
marker.line.width: 10
marker.size: 5", + "marker.symbol: circle-x-open
marker.line.width: 10
marker.size: 5", + "marker.symbol: square-cross-open
marker.line.width: 10
marker.size: 5", + "marker.symbol: square-x-open
marker.line.width: 10
marker.size: 5", + "marker.symbol: circle
marker.line.width: 0.5
marker.size: 20", + "marker.symbol: diamond-x
marker.line.width: 0.5
marker.size: 20", + "marker.symbol: circle-cross-open
marker.line.width: 0.5
marker.size: 20", + "marker.symbol: circle-x-open
marker.line.width: 0.5
marker.size: 20", + "marker.symbol: square-cross-open
marker.line.width: 0.5
marker.size: 20", + "marker.symbol: square-x-open
marker.line.width: 0.5
marker.size: 20", + "marker.symbol: circle
marker.line.width: 1.5
marker.size: 20", + "marker.symbol: diamond-x
marker.line.width: 1.5
marker.size: 20", + "marker.symbol: circle-cross-open
marker.line.width: 1.5
marker.size: 20", + "marker.symbol: circle-x-open
marker.line.width: 1.5
marker.size: 20", + "marker.symbol: square-cross-open
marker.line.width: 1.5
marker.size: 20", + "marker.symbol: square-x-open
marker.line.width: 1.5
marker.size: 20", + "marker.symbol: circle
marker.line.width: 3
marker.size: 20", + "marker.symbol: diamond-x
marker.line.width: 3
marker.size: 20", + "marker.symbol: circle-cross-open
marker.line.width: 3
marker.size: 20", + "marker.symbol: circle-x-open
marker.line.width: 3
marker.size: 20", + "marker.symbol: square-cross-open
marker.line.width: 3
marker.size: 20", + "marker.symbol: square-x-open
marker.line.width: 3
marker.size: 20", + "marker.symbol: circle
marker.line.width: 5
marker.size: 20", + "marker.symbol: diamond-x
marker.line.width: 5
marker.size: 20", + "marker.symbol: circle-cross-open
marker.line.width: 5
marker.size: 20", + "marker.symbol: circle-x-open
marker.line.width: 5
marker.size: 20", + "marker.symbol: square-cross-open
marker.line.width: 5
marker.size: 20", + "marker.symbol: square-x-open
marker.line.width: 5
marker.size: 20", + "marker.symbol: circle
marker.line.width: 10
marker.size: 20", + "marker.symbol: diamond-x
marker.line.width: 10
marker.size: 20", + "marker.symbol: circle-cross-open
marker.line.width: 10
marker.size: 20", + "marker.symbol: circle-x-open
marker.line.width: 10
marker.size: 20", + "marker.symbol: square-cross-open
marker.line.width: 10
marker.size: 20", + "marker.symbol: square-x-open
marker.line.width: 10
marker.size: 20", + "marker.symbol: circle
marker.line.width: 0.5
marker.size: 40", + "marker.symbol: diamond-x
marker.line.width: 0.5
marker.size: 40", + "marker.symbol: circle-cross-open
marker.line.width: 0.5
marker.size: 40", + "marker.symbol: circle-x-open
marker.line.width: 0.5
marker.size: 40", + "marker.symbol: square-cross-open
marker.line.width: 0.5
marker.size: 40", + "marker.symbol: square-x-open
marker.line.width: 0.5
marker.size: 40", + "marker.symbol: circle
marker.line.width: 1.5
marker.size: 40", + "marker.symbol: diamond-x
marker.line.width: 1.5
marker.size: 40", + "marker.symbol: circle-cross-open
marker.line.width: 1.5
marker.size: 40", + "marker.symbol: circle-x-open
marker.line.width: 1.5
marker.size: 40", + "marker.symbol: square-cross-open
marker.line.width: 1.5
marker.size: 40", + "marker.symbol: square-x-open
marker.line.width: 1.5
marker.size: 40", + "marker.symbol: circle
marker.line.width: 3
marker.size: 40", + "marker.symbol: diamond-x
marker.line.width: 3
marker.size: 40", + "marker.symbol: circle-cross-open
marker.line.width: 3
marker.size: 40", + "marker.symbol: circle-x-open
marker.line.width: 3
marker.size: 40", + "marker.symbol: square-cross-open
marker.line.width: 3
marker.size: 40", + "marker.symbol: square-x-open
marker.line.width: 3
marker.size: 40", + "marker.symbol: circle
marker.line.width: 5
marker.size: 40", + "marker.symbol: diamond-x
marker.line.width: 5
marker.size: 40", + "marker.symbol: circle-cross-open
marker.line.width: 5
marker.size: 40", + "marker.symbol: circle-x-open
marker.line.width: 5
marker.size: 40", + "marker.symbol: square-cross-open
marker.line.width: 5
marker.size: 40", + "marker.symbol: square-x-open
marker.line.width: 5
marker.size: 40", + "marker.symbol: circle
marker.line.width: 10
marker.size: 40", + "marker.symbol: diamond-x
marker.line.width: 10
marker.size: 40", + "marker.symbol: circle-cross-open
marker.line.width: 10
marker.size: 40", + "marker.symbol: circle-x-open
marker.line.width: 10
marker.size: 40", + "marker.symbol: square-cross-open
marker.line.width: 10
marker.size: 40", + "marker.symbol: square-x-open
marker.line.width: 10
marker.size: 40" + ], + "hoverinfo": "text" + } + ], + "layout": { + "showlegend": false, + "margin": { + "l": 0, + "r": 0, + "t": 0, + "b": 0 + }, + "xaxis": { + "range": [-0.5, 18], + "showticklabels": false, + "showgrid": false, + "zeroline": false + }, + "yaxis": { + "range": [-0.5, 4.5], + "showticklabels": false, + "showgrid": false, + "zeroline": false + }, + "width": 800, + "height": 400, + "plot_bgcolor": "#d3d3d3", + "hovermode": "closest" + } +} diff --git a/test/image/mocks/marker_symbols.json b/test/image/mocks/marker_symbols.json new file mode 100644 index 00000000000..7509fa7547f --- /dev/null +++ b/test/image/mocks/marker_symbols.json @@ -0,0 +1,506 @@ +{ + "data": [ + { + "mode": "markers", + "x": [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, + 3, 3, 3, 3, 3, 3, 3, 3, 3, + 4, 4, 4, 4, 4, 4, 4, 4, 4 + ], + "y": [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, + 0, 1, 2, 3, 4, 5, 6, 7, 8, + 0, 1, 2, 3, 4, 5, 6, 7, 8, + 0, 1, 2, 3, 4, 5, 6, 7, 8, + 0, 1, 2, 3, 4, 5, 6, 7, 8 + ], + "marker": { + "symbol": [ + "circle", + "square", + "diamond", + "cross", + "x", + "triangle-up", + "triangle-down", + "triangle-left", + "triangle-right", + "triangle-ne", + "triangle-se", + "triangle-sw", + "triangle-nw", + "pentagon", + "hexagon", + "hexagon2", + "octagon", + "star", + "hexagram", + "star-triangle-up", + "star-triangle-down", + "star-square", + "star-diamond", + "diamond-tall", + "diamond-wide", + "hourglass", + "bowtie", + "circle-cross", + "circle-x", + "square-cross", + "square-x", + "diamond-cross", + "diamond-x", + "cross-thin", + "x-thin", + "asterisk", + "hash", + "y-up", + "y-down", + "y-left", + "y-right", + "line-ew", + "line-ns", + "line-ne", + "line-nw" + ], + "color": "blue", + "size": 20, + "line": { + "color": "orange", + "width": 1.5 + } + }, + "text": [ + "marker symbol: circle
number: 0", + "marker symbol: square
number: 1", + "marker symbol: diamond
number: 2", + "marker symbol: cross
number: 3", + "marker symbol: x
number: 4", + "marker symbol: triangle-up
number: 5", + "marker symbol: triangle-down
number: 6", + "marker symbol: triangle-left
number: 7", + "marker symbol: triangle-right
number: 8", + "marker symbol: triangle-ne
number: 9", + "marker symbol: triangle-se
number: 10", + "marker symbol: triangle-sw
number: 11", + "marker symbol: triangle-nw
number: 12", + "marker symbol: pentagon
number: 13", + "marker symbol: hexagon
number: 14", + "marker symbol: hexagon2
number: 15", + "marker symbol: octagon
number: 16", + "marker symbol: star
number: 17", + "marker symbol: hexagram
number: 18", + "marker symbol: star-triangle-up
number: 19", + "marker symbol: star-triangle-down
number: 20", + "marker symbol: star-square
number: 21", + "marker symbol: star-diamond
number: 22", + "marker symbol: diamond-tall
number: 23", + "marker symbol: diamond-wide
number: 24", + "marker symbol: hourglass
number: 25", + "marker symbol: bowtie
number: 26", + "marker symbol: circle-cross
number: 27", + "marker symbol: circle-x
number: 28", + "marker symbol: square-cross
number: 29", + "marker symbol: square-x
number: 30", + "marker symbol: diamond-cross
number: 31", + "marker symbol: diamond-x
number: 32", + "marker symbol: cross-thin
number: 33", + "marker symbol: x-thin
number: 34", + "marker symbol: asterisk
number: 35", + "marker symbol: hash
number: 36", + "marker symbol: y-up
number: 37", + "marker symbol: y-down
number: 38", + "marker symbol: y-left
number: 39", + "marker symbol: y-right
number: 40", + "marker symbol: line-ew
number: 41", + "marker symbol: line-ns
number: 42", + "marker symbol: line-ne
number: 43", + "marker symbol: line-nw
number: 44" + ], + "hoverinfo": "text" + }, + { + "mode": "markers", + "x": [ + 5, 5, 5, 5, 5, 5, 5, 5, 5, + 6, 6, 6, 6, 6, 6, 6, 6, 6, + 7, 7, 7, 7, 7, 7, 7, 7, 7, + 8, 8, 8, 8, 8, 8, 8, 8, 8, + 9, 9, 9, 9, 9, 9, 9, 9, 9 + ], + "y": [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, + 0, 1, 2, 3, 4, 5, 6, 7, 8, + 0, 1, 2, 3, 4, 5, 6, 7, 8, + 0, 1, 2, 3, 4, 5, 6, 7, 8, + 0, 1, 2, 3, 4, 5, 6, 7, 8 + ], + "marker": { + "symbol": [ + "circle-open", + "square-open", + "diamond-open", + "cross-open", + "x-open", + "triangle-up-open", + "triangle-down-open", + "triangle-left-open", + "triangle-right-open", + "triangle-ne-open", + "triangle-se-open", + "triangle-sw-open", + "triangle-nw-open", + "pentagon-open", + "hexagon-open", + "hexagon2-open", + "octagon-open", + "star-open", + "hexagram-open", + "star-triangle-up-open", + "star-triangle-down-open", + "star-square-open", + "star-diamond-open", + "diamond-tall-open", + "diamond-wide-open", + "hourglass-open", + "bowtie-open", + "circle-cross-open", + "circle-x-open", + "square-cross-open", + "square-x-open", + "diamond-cross-open", + "diamond-x-open", + "cross-thin-open", + "x-thin-open", + "asterisk-open", + "hash-open", + "y-up-open", + "y-down-open", + "y-left-open", + "y-right-open", + "line-ew-open", + "line-ns-open", + "line-ne-open", + "line-nw-open" + ], + "color": "blue", + "size": 20, + "line": { + "color": "orange", + "width": 1.5 + } + }, + "text": [ + "marker symbol: circle-open
number: 100", + "marker symbol: square-open
number: 101", + "marker symbol: diamond-open
number: 102", + "marker symbol: cross-open
number: 103", + "marker symbol: x-open
number: 104", + "marker symbol: triangle-up-open
number: 105", + "marker symbol: triangle-down-open
number: 106", + "marker symbol: triangle-left-open
number: 107", + "marker symbol: triangle-right-open
number: 108", + "marker symbol: triangle-ne-open
number: 109", + "marker symbol: triangle-se-open
number: 110", + "marker symbol: triangle-sw-open
number: 111", + "marker symbol: triangle-nw-open
number: 112", + "marker symbol: pentagon-open
number: 113", + "marker symbol: hexagon-open
number: 114", + "marker symbol: hexagon2-open
number: 115", + "marker symbol: octagon-open
number: 116", + "marker symbol: star-open
number: 117", + "marker symbol: hexagram-open
number: 118", + "marker symbol: star-triangle-up-open
number: 119", + "marker symbol: star-triangle-down-open
number: 120", + "marker symbol: star-square-open
number: 121", + "marker symbol: star-diamond-open
number: 122", + "marker symbol: diamond-tall-open
number: 123", + "marker symbol: diamond-wide-open
number: 124", + "marker symbol: hourglass-open
number: 125", + "marker symbol: bowtie-open
number: 126", + "marker symbol: circle-cross-open
number: 127", + "marker symbol: circle-x-open
number: 128", + "marker symbol: square-cross-open
number: 129", + "marker symbol: square-x-open
number: 130", + "marker symbol: diamond-cross-open
number: 131", + "marker symbol: diamond-x-open
number: 132", + "marker symbol: cross-thin-open
number: 133", + "marker symbol: x-thin-open
number: 134", + "marker symbol: asterisk-open
number: 135", + "marker symbol: hash-open
number: 136", + "marker symbol: y-up-open
number: 137", + "marker symbol: y-down-open
number: 138", + "marker symbol: y-left-open
number: 139", + "marker symbol: y-right-open
number: 140", + "marker symbol: line-ew-open
number: 141", + "marker symbol: line-ns-open
number: 142", + "marker symbol: line-ne-open
number: 143", + "marker symbol: line-nw-open
number: 144" + ], + "hoverinfo": "text" + }, + { + "mode": "markers", + "x": [ + 10, 10, 10, 10, 10, 10, 10, 10, 10, + 11, 11, 11, 11, 11, 11, 11, 11, 11, + 12, 12, 12, 12, 12, 12, 12, 12, 12, + 13, 13, 13, 13, 13, 13, 13, 13, 13, + 14, 14, 14, 14, 14, 14, 14, 14, 14 + ], + "y": [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, + 0, 1, 2, 3, 4, 5, 6, 7, 8, + 0, 1, 2, 3, 4, 5, 6, 7, 8, + 0, 1, 2, 3, 4, 5, 6, 7, 8, + 0, 1, 2, 3, 4, 5, 6, 7, 8 + ], + "marker": { + "symbol": [ + "circle-dot", + "square-dot", + "diamond-dot", + "cross-dot", + "x-dot", + "triangle-up-dot", + "triangle-down-dot", + "triangle-left-dot", + "triangle-right-dot", + "triangle-ne-dot", + "triangle-se-dot", + "triangle-sw-dot", + "triangle-nw-dot", + "pentagon-dot", + "hexagon-dot", + "hexagon2-dot", + "octagon-dot", + "star-dot", + "hexagram-dot", + "star-triangle-up-dot", + "star-triangle-down-dot", + "star-square-dot", + "star-diamond-dot", + "diamond-tall-dot", + "diamond-wide-dot", + "hourglass-dot", + "bowtie-dot", + "circle-cross-dot", + "circle-x-dot", + "square-cross-dot", + "square-x-dot", + "diamond-cross-dot", + "diamond-x-dot", + "cross-thin-dot", + "x-thin-dot", + "asterisk-dot", + "hash-dot", + "y-up-dot", + "y-down-dot", + "y-left-dot", + "y-right-dot", + "line-ew-dot", + "line-ns-dot", + "line-ne-dot", + "line-nw-dot" + ], + "color": "blue", + "size": 20, + "line": { + "color": "orange", + "width": 1.5 + } + }, + "text": [ + "marker symbol: circle-dot
number: 200", + "marker symbol: square-dot
number: 201", + "marker symbol: diamond-dot
number: 202", + "marker symbol: cross-dot
number: 203", + "marker symbol: x-dot
number: 204", + "marker symbol: triangle-up-dot
number: 205", + "marker symbol: triangle-down-dot
number: 206", + "marker symbol: triangle-left-dot
number: 207", + "marker symbol: triangle-right-dot
number: 208", + "marker symbol: triangle-ne-dot
number: 209", + "marker symbol: triangle-se-dot
number: 210", + "marker symbol: triangle-sw-dot
number: 211", + "marker symbol: triangle-nw-dot
number: 212", + "marker symbol: pentagon-dot
number: 213", + "marker symbol: hexagon-dot
number: 214", + "marker symbol: hexagon2-dot
number: 215", + "marker symbol: octagon-dot
number: 216", + "marker symbol: star-dot
number: 217", + "marker symbol: hexagram-dot
number: 218", + "marker symbol: star-triangle-up-dot
number: 219", + "marker symbol: star-triangle-down-dot
number: 220", + "marker symbol: star-square-dot
number: 221", + "marker symbol: star-diamond-dot
number: 222", + "marker symbol: diamond-tall-dot
number: 223", + "marker symbol: diamond-wide-dot
number: 224", + "marker symbol: hourglass-dot
number: 225", + "marker symbol: bowtie-dot
number: 226", + "marker symbol: circle-cross-dot
number: 227", + "marker symbol: circle-x-dot
number: 228", + "marker symbol: square-cross-dot
number: 229", + "marker symbol: square-x-dot
number: 230", + "marker symbol: diamond-cross-dot
number: 231", + "marker symbol: diamond-x-dot
number: 232", + "marker symbol: cross-thin-dot
number: 233", + "marker symbol: x-thin-dot
number: 234", + "marker symbol: asterisk-dot
number: 235", + "marker symbol: hash-dot
number: 236", + "marker symbol: y-up-dot
number: 237", + "marker symbol: y-down-dot
number: 238", + "marker symbol: y-left-dot
number: 239", + "marker symbol: y-right-dot
number: 240", + "marker symbol: line-ew-dot
number: 241", + "marker symbol: line-ns-dot
number: 242", + "marker symbol: line-ne-dot
number: 243", + "marker symbol: line-nw-dot
number: 244" + ], + "hoverinfo": "text" + }, + { + "mode": "markers", + "x": [ + 15, 15, 15, 15, 15, 15, 15, 15, 15, + 16, 16, 16, 16, 16, 16, 16, 16, 16, + 17, 17, 17, 17, 17, 17, 17, 17, 17, + 18, 18, 18, 18, 18, 18, 18, 18, 18, + 19, 19, 19, 19, 19, 19, 19, 19, 19 + ], + "y": [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, + 0, 1, 2, 3, 4, 5, 6, 7, 8, + 0, 1, 2, 3, 4, 5, 6, 7, 8, + 0, 1, 2, 3, 4, 5, 6, 7, 8, + 0, 1, 2, 3, 4, 5, 6, 7, 8 + ], + "marker": { + "symbol": [ + "circle-open-dot", + "square-open-dot", + "diamond-open-dot", + "cross-open-dot", + "x-open-dot", + "triangle-up-open-dot", + "triangle-down-open-dot", + "triangle-left-open-dot", + "triangle-right-open-dot", + "triangle-ne-open-dot", + "triangle-se-open-dot", + "triangle-sw-open-dot", + "triangle-nw-open-dot", + "pentagon-open-dot", + "hexagon-open-dot", + "hexagon2-open-dot", + "octagon-open-dot", + "star-open-dot", + "hexagram-open-dot", + "star-triangle-up-open-dot", + "star-triangle-down-open-dot", + "star-square-open-dot", + "star-diamond-open-dot", + "diamond-tall-open-dot", + "diamond-wide-open-dot", + "hourglass-open-dot", + "bowtie-open-dot", + "circle-cross-open-dot", + "circle-x-open-dot", + "square-cross-open-dot", + "square-x-open-dot", + "diamond-cross-open-dot", + "diamond-x-open-dot", + "cross-thin-open-dot", + "x-thin-open-dot", + "asterisk-open-dot", + "hash-open-dot", + "y-up-open-dot", + "y-down-open-dot", + "y-left-open-dot", + "y-right-open-dot", + "line-ew-open-dot", + "line-ns-open-dot", + "line-ne-open-dot", + "line-nw-open-dot" + ], + "color": "blue", + "size": 20, + "line": { + "color": "orange", + "width": 1.5 + } + }, + "text": [ + "marker symbol: circle-open-dot
number: 300", + "marker symbol: square-open-dot
number: 301", + "marker symbol: diamond-open-dot
number: 302", + "marker symbol: cross-open-dot
number: 303", + "marker symbol: x-open-dot
number: 304", + "marker symbol: triangle-up-open-dot
number: 305", + "marker symbol: triangle-down-open-dot
number: 306", + "marker symbol: triangle-left-open-dot
number: 307", + "marker symbol: triangle-right-open-dot
number: 308", + "marker symbol: triangle-ne-open-dot
number: 309", + "marker symbol: triangle-se-open-dot
number: 310", + "marker symbol: triangle-sw-open-dot
number: 311", + "marker symbol: triangle-nw-open-dot
number: 312", + "marker symbol: pentagon-open-dot
number: 313", + "marker symbol: hexagon-open-dot
number: 314", + "marker symbol: hexagon2-open-dot
number: 315", + "marker symbol: octagon-open-dot
number: 316", + "marker symbol: star-open-dot
number: 317", + "marker symbol: hexagram-open-dot
number: 318", + "marker symbol: star-triangle-up-open-dot
number: 319", + "marker symbol: star-triangle-down-open-dot
number: 320", + "marker symbol: star-square-open-dot
number: 321", + "marker symbol: star-diamond-open-dot
number: 322", + "marker symbol: diamond-tall-open-dot
number: 323", + "marker symbol: diamond-wide-open-dot
number: 324", + "marker symbol: hourglass-open-dot
number: 325", + "marker symbol: bowtie-open-dot
number: 326", + "marker symbol: circle-cross-open-dot
number: 327", + "marker symbol: circle-x-open-dot
number: 328", + "marker symbol: square-cross-open-dot
number: 329", + "marker symbol: square-x-open-dot
number: 330", + "marker symbol: diamond-cross-open-dot
number: 331", + "marker symbol: diamond-x-open-dot
number: 332", + "marker symbol: cross-thin-open-dot
number: 333", + "marker symbol: x-thin-open-dot
number: 334", + "marker symbol: asterisk-open-dot
number: 335", + "marker symbol: hash-open-dot
number: 336", + "marker symbol: y-up-open-dot
number: 337", + "marker symbol: y-down-open-dot
number: 338", + "marker symbol: y-left-open-dot
number: 339", + "marker symbol: y-right-open-dot
number: 340", + "marker symbol: line-ew-open-dot
number: 341", + "marker symbol: line-ns-open-dot
number: 342", + "marker symbol: line-ne-open-dot
number: 343", + "marker symbol: line-nw-open-dot
number: 344" + ], + "hoverinfo": "text" + } + ], + "layout": { + "margin": { + "l": 0, + "r": 0, + "b": 0, + "t": 0 + }, + "width": 800, + "height": 500, + "xaxis": { + "showgrid": false, + "zeroline": false + }, + "yaxis": { + "showgrid": false, + "zeroline": false, + "autorange": "reversed" + }, + "showlegend": false, + "plot_bgcolor": "#d3d3d3", + "hovermode": "closest" + } +}