diff --git a/src/constants/gl_markers.js b/src/constants/gl_markers.js
index e10354e84a4..933c226e916 100644
--- a/src/constants/gl_markers.js
+++ b/src/constants/gl_markers.js
@@ -17,5 +17,40 @@ module.exports = {
diamond: '◆',
'diamond-open': '◇',
cross: '+',
- x: '❌'
+ x: '❌',
+ 'triangle-up': '▲',
+ 'triangle-up-open': '△',
+ 'triangle-down': '▼',
+ 'triangle-down-open': '▽',
+ 'triangle-left': '◄',
+ 'triangle-left-open': '◁',
+ 'triangle-right': '►',
+ 'triangle-right-open': '▷',
+ 'triangle-ne': '◥',
+ 'triangle-ne-open': '◹',
+ 'triangle-nw': '◤',
+ 'triangle-nw-open': '◸',
+ 'triangle-se': '◢',
+ 'triangle-se-open': '◿',
+ 'triangle-sw': '◣',
+ 'triangle-sw-open': '◺',
+ 'pentagon': '⬟',
+ 'pentagon-open': '⬠',
+ 'hexagon': '⬢',
+ 'hexagon-open': '⬡',
+ 'hexagon2': '⬣',
+ 'star': '★',
+ 'star-open': '☆',
+ 'hexagram': '✶',
+ 'diamond-tall': '♦',
+ 'diamond-tall-open': '♢',
+ 'hourglass': '⧗',
+ 'hourglass-open': '⧖',
+ 'bowtie': '⧓',
+ 'bowtie-open': '⋈',
+ 'circle-cross': '⊕',
+ 'circle-x': '⊗',
+ 'square-cross': '⊞',
+ 'square-x': '⊠',
+ 'asterisk': '✱'
};
diff --git a/test/image/baselines/gl2d_marker_symbols.png b/test/image/baselines/gl2d_marker_symbols.png
new file mode 100644
index 00000000000..110452e5878
Binary files /dev/null and b/test/image/baselines/gl2d_marker_symbols.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..2baff2e2c53
Binary files /dev/null and b/test/image/baselines/gl3d_marker_symbols.png differ
diff --git a/test/image/baselines/marker_symbols.png b/test/image/baselines/marker_symbols.png
new file mode 100644
index 00000000000..1f614c49c90
Binary files /dev/null and b/test/image/baselines/marker_symbols.png differ
diff --git a/test/image/mocks/gl2d_marker_symbols.json b/test/image/mocks/gl2d_marker_symbols.json
new file mode 100644
index 00000000000..9fe51b11cd1
--- /dev/null
+++ b/test/image/mocks/gl2d_marker_symbols.json
@@ -0,0 +1,143 @@
+{
+ "data": [
+ {
+ "type": "scattergl",
+ "x": [1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7],
+ "y": [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, 5, 5, 5, 5, 5, 5, 5],
+ "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 symbol: 'x'",
+ "marker symbol: 'triangle-up'",
+ "marker symbol: 'triangle-up-open'",
+ "marker symbol: 'triangle-down'",
+ "marker symbol: 'triangle-down-open'",
+ "marker symbol: 'triangle-left'",
+ "marker symbol: 'triangle-left-open'",
+ "marker symbol: 'triangle-right'",
+ "marker symbol: 'triangle-right-open'",
+ "marker symbol: 'triangle-ne'",
+ "marker symbol: 'triangle-ne-open'",
+ "marker symbol: 'triangle-nw'",
+ "marker symbol: 'triangle-nw-open'",
+ "marker symbol: 'triangle-se'",
+ "marker symbol: 'triangle-se-open'",
+ "marker symbol: 'triangle-sw'",
+ "marker symbol: 'triangle-sw-open'",
+ "marker symbol: 'pentagon'",
+ "marker symbol: 'pentagon-open'",
+ "marker symbol: 'hexagon'",
+ "marker symbol: 'hexagon-open'",
+ "marker symbol: 'hexagon2'",
+ "marker symbol: 'star'",
+ "marker symbol: 'star-open'",
+ "marker symbol: 'hexagram'",
+ "marker symbol: 'diamond-tall'",
+ "marker symbol: 'diamond-tall-open'",
+ "marker symbol: 'hourglass'",
+ "marker symbol: 'hourglass-open'",
+ "marker symbol: 'bowtie'",
+ "marker symbol: 'bowtie-open'",
+ "marker symbol: 'circle-cross'",
+ "marker symbol: 'circle-x'",
+ "marker symbol: 'square-cross'",
+ "marker symbol: 'square-x'",
+ "marker symbol: 'asterisk'"
+ ],
+ "marker": {
+ "color": "blue",
+ "size": 20,
+ "symbol": [
+ "circle",
+ "circle-open",
+ "square",
+ "square-open",
+ "diamond",
+ "diamond-open",
+ "cross",
+ "x",
+ "triangle-up",
+ "triangle-up-open",
+ "triangle-down",
+ "triangle-down-open",
+ "triangle-left",
+ "triangle-left-open",
+ "triangle-right",
+ "triangle-right-open",
+ "triangle-ne",
+ "triangle-ne-open",
+ "triangle-nw",
+ "triangle-nw-open",
+ "triangle-se",
+ "triangle-se-open",
+ "triangle-sw",
+ "triangle-sw-open",
+ "pentagon",
+ "pentagon-open",
+ "hexagon",
+ "hexagon-open",
+ "hexagon2",
+ "star",
+ "star-open",
+ "hexagram",
+ "diamond-tall",
+ "diamond-tall-open",
+ "hourglass",
+ "hourglass-open",
+ "bowtie",
+ "bowtie-open",
+ "circle-cross",
+ "circle-x",
+ "square-cross",
+ "square-x",
+ "asterisk"
+ ],
+ "line": {
+ "color": "orange",
+ "width": 1.5
+ }
+ }
+ }
+ ],
+ "layout": {
+ "width": 500,
+ "height": 500,
+ "xaxis": {
+ "showgrid": false,
+ "zeroline": false,
+ "showline": false,
+ "showticklabels": false,
+ "range": [0, 10]
+ },
+ "yaxis": {
+ "showgrid": false,
+ "zeroline": false,
+ "showline": false,
+ "showticklabels": false,
+ "range": [0, 6]
+ },
+ "annotations": [
+ {
+ "x": 0.5,
+ "y": 1,
+ "xref": "paper",
+ "yref": "paper",
+ "text": "Add 100 (or '-open') to marker number (or string) to remove the fill color,
Add 200 (or '-dot') to marker number (or string) to add a dot in the middle,
Add 300 (or '-open-dot', 'dot-open') to marker number (or string) for both.",
+ "font": {
+ "size": 10
+ },
+ "align": "left",
+ "showarrow": false,
+ "xanchor": "center",
+ "yanchor": "bottom"
+ }
+ ],
+ "hovermode": "closest"
+ }
+}
diff --git a/test/image/mocks/gl3d_marker_symbols.json b/test/image/mocks/gl3d_marker_symbols.json
new file mode 100644
index 00000000000..1fec9a7d38a
--- /dev/null
+++ b/test/image/mocks/gl3d_marker_symbols.json
@@ -0,0 +1,163 @@
+{
+ "data": [
+ {
+ "type": "scatter3d",
+ "x": [1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7],
+ "y": [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, 5, 5, 5, 5, 5, 5, 5],
+ "z": [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],
+ "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 symbol: 'x'",
+ "marker symbol: 'triangle-up'",
+ "marker symbol: 'triangle-up-open'",
+ "marker symbol: 'triangle-down'",
+ "marker symbol: 'triangle-down-open'",
+ "marker symbol: 'triangle-left'",
+ "marker symbol: 'triangle-left-open'",
+ "marker symbol: 'triangle-right'",
+ "marker symbol: 'triangle-right-open'",
+ "marker symbol: 'triangle-ne'",
+ "marker symbol: 'triangle-ne-open'",
+ "marker symbol: 'triangle-nw'",
+ "marker symbol: 'triangle-nw-open'",
+ "marker symbol: 'triangle-se'",
+ "marker symbol: 'triangle-se-open'",
+ "marker symbol: 'triangle-sw'",
+ "marker symbol: 'triangle-sw-open'",
+ "marker symbol: 'pentagon'",
+ "marker symbol: 'pentagon-open'",
+ "marker symbol: 'hexagon'",
+ "marker symbol: 'hexagon-open'",
+ "marker symbol: 'hexagon2'",
+ "marker symbol: 'star'",
+ "marker symbol: 'star-open'",
+ "marker symbol: 'hexagram'",
+ "marker symbol: 'diamond-tall'",
+ "marker symbol: 'diamond-tall-open'",
+ "marker symbol: 'hourglass'",
+ "marker symbol: 'hourglass-open'",
+ "marker symbol: 'bowtie'",
+ "marker symbol: 'bowtie-open'",
+ "marker symbol: 'circle-cross'",
+ "marker symbol: 'circle-x'",
+ "marker symbol: 'square-cross'",
+ "marker symbol: 'square-x'",
+ "marker symbol: 'asterisk'"
+ ],
+ "marker": {
+ "color": "blue",
+ "size": 8,
+ "symbol": [
+ "circle",
+ "circle-open",
+ "square",
+ "square-open",
+ "diamond",
+ "diamond-open",
+ "cross",
+ "x",
+ "triangle-up",
+ "triangle-up-open",
+ "triangle-down",
+ "triangle-down-open",
+ "triangle-left",
+ "triangle-left-open",
+ "triangle-right",
+ "triangle-right-open",
+ "triangle-ne",
+ "triangle-ne-open",
+ "triangle-nw",
+ "triangle-nw-open",
+ "triangle-se",
+ "triangle-se-open",
+ "triangle-sw",
+ "triangle-sw-open",
+ "pentagon",
+ "pentagon-open",
+ "hexagon",
+ "hexagon-open",
+ "hexagon2",
+ "star",
+ "star-open",
+ "hexagram",
+ "diamond-tall",
+ "diamond-tall-open",
+ "hourglass",
+ "hourglass-open",
+ "bowtie",
+ "bowtie-open",
+ "circle-cross",
+ "circle-x",
+ "square-cross",
+ "square-x",
+ "asterisk"
+ ],
+ "line": {
+ "color": "orange",
+ "width": 1.5
+ }
+ }
+ }
+ ],
+ "layout": {
+ "width": 500,
+ "height": 500,
+ "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]
+ }
+ },
+ "annotations": [
+ {
+ "x": 0.5,
+ "y": 1,
+ "xref": "paper",
+ "yref": "paper",
+ "text": "Add 100 (or '-open') to marker number (or string) to remove the fill color,
Add 200 (or '-dot') to marker number (or string) to add a dot in the middle,
Add 300 (or '-open-dot', 'dot-open') to marker number (or string) for both.",
+ "font": {
+ "size": 10
+ },
+ "align": "left",
+ "showarrow": false,
+ "xanchor": "center",
+ "yanchor": "bottom"
+ }
+ ],
+ "hovermode": "closest"
+ }
+}
diff --git a/test/image/mocks/marker_symbols.json b/test/image/mocks/marker_symbols.json
new file mode 100644
index 00000000000..7322d8a34b2
--- /dev/null
+++ b/test/image/mocks/marker_symbols.json
@@ -0,0 +1,99 @@
+{
+ "data": [
+ {
+ "x": [1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9],
+ "y": [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, 5, 5, 5, 5, 5, 5, 5, 5, 5],
+ "mode": "markers",
+ "text": [
+ "marker number: 0
marker string: 'circle'",
+ "marker number: 1
marker string: 'square'",
+ "marker number: 2
marker string: 'diamond'",
+ "marker number: 3
marker string: 'cross'",
+ "marker number: 4
marker string: 'x'",
+ "marker number: 5
marker string: 'triangle-up'",
+ "marker number: 6
marker string: 'triangle-down'",
+ "marker number: 7
marker string: 'triangle-left'",
+ "marker number: 8
marker string: 'triangle-right'",
+ "marker number: 9
marker string: 'triangle-ne'",
+ "marker number: 10
marker string: 'triangle-se'",
+ "marker number: 11
marker string: 'triangle-sw'",
+ "marker number: 12
marker string: 'triangle-nw'",
+ "marker number: 13
marker string: 'pentagon'",
+ "marker number: 14
marker string: 'hexagon'",
+ "marker number: 15
marker string: 'hexagon2'",
+ "marker number: 16
marker string: 'octagon'",
+ "marker number: 17
marker string: 'star'",
+ "marker number: 18
marker string: 'hexagram'",
+ "marker number: 19
marker string: 'star-triangle-up'",
+ "marker number: 20
marker string: 'star-triangle-down'",
+ "marker number: 21
marker string: 'star-square'",
+ "marker number: 22
marker string: 'star-diamond'",
+ "marker number: 23
marker string: 'diamond-tall'",
+ "marker number: 24
marker string: 'diamond-wide'",
+ "marker number: 25
marker string: 'hourglass'",
+ "marker number: 26
marker string: 'bowtie'",
+ "marker number: 27
marker string: 'circle-cross'",
+ "marker number: 28
marker string: 'circle-x'",
+ "marker number: 29
marker string: 'square-cross'",
+ "marker number: 30
marker string: 'square-x'",
+ "marker number: 31
marker string: 'diamond-cross'",
+ "marker number: 32
marker string: 'diamond-x'",
+ "marker number: 33
marker string: 'cross-thin'",
+ "marker number: 34
marker string: 'x-thin'",
+ "marker number: 35
marker string: 'asterisk'",
+ "marker number: 36
marker string: 'hash'",
+ "marker number: 37
marker string: 'y-up'",
+ "marker number: 38
marker string: 'y-down'",
+ "marker number: 39
marker string: 'y-left'",
+ "marker number: 40
marker string: 'y-right'",
+ "marker number: 41
marker string: 'line-ew'",
+ "marker number: 42
marker string: 'line-ns'",
+ "marker number: 43
marker string: 'line-ne'",
+ "marker number: 44
marker string: 'line-nw'"
+ ],
+ "marker": {
+ "color": "blue",
+ "size": 20,
+ "symbol": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44],
+ "line": {
+ "color": "orange",
+ "width": 1.5
+ }
+ },
+ "type": "scatter"
+ }
+ ],
+ "layout": {
+ "width": 500,
+ "height": 500,
+ "xaxis": {
+ "showgrid": false,
+ "zeroline": false,
+ "showline": false,
+ "showticklabels": false
+ },
+ "yaxis": {
+ "showgrid": false,
+ "zeroline": false,
+ "showline": false,
+ "showticklabels": false
+ },
+ "annotations": [
+ {
+ "x": 0.5,
+ "y": 1,
+ "xref": "paper",
+ "yref": "paper",
+ "text": "Add 100 (or '-open') to marker number (or string) to remove the fill color,
Add 200 (or '-dot') to marker number (or string) to add a dot in the middle,
Add 300 (or '-open-dot', 'dot-open') to marker number (or string) for both.",
+ "font": {
+ "size": 10
+ },
+ "align": "left",
+ "showarrow": false,
+ "xanchor": "center",
+ "yanchor": "bottom"
+ }
+ ],
+ "hovermode": "closest"
+ }
+}