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"
+ }
+}